descriptionMy guix packages
ownerjr0@riseup.net
last changeMon, 29 Jul 2019 01:12:48 +0000 (28 21:12 -0400)
content tags
add:
Readme.org
#+TITLE: Guix-Packages

Guix-Packages is my personal software repository for the [[https://www.gnu.org/software/guix/][GNU Guix]] package
manager. Here you will find packages I am building for my personal use. 
distribution for ethical or policy-related reasons.

I have three name spaces in this channel, jamestechnotes, gnu, and non-free. 
- jamestechnotes :: free software that supports my (peculiar) workflow and
                    would not fit in with the larger Guix project.
- gnu :: Packages I am developing and haven't been submitted to the Guix
         project. I am still working on these or haven't got around to
         submitting patches.
- non-free :: This is for inherently crippled software that I still find
              myself having to use. This is largely for crippled hardware I
              have that need such to function properly. Please do NOT promote
              this repository on any official Guix  communication channels,
              such as their mailing lists or IRC channel, even in response to
              support requests!  This is to show respect for the Guix
              project's [[http://www.gnu.org/distros/free-system-distribution-guidelines.html][strict policy]] against recommending nonfree software. I
              am in this case, simply exercising my freedom to use Guix for my
              purposes (freedom 0 and 1), and changing it to work the way I
              want and sharing my changes publicly (freedom 3). Before using
              this name space, you should understand the implications of using
              nonfree software.  Read [[https://www.gnu.org/philosophy/free-sw.en.html][What is free software?]] for more information.

* Installation

Guix-packages can be installed as a
[[https://www.gnu.org/software/guix/manual/en/html_node/Channels.html][Guix Channel]]. To do so, add it to =~/.config/guix/channels.scm=:

#+BEGIN_SRC scheme
  (cons* (channel
          (name 'jamestechnotes)
          (url "https://git.jamestechnotes.com/guix/guix-packages.git"))
         %default-channels)
#+END_SRC

* Using Nonfree Firmware and Drivers

To use Guix System with the standard Linux kernel and nonfree firmware, edit
the ~kernel~ and ~firmware~ fields of the ~operating-system~ definition in
=config.scm=:

#+BEGIN_SRC scheme
  ;; Import nonfree linux module.
  (use-modules (non-free linux))

  (operating-system
    (kernel linux)
    (firmware (list linux-firmware))
    ...
    )
#+END_SRC

If you only need firmware for a specific piece of hardware, you may be able to
save disk space by using a smaller firmware package instead:

#+BEGIN_SRC scheme
  (firmware (cons* iwlwifi-firmware
                   %base-firmware))
#+END_SRC

Then of course, run ~sudo guix system reconfigure /etc/config.scm~ to apply
your configuration.

** Broadcom Wireless

Some Broadcom wireless hardware requires a proprietary kernel module in
addition to firmware. To use such hardware you will also need to add a service
to load that module on boot, and blacklist conflicting kernel modules:

#+BEGIN_SRC scheme
  (use-modules (nongnu packages linux)
               (nongnu services kernel-modules))

  (operating-system
    (kernel linux)
    ;; Blacklist conflicting kernel modules.
    (kernel-arguments '("modprobe.blacklist=b43,b43legacy,ssb,bcm43xx,brcm80211,brcmfmac,brcmsmac,bcma"))
    (firmware (cons* broadcom-bt-firmware
                     %base-firmware))
    ...
    (services
     (cons* (load-broadcom-sta-service)
            ...
            %desktop-services)))
#+END_SRC

* Acknowledgments
Many of the ideas and code you see here were inspired by
https://gitlab.com/nonguix/nonguix. 
shortlog
2019-07-29 James RichardsonInital commit with linux 5.4.2master
2019-07-26 James RichardsonMove old completely out of the way
2019-07-26 James RichardsonMove gnu out of the way
2017-07-21 James RichardsonAlready in guix
2017-06-02 James RichardsonInitial attempt at vmware
2017-06-02 James RichardsonInitial attempt at adding emacs packages
2017-05-24 James RichardsonUpdate 4.11.1
2017-03-11 James Richardsonupdate kernel version
2017-03-02 James Richardsonremove configs
2017-03-01 James RichardsonTrying to build a usable ikiwiki
2017-03-01 James Richardsonfix namespace
2017-03-01 James RichardsonRemove perl-email-address as it was already present
2017-02-28 James RichardsonAdding perl::critic
2017-01-02 James Richardsonconfig
2017-01-02 James Richardsonupdates
2017-01-02 James Richardsonmisc updates
...
heads
4 years ago master