• gexp

    Dec 21, 2020

    Tip:
    If you are struggeling with gexp’s (like me) here is a great document written by Ludo that clarifies a lot.

  • Substitution service

    Nov 2, 2020

    I started a guix publish (substitution) service here.
    If you trust me, you can add this signing-key.pub to your trusted keys.
    Maybe this helps a little bit saving some compilation time to save some energy in order to save this planet and spread love! ;)

  • Installer iso image.

    Nov 1, 2020

    Here is an (hopefully always updated) nonguix installer iso image (20201223) from this install.scm. It has a non-libre linux kernel with all firmware and the rtl8192ce-linux-module.

    Please respect guix and the maintainer for not supporting non-libre kernels and blobs! Please don’t ask for support on the official irc channel and mailinglists. Thank you!

  • I'm a fan! ;)

    Sep 20, 2020

    A graybeard has a new shirt:
    Some birthday present’s from my girlfriend. Thank you!

  • autofs service

    Jul 4, 2020

    Tip: to define an autofs service:

    ;; a stripped down version of autofs:
    (define-public mroh-autofs
      (package
        (inherit autofs)
        (name "mroh-autofs")
        (arguments
         `(,@(substitute-keyword-arguments
                 (package-arguments autofs)
               ((#:configure-flags cf)
                `(list "--enable-ignore-busy"
                       "--enable-sloppy-mount"
                       "--with-libtirpc")))))
        (inputs
         `(("e2fsprogs" ,e2fsprogs)
           ("libtirpc" ,libtirpc)
           ("nfs-utils" ,nfs-utils)
           ("util-linux" ,util-linux)))))
    
    (define (automount-shepherd-service config)
      (list (shepherd-service
             (provision '(automount))
             (documentation "Run the automount server.")
             (requirement '(networking))
             (start #~(make-forkexec-constructor
                       (list #$(file-append mroh-autofs "/sbin/automount") "-f")
                       #:log-file "/var/log/automount.log"))
             (stop #~(make-kill-destructor)))))
    
    (define automount-service-type
      (service-type
       (name 'automount)
       (description "Run the automount server.")
       (extensions
        (list (service-extension shepherd-root-service-type
                                 automount-shepherd-service)
              (service-extension rottlog-service-type
                                 (const
                                  (list (log-rotation
                                         (files (list "/var/log/automount.log"))))))
              (service-extension etc-service-type
                            (lambda (config)
                              `(("autofs.conf" ,(local-file "config/autofs.conf"))
                                ("auto.master" ,(local-file "config/auto.master")))))))
       (default-value '())))
  • newer kernel

    Jun 2, 2020

    Tip: to build an linux-5.6 kernel, you can do:

    (define linux-libre-5.6
      ((@@ (gnu packages linux) make-linux-libre*)
       (@@ (gnu packages linux) linux-libre-5.6-version)
       (@@ (gnu packages linux) linux-libre-5.6-source)
       '("x86_64-linux")))
    
    (define-public my-linux
      (package
       (inherit linux-libre-5.6)
       (name "my-linux")
       (native-inputs
        `(("kconfig" ,(local-file "kernel-5.6.config"))
          ,@(alist-delete "kconfig"
                          (package-native-inputs linux))))))
  • guix git and emacs workflow

    May 18, 2020

    I made a small presentation about a guix git and emacs workflow.

  • Manifest

    Apr 3, 2020

    with a simple manifest-remote.scm file like this:

    (use-modules
     (mroh guix packages))
    
    (specifications->manifest remote-packages)

    I install/deploy a complete (emacs centric) development enviroment for remote work.

    guix package -m manifest-remote.scm

    to start ipfs, this is a simple/stupid shepherd init file:

    ;; shepherd init file
    
    (register-services
     (make <service>
       #:provides '(ipfs)
       #:requires '()
       #:start (make-forkexec-constructor '("ipfs" "daemon"))
       #:stop (make-kill-destructor)))
    
    (action 'shepherd 'daemonize)
    
    (for-each start '())
  • love

    Mar 14, 2020

    I LOVE guix and especially its inclusive community! I think, I have seen a lot of free software communities over the years, but these guys are the best!

    I made a channel for guix (with a lot of chess stuff):
    to checkout/clone it:

    git clone https://www.rohleder.de/git/guix.git

    to add it as a guix channel, add this to ~/.config/guix/channels.scm

    (cons (channel
      (name 'mroh)
      (url "https://www.rohleder.de/git/guix.git")
      (introduction
       (make-channel-introduction
        "b70f2df4dea8ffabc1a20eadf320c1546671fdb6"
        (openpgp-fingerprint
         "755E 2DE5 D0D5 85C5 2E78  2830 7C7A FFBE FEF2 CB25"))))
     %default-channels)