;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Mathieu Othacehe ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu system images hurd) #:use-module (guix gexp) #:use-module (gnu bootloader) #:use-module (gnu bootloader grub) #:use-module (gnu image) #:use-module (gnu packages ssh) #:use-module (gnu services) #:use-module (gnu services ssh) #:use-module (gnu system) #:use-module (gnu system file-systems) #:use-module (gnu system hurd) #:use-module (gnu system image) #:use-module (srfi srfi-26) #:export (hurd-barebones-os hurd-disk-image hurd-image-type hurd-qcow2-image-type hurd-barebones-disk-image hurd-barebones-qcow2-image)) (define hurd-barebones-os (operating-system (inherit %hurd-default-operating-system) (bootloader (bootloader-configuration (bootloader grub-minimal-bootloader) (target "/dev/sdX"))) (file-systems (cons (file-system (device (file-system-label "my-root")) (mount-point "/") (type "ext2")) %base-file-systems)) (host-name "guixygnu") (timezone "Europe/Amsterdam") (packages (cons openssh-sans-x %base-packages/hurd)) (services (cons (service openssh-service-type (openssh-configuration (openssh openssh-sans-x) (use-pam? #f) (port-number 2222) (permit-root-login #t) (allow-empty-passwords? #t) (password-authentication? #t))) %base-services/hurd)))) (define hurd-initialize-root-partition #~(lambda* (#:rest args) (apply initialize-root-partition (append args (list #:make-device-nodes make-hurd-device-nodes ;; XXX Creating a db.sqlite with journal_mode=WAL ;; yields "unable to open database file" on GNU/Hurd ;; for an sqlite with the hurd-locking-mode.patch; ;; see . #:wal-mode? #f))))) (define hurd-disk-image (image (format 'disk-image) (target "i586-pc-gnu") (partitions (list (partition (size 'guess) (offset root-offset) (label root-label) (file-system "ext2") (file-system-options '("-o" "hurd" "-O" "ext_attr")) (flags '(boot)) (initializer hurd-initialize-root-partition)))))) (define hurd-image-type (image-type (name 'hurd-raw) (constructor (cut image-with-os hurd-disk-image <>)))) (define hurd-qcow2-image-type (image-type (name 'hurd-qcow2) (constructor (lambda (os) (image (inherit hurd-disk-image) (format 'compressed-qcow2) (operating-system os)))))) (define hurd-barebones-disk-image (image (inherit (os->image hurd-barebones-os #:type hurd-image-type)) (name 'hurd-barebones-disk-image))) (define hurd-barebones-qcow2-image (image (inherit (os->image hurd-barebones-os #:type hurd-qcow2-image-type)) (name 'hurd-barebones.qcow2))) ;; Return the default image. hurd-barebones-qcow2-image r 2019-12-04gnu: emacs: Use load-path instead of EMACSLOADPATH....This enables the use of the subdirs.el feature of Emacs, where specifying a directory in EMACSLOADPATH translates into a `load-path' variable containing the directory and all its sub-directories. * gnu/packages/aux-files/emacs/guix-emacs.el (guix-emacs-autoload-packages): Use `load-path' directly instead of parsing EMACSLOADPATH. Reported-by: Leo Prikler <leo.prikler@student.tugraz.at> Signed-off-by: Clément Lassieur <clement@lassieur.org> Maxim Cournoyer 2019-12-04gnu: emacs: Fix guix-emacs.el indentation....* gnu/packages/aux-files/emacs/guix-emacs.el: Fix indentation. Signed-off-by: Clément Lassieur <clement@lassieur.org> Maxim Cournoyer 2019-11-18gnu: emacs: Adapt the autoloads auxiliary code to use EMACSLOADPATH....The Elisp directories to scan for autoloads are now taken from EMACSLOADPATH instead of from the user profile, environment profile or system profile. Manually adding the Elisp directories to the `load-path' is no longer necessary, as this is covered by Emacs when they are in EMACSLOADPATH. The caching logic is also removed, as this code is not typically run often and the gain is marginal (loading autoloads files is cheap). * gnu/packages/aux-files/emacs/guix-emacs.el (guix-emacs-directory) (guix-emacs-subdirs, guix-emacs-directories): Remove procedures. (guix-emacs-find-autoloads): Filter the directory entries by passing the regexp to `directory-files' directly, which is ten times faster. Remove deduplication. (guix-emacs-autoloads-regexp): Remove the group, which used to filter out the file extension; it no longer works this way due to passing the regexp to the `directory-files' procedure directly, which doesn't care about groups. (guix-emacs-autoload-packages): Update doc. Search package directories from EMACSLOADPATH. Do not populate the load-path. Remove cache. Maxim Cournoyer