Skip to content

jamartin9/guix-channel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

215 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Guix Channel

Install Package

Instructions

  • guix package -L . -f jam/packages/package.scm as each package has a value returned at the end
  • packages
    • zfs : python and pam bindings for openzfs
      • not upstream as needs pam service
    • dolby
      • vs-nlq : vapoursynth plugin for dolby vision FEL mapping
      • not upstream as no precedence for wrapping vapoursynth plugins with versioning(some builds are heavily modified)
        • add UserPluginDir=~/.guix-profile/lib/python3.12/site-packages/vapoursynth/plugins/ to $XDG_CONFIG/vapoursynth/vapoursynth.conf to auto load plugin from directory
        • set LD_LIBRARY_PATH=~/.guix-profile/lib/ and use guix’s python3
      • package transformation for build flags
      • emacs-reka : reka native and elisp for river window manager
    • gcc
      • pie version of glibc and gcc toolchain for guile-static
    • guile-static
      • PIC packages for guile-next-static
        • libatomicops
        • libunistring
        • libgc
      • guile-next-static : guile with relocatable patches
        • not upstream as specific build of guile for custom embedding
    • llama : ik_llama.cpp fork for cpu only
      • cuda integration would use guix-science-nonfree and nccl
      • not upstream as changes too often without stable releases, lacking gpu features, not a standalone package(derived from llama-cpp)
    • nvidia : grafts (replace-mesa) for emacs/browsers pinning driver version
    • nzbget : usenet downloader with patches cmake build and vendored dependencies rapidyenc/par2cmdline-turbo
      • not upstream as would need tune for BUILD_NATIVE and flatpak alternative exists
    • pyrescene : rerar scene releases with python version patched
      • run the .real script with the python from guix profile
        • not upstream as newer versions need python 3.12/3.13 or patches
    • vs
      • requires dependencies on python-numpy/python
      • awsmfunc python wrapper for encoding configuration
      • vsutil : resizing and misc
      • vapoursynth plugins
        • vapoursynth-vivtc : decimate
        • vapoursynth-fillborders : fill cropped borders for aspect resolution
        • vapoursynth-ffms2 : hdr metadata support
        • vapoursynth-subtext: subtitles
        • vapoursynth-eedi3 : deinterlace
        • vs-placebo : tonemapping
        • vs-rekt : cropping and stacking
    • vspreview
      • requires dependencies:
        • libxkbcommon
          • WAYLAND: wayland, egl-wayland, vulkan-loader (nvda driver/mesa)
          • X11: libx11, libxcursor, libxi
            • set WAYLAND_DISPLAY=""
      • set LD_LIBRARY_PATH=$HOME/.guix-profile/lib for guix on foreign distro
        • set PATH="" if non guix vapoursynth is in path (dynamic library path loading creates toml file in vapoursynth config folder)
        • set VSSCRIPT_PATH=$HOME/.guix-profile/lib/libvapoursynth-script.so if script lib doesn’t load
      • graft nvidia for driver version --with-graft=mesa=nvda@580

Patches

  • custom patches are located are jam/packages/patches/*.patch and use search-patches in jam/packages.scm

Machines

  • build guix system -L . image -t iso9660 ./jam/system/installer.scm
    • change type to qcow2 or for efi qcow2-gpt
  • run with qemu qemu-system-x86_64 -smp 4 -cpu host -nic user,model=virtio-net-pci,hostfwd=tcp::8080-:8080 -enable-kvm -m 8192 -device virtio-blk,drive=myhd -drive if=none,file=MY-VM.qcow2,id=myhd
    • Increase ext4 vm disk with: qemu-img resize img.qcow2 +30G
      • growpart and resize2fs after boot
    • virt-viewer for spice viewer with -spice port=5930,disable-ticketing
    • mount shared manually sudo mount -t 9p -o trans-virtio downloads /gnu/git/downloads -oversion=9p2000.L,posixacl,msize10485600
    • boot installer with cdrom -drive file=installer.iso,media=cdrom
  • Virtual machines built with EFI require qcow2-gpt for image builder type and ovmf for qemu to run
  • channels, keys and config under /etc
    • link channels before guix pull. ln -s /etc/channels.scm ~/.config/guix/channels.scm
      • after update guix system reconfigure

Systems

laptop

  • broadcom-sta and broadcom-bluetooth for wireless

netbook

  • EFI boot
  • bluetooth
  • xfce
  • genenetwork and nonguix substitutes

CI VM

  • cuirass ci vm to build this channels packages and jobs defined in jam/ci.scm
    • jobs
      • appimage
      • static relocatable package
      • binary tarball
      • container
      • ci vm
      • test vm
      • installer iso

Test VM

  • nftable rules for specific output only
  • nzbget/unrar
  • wireguard forwarding

Deploy

  • Example deploy config
    • append to end of machine config
(list (machine
       (operating-system %ci-vm)
       (environment managed-host-environment-type)
       (configuration (machine-ssh-configuration
                       (system "x86_64-linux")
                       (host-name "127.0.0.1")
                       (user "guest")
                       (identity "./id_ed25519")
                       (port 8080)))))

Guix Home

  • defines packages for jamartin9/emacs-config
  • defines bash alias wrappers for guix operations
    • Profile management with guixProf default
      • stores all profile environments in a env variables to restore and reset in order of activation for path overrides
    • VM running with guixRunVm
    • VM building with guixPackVm
    • container building with guixPackDock

Installer

  • boot in EFI mode for UEFI install as bios will error on the last install step

Third Party

nonguix

  • nonguix repository pinned to commit in .guix-channel
    • provides nvidia and non free Linux definitions
      • may need inferior to pin to guix for linux versions depending on revisions as guix is tracking master branch

Install Channel

  • copy the channels.scm below to $XDG_CONFIG_DIR/guix/channels.scm then pull to update
(list (channel
        (name 'guix);custom guix override
        (url "https://codeberg.org/guix/guix.git")
        ;; (commit "b416322c05d769d637979ad4ef7287aefbccb4bd")
        (introduction
          (make-channel-introduction
            "9edb3f66fd807b096b48283debdcddccfea34bad"
          (openpgp-fingerprint
            "BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA"))))
          (channel ;GUIX_PACKAGE_PATH and (url "file:///home/.../guix-channel")
            (name 'mychannel)
            (url "https://codeberg.org/jamartin9/guix-channel")
            (introduction
              (make-channel-introduction
                "a8de09ac62260319e6376f21c995f713c1b09279"
              (openpgp-fingerprint
                "34AF BE87 8193 580F F441  AB3F 95AF 699C 293E 302B")))))

About

guix channel for local packages moved to https://codeberg.org/jamartin9/guix-channel

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages