# GuixSD Configuration \
Be aware of silly commit messages. Also, be aware that notabug removes strings inside angle brackets '<' so names from the irc log is snipped out, but they are there... :P
- Mcron: check and fix missing /var/run/tor. And check for battery - launch i3nagbar.
- Check and look through other/pkill9-desktop-config.scm
- Fix spelling in emacs and make package for norwegian
- Fix battery alert using i3-nagbar and potentially upowerd through d-bus
- change or fix "build system" Now is a disaster of manual operations and failing scripts.
- gvfs/fuser for usb and mmc;
- BORG BACKUP: Almost done, need somewhere to backup to.
- VPN: merlin - linode - quercus
- WWOFFLE? https://www.gedanken.org.uk/software/wwwoffle/README
- Migrate to guixsd.
- evaluate alternatives for linode
- ?setup weeslack?: https://github.com/wee-slack/wee-slack
- whatever else is on linode now
## Hitpoints is dead
Got our hands on a macbook, now called merlin.
Look at the following for setup:
## This is on inheritance (is this inheritance from guix or guile?) from the #guix IRC channel:
[16:29:19] snape: allright, that does the trick. quite cumbersome though, it keeps throwing these at me, resolving number 3 now... :)
[16:29:32] * marusich has quit (Quit: Leaving)
[16:30:08] thomassgn: as an alternative, you can just run "guix build " in a shell
[16:34:10] hehe, yes. Or not really. 'guix build -f ./libreoffice.scm libreoffice' tells me it cannot build. how can I tell it to build this definition of package...?
[16:34:50] you need to put it into GUIX_PACKAGE_PATH
[16:35:36] thomassgn: see https://www.gnu.org/software/guix/manual/guix.html#Defining-Packages
[16:35:50] if it's your own package file
[16:36:06] if it's within the guix source, then guix build libreoffice should work
[16:36:44] ok. But how do I know which libreoffice it builds if I say guix package -i libreoffice? I'm just testing a few things, and would like to do just copy the file and test some changes...
[16:37:16] I guess I could start changing the names and so on in the package definition.
[16:37:17] if you modify Guix's libreoffice definition and run: "guix build libreoffice", it will build the modified libreoffice
[16:37:39] but I'm not modifying in place
[16:38:01] GUIX_PACKAGE_PATH takes precedence over guix proper for leaf packages
[16:38:16] cause it's read only in my profile... :)
[16:38:44] thomassgn: your custom libreoffice package should probably inherit Guix's one
[16:39:17] * atw has joined #guix
[16:39:18] so that you don't have to copy everything
[16:39:23] nice. So any package with duplicate variable-name in my GUIX_PACKAGE_PATH will always be chosen?! nice.
[16:39:39] yes, but it's probably clearer if the name is different
[16:39:52] say, my-libreoffice
[16:39:52] Yes, I don't entirely understand inheritance though :P I'm a bit slow :)
[16:40:16] you're not slow, it takes time ;)
[16:41:50] thomassgn: there are a few package inheritance examples in the Guix source. You can grep "inherit" in /gnu/packages/ to see them.
[16:42:45] cool, I'll have a look. I've used it once in a simple thing I mostly copied.
[16:43:05] also, things in GUIX_PACKAGE_PATH need to be valid Guile modules
[16:43:46] inheritance is a way to avoid duplication.
[16:44:03] hehe, yes. I keep getting warnings from guix commands when I'm fiddling with somethings in there.
[16:44:05] a package can inherit all fields from another package.
[16:44:19] you can then override individual fields without having to specify others.
[16:44:23] * atw has quit (Ping timeout: 260 seconds)
[16:44:46] resh: is the tarball in /tmp?
[16:44:46] resh: where is the tar.xz file?
[16:45:07] ah, but if I specify parts of a field will it append it to contents of the previous? or discard the previous?
[16:45:56] but you can get the value by using (package- libreoffice)
[16:46:14] roptat and rekado not inside any directory ... installed without cd to any directory
[16:47:03] resh: so it might still be in your home directory then.
[16:47:08] So if I just want to add something I have to copy the contents of the inherited field into the new def.? uh, sorry, what did you mean with (package- libreoffice)? I ould just go read the docs ofc.
[16:47:25] roptat: ^^
[16:47:39] thomassgn: (package-synopsis libreoffice) gives you the synopsis of the libreoffice package, for example.
[16:47:51] thomassgn: (package-inputs libreoffice) gives you the inputs.
[16:47:59] for instance to add an input you would write (inputs `(("some-package" ,some-package) ,@(package-inputs libreoffice)))
[16:48:18] with enough parenthesis
[16:48:48] haha, Nice. Thanks :)
[16:49:08] i.e. the inputs field has a quasi-quoted list with the list ("some-package" ,some-package) followed by the items in the inputs field of the libreoffice package.
## And from guix mailing list about environments "permanence":
> Hello, I've been using guix `environment -l env.scm` to work on
> different programming projects on my laptop.
> The problem is: When I do guix pull or gc, these environments might get
> lost, and when I'm on the train with no network and run `guix
> environment` it will try to graft/rebuild/whatever, which requires an
> internet connection, instead of just opening the last working environment.
> So I can't work on my projects until I get back online.
To protect your environment from GC, you can use ‘guix environment
--root’: it register a “garbage collector root” for your environment as
a symlink, which means your environment won’t be GC’d unless you remove
To prevent your environment from being updated even if you ran ‘guix
pull’ in the meantime, you can use a separate profile. For instance,
you can create a ‘dev’ profile for your development environment:
guix package -p dev -i gcc-toolchain make
and then whenever you want to “enter” that profile, do:
And of course you can have as many profiles as you want.
## And from IRC on commit messages, emacs and yasnippets
[09:44:52] Hey, I've been fixing the package definitions I sent in the other day. I'm writing the commitmessage now, but after reading the gnu changelog standards I have a few questions: My current commit message looks like "* gnu/packages/xdisorg.scm (screen-message): Add package definition" Should I add more explanation? and from before I'm used to putting just 68 characters on the first line no punctuation and then
[09:44:54] blank line before any more descritpion, but the gnu standards seem to say differently. is that right?
[09:47:45] thomassgn: it should be "* gnu/packages/xdisorg.scm (screen-message): New variable."
[09:47:57] see other commit messages for examples
[09:48:43] roptat: ah, I've tried looking at other commits and can't see any adding packages. I'm doing something wrong, yes.
[09:49:12] I want to build “axoloti-patcher” but the patch for “axoloti-libusb” no longer applies. So I updated the patch, but Guix still insists on applying the old version of the patch.
[09:49:19] What am I doing wrong?
[10:09:07] thomassgn: I think I confused you: the message should be "gnu: Add screen-message", a blank line and then "* gnu/packages/xdisorg.scm (screen-message): New variable.""
[10:09:47] and don't sign-off your own patch
[10:09:52] with a '.' after "Add screen-message" :-)
[10:16:20] derp. ok, sent them allready. these guidelines are too complex/confusing for me it seems.
[10:16:54] thanks for pointing it out though, next commit message will be a bit better.
[10:18:06] thomassgn: if you’re using Emacs + magit you may find our commit message snippets useful.
[10:18:22] they are in etc/snippets and can be used with yasnippet.
[10:18:57] I only type “add” hit TAB and it expands to the right text for adding a new package.
[10:18:57] rekado: cool, is there an easy way to add them? Ah, yasnippet: the plugin I've had since the start, but never used... :P
[10:19:24] thomassgn: take a look at the contributing manual section.
[10:19:36] it tells you how to set this up.
[10:22:32] you mean the section "the perfect setup"?
[10:22:57] yes, that’s the one
[10:23:43] BTW my patch problem was due to GUIX_PACKAGE_PATH, which included a duplicate package definition
[10:23:44] cause it assumes that I'm working in a git checkout of the guix source, which I don't. I remember I couldn't make it work, too much confusion between my running system and the git checkout...
[10:24:21] you can also just copy the snippets to some other directory and refer to them.
[10:24:32] you don’t need to wrok from a git checkout to use the snippets.
[10:24:45] (but I do wonder how you submit patches when you don’t use a git checkout.)
[10:25:08] I understand a lot more now, compared to last time I tried this. So I'll probably try again soon.
[10:27:01] thomassgn: Also “C-x v l runs the command vc-print-log” in file you want to commit helps with a commit message.
[10:27:09] oh I do use git, but I have my own repo where I write and test package defs. and then I copy the defs over to the guix src checkout and make the patch. Yes it's tedious, but I understand what's happening and I don't have errors I don't understand flowing around... :P
[10:27:46] cool, thanks wigust and rekado