···23232424All of these packages are originally defined in the `haskellPackages` package
2525set and are re-exposed with a reduced dependency closure for convenience.
2626-(see `justStaticExecutables` below)
2626+(see `justStaticExecutables` or `separateBinOutput` below)
27272828The `haskellPackages` set includes at least one version of every package from
2929Hackage as well as some manually injected packages. This amounts to a lot of
···56565757- `services.lemmy.settings.federation` was removed in 0.17.0 and no longer has any effect. To enable federation, the hostname must be set in the configuration file and then federation must be enabled in the admin web UI. See the [release notes](https://github.com/LemmyNet/lemmy/blob/c32585b03429f0f76d1e4ff738786321a0a9df98/RELEASES.md#upgrade-instructions) for more details.
58585959+- The following packages in `haskellPackages` have now a separate bin output: `cabal-fmt`, `calligraphy`, `eventlog2html`, `ghc-debug-brick`, `hindent`, `nixfmt`, `releaser`. This means you need to replace e.g. `"${pkgs.haskellPackages.nixfmt}/bin/nixfmt"` with `"${lib.getBin pkgs.haskellPackages.nixfmt}/bin/nixfmt"` or `"${lib.getExe pkgs.haskellPackages.nixfmt}"`. The binaries also won’t be in scope if you rely on them being installed e.g. via `ghcWithPackages`. `environment.packages` picks the `bin` output automatically, so for normal installation no intervention is required. Also, toplevel attributes like `pkgs.nixfmt` are not impacted negatively by this change.
6060+5961- `spamassassin` no longer supports the `Hashcash` module. The module needs to be removed from the `loadplugin` list if it was copied over from the default `initPreConf` option.
60626163## Other Notable Changes {#sec-release-23.11-notable-changes}
···7779- `services.nginx` gained a `defaultListen` option at server-level with support for PROXY protocol listeners, also `proxyProtocol` is now exposed in `services.nginx.virtualHosts.<name>.listen` option. It is now possible to run PROXY listeners and non-PROXY listeners at a server-level, see [#213510](https://github.com/NixOS/nixpkgs/pull/213510/) for more details.
78807981- `services.prometheus.exporters` has a new exporter to monitor electrical power consumption based on PowercapRAPL sensor called [Scaphandre](https://github.com/hubblo-org/scaphandre), see [#239803](https://github.com/NixOS/nixpkgs/pull/239803) for more details.
8282+8383+- The module `services.calibre-server` has new options to configure the `host`, `port`, `auth.enable`, `auth.mode` and `auth.userDb` path, see [#216497](https://github.com/NixOS/nixpkgs/pull/216497/) for more details.
80848185## Nixpkgs internals {#sec-release-23.11-nixpkgs-internals}
8286
···6677 cfg = config.services.calibre-server;
8899+ documentationLink = "https://manual.calibre-ebook.com";
1010+ generatedDocumentationLink = documentationLink + "/generated/en/calibre-server.html";
1111+1212+ execFlags = (concatStringsSep " "
1313+ (mapAttrsToList (k: v: "${k} ${toString v}") (filterAttrs (name: value: value != null) {
1414+ "--listen-on" = cfg.host;
1515+ "--port" = cfg.port;
1616+ "--auth-mode" = cfg.auth.mode;
1717+ "--userdb" = cfg.auth.userDb;
1818+ }) ++ [(optionalString (cfg.auth.enable == true) "--enable-auth")])
1919+ );
920in
10211122{
···1829 )
1930 ];
20312121- ###### interface
2222-2332 options = {
2433 services.calibre-server = {
25342635 enable = mkEnableOption (lib.mdDoc "calibre-server");
3636+ package = lib.mkPackageOptionMD pkgs "calibre" { };
27372838 libraries = mkOption {
3939+ type = types.listOf types.path;
4040+ default = [ "/var/lib/calibre-server" ];
2941 description = lib.mdDoc ''
4242+ Make sure each library path is initialized before service startup.
3043 The directories of the libraries to serve. They must be readable for the user under which the server runs.
4444+ See the [calibredb documentation](${documentationLink}/generated/en/calibredb.html#add) for details.
3145 '';
3232- type = types.listOf types.path;
3346 };
34473548 user = mkOption {
3636- description = lib.mdDoc "The user under which calibre-server runs.";
3749 type = types.str;
3850 default = "calibre-server";
5151+ description = lib.mdDoc "The user under which calibre-server runs.";
3952 };
40534154 group = mkOption {
4242- description = lib.mdDoc "The group under which calibre-server runs.";
4355 type = types.str;
4456 default = "calibre-server";
5757+ description = lib.mdDoc "The group under which calibre-server runs.";
4558 };
46594747- };
4848- };
6060+ host = mkOption {
6161+ type = types.str;
6262+ default = "0.0.0.0";
6363+ example = "::1";
6464+ description = lib.mdDoc ''
6565+ The interface on which to listen for connections.
6666+ See the [calibre-server documentation](${generatedDocumentationLink}#cmdoption-calibre-server-listen-on) for details.
6767+ '';
6868+ };
49697070+ port = mkOption {
7171+ default = 8080;
7272+ type = types.port;
7373+ description = lib.mdDoc ''
7474+ The port on which to listen for connections.
7575+ See the [calibre-server documentation](${generatedDocumentationLink}#cmdoption-calibre-server-port) for details.
7676+ '';
7777+ };
50785151- ###### implementation
7979+ auth = {
8080+ enable = mkOption {
8181+ type = types.bool;
8282+ default = false;
8383+ description = lib.mdDoc ''
8484+ Password based authentication to access the server.
8585+ See the [calibre-server documentation](${generatedDocumentationLink}#cmdoption-calibre-server-enable-auth) for details.
8686+ '';
8787+ };
8888+8989+ mode = mkOption {
9090+ type = types.enum [ "auto" "basic" "digest" ];
9191+ default = "auto";
9292+ description = lib.mdDoc ''
9393+ Choose the type of authentication used.
9494+ Set the HTTP authentication mode used by the server.
9595+ See the [calibre-server documentation](${generatedDocumentationLink}#cmdoption-calibre-server-auth-mode) for details.
9696+ '';
9797+ };
9898+9999+ userDb = mkOption {
100100+ default = null;
101101+ type = types.nullOr types.path;
102102+ description = lib.mdDoc ''
103103+ Choose users database file to use for authentication.
104104+ Make sure users database file is initialized before service startup.
105105+ See the [calibre-server documentation](${documentationLink}/server.html#managing-user-accounts-from-the-command-line-only) for details.
106106+ '';
107107+ };
108108+ };
109109+ };
110110+ };
5211153112 config = mkIf cfg.enable {
5411355114 systemd.services.calibre-server = {
5656- description = "Calibre Server";
5757- after = [ "network.target" ];
5858- wantedBy = [ "multi-user.target" ];
5959- serviceConfig = {
6060- User = cfg.user;
6161- Restart = "always";
6262- ExecStart = "${pkgs.calibre}/bin/calibre-server ${lib.concatStringsSep " " cfg.libraries}";
6363- };
115115+ description = "Calibre Server";
116116+ after = [ "network.target" ];
117117+ wantedBy = [ "multi-user.target" ];
118118+ serviceConfig = {
119119+ User = cfg.user;
120120+ Restart = "always";
121121+ ExecStart = "${cfg.package}/bin/calibre-server ${lib.concatStringsSep " " cfg.libraries} ${execFlags}";
122122+ };
641236565- };
124124+ };
6612567126 environment.systemPackages = [ pkgs.calibre ];
68127···8314284143 };
85144145145+ meta.maintainers = with lib.maintainers; [ gaelreyrol ];
86146}
+1-2
nixos/modules/services/misc/paperless.nix
···8686 SupplementaryGroups = optional enableRedis redisServer.user;
8787 SystemCallArchitectures = "native";
8888 SystemCallFilter = [ "@system-service" "~@privileged @setuid @keyring" ];
8989- # Does not work well with the temporary root
9090- #UMask = "0066";
8989+ UMask = "0066";
9190 };
9291in
9392{
+1-1
nixos/modules/services/monitoring/grafana.nix
···11261126 It will notify, via the UI, when a new version is available.
11271127 The check itself will not prompt any auto-updates of the Grafana software, nor will it send any sensitive information.
11281128 '';
11291129- default = true;
11291129+ default = false;
11301130 type = types.bool;
11311131 };
11321132
···1818 buildPhase = ''
1919 runHook preBuild
2020 patchShebangs ./Scripts
2121+2222+ # Deskew insists on using dlopen to load libtiff, we insist it links against it.
2323+ sed -i -e 's/{$DEFINE DYNAMIC_DLL_LOADING}//' Imaging/LibTiff/LibTiffDynLib.pas
2424+ sed -i -e 's/if LibTiffDynLib\.LoadTiffLibrary then//' Imaging/LibTiff/ImagingTiffLib.pas
2525+ # Make sure libtiff is in the RPATH, so that Nix can find and track the runtime dependency
2626+ export NIX_LDFLAGS="$NIX_LDFLAGS -rpath ${lib.getLib libtiff}/lib"
2127 pushd Scripts && ./compile.sh && popd
2228 runHook postBuild
2329 '';
···5555 libDir = if isHaLVM then "$out/lib/HaLVM-${ghc.version}"
5656 else "$out/lib/${ghc.targetPrefix}${ghc.haskellCompilerName}"
5757 + lib.optionalString (ghc ? hadrian) "/lib";
5858+ # Boot libraries for GHC are present in a separate directory.
5959+ bootLibDir = let arch = if stdenv.targetPlatform.isAarch64
6060+ then "aarch64"
6161+ else "x86_64";
6262+ platform = if stdenv.targetPlatform.isDarwin then "osx" else "linux";
6363+ in "${ghc}/lib/${ghc.haskellCompilerName}/lib/${arch}-${platform}-${ghc.haskellCompilerName}";
5864 docDir = "$out/share/doc/ghc/html";
5965 packageCfgDir = "${libDir}/package.conf.d";
6066 paths = lib.concatLists (
···131137 '' + (lib.optionalString (stdenv.targetPlatform.isDarwin && !isGhcjs && !stdenv.targetPlatform.isiOS) ''
132138 # Work around a linker limit in macOS Sierra (see generic-builder.nix):
133139 local packageConfDir="${packageCfgDir}";
134134- local dynamicLinksDir="$out/lib/links"
140140+ local dynamicLinksDir="$out/lib/links";
135141 mkdir -p $dynamicLinksDir
136142 # Clean up the old links that may have been (transitively) included by
137143 # symlinkJoin:
138144 rm -f $dynamicLinksDir/*
145145+146146+ # Boot libraries are located differently than other libraries since GHC 9.6, so handle them separately.
147147+ if [[ -x "${bootLibDir}" ]]; then
148148+ ln -s "${bootLibDir}"/*.dylib $dynamicLinksDir
149149+ fi
150150+139151 for d in $(grep -Poz "dynamic-library-dirs:\s*\K .+\n" $packageConfDir/*|awk '{print $2}'|sort -u); do
140152 ln -s $d/*.dylib $dynamicLinksDir
141153 done
···146158 # $dynamicLinksDir
147159 cp $f $f-tmp
148160 rm $f
149149- sed "N;s,dynamic-library-dirs:\s*.*,dynamic-library-dirs: $dynamicLinksDir," $f-tmp > $f
161161+ sed "N;s,dynamic-library-dirs:\s*.*\n,dynamic-library-dirs: $dynamicLinksDir\n," $f-tmp > $f
150162 rm $f-tmp
151163 done
152164 '') + ''
···2828 "ghc945"
2929 "ghc94"
3030 "ghc96"
3131- "ghc961"
3231 "ghc962"
3332 "ghcHEAD"
3433 ];
···4847 "ghc944"
4948 "ghc945"
5049 "ghc96"
5151- "ghc961"
5250 "ghc962"
5351 "ghcHEAD"
5452 ];
···350348 llvmPackages = pkgs.llvmPackages_12;
351349 };
352350 ghc94 = ghc945;
353353- ghc961 = callPackage ../development/compilers/ghc/9.6.1.nix {
354354- bootPkgs =
355355- # For GHC 9.2 no armv7l bindists are available.
356356- if stdenv.hostPlatform.isAarch32 then
357357- packages.ghc924
358358- else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
359359- packages.ghc924
360360- else if stdenv.isAarch64 then
361361- packages.ghc924BinaryMinimal
362362- else
363363- packages.ghc924Binary;
364364- inherit (buildPackages.python3Packages) sphinx;
365365- # Need to use apple's patched xattr until
366366- # https://github.com/xattr/xattr/issues/44 and
367367- # https://github.com/xattr/xattr/issues/55 are solved.
368368- inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
369369- # Support range >= 10 && < 15
370370- buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_14;
371371- llvmPackages = pkgs.llvmPackages_14;
372372- };
373351 ghc962 = callPackage ../development/compilers/ghc/9.6.2.nix {
374352 bootPkgs =
375353 # For GHC 9.2 no armv7l bindists are available.
···553531 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.4.x.nix { };
554532 };
555533 ghc94 = ghc945;
556556- ghc961 = callPackage ../development/haskell-modules {
557557- buildHaskellPackages = bh.packages.ghc961;
558558- ghc = bh.compiler.ghc961;
559559- compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.6.x.nix { };
560560- };
561534 ghc962 = callPackage ../development/haskell-modules {
562535 buildHaskellPackages = bh.packages.ghc962;
563536 ghc = bh.compiler.ghc962;
+3
pkgs/top-level/python-aliases.nix
···211211 pyblake2 = throw "pyblake2 is deprecated in favor of hashlib"; # added 2023-04-23
212212 pyblock = throw "pyblock has been removed, since it is abandoned and broken"; # added 2023-06-20
213213 pydrive = throw "pydrive is broken and deprecated and has been replaced with pydrive2."; # added 2022-06-01
214214+ pygbm = throw "pygbm has been removed, since it is abandoned and broken"; # added 2023-06-20
214215 PyGithub = pygithub; # added 2023-02-19
215216 pyGtkGlade = throw "Glade support for pygtk has been removed"; # added 2022-01-15
216217 pycallgraph = throw "pycallgraph has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-01-18
···250251 PyStemmer = pystemmer; # added 2023-02-19
251252 pytest_6 = pytest; # added 2022-02-10
252253 pytestcov = pytest-cov; # added 2021-01-04
254254+ pytest-ordering = throw "pytest-ordering has been removed, since it is no longer maintained and broken"; # added 2023-06-22
253255 pytest-pep8 = pytestpep8; # added 2021-01-04
254256 pytest-pep257 = throw "pytest-pep257 was removed, as the pep257 package was migrated into pycodestyle"; # added 2022-04-12
255257 pytest-pythonpath = throw "pytest-pythonpath is obsolete as of pytest 7.0.0 and has been removed"; # added 2022-03-09
258258+ pytest-sanic = throw "pytest-sanic has been removed because it is unmaintained and broken"; # added 2023-06-22
256259 pytestpep8 = throw "pytestpep8 was removed because it is abandoned and no longer compatible with pytest v6.0"; # added 2020-12-10
257260 pytestquickcheck = pytest-quickcheck; # added 2021-07-20
258261 pytestrunner = pytest-runner; # added 2021-01-04