Commit graph

1150 commits

Author SHA1 Message Date
Jack McCown 93032755db
readme typo
hopefully I can make a more meaningful contribution in the future, but this is all I got for now
2021-03-25 19:05:52 -04:00
bors[bot] d5c5ff5a70
Merge #212
212: lib/pathsIn: don't error if path doesn't exist r=Pacman99 a=Pacman99

Really simple, just don't error if path passed to pathsIn doesn't exist. This doesn't affect much, since the majority of folders in devos end up getting referenced in some way or another outside of a pathsIn call. But it will  help for users of mkDevos, so they can safely delete folders they don't want to use. 
Can test with current overlays folder in deovs, that only gets imported through a pathsIn call.

Co-authored-by: Pacman99 <pachum99@gmail.com>
2021-03-25 23:01:35 +00:00
Pacman99 61fc640f10 lib/pathsIn: don't error if path doesn't exist 2021-03-25 15:21:10 -07:00
Timothy DeHerrera e767f7066e
devosSystem#hmConfig: don't pass systemPackages
The intentions are good, but for users with many profiles, this is
overkill. Proper solution will come when #127 is resolved.
2021-03-25 00:17:50 -06:00
Timothy DeHerrera 4f38a88191
changelog: only on release
To remove the opportunity for junk to enter into the changelog, and to
reduce the commit history, the changlog generation will only happen
on release, and only based on merged PRs.

Fixes #205
2021-03-23 22:59:01 -06:00
bors[bot] 01f25807e4 Update Changelog for PR 2021-03-23 20:50:56 +00:00
bors[bot] 4dcf191d1d
Merge #210
210: hosts: add cachix r=nrdxp a=Pacman99

fixes #208 

I think it was dropped during #157. It used to be added to nixosModules, but I think its better added to hosts, I don't see a reason to export the cachix module as an output.

Co-authored-by: Pacman99 <pachum99@gmail.com>
2021-03-23 20:48:04 +00:00
Pacman99 25a2431ff7 hosts: add cachix 2021-03-23 10:25:42 -07:00
bors[bot] 54d0c8d5d7 Update Changelog for PR 2021-03-23 17:21:06 +00:00
bors[bot] 74c23ce9c1
Merge #156
156: Improve Home Manager support: profiles/suites, modules, extern, flake outputs r=Pacman99 a=Pacman99

A really simple method of implementing #119. 

This relies on a feature that I added in home-manager master for module options of extraSpecialArgs and sharedModules, nix-community/home-manager#1793. I could try and get that backported to 20.09. But I thought I'd get some feedback on these changes first.

Co-authored-by: Pacman99 <pachum99@gmail.com>
2021-03-23 17:18:43 +00:00
Pacman99 6d51ed0266 users: add Home Manager section to doc 2021-03-23 09:43:37 -07:00
Pacman99 dc9d9877b8 export homeConfigurations for all user@host pairs and add better home-manager only defaults 2021-03-23 09:43:37 -07:00
Pacman99 cc52cd9fa2 users: wire up all user profiles to userSuites and pass to home-manager 2021-03-23 09:43:37 -07:00
Pacman99 416a52fcd3 users: add and export user modules and import them in hosts 2021-03-23 09:43:37 -07:00
Pacman99 0e5aa6568e flake/home: release -> master 2021-03-23 09:43:37 -07:00
bors[bot] 6134c31ece Update Changelog for PR 2021-03-23 06:12:06 +00:00
bors[bot] c667cc5097
Merge #192
192: flake: nixos -> nixos-unstable r=nrdxp a=nrdxp

20.09 is getting stale as we move toward a new release so track unstable for now.

