···100 Notes</link> for details.
101 </para>
102 </listitem>
103+ <listitem>
104+ <para>
105+ LXD support was greatly improved:
106+ </para>
107+ <itemizedlist spacing="compact">
108+ <listitem>
109+ <para>
110+ building LXD images from configurations is now directly
111+ possible with just nixpkgs
112+ </para>
113+ </listitem>
114+ <listitem>
115+ <para>
116+ hydra is now building nixOS LXD images that can be used
117+ standalone with full nixos-rebuild support
118+ </para>
119+ </listitem>
120+ </itemizedlist>
121+ </listitem>
122 </itemizedlist>
123 </section>
124 <section xml:id="sec-release-21.11-new-services">
+4
nixos/doc/manual/release-notes/rl-2111.section.md
···3536- GNOME has been upgraded to 41. Please take a look at their [Release Notes](https://help.gnome.org/misc/release-notes/41.0/) for details.
37000038## New Services {#sec-release-21.11-new-services}
3940- [btrbk](https://digint.ch/btrbk/index.html), a backup tool for btrfs subvolumes, taking advantage of btrfs specific capabilities to create atomic snapshots and transfer them incrementally to your backup locations. Available as [services.btrbk](options.html#opt-services.brtbk.instances).
···3536- GNOME has been upgraded to 41. Please take a look at their [Release Notes](https://help.gnome.org/misc/release-notes/41.0/) for details.
3738+- LXD support was greatly improved:
39+ - building LXD images from configurations is now directly possible with just nixpkgs
40+ - hydra is now building nixOS LXD images that can be used standalone with full nixos-rebuild support
41+42## New Services {#sec-release-21.11-new-services}
4344- [btrbk](https://digint.ch/btrbk/index.html), a backup tool for btrfs subvolumes, taking advantage of btrfs specific capabilities to create atomic snapshots and transfer them incrementally to your backup locations. Available as [services.btrbk](options.html#opt-services.brtbk.instances).
···1+# Edit this configuration file to define what should be installed on
2+# your system. Help is available in the configuration.nix(5) man page
3+# and in the NixOS manual (accessible by running ‘nixos-help’).
4+5+{ config, pkgs, lib, ... }:
6+7+with lib;
8+9+{
10+ imports =
11+ [ # Include the default lxd configuration.
12+ ../../../modules/virtualisation/lxc-container.nix
13+ # Include the container-specific autogenerated configuration.
14+ ./lxd.nix
15+ ];
16+17+ # networking.hostName = mkForce "nixos"; # Overwrite the hostname.
18+ # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
19+20+ # Set your time zone.
21+ # time.timeZone = "Europe/Amsterdam";
22+23+ # The global useDHCP flag is deprecated, therefore explicitly set to false here.
24+ # Per-interface useDHCP will be mandatory in the future, so this generated config
25+ # replicates the default behaviour.
26+ networking.useDHCP = false;
27+ networking.interfaces.eth0.useDHCP = true;
28+29+ # Configure network proxy if necessary
30+ # networking.proxy.default = "http://user:password@proxy:port/";
31+ # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
32+33+ # Select internationalisation properties.
34+ # i18n.defaultLocale = "en_US.UTF-8";
35+ # console = {
36+ # font = "Lat2-Terminus16";
37+ # keyMap = "us";
38+ # };
39+40+ # Enable the X11 windowing system.
41+ # services.xserver.enable = true;
42+43+ # Configure keymap in X11
44+ # services.xserver.layout = "us";
45+ # services.xserver.xkbOptions = "eurosign:e";
46+47+ # Enable CUPS to print documents.
48+ # services.printing.enable = true;
49+50+ # Enable sound.
51+ # sound.enable = true;
52+ # hardware.pulseaudio.enable = true;
53+54+ # Enable touchpad support (enabled default in most desktopManager).
55+ # services.xserver.libinput.enable = true;
56+57+ # Define a user account. Don't forget to set a password with ‘passwd’.
58+ # users.users.jane = {
59+ # isNormalUser = true;
60+ # extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
61+ # };
62+63+ # List packages installed in system profile. To search, run:
64+ # $ nix search wget
65+ # environment.systemPackages = with pkgs; [
66+ # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
67+ # wget
68+ # firefox
69+ # ];
70+71+ # Some programs need SUID wrappers, can be configured further or are
72+ # started in user sessions.
73+ # programs.mtr.enable = true;
74+ # programs.gnupg.agent = {
75+ # enable = true;
76+ # enableSSHSupport = true;
77+ # };
78+79+ # List services that you want to enable:
80+81+ # Enable the OpenSSH daemon.
82+ # services.openssh.enable = true;
83+84+ # Open ports in the firewall.
85+ # networking.firewall.allowedTCPPorts = [ ... ];
86+ # networking.firewall.allowedUDPPorts = [ ... ];
87+ # Or disable the firewall altogether.
88+ # networking.firewall.enable = false;
89+90+ # This value determines the NixOS release from which the default
91+ # settings for stateful data, like file locations and database versions
92+ # on your system were taken. It‘s perfectly fine and recommended to leave
93+ # this value at the release version of the first install of this system.
94+ # Before changing this value read the documentation for this option
95+ # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
96+ system.stateVersion = "21.05"; # Did you read the comment?
97+98+ # As this is intended as a stadalone image, undo some of the minimal profile stuff
99+ documentation.enable = true;
100+ documentation.nixos.enable = true;
101+ environment.noXlibs = false;
102+}
+34
nixos/maintainers/scripts/lxd/lxd-image.nix
···0000000000000000000000000000000000
···1+{ lib, config, pkgs, ... }:
2+3+with lib;
4+5+{
6+ imports = [
7+ ../../../modules/virtualisation/lxc-container.nix
8+ ];
9+10+ virtualisation.lxc.templates.nix = {
11+ enable = true;
12+ target = "/etc/nixos/lxd.nix";
13+ template = ./nix.tpl;
14+ when = [ "create" "copy" ];
15+ };
16+17+ # copy the config for nixos-rebuild
18+ system.activationScripts.config = ''
19+ if [ ! -e /etc/nixos/configuration.nix ]; then
20+ mkdir -p /etc/nixos
21+ cat ${./lxd-image-inner.nix} > /etc/nixos/configuration.nix
22+ sed 's|../../../modules/virtualisation/lxc-container.nix|<nixpkgs/nixos/modules/virtualisation/lxc-container.nix>|g' -i /etc/nixos/configuration.nix
23+ fi
24+ '';
25+26+ # Network
27+ networking.useDHCP = false;
28+ networking.interfaces.eth0.useDHCP = true;
29+30+ # As this is intended as a stadalone image, undo some of the minimal profile stuff
31+ documentation.enable = true;
32+ documentation.nixos.enable = true;
33+ environment.noXlibs = false;
34+}
+9
nixos/maintainers/scripts/lxd/nix.tpl
···000000000
···1+{ lib, config, pkgs, ... }:
2+3+with lib;
4+5+# WARNING: THIS CONFIGURATION IS AUTOGENERATED AND WILL BE OVERWRITTEN AUTOMATICALLY
6+7+{
8+ networking.hostName = "{{ container.name }}";
9+}
+2-2
nixos/modules/services/finance/odoo.nix
···22 type = with types; listOf package;
23 default = [];
24 example = literalExpression "[ pkgs.odoo_enterprise ]";
25- description = "Odoo addons";
26 };
2728 settings = mkOption {
29 type = format.type;
30 default = {};
31 description = ''
32- Odoo configuration settings. For more details see https://www.odoo.com/documentation/15.0/administration/install/deploy.html
33 '';
34 };
35
···22 type = with types; listOf package;
23 default = [];
24 example = literalExpression "[ pkgs.odoo_enterprise ]";
25+ description = "Odoo addons.";
26 };
2728 settings = mkOption {
29 type = format.type;
30 default = {};
31 description = ''
32+ Odoo configuration settings. For more details see <link xlink:href="https://www.odoo.com/documentation/15.0/administration/install/deploy.html"/>
33 '';
34 };
35
···3435 package = mkOption {
36 type = types.package;
37+ default = pkgs.lxd;
38 defaultText = literalExpression "pkgs.lxd";
39 description = ''
40 The LXD package to use.
+31
nixos/release.nix
···251252 );
2530000000000000000000000000000000254255 # Ensure that all packages used by the minimal NixOS config end up in the channel.
256 dummy = forAllSystems (system: pkgs.runCommand "dummy"
···251252 );
253254+ # An image that can be imported into lxd and used for container creation
255+ lxdImage = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system:
256+257+ with import ./.. { inherit system; };
258+259+ hydraJob ((import lib/eval-config.nix {
260+ inherit system;
261+ modules =
262+ [ configuration
263+ versionModule
264+ ./maintainers/scripts/lxd/lxd-image.nix
265+ ];
266+ }).config.system.build.tarball)
267+268+ );
269+270+ # Metadata for the lxd image
271+ lxdMeta = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system:
272+273+ with import ./.. { inherit system; };
274+275+ hydraJob ((import lib/eval-config.nix {
276+ inherit system;
277+ modules =
278+ [ configuration
279+ versionModule
280+ ./maintainers/scripts/lxd/lxd-image.nix
281+ ];
282+ }).config.system.build.metadata)
283+284+ );
285286 # Ensure that all packages used by the minimal NixOS config end up in the channel.
287 dummy = forAllSystems (system: pkgs.runCommand "dummy"
···23buildManPages {
4 pname = "execline-man-pages";
5- version = "2.8.1.0.2";
6- sha256 = "1fl3pyjh9328l1h2b6s08j048jl4pfyyc24mjs45qx545kcp65q4";
7 description = "Port of the documentation for the execline suite to mdoc";
8 maintainers = [ lib.maintainers.sternenseemann ];
9}
···23buildManPages {
4 pname = "execline-man-pages";
5+ version = "2.8.1.0.3";
6+ sha256 = "1n7c75lmyrjzzcbwjl6fxhfs4k29qlr66r1q35799h942cn4li7v";
7 description = "Port of the documentation for the execline suite to mdoc";
8 maintainers = [ lib.maintainers.sternenseemann ];
9}
+4-7
pkgs/data/fonts/public-sans/default.nix
···1{ lib, fetchzip }:
23let
4- version = "1.008";
5in fetchzip {
6 name = "public-sans-${version}";
7···910 postFetch = ''
11 mkdir -p $out/share/fonts
12- unzip -j $downloadedFile binaries/otf/\*.otf -d $out/share/fonts/opentype
13- unzip -j $downloadedFile binaries/variable/\*.ttf -d $out/share/fonts/truetype
14- unzip -j $downloadedFile binaries/webfonts/\*.ttf -d $out/share/fonts/truetype
15- unzip -j $downloadedFile binaries/webfonts/\*.woff -d $out/share/fonts/woff
16- unzip -j $downloadedFile binaries/webfonts/\*.woff2 -d $out/share/fonts/woff2
17 '';
1819- sha256 = "1s4xmliri3r1gcn1ws3wa6davj6giliqjdbcv0bh9ryg3dfpjz74";
2021 meta = with lib; {
22 description = "A strong, neutral, principles-driven, open source typeface for text or display";
···1{ lib, fetchzip }:
23let
4+ version = "2.000";
5in fetchzip {
6 name = "public-sans-${version}";
7···910 postFetch = ''
11 mkdir -p $out/share/fonts
12+ unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
13+ unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
00014 '';
1516+ sha256 = "0r34h9mim5c3h48cpq2m2ixkdqhv3i594pip10pavkmskldpbha5";
1718 meta = with lib; {
19 description = "A strong, neutral, principles-driven, open source typeface for text or display";