···441441 </listitem>442442 <listitem>443443 <para>444444+ <literal>services.sourcehut.dispatch</literal> and the445445+ corresponding package446446+ (<literal>sourcehut.dispatchsrht</literal>) have been removed447447+ due to448448+ <link xlink:href="https://sourcehut.org/blog/2022-08-01-dispatch-deprecation-plans/">upstream449449+ deprecation</link>.450450+ </para>451451+ </listitem>452452+ <listitem>453453+ <para>444454 The <literal>p4</literal> package now only includes the445455 open-source Perforce Helix Core command-line client and APIs.446456 It no longer installs the unfree Helix Core Server binaries
···7878 relying on this should provide their own implementation.7979 </para>8080 </listitem>8181+ <listitem>8282+ <para>8383+ The <literal>nix.readOnlyStore</literal> option has been8484+ renamed to <literal>boot.readOnlyNixStore</literal> to clarify8585+ that it configures the NixOS boot process, not the Nix daemon.8686+ </para>8787+ </listitem>8188 </itemizedlist>8289 </section>8390 <section xml:id="sec-release-23.05-notable-changes">
+2
nixos/doc/manual/release-notes/rl-2211.section.md
···124124- `services.hbase` has been renamed to `services.hbase-standalone`.125125 For production HBase clusters, use `services.hadoop.hbase` instead.126126127127+- `services.sourcehut.dispatch` and the corresponding package (`sourcehut.dispatchsrht`) have been removed due to [upstream deprecation](https://sourcehut.org/blog/2022-08-01-dispatch-deprecation-plans/).128128+127129- The `p4` package now only includes the open-source Perforce Helix Core command-line client and APIs. It no longer installs the unfree Helix Core Server binaries `p4d`, `p4broker`, and `p4p`. To install the Helix Core Server binaries, use the `p4d` package instead.128130129131- The OpenSSL extension for the PHP interpreter used by Nextcloud is built against OpenSSL 1.1 if
+2
nixos/doc/manual/release-notes/rl-2305.section.md
···29293030- The EC2 image module previously detected and activated swap-formatted instance store devices and partitions in stage-1 (initramfs). This behaviour has been removed. Users relying on this should provide their own implementation.31313232+- The `nix.readOnlyStore` option has been renamed to `boot.readOnlyNixStore` to clarify that it configures the NixOS boot process, not the Nix daemon.3333+3234## Other Notable Changes {#sec-release-23.05-notable-changes}33353436<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
···3131 "pata_winbond"32323333 # SCSI support (incomplete).3434- "3w-9xxx" "3w-xxxx" "aic79xx" "aic7xxx" "arcmsr"3434+ "3w-9xxx" "3w-xxxx" "aic79xx" "aic7xxx" "arcmsr" "hpsa"35353636 # USB support, especially for booting from USB CD-ROM3737 # drives.
···11# Options that can be used for creating a jupyter kernel.22-{lib }:22+{ lib, pkgs }:3344with lib;5566{77+ freeformType = (pkgs.formats.json { }).type;88+79 options = {810911 displayName = mkOption {···3937 example = "python";4038 description = lib.mdDoc ''4139 Language of the environment. Typically the name of the binary.4040+ '';4141+ };4242+4343+ env = mkOption {4444+ type = types.attrsOf types.str;4545+ default = { };4646+ example = { OMP_NUM_THREADS = "1"; };4747+ description = lib.mdDoc ''4848+ Environment variables to set for the kernel.4249 '';4350 };4451
···483483 description = "gitea";484484 after = [ "network.target" ] ++ lib.optional usePostgresql "postgresql.service" ++ lib.optional useMysql "mysql.service";485485 wantedBy = [ "multi-user.target" ];486486- path = [ gitea pkgs.git ];486486+ path = [ gitea pkgs.git pkgs.gnupg ];487487488488 # In older versions the secret naming for JWT was kind of confusing.489489 # The file jwt_secret hold the value for LFS_JWT_SECRET and JWT_SECRET
+1-11
nixos/modules/services/misc/nix-daemon.nix
···115115 (mkRenamedOptionModuleWith { sinceRelease = 2003; from = [ "nix" "useChroot" ]; to = [ "nix" "useSandbox" ]; })116116 (mkRenamedOptionModuleWith { sinceRelease = 2003; from = [ "nix" "chrootDirs" ]; to = [ "nix" "sandboxPaths" ]; })117117 (mkRenamedOptionModuleWith { sinceRelease = 2205; from = [ "nix" "daemonIONiceLevel" ]; to = [ "nix" "daemonIOSchedPriority" ]; })118118+ (mkRenamedOptionModuleWith { sinceRelease = 2211; from = [ "nix" "readOnlyStore" ]; to = [ "boot" "readOnlyNixStore" ]; })118119 (mkRemovedOptionModule [ "nix" "daemonNiceLevel" ] "Consider nix.daemonCPUSchedPolicy instead.")119120 ] ++ mapAttrsToList (oldConf: newConf: mkRenamedOptionModuleWith { sinceRelease = 2205; from = [ "nix" oldConf ]; to = [ "nix" "settings" newConf ]; }) legacyConfMappings;120121···364363 perform secure concurrent builds. If you receive an error365364 message saying that “all build users are currently in use”,366365 you should increase this value.367367- '';368368- };369369-370370- readOnlyStore = mkOption {371371- type = types.bool;372372- default = true;373373- description = lib.mdDoc ''374374- If set, NixOS will enforce the immutability of the Nix store375375- by making {file}`/nix/store` a read-only bind376376- mount. Nix will automatically make the store writable when377377- needed.378366 '';379367 };380368
+71-14
nixos/modules/services/misc/redmine.nix
···206206 description = lib.mdDoc "Create the database and database user locally.";207207 };208208 };209209+210210+ components = {211211+ subversion = mkOption {212212+ type = types.bool;213213+ default = false;214214+ description = lib.mdDoc "Subversion integration.";215215+ };216216+217217+ mercurial = mkOption {218218+ type = types.bool;219219+ default = false;220220+ description = lib.mdDoc "Mercurial integration.";221221+ };222222+223223+ git = mkOption {224224+ type = types.bool;225225+ default = false;226226+ description = lib.mdDoc "git integration.";227227+ };228228+229229+ cvs = mkOption {230230+ type = types.bool;231231+ default = false;232232+ description = lib.mdDoc "cvs integration.";233233+ };234234+235235+ breezy = mkOption {236236+ type = types.bool;237237+ default = false;238238+ description = lib.mdDoc "bazaar integration.";239239+ };240240+241241+ imagemagick = mkOption {242242+ type = types.bool;243243+ default = false;244244+ description = lib.mdDoc "Allows exporting Gant diagrams as PNG.";245245+ };246246+247247+ ghostscript = mkOption {248248+ type = types.bool;249249+ default = false;250250+ description = lib.mdDoc "Allows exporting Gant diagrams as PDF.";251251+ };252252+253253+ minimagick_font_path = mkOption {254254+ type = types.str;255255+ default = "";256256+ description = lib.mdDoc "MiniMagick font path";257257+ example = "/run/current-system/sw/share/X11/fonts/LiberationSans-Regular.ttf";258258+ };259259+ };209260 };210261 };211262···276225 { assertion = cfg.database.createLocally -> cfg.database.host == "localhost";277226 message = "services.redmine.database.host must be set to localhost if services.redmine.database.createLocally is set to true";278227 }228228+ { assertion = cfg.components.imagemagick -> cfg.components.minimagick_font_path != "";229229+ message = "services.redmine.components.minimagick_font_path must be configured with a path to a font file if services.redmine.components.imagemagick is set to true.";230230+ }279231 ];280232281233 services.redmine.settings = {282234 production = {283283- scm_subversion_command = "${pkgs.subversion}/bin/svn";284284- scm_mercurial_command = "${pkgs.mercurial}/bin/hg";285285- scm_git_command = "${pkgs.git}/bin/git";286286- scm_cvs_command = "${pkgs.cvs}/bin/cvs";287287- scm_bazaar_command = "${pkgs.breezy}/bin/bzr";288288- scm_darcs_command = "${pkgs.darcs}/bin/darcs";235235+ scm_subversion_command = if cfg.components.subversion then "${pkgs.subversion}/bin/svn" else "";236236+ scm_mercurial_command = if cfg.components.mercurial then "${pkgs.mercurial}/bin/hg" else "";237237+ scm_git_command = if cfg.components.git then "${pkgs.git}/bin/git" else "";238238+ scm_cvs_command = if cfg.components.cvs then "${pkgs.cvs}/bin/cvs" else "";239239+ scm_bazaar_command = if cfg.components.breezy then "${pkgs.breezy}/bin/bzr" else "";240240+ imagemagick_convert_command = if cfg.components.imagemagick then "${pkgs.imagemagick}/bin/convert" else "";241241+ gs_command = if cfg.components.ghostscript then "${pkgs.ghostscript}/bin/gs" else "";242242+ minimagick_font_path = "${cfg.components.minimagick_font_path}";289243 };290244 };291245···352296 environment.REDMINE_LANG = "en";353297 environment.SCHEMA = "${cfg.stateDir}/cache/schema.db";354298 path = with pkgs; [355355- imagemagick356356- breezy357357- cvs358358- darcs359359- git360360- mercurial361361- subversion362362- ];299299+ ]300300+ ++ optional cfg.components.subversion subversion301301+ ++ optional cfg.components.mercurial mercurial302302+ ++ optional cfg.components.git git303303+ ++ optional cfg.components.cvs cvs304304+ ++ optional cfg.components.breezy breezy305305+ ++ optional cfg.components.imagemagick imagemagick306306+ ++ optional cfg.components.ghostscript ghostscript;307307+363308 preStart = ''364309 rm -rf "${cfg.stateDir}/plugins/"*365310 rm -rf "${cfg.stateDir}/public/themes/"*
+7-35
nixos/modules/services/misc/sourcehut/default.nix
···8888 # Sourcehut services8989 srht9090 buildsrht9191- dispatchsrht9291 gitsrht9392 hgsrht9493 hubsrht···108109{109110 options.services.sourcehut = {110111 enable = mkEnableOption (lib.mdDoc ''111111- sourcehut - git hosting, continuous integration, mailing list, ticket tracking,112112- task dispatching, wiki and account management services112112+ sourcehut - git hosting, continuous integration, mailing list, ticket tracking, wiki113113+ and account management services113114 '');114115115116 services = mkOption {116117 type = with types; listOf (enum117117- [ "builds" "dispatch" "git" "hg" "hub" "lists" "man" "meta" "pages" "paste" "todo" ]);118118+ [ "builds" "git" "hg" "hub" "lists" "man" "meta" "pages" "paste" "todo" ]);118119 defaultText = "locally enabled services";119120 description = lib.mdDoc ''120121 Services that may be displayed as links in the title bar of the Web interface.···297298 '';298299 type = types.path;299300 apply = s: "<" + toString s;300300- };301301- };302302-303303- options."dispatch.sr.ht" = commonServiceSettings "dispatch" // {304304- };305305- options."dispatch.sr.ht::github" = {306306- oauth-client-id = mkOptionNullOrStr "OAuth client id.";307307- oauth-client-secret = mkOptionNullOrStr "OAuth client secret.";308308- };309309- options."dispatch.sr.ht::gitlab" = {310310- enabled = mkEnableOption (lib.mdDoc "GitLab integration");311311- canonical-upstream = mkOption {312312- type = types.str;313313- description = lib.mdDoc "Canonical upstream.";314314- default = "gitlab.com";315315- };316316- repo-cache = mkOption {317317- type = types.str;318318- description = lib.mdDoc "Repository cache directory.";319319- default = "./repo-cache";320320- };321321- "gitlab.com" = mkOption {322322- type = with types; nullOr str;323323- description = lib.mdDoc "GitLab id and secret.";324324- default = null;325325- example = "GitLab:application id:secret";326301 };327302 };328303···9941021 ];9951022 })9961023997997- (import ./service.nix "dispatch" {998998- inherit configIniOfService;999999- port = 5005;10001000- })10011001-10021024 (import ./service.nix "git" (let10031025 baseService = {10041026 path = [ cfg.git.package ];···13841416 (mkRenamedOptionModule [ "services" "sourcehut" "address" ]13851417 [ "services" "sourcehut" "listenAddress" ])1386141814191419+ (mkRemovedOptionModule [ "services" "sourcehut" "dispatch" ] ''14201420+ dispatch is deprecated. See https://sourcehut.org/blog/2022-08-01-dispatch-deprecation-plans/14211421+ for more information.14221422+ '')13871423 ];1388142413891425 meta.doc = ./sourcehut.xml;
···263263 if builtins.isString x then ''"${x}"''264264 else if builtins.isBool x then boolToString x265265 else if builtins.isInt x then toString x266266- else if builtins.isList x then ''{ ${lib.concatStringsSep ", " (map (n: toLua n) x) } }''266266+ else if builtins.isList x then "{ ${lib.concatMapStringsSep ", " toLua x} }"267267 else throw "Invalid Lua value";268268269269 createSSLOptsStr = o: ''
···1010 src = ./stage-2-init.sh;1111 shellDebug = "${pkgs.bashInteractive}/bin/bash";1212 shell = "${pkgs.bash}/bin/bash";1313- inherit (config.boot) systemdExecutable extraSystemdUnitPaths;1313+ inherit (config.boot) readOnlyNixStore systemdExecutable extraSystemdUnitPaths;1414 isExecutable = true;1515- inherit (config.nix) readOnlyStore;1615 inherit useHostResolvConf;1716 inherit (config.system.build) earlyMountScript;1817 path = lib.makeBinPath ([···3839 type = types.lines;3940 description = lib.mdDoc ''4041 Shell commands to be executed just before systemd is started.4242+ '';4343+ };4444+4545+ readOnlyNixStore = mkOption {4646+ type = types.bool;4747+ default = true;4848+ description = lib.mdDoc ''4949+ If set, NixOS will enforce the immutability of the Nix store5050+ by making {file}`/nix/store` a read-only bind5151+ mount. Nix will automatically make the store writable when5252+ needed.4153 '';4254 };4355
+4-3
nixos/modules/tasks/network-interfaces.nix
···14111411 # Set the host and domain names in the activation script. Don't14121412 # clear it if it's not configured in the NixOS configuration,14131413 # since it may have been set by dhcpcd in the meantime.14141414- system.activationScripts.hostname =14151415- optionalString (cfg.hostName != "") ''14161416- hostname "${cfg.hostName}"14141414+ system.activationScripts.hostname = let14151415+ effectiveHostname = config.boot.kernel.sysctl."kernel.hostname" or cfg.hostName;14161416+ in optionalString (effectiveHostname != "") ''14171417+ hostname "${effectiveHostname}"14171418 '';14181419 system.activationScripts.domain =14191420 optionalString (cfg.domain != null) ''
+2-1
nixos/modules/virtualisation/qemu-vm.nix
···858858 # If the disk image appears to be empty, run mke2fs to859859 # initialise.860860 FSTYPE=$(blkid -o value -s TYPE ${cfg.bootDevice} || true)861861- if test -z "$FSTYPE"; then861861+ PARTTYPE=$(blkid -o value -s PTTYPE ${cfg.bootDevice} || true)862862+ if test -z "$FSTYPE" -a -z "$PARTTYPE"; then862863 mke2fs -t ext4 ${cfg.bootDevice}863864 fi864865 '';
···11-{ lib, stdenv, python3Packages, fetchFromGitHub, fetchurl, sd, curl, pkg-config, openssl, rustPlatform, fetchYarnDeps, yarn, nodejs, fixup_yarn_lock, glibcLocales }:11+{ lib22+, stdenv33+, python38Packages44+, fetchFromGitHub55+, fetchurl66+, sd77+, curl88+, pkg-config99+, openssl1010+, rustPlatform1111+, fetchYarnDeps1212+, yarn1313+, nodejs1414+, fixup_yarn_lock1515+, glibcLocales1616+, libiconv1717+, CoreFoundation1818+, CoreServices1919+, Security2020+}:221322let423 inherit (lib.importJSON ./deps.json) links version versionHash;2424+ # Sapling sets a Cargo config containing lines like so:2525+ # [target.aarch64-apple-darwin]2626+ # rustflags = ["-C", "link-args=-Wl,-undefined,dynamic_lookup"]2727+ #2828+ # The default cargo config that's set by the build hook will set2929+ # unstable.host-config and unstable.target-applies-to-host which seems to3030+ # result in the link arguments above being ignored and thus link failures.3131+ # All it is there to do anyway is just to do stuff with musl and cross3232+ # compilation, which doesn't work on macOS anyway so we can just stub it3333+ # on macOS.3434+ #3535+ # See https://github.com/NixOS/nixpkgs/pull/198311#issuecomment-13268942953636+ myCargoSetupHook = rustPlatform.cargoSetupHook.overrideAttrs (old: {3737+ cargoConfig = if stdenv.isDarwin then "" else old.cargoConfig;3838+ });539640 src = fetchFromGitHub {741 owner = "facebook";···8854 };89559056 # Builds the main `sl` binary and its Python extensions9191- sapling = python3Packages.buildPythonPackage {5757+ #5858+ # FIXME(lf-): when next updating this package, delete the python 3.8 override5959+ # here, since the fix for https://github.com/facebook/sapling/issues/279 that6060+ # required it will be in the next release.6161+ sapling = python38Packages.buildPythonPackage {9262 pname = "sapling-main";9363 inherit src version;9464···12385 sed -i "s|https://files.pythonhosted.org/packages/[[:alnum:]]*/[[:alnum:]]*/[[:alnum:]]*/|file://$NIX_BUILD_TOP/$sourceRoot/hack_pydeps/|g" $sourceRoot/setup.py12486 '';12587126126- postFixup = ''8888+ postFixup = lib.optionalString stdenv.isLinux ''12789 wrapProgram $out/bin/sl \12890 --set LOCALE_ARCHIVE "${glibcLocales}/lib/locale/locale-archive"12991 '';···13294 curl13395 pkg-config13496 ] ++ (with rustPlatform; [135135- cargoSetupHook9797+ myCargoSetupHook13698 rust.cargo13799 rust.rustc138100 ]);139101140102 buildInputs = [103103+ curl141104 openssl105105+ ] ++ lib.optionals stdenv.isDarwin [106106+ libiconv107107+ CoreFoundation108108+ CoreServices109109+ Security142110 ];143111144112 doCheck = false;···168124169125 cp -r ${sapling}/* $out170126171171- sitepackages=$out/lib/${python3Packages.python.libPrefix}/site-packages127127+ sitepackages=$out/lib/${python38Packages.python.libPrefix}/site-packages172128 chmod +w $sitepackages173129 cp -r ${isl} $sitepackages/edenscm-isl174130···189145 homepage = "https://sapling-scm.com";190146 license = licenses.gpl2Only;191147 maintainers = with maintainers; [ pbar thoughtpolice ];192192- platforms = platforms.linux;148148+ platforms = platforms.unix;193149 mainProgram = "sl";194150 };195151}
···6767 # because the reported $oldHash to be changed6868 # may not actually be in $default_nix6969 # but in the file of one of its dependencies.7070- services=( "srht" "scmsrht" "buildsrht" "dispatchsrht" "gitsrht" "hgsrht" "hubsrht" "listssrht" "mansrht"7070+ services=( "srht" "scmsrht" "buildsrht" "gitsrht" "hgsrht" "hubsrht" "listssrht" "mansrht"7171 "metasrht" "pagessrht" "pastesrht" "todosrht" )7272fi7373
···11+{ lib, buildGoModule, fetchFromGitHub }:22+33+buildGoModule rec {44+ pname = "gnostic";55+ version = "0.6.8";66+77+ src = fetchFromGitHub {88+ owner = "google";99+ repo = pname;1010+ rev = "v${version}";1111+ hash = "sha256-+/KZmwVV3pnbv3JNwNk9Q2gcTyDxV1tgsDzW5IYnnds=";1212+ };1313+1414+ vendorHash = "sha256-OoI1/OPBgAy4AysPPSCXGmf0S4opzxO7ZrwBsQYImwU=";1515+1616+ # some tests are broken and others require network access1717+ doCheck = false;1818+1919+ meta = with lib; {2020+ homepage = "https://github.com/google/gnostic";2121+ description = "A compiler for APIs described by the OpenAPI Specification with plugins for code generation and other API support tasks";2222+ changelog = "https://github.com/google/gnostic/releases/tag/v${version}";2323+ license = licenses.asl20;2424+ maintainers = with maintainers; [ urandom ];2525+ };2626+}
···11+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:22+33+buildGoModule rec {44+ pname = "crowdsec";55+ version = "1.4.2";66+77+ src = fetchFromGitHub {88+ owner = "crowdsecurity";99+ repo = pname;1010+ rev = "v${version}";1111+ hash = "sha256-hL3+hTOuwcbxiVZeq9oZjfKI1TJJt64g+74NolA3Drc=";1212+ };1313+1414+ vendorHash = "sha256-FPsoufB9UDgBDIE3yUq4doBse3qgjP19ussYnMAxntk=";1515+1616+ nativeBuildInputs = [ installShellFiles ];1717+1818+ subPackages = [1919+ "cmd/crowdsec"2020+ "cmd/crowdsec-cli"2121+ ];2222+2323+ ldflags = [2424+ "-s"2525+ "-w"2626+ "-X github.com/crowdsecurity/crowdsec/pkg/cwversion.Version=v${version}"2727+ "-X github.com/crowdsecurity/crowdsec/pkg/cwversion.BuildDate=1970-01-01_00:00:00"2828+ ];2929+3030+ postBuild = "mv $GOPATH/bin/{crowdsec-cli,cscli}";3131+3232+ postInstall = ''3333+ mkdir -p $out/share/crowdsec3434+ cp -r ./config $out/share/crowdsec/3535+3636+ installShellCompletion --cmd cscli \3737+ --bash <($out/bin/cscli completion bash) \3838+ --fish <($out/bin/cscli completion fish) \3939+ --zsh <($out/bin/cscli completion zsh)4040+ '';4141+4242+ meta = with lib; {4343+ homepage = "https://crowdsec.net/";4444+ changelog = "https://github.com/crowdsecurity/crowdsec/releases/tag/v${version}";4545+ description = "CrowdSec is a free, open-source and collaborative IPS";4646+ longDescription = ''4747+ CrowdSec is a free, modern & collaborative behavior detection engine,4848+ coupled with a global IP reputation network. It stacks on fail2ban's4949+ philosophy but is IPV6 compatible and 60x faster (Go vs Python), uses Grok5050+ patterns to parse logs and YAML scenario to identify behaviors. CrowdSec5151+ is engineered for modern Cloud/Containers/VM based infrastructures (by5252+ decoupling detection and remediation). Once detected you can remedy5353+ threats with various bouncers (firewall block, nginx http 403, Captchas,5454+ etc.) while the aggressive IP can be sent to CrowdSec for curation before5555+ being shared among all users to further improve everyone's security.5656+ '';5757+ license = licenses.mit;5858+ maintainers = with maintainers; [ jk urandom ];5959+ };6060+}