Co-authored-by: Timothy DeHerrera <tim.deh@pm.me>
2021-03-23 06:10:34 +00:00
Timothy DeHerrera 44623b5979
nix: don't use nix flake
I originally wanted to use the nix flake to allow users to take
advantage of the latest changes. Just so happened that nixpkgs was
recently updated with a new version around the same time, and this
just adds complexity for no real gain.
2021-03-22 23:29:31 -06:00
Timothy DeHerrera 9ba1e7f9bc
nix: remove patch for default unstable features 2021-03-22 23:29:30 -06:00
Timothy DeHerrera 436fbb08e8
tests: patched nixpkgs no longer needed 2021-03-22 23:20:42 -06:00
Timothy DeHerrera 9537daee32
flake: nixos -> nixos-unstable
20.09 is getting stale as we move toward a new release so track
unstable for now.
2021-03-22 23:20:40 -06:00
bors[bot] b7cb975486 Update Changelog for PR 2021-03-22 22:02:13 +00:00
bors[bot] 870897a3e9
Merge #202
202: iso: avoid systemd service startup r=nrdxp a=blaggacao

fixes #194
alternative to #197

# Manual Tests


<details>
<summary>was unrelated</summary>

- [ ] `flk install NixOS --impure` correctly onto `/mnt`  (looks like no profile is present)

Issue: https://github.com/divnix/devos/issues/204
Upstream Issue: https://github.com/NixOS/nixpkgs/issues/116938

</details>

- [x] acceptable build time / closure size ca 850MB (for a simple base OS) ✔️ 
- [x] local profile with `cage` service is disabled, that is: boots into terminal ✔️ 
- [x] success: air gapped / offline devshell enter ✔️ 
- [ ] failure: aire gapped target install: &larr; non blocking bonus item  
```console
$ flk install POS
warning: you don't have internet access; disabling some network-dependent features
building the flake in path:/iso/devos?narHash=sha265-...
warning: you don't have internet access; disabling some network-dependent features
error: unable to download 'https://api.github.com/repos/NixOS/nixpkgs/df8e3...': Couldn't resolve host name (6)
```

&rarr; detailed rationale in the commit messages

❤️ @Pacman99 for the excellent and detailed discussions in #197 and the may ideas, suggestions and code.

Co-authored-by: David Arnold <dar@xoe.solutions>
2021-03-22 21:59:12 +00:00
bors[bot] b1924a21cd Update Changelog for PR 2021-03-19 19:55:27 +00:00
bors[bot] c050027171
Merge #161
161: Multi-arch support for hosts(nixosConfigurations) r=nrdxp a=Pacman99

fixes #72 

also related, #125 

This allows users to set `nixpkgs.system` to any architecture exported by the nixpkgs flake and nixpkgs.pkgs will be set to that system.

I also added `multiPkgs` as a special arg and made `nixpkgs.pkgs` a default. So if someone wanted to do crossSystem builds or anything else with pkgs, that is also an option(eg. mobile-nixos!!).

Co-authored-by: Pacman99 <pachum99@gmail.com>
2021-03-19 19:33:31 +00:00
Pacman99 3c8d22a528 flake/tests: improve multi arch support for flake checks 2021-03-19 12:23:23 -07:00
Pacman99 aec7c92cc7 hosts: set nixpkgs.pkgs based on nixpkgs.system 2021-03-19 12:23:23 -07:00
David Arnold 49b1ad8227
iso: ensure tools of deactivated profiles are still available
This is just for convenience, since the closuers are already in the
store. It might be helpful to be able to test out some things
of those deactivated profiles een on the iso isntaller.
2021-03-18 23:46:47 -05:00
David Arnold 007447652b
iso: add back complete host profile to the nix store
This ensures that all builds of activated profiles are included into
the iso cache and don't require rebuilding within the live installer
environment.
2021-03-18 23:46:47 -05:00
David Arnold 435847823f
style / organization 2021-03-18 23:46:47 -05:00
David Arnold 15cf15b3ed
iso: filter out al profiles (except core)
IN order to avoid random startup of systemd services, filter out all
profiles, except for core and user profiles.

This works becasue of a fundamental devos contract, that modules
only define configuration, but don't implement them and profiles
only implement confguration but don't define them. So only ever an
activated profile is expected to effectively start up a systemd service.

closes: #194
2021-03-18 23:46:47 -05:00
David Arnold db716d1921
lib: ensure path type in mkProfileAttrs
This is required so that filtering via lib.remove works against 
modules.core and similar which are of path type.

It is also a prerequisite for disabledModules to match by module.key
instead of path string relative to nixpkgs' modulePath.
2021-03-18 23:46:47 -05:00
bors[bot] 2961c1ea52 Update Changelog for PR 2021-03-18 03:38:02 +00:00
bors[bot] 1b4edf3333
Merge #198
198: hosts/devosSystem: pass modules as attrset r=nrdxp a=Pacman99

This is a fairly simple change that only changes the lib api for devosSystem. But doesn't add any features by itself. Hosts now pass modules to devosSystem as an attrset. And devosSystem just grabs all modules in the set and passes it to nixosSystem. 

I plan to use this in #197 to selectively import modules. And I think it could help with nix-darwin - and other config systems - support, since not all profiles and modules are config system agnostic. This could be a workaround to add rudimentary support for other config systems by only importing the necessary modules.

Overall I think its a useful change and extends the abilities of `devosSystem`

Co-authored-by: Pacman99 <pachum99@gmail.com>
2021-03-18 03:36:12 +00:00
Pacman99 dd494facc3 hosts/devosSystem: pass modules as attrset 2021-03-17 17:28:49 -07:00
bors[bot] 8ee334277a Update Changelog for PR 2021-03-17 00:32:59 +00:00
bors[bot] f3a0fc9cc0
Merge #196
196: doc: enact bootstrapping section r=nrdxp a=blaggacao

closes: #193

Co-authored-by: David Arnold <dar@xoe.solutions>
2021-03-17 00:30:21 +00:00
David Arnold 6b5d4ce8f4
doc: enact bootstrapping section
closes: #193
2021-03-16 19:24:47 -05:00
bors[bot] 7d7c365a2c Update Changelog for PR 2021-03-17 00:00:15 +00:00
bors[bot] c2cd3e79ca
Merge #164
164: add hosts module arg r=nrdxp a=Pacman99

should help with #163. Fixes #169
But either way this could be generally useful. I have one use case of setting up a minecraft bungeecord proxy with servers on different hosts. 

Co-authored-by: Pacman99 <pachum99@gmail.com>
2021-03-16 23:57:32 +00:00
bors[bot] 70e19e0c9e Update Changelog for PR 2021-03-16 23:47:36 +00:00
bors[bot] e6f15ae257
Merge #191
191: iso: copy input closourse into iso to avoide re-download r=blaggacao a=blaggacao

closes #190

Tested on my setup, considerably cuts times and only leaves one (noticable) download.

Co-authored-by: Pacman99 <pachum99@gmail.com>
Co-authored-by: David Arnold <dar@xoe.solutions>
2021-03-16 23:45:57 +00:00
Pacman99 6210daff13 add hosts module arg to easily access other host's config 2021-03-16 16:09:52 -07:00
David Arnold faa8558240
iso: document iso cache / closures (speed!) 2021-03-16 18:01:29 -05:00
David Arnold 8e3777ff34
iso: copy devShell storepath to iso
This avoids for the live nixos on the iso to rebuild the devshell
upon entering it.
2021-03-16 17:35:58 -05:00
David Arnold 17aee57df4
iso: pin inputs as flakes
This intends to avoid downloading inputs on the iso live image
and is a step towards completely air-gaped installs.

credits: @Pacman99

closes: #190
2021-03-16 17:12:38 -05:00
Pacman99 4034659350
lib: pass inputs to ./lib
library functions now can access inputs (and their sources!)
directly, for example in order to copy their closure into
the iso registry so that evaluating the flake does not need
to fetch inputs again
2021-03-16 16:38:36 -05:00
Timothy DeHerrera 1ac3d83fc1
bors: no squash merge 2021-03-16 15:15:26 -06:00
bors[bot] ed49988703 Update Changelog for PR 2021-03-16 21:14:56 +00:00
David Arnold 3d324e7533 lib/devos: bake devos repo into live cd (#168)
fix #167 

This worked for me to bootstrap another machine.
2021-03-16 19:50:38 +00:00