diff --git a/guix/guix-drv.scm b/guix/guix-drv.scm new file mode 100644 index 0000000..e35326a --- /dev/null +++ b/guix/guix-drv.scm @@ -0,0 +1,24 @@ +(use-modules (guix config) + (guix store) + (guix grafts) + (guix packages) + (guix ui) + (guix deriviations) + (guix monads) + (guix profiles) + (gnu packages) + (srfi srfi-1)) + +(define (drv-package store package) + (λ () + `((#:job-name . ,(string-append (package-name package) "-" (package-version package) "-job")) + (#:derivation . ,(derivation-file-name (package-derivation store package #:graft? #f)))))) + +(define (drv-list store arguments) + (let* ((manifest (load* "/home/steve/conf/guix/manifest.scm" (make-user-module + '((guix profiles) (gnu))))) + (packages (map manifest-entry-item (manifest-entries manifest)))) + (parameterize ((%graft? #f)) + (map (λ (package) + (drv-package store package)) + (delete-duplicates! packages))))) diff --git a/guix/manifest.scm b/guix/manifest.scm new file mode 100644 index 0000000..9753e6c --- /dev/null +++ b/guix/manifest.scm @@ -0,0 +1,108 @@ +;(setenv "GUIX_PACKAGE_PATH" "/home/steve/Source/bbbsd/:$GUIX_PACKAGE_PATH") + +(packages->manifest + (map (compose list specification->package+output symbol->string) + '(glibc-locales + + gcc-toolchain gdb + strace + + curl wget rsync + openssh gnupg pinentry + + zip unzip bzip2 tar xz + file net-tools nmap + + git + + guile-bytestructures + guile-chickadee + guile-config + guile-fibers + guile-json + guile-irregex + + vim emacs + emacs-guix + emacs-magit emacs-magit-todos + emacs-anzu emacs-better-defaults + emacs-bash-completion emacs-diminish + emacs-emojify + emacs-evil + emacs-evil-anzu emacs-evil-collection + emacs-evil-magit emacs-evil-org + emacs-evil-surround + emacs-flycheck emacs-geiser + emacs-js2-mode + emacs-nodejs-repl emacs-npm-mode + emacs-markdown-mode + emacs-web-mode + emacs-nix-mode + emacs-racket-mode + emacs-shell-switcher + emacs-slack + + node + racket + rust + + + virt-manager virt-viewer + + guile-readline + + graphicsmagick graphviz inkscape + + vlc ffmpeg audacity + flac shntool vorbis-tools + alsa-utils + gstreamer gst-transcoder + gst-libav gst-plugins-bad gst-plugins-base gst-plugins-good gst-plugins-ugly + kodi kodi-cli + + aspell aspell-dict-en + hunspell hunspell-dict-en + + evince + + xkbutils xmodmap xprop xwininfo xev xcb-util + arandr + + font-adobe100dpi + font-adobe75dpi + font-anonymous-pro + font-alias + font-anonymous-pro + font-awesome + font-bitstream-vera + font-comic-neue + font-dejavu + font-fira-code + font-fira-mono + font-fira-sans + font-gnu-freefont-ttf + font-gnu-unifont + font-go + font-google-material-design-icons + font-google-noto + font-google-roboto + font-hack + font-ibm-plex + font-inconsolata + font-iosevka + font-isas-misc + font-lato + font-liberation + font-linuxlibertine + font-mathjax + font-micro-misc + font-misc-misc + font-mutt-misc + font-sony-misc + font-sun-misc + font-tamzen + font-terminus + font-ubuntu + font-util + font-xfree86-type1 + fontconfig))) diff --git a/guix/yaddith.scm b/guix/yaddith.scm new file mode 100644 index 0000000..10789dd --- /dev/null +++ b/guix/yaddith.scm @@ -0,0 +1,70 @@ +(use-modules (gnu) + (guix) + (guix packages) + (guix git)) + +(use-service-modules admin base cuirass networking shepherd web ssh) +(use-packages-modules admin ci linux ssh tls package-management web wget) + +(define %cuirass-specs + #~list `((#:name . "guix") + (#:url . "git://git.savannah.gnu.org/guix.git") + (#:branch . "master") + (#:no-compile? #t) + (#:load-path . ".") + (#:proc . drv-list) + (#:file . #$(local-file "/home/steve/conf/guix/cuirass/guix-drv.scm")))) + +(operating-system + (host-name "yaddith") + (timezone "America/New_York") + (locale "en_US.utf8") + + (bootloader (bootloader-configuration + (bootloader grub-efi-bootloader) + (target "/boot"))) + + (file-systems (cons* + (file-system + (device (file-system-label "guixsd")) + (mount-point "/") + (type "ext4")) + (file-system + (device (uuid "074D-884c" 'fat)) + (mount-point "/boot") + (type "vfat")) + %base-file-systems)) + + (users (cons (user-account + (name "steve") + (comments "Steve") + (group "users") + (supplementary-groups '("wheel" "netdev" "audio" "video")) + (home-directory "/home/steve")))) + + (packages (cons* + nss-certs + %base-packages)) + + (services + (cons* + (service dhcp-client-service-type) + (services ntp-service-type) + (service openssh-service-type + (openssh-configuration + (password-authentication? #f) + (authorized-keys + `(("steve" ,(local-file "/home/steve/.ssh/id_rsa.pub")))))) + (services cuirass-service-type + (cuirass-configuration + (interval 30) + (use-substitutes? #f) + (port 8082) + (load-path '("/home/steve/Source/bbbsd")) + (specifications &cuirass-specs))) + (service guix-publish-service-type + (guix-publish-configuration + (host "0.0.0.0"))) + %base-services)) + + (name-service-switch %mdns-host-lookup-nss))