Commit Graph

119 Commits (963576f8dad1d087c77a4bf3c00fa74aa060115d)
 

Author SHA1 Message Date
noah metz 963576f8da Declare nonguix as a channel dependency in .guix-channel
metznet/machines/otto.scm uses (nongnu packages mozilla), but guix pull
builds this channel's own modules in isolation unless a dependency is
declared, so that module came up as "no code for module" too. Declare
nonguix using the same introduction already used in channels.d/nonguix.scm.
2026-07-28 22:57:33 -06:00
noah metz e51cb78456 Anchor channels.d path to channels.scm's own location, not CWD
"./channels.d" only resolved because guix pull -C channels.scm happened
to be invoked with CWD == this file's directory. Once guix pull loads
this file as a plain module (e.g. from the store, to build its package
cache), CWD is unrelated to the checkout, so scandir returned #f and map
blew up with "Not a list: #f". Use (current-filename) instead so it works
regardless of how/where this file gets loaded from.
2026-07-28 22:05:52 -06:00
noah metz ff382c6056 Fix guix pull: give channels.scm/channels.d/*.scm real define-module clauses
guix pull compiles every .scm file under a channel's checkout as an
ordinary package module and then loads each by its path-derived module
name to build the package cache. channels.scm and channels.d/*.scm never
had define-module clauses -- they relied on guix pull -C's implicit (guix
channels) import, which only applies to the -C argument itself, not to
files swept up as part of the channel's own module tree. That produced
first an unbound-variable error on `channel` at compile time, and after
adding plain use-modules imports, a "no code for module" error at
package-cache load time. Match the dual-purpose pattern already used by
metznet/machines/*.scm: a real define-module (so the module system finds
it under its expected name) plus a use-module for (guix channels) (so
guix pull -C channels.scm still works when it loads these directly).
2026-07-28 21:57:52 -06:00
noah metz 7a6a30f515 Fix channel 2026-07-28 21:39:03 -06:00
noah metz 2721615497 Move channels.scm, scripts/, docker/ in from the separate system repo
That repo (system) is being deprecated in favor of keeping deploy
tooling alongside the channel it deploys -- cloning this repo alone is
now enough to either build docker images for local testing (docker/,
docker-compose.yml, scripts/guix-docker.sh) or reconfigure a real
machine (channels.scm registers this channel plus nonguix/games/guix;
scripts/qemu.sh and network.sh for the KVM-based workflow on real
Linux hosts).

docker-compose.yml and scripts/guix-docker.sh updated for the merge:
no more local-channel indirection (docker/channels.local.scm, a
file:// bind mount to a sibling repo) -- guix system docker-image now
passes -L /workspace directly against this checkout, so uncommitted
edits are picked up immediately without a commit+pull round-trip.
2026-07-28 20:10:51 -06:00
noah metz fc5771267a Add metznet/machines/*.scm, restoring per-host system configs
These were deleted from this repo in 425b173 ("moved system configs
completely to separate repo") and never faithfully migrated there --
the separate system repo's servers/kadmin.scm turned out to be a
standalone kdb5_util-based placeholder that doesn't match what's
actually deployed (a kldap-configuration-backed KDC sharing the LDAP
server's directory). Restored/rebuilt against current APIs:

- base-server.scm: generic base server, new
- ldap.scm: restored from 425b173^, unchanged (no seed data -- the
  real server already has a populated directory tree)
- kerberos.scm: restored from 425b173^ (was machines/kerberos.scm),
  the real LDAP-backed KDC config, updated to use this channel's
  current (metznet services kdc)/(metznet packages kdc) instead of
  the inline definitions that file had before they were split out
- otto.scm: ported from the system repo's clients/otto.scm (Noah's
  laptop), updated for renamed/restructured upstream packages
  (texlive -> texlive-scheme-full, gcc-arm-none-eabi-* -> constructor
  functions) and a sddm/xorg-server service conflict. firefox and the
  ARM toolchain are left out of its package list for now -- both need
  a from-scratch LLVM/Clang build with no available substitute, which
  is impractical for routine docker-image testing; see docker/README.md
  for how to add them back for a real deploy.

Each file is both a proper channel module (define-module + #:export,
so `(metznet machines ldap)` etc. are importable/reusable) and a
directly buildable script (ends with a bare reference to its exported
operating-system value, which `guix system build FILE.scm` requires).
2026-07-28 20:09:19 -06:00
noah metz b28b932d6f Fix package/service compatibility with current Guix + Docker test env
- openldap-slapd: GCC 14 turned several of its autoconf-era C
  conformance checks (implicit-function-declaration, implicit-int,
  int-conversion, incompatible-pointer-types) into hard errors by
  default, breaking the configure-time regex/pthread_detach checks and
  a real build error in valsort.c. Force -std=gnu17 plus matching
  -Wno-* flags. Also add libxcrypt as an input since glibc dropped
  crypt().
- sssd-service-type's nscd-service-type extension was hardcoded to the
  bare `sssd` package instead of the configurable `sssd` field on
  sssd-configuration -- a real bug, not just a compat shim.
- Add metznet-sssd/metznet-kitty package overrides: strip sssd's
  Makefile.am `--install-layout=deb` flag (setuptools dropped support),
  and disable tests for both -- the failures are specific to the
  Docker/Rosetta test environment (O_TMPFILE atomicity, a cmocka
  buffer test), not real regressions. Build-time only, no runtime
  behavior change.
- base-system.scm: extend %metznet-desktop-services with the
  nonguix substitute-key config, tun udev rule, and network-manager
  vpn-plugin wiring that only existed in the old separate system repo.
2026-07-28 20:01:33 -06:00
noah metz 82ca835e88 Import (gnu packages golang-build) for go-golang-org-x-crypto
That package moved out of (gnu packages golang)/(gnu packages
golang-check) upstream; go-github-com-azure-go-ntlmssp's native-inputs
referenced it without an import.
2026-07-28 01:17:04 -06:00
noah metz 0b5de62b79 Replace removed dhcp-client-service-type with dhcpcd-service-type
isc-dhcp's client service type was removed upstream; dhcpcd-service-type
is the modern replacement and is a drop-in default (dhcpcd-configuration
has the same bare-service defaults).
2026-07-28 01:06:43 -06:00
noah metz e7db045a9e Import (gnu packages nss) for nss-certs
nss-certs moved out of (gnu packages certs) upstream; both aws.scm and
base-system.scm referenced it without importing the module it's
actually defined in now.
2026-07-28 00:56:56 -06:00
noah metz 3def4f1908 Add more pam services 2023-12-17 08:03:00 -07:00
noah metz 0a5e0a3c60 Use openvpn client service for desktop vpn 2023-12-07 17:35:02 -07:00
noah metz 3e7e0e5008 Revert "Removed go packages that already existed in syncthing"
This reverts commit fdfb0db159.
2023-12-07 17:21:18 -07:00
noah metz 99883f99e0 Fixed exports in golang.scm 2023-12-07 02:30:39 -07:00
noah metz fdfb0db159 Removed go packages that already existed in syncthing 2023-12-07 00:03:43 -07:00
noah metz 85a6c683ac Added go-1.21 patch from cox.katherine.e@gmail.com 2023-12-06 21:06:26 -07:00
noah metz 4e5a5a06ed Cleanup and styling 2023-12-05 23:14:19 -07:00
noah metz 66c2d6470e Conditionally create sssd.conf 2023-12-05 23:13:42 -07:00
noah metz 4405a390cc Use correct ldap db format for membership 2023-12-05 22:20:20 -07:00
noah metz 508e6023e2 Changed to sddm, and made sssd recognize groups properly 2023-12-05 21:30:07 -07:00
noah metz 99904ae91b fix links 2023-12-04 22:15:41 -07:00
noah metz ae20245d0d Fixed link 2023-12-04 22:07:59 -07:00
noah metz 760b07c481 Added gitea service/package 2023-12-04 18:50:26 -07:00
noah metz 91eb25ba92 Moved gnu packages to metznet root 2023-12-04 17:30:10 -07:00
noah metz d947bafcc4 Resolved warnings 2023-12-04 16:11:40 -07:00
noah metz 6860c0f312 Moved debug level for slapd to configuration value(default 1) 2023-12-04 15:12:56 -07:00
noah metz da44d9c068 Added public key authentication from ldap 2023-12-04 13:03:23 -07:00
noah metz 73cb2895b5 Added golang-check package 2023-12-04 01:24:58 -07:00
noah metz 0b4cedc5b7 Moved aws account to aws-service-type 2023-12-04 01:00:47 -07:00
noah metz 425b1738c9 Moved kdc service/package to separate files, and moved system configs completely to separate repo 2023-12-04 00:52:32 -07:00
noah metz ab77e23be4 Added golang requirements for pubkey command 2023-12-03 23:40:00 -07:00
noah metz d346fa2c05 Moved fixed kerberos service file path 2023-12-03 20:56:42 -07:00
noah metz f5a94c2c67 removed debug flag from slapd service 2023-12-03 20:31:43 -07:00
noah metz 4042e2afef removed ldapi urls 2023-12-03 20:10:05 -07:00
noah metz 2aff4b01bc debug slapd 2023-12-03 20:07:08 -07:00
noah metz 3cd7d6f940 removed ldap password from version control 2023-12-03 16:16:03 -07:00
noah metz dc82f64bf1 reduced debug level of slapd, and made start with correct uris 2023-12-03 16:08:02 -07:00
noah metz 53b8c793d3 set correct hostnames 2023-12-03 15:23:35 -07:00
noah metz 4f1abdd876 Added ldap-services, and made root password disabled by default 2023-12-03 14:22:51 -07:00
noah metz 6f1a7697b9 Disabled password authentication by default 2023-12-03 13:59:48 -07:00
noah metz afc0f17da0 Moved kerberos services to kerberos-services exported variable 2023-12-03 13:19:12 -07:00
noah metz 5d42b8e470 Fixed makefile, and moved sssd configuration from a string variable to a guix configuration 2023-12-03 01:00:53 -07:00
noah metz 5c5704e988 Removed copy of openvpn files to store, now expected to be at '/var/lib/openvpn' 2023-12-02 21:02:28 -07:00
noah metz da404b26a6 Added metznet/aws.scm, and made ta key come from local file by default 2023-12-02 20:00:21 -07:00
noah metz ccc6c43d7a Fixed typo in openvpn and moved pam list for sssd to defaults 2023-12-02 19:12:12 -07:00
noah metz 5d4ad5b464 removed channel file from etc-service 2023-12-02 17:49:15 -07:00
noah metz f309f10b43 export metznet-vpn-service-type 2023-12-02 17:32:38 -07:00
noah metz c0620e4f6e Moved machines/system under metznet, and removed nonguix dependency 2023-12-02 17:19:54 -07:00
noah metz 87f792ef85 Fixed vm target(it didn't like me writing to etc/guix/channels.scm 2023-12-02 11:12:38 -07:00
noah metz 71ce440ed2 moved all files in config to file-likes 2023-12-02 02:49:54 -07:00