diff --git a/README.md b/README.md
index 481ada0565f8..9d357c9a3887 100644
--- a/README.md
+++ b/README.md
@@ -29,8 +29,8 @@
* [Discourse Forum](https://discourse.nixos.org/)
* [Matrix Chat](https://matrix.to/#/#community:nixos.org)
* [NixOS Weekly](https://weekly.nixos.org/)
-* [Community-maintained wiki](https://nixos.wiki/)
-* [Community-maintained list of ways to get in touch](https://nixos.wiki/wiki/Get_In_Touch#Chat) (Discord, Telegram, IRC, etc.)
+* [Official wiki](https://wiki.nixos.org/)
+* [Community-maintained list of ways to get in touch](https://wiki.nixos.org/wiki/Get_In_Touch#Chat) (Discord, Telegram, IRC, etc.)
# Other Project Repositories
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 27281e9eef15..069c0432c0a7 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -1784,6 +1784,13 @@
fingerprint = "C919 E69E A7C0 E147 9E0F C26E 1EDA D0C6 70BD 062D";
}];
};
+ assistant = {
+ email = "assistant.moetron@gmail.com";
+ github = "Assistant";
+ githubId = 2748721;
+ matrix = "@assistant:pygmalion.chat";
+ name = "Assistant Moetron";
+ };
astavie = {
email = "astavie@pm.me";
github = "astavie";
diff --git a/maintainers/scripts/mdize-module.sh b/maintainers/scripts/mdize-module.sh
deleted file mode 100755
index e2d2e5467aa9..000000000000
--- a/maintainers/scripts/mdize-module.sh
+++ /dev/null
@@ -1,83 +0,0 @@
-#! /usr/bin/env nix-shell
-#! nix-shell -I nixpkgs=. -i bash -p delta jq perl
-
-set -euo pipefail
-shopt -s inherit_errexit
-
-cat <<'EOF'
-This script attempts to automatically convert option descriptions from
-DocBook syntax to markdown. Naturally this process is incomplete and
-imperfect, so any changes generated by this script MUST be reviewed.
-
-Possible problems include: incorrectly replaced tags, badly formatted
-markdown, DocBook tags this script doesn't recognize remaining in the
-output and crashing the docs build, incorrect escaping of markdown
-metacharacters, incorrect unescaping of XML entities—and the list goes on.
-
-Always review the generated changes!
-
-Some known limitations:
- - Does not transform literalDocBook items
- - Replacements can occur in non-option code, such as string literals
-
-
-EOF
-
-
-
-build-options-json() {
- nix-build --no-out-link --expr '
- let
- sys = import ./nixos/default.nix {
- configuration = {};
- };
- in
- [
- sys.config.system.build.manual.optionsJSON
- ]
- '
-}
-
-
-
-git diff --quiet || {
- echo "Worktree is dirty. Please stash or commit first."
- exit 1
-}
-
-echo "Building options.json ..."
-old_options=$(build-options-json)
-
-echo "Applying replacements ..."
-perl -pi -e '
- BEGIN {
- undef $/;
- }
-
- s,([^`]*?),`$1`,smg;
- s,([^»]*?),«$1»,smg;
- s,([^`]*?),{file}`$1`,smg;
- s,,{option}`$1`,smg;
- s,([^`]*?),`$1`,smg;
- s,([^`]*?),{command}`$1`,smg;
- s,,<$1>,smg;
- s,(.*?),[$2]($1),smg;
- s,([^`]*?),`$1`,smg;
- s,([^*]*?),*$1*,smg;
- s,\s*
- \s*(.*?)\s*\s*
- \s*(.*?)\s*\s*
- ,{manpage}`$1($2)`,smgx;
- s,^( +description =),\1 lib.mdDoc,smg;
-' "$@"
-
-echo "Building options.json again ..."
-new_options=$(build-options-json)
-
-
-! cmp -s {$old_options,$new_options}/share/doc/nixos/options.json && {
- diff -U10 \
- <(jq . <$old_options/share/doc/nixos/options.json) \
- <(jq . <$new_options/share/doc/nixos/options.json) \
- | delta
-}
diff --git a/nixos/doc/manual/administration/system-state.chapter.md b/nixos/doc/manual/administration/system-state.chapter.md
index 6840cc390257..89013933cda5 100644
--- a/nixos/doc/manual/administration/system-state.chapter.md
+++ b/nixos/doc/manual/administration/system-state.chapter.md
@@ -7,7 +7,7 @@ However, it is possible and not-uncommon to create [impermanent systems], whose
`rootfs` is either a `tmpfs` or reset during boot. While NixOS itself supports
this kind of configuration, special care needs to be taken.
-[impermanent systems]: https://nixos.wiki/wiki/Impermanence
+[impermanent systems]: https://wiki.nixos.org/wiki/Impermanence
```{=include=} sections
diff --git a/nixos/doc/manual/release-notes/rl-2405.section.md b/nixos/doc/manual/release-notes/rl-2405.section.md
index d47d63fedd6b..aea66a3bb137 100644
--- a/nixos/doc/manual/release-notes/rl-2405.section.md
+++ b/nixos/doc/manual/release-notes/rl-2405.section.md
@@ -141,6 +141,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- [Scrutiny](https://github.com/AnalogJ/scrutiny), a S.M.A.R.T monitoring tool for hard disks with a web frontend.
+- [davis](https://github.com/tchapi/davis), a simple CardDav and CalDav server inspired by Baïkal. Available as [services.davis]($opt-services-davis.enable).
+
- [systemd-lock-handler](https://git.sr.ht/~whynothugo/systemd-lock-handler/), a bridge between logind D-Bus events and systemd targets. Available as [services.systemd-lock-handler.enable](#opt-services.systemd-lock-handler.enable).
- [wastebin](https://github.com/matze/wastebin), a pastebin server written in rust. Available as [services.wastebin](#opt-services.wastebin.enable).
diff --git a/nixos/lib/systemd-lib.nix b/nixos/lib/systemd-lib.nix
index c00b2d0f207c..832160111da4 100644
--- a/nixos/lib/systemd-lib.nix
+++ b/nixos/lib/systemd-lib.nix
@@ -1,8 +1,47 @@
{ config, lib, pkgs }:
-with lib;
-
let
+ inherit (lib)
+ all
+ attrByPath
+ attrNames
+ concatLists
+ concatMap
+ concatMapStrings
+ concatStrings
+ concatStringsSep
+ const
+ elem
+ filter
+ filterAttrs
+ flip
+ head
+ isInt
+ isList
+ length
+ makeBinPath
+ makeSearchPathOutput
+ mapAttrs
+ mapAttrsToList
+ mkAfter
+ mkIf
+ optional
+ optionalAttrs
+ optionalString
+ range
+ replaceStrings
+ reverseList
+ splitString
+ stringLength
+ stringToCharacters
+ tail
+ toIntBase10
+ trace
+ types
+ ;
+
+ inherit (lib.strings) toJSON;
+
cfg = config.systemd;
lndir = "${pkgs.buildPackages.xorg.lndir}/bin/lndir";
systemd = cfg.package;
@@ -10,7 +49,7 @@ in rec {
shellEscape = s: (replaceStrings [ "\\" ] [ "\\\\" ] s);
- mkPathSafeName = lib.replaceStrings ["@" ":" "\\" "[" "]"] ["-" "-" "-" "" ""];
+ mkPathSafeName = replaceStrings ["@" ":" "\\" "[" "]"] ["-" "-" "-" "" ""];
# a type for options that take a unit name
unitNameType = types.strMatching "[a-zA-Z0-9@%:_.\\-]+[.](service|socket|device|mount|automount|swap|target|path|timer|scope|slice)";
@@ -133,7 +172,7 @@ in rec {
)) attrs;
errors = concatMap (c: c group defs) checks;
in if errors == [] then true
- else builtins.trace (concatStringsSep "\n" errors) false;
+ else trace (concatStringsSep "\n" errors) false;
toOption = x:
if x == true then "true"
@@ -220,7 +259,7 @@ in rec {
# upstream unit.
for i in ${toString (mapAttrsToList
(n: v: v.unit)
- (lib.filterAttrs (n: v: (attrByPath [ "overrideStrategy" ] "asDropinIfExists" v) == "asDropinIfExists") units))}; do
+ (filterAttrs (n: v: (attrByPath [ "overrideStrategy" ] "asDropinIfExists" v) == "asDropinIfExists") units))}; do
fn=$(basename $i/*)
if [ -e $out/$fn ]; then
if [ "$(readlink -f $i/$fn)" = /dev/null ]; then
@@ -243,7 +282,7 @@ in rec {
# treated as drop-in file.
for i in ${toString (mapAttrsToList
(n: v: v.unit)
- (lib.filterAttrs (n: v: v ? overrideStrategy && v.overrideStrategy == "asDropin") units))}; do
+ (filterAttrs (n: v: v ? overrideStrategy && v.overrideStrategy == "asDropin") units))}; do
fn=$(basename $i/*)
mkdir -p $out/$fn.d
ln -s $i/$fn $out/$fn.d/overrides.conf
@@ -384,7 +423,7 @@ in rec {
commonUnitText = def: lines: ''
[Unit]
${attrsToSection def.unitConfig}
- '' + lines + lib.optionalString (def.wantedBy != [ ]) ''
+ '' + lines + optionalString (def.wantedBy != [ ]) ''
[Install]
WantedBy=${concatStringsSep " " def.wantedBy}
@@ -406,7 +445,7 @@ in rec {
'' + (let env = cfg.globalEnvironment // def.environment;
in concatMapStrings (n:
let s = optionalString (env.${n} != null)
- "Environment=${builtins.toJSON "${n}=${env.${n}}"}\n";
+ "Environment=${toJSON "${n}=${env.${n}}"}\n";
# systemd max line length is now 1MiB
# https://github.com/systemd/systemd/commit/e6dde451a51dc5aaa7f4d98d39b8fe735f73d2af
in if stringLength s >= 1048576 then throw "The value of the environment variable ‘${n}’ in systemd service ‘${name}.service’ is too long." else s) (attrNames env))
@@ -475,13 +514,13 @@ in rec {
# in that attrset are determined by the supplied format.
definitions = directoryName: format: definitionAttrs:
let
- listOfDefinitions = lib.mapAttrsToList
+ listOfDefinitions = mapAttrsToList
(name: format.generate "${name}.conf")
definitionAttrs;
in
pkgs.runCommand directoryName { } ''
mkdir -p $out
- ${(lib.concatStringsSep "\n"
+ ${(concatStringsSep "\n"
(map (pkg: "cp ${pkg} $out/${pkg.name}") listOfDefinitions)
)}
'';
diff --git a/nixos/lib/systemd-network-units.nix b/nixos/lib/systemd-network-units.nix
index 1d5f823f3678..986586a61a70 100644
--- a/nixos/lib/systemd-network-units.nix
+++ b/nixos/lib/systemd-network-units.nix
@@ -1,8 +1,13 @@
{ lib, systemdUtils }:
-with lib;
-
let
+ inherit (lib)
+ concatMapStrings
+ concatStringsSep
+ flip
+ optionalString
+ ;
+
attrsToSection = systemdUtils.lib.attrsToSection;
commonMatchText = def:
optionalString (def.matchConfig != { }) ''
diff --git a/nixos/lib/systemd-types.nix b/nixos/lib/systemd-types.nix
index a109f248b170..ba8bed35e1c0 100644
--- a/nixos/lib/systemd-types.nix
+++ b/nixos/lib/systemd-types.nix
@@ -1,47 +1,91 @@
{ lib, systemdUtils, pkgs }:
-with systemdUtils.lib;
-with systemdUtils.unitOptions;
-with lib;
+let
+ inherit (systemdUtils.lib)
+ automountConfig
+ makeUnit
+ mountConfig
+ stage1ServiceConfig
+ stage2ServiceConfig
+ unitConfig
+ ;
+
+ inherit (systemdUtils.unitOptions)
+ concreteUnitOptions
+ stage1AutomountOptions
+ stage1CommonUnitOptions
+ stage1MountOptions
+ stage1PathOptions
+ stage1ServiceOptions
+ stage1SliceOptions
+ stage1SocketOptions
+ stage1TimerOptions
+ stage2AutomountOptions
+ stage2CommonUnitOptions
+ stage2MountOptions
+ stage2PathOptions
+ stage2ServiceOptions
+ stage2SliceOptions
+ stage2SocketOptions
+ stage2TimerOptions
+ ;
+
+ inherit (lib)
+ mdDoc
+ mkDefault
+ mkDerivedConfig
+ mkEnableOption
+ mkIf
+ mkOption
+ ;
+
+ inherit (lib.types)
+ attrsOf
+ lines
+ listOf
+ nullOr
+ path
+ submodule
+ ;
+in
rec {
- units = with types;
- attrsOf (submodule ({ name, config, ... }: {
- options = concreteUnitOptions;
- config = { unit = mkDefault (systemdUtils.lib.makeUnit name config); };
- }));
+ units = attrsOf (submodule ({ name, config, ... }: {
+ options = concreteUnitOptions;
+ config = { unit = mkDefault (makeUnit name config); };
+ }));
- services = with types; attrsOf (submodule [ stage2ServiceOptions unitConfig stage2ServiceConfig ]);
- initrdServices = with types; attrsOf (submodule [ stage1ServiceOptions unitConfig stage1ServiceConfig ]);
+ services = attrsOf (submodule [ stage2ServiceOptions unitConfig stage2ServiceConfig ]);
+ initrdServices = attrsOf (submodule [ stage1ServiceOptions unitConfig stage1ServiceConfig ]);
- targets = with types; attrsOf (submodule [ stage2CommonUnitOptions unitConfig ]);
- initrdTargets = with types; attrsOf (submodule [ stage1CommonUnitOptions unitConfig ]);
+ targets = attrsOf (submodule [ stage2CommonUnitOptions unitConfig ]);
+ initrdTargets = attrsOf (submodule [ stage1CommonUnitOptions unitConfig ]);
- sockets = with types; attrsOf (submodule [ stage2SocketOptions unitConfig ]);
- initrdSockets = with types; attrsOf (submodule [ stage1SocketOptions unitConfig ]);
+ sockets = attrsOf (submodule [ stage2SocketOptions unitConfig ]);
+ initrdSockets = attrsOf (submodule [ stage1SocketOptions unitConfig ]);
- timers = with types; attrsOf (submodule [ stage2TimerOptions unitConfig ]);
- initrdTimers = with types; attrsOf (submodule [ stage1TimerOptions unitConfig ]);
+ timers = attrsOf (submodule [ stage2TimerOptions unitConfig ]);
+ initrdTimers = attrsOf (submodule [ stage1TimerOptions unitConfig ]);
- paths = with types; attrsOf (submodule [ stage2PathOptions unitConfig ]);
- initrdPaths = with types; attrsOf (submodule [ stage1PathOptions unitConfig ]);
+ paths = attrsOf (submodule [ stage2PathOptions unitConfig ]);
+ initrdPaths = attrsOf (submodule [ stage1PathOptions unitConfig ]);
- slices = with types; attrsOf (submodule [ stage2SliceOptions unitConfig ]);
- initrdSlices = with types; attrsOf (submodule [ stage1SliceOptions unitConfig ]);
+ slices = attrsOf (submodule [ stage2SliceOptions unitConfig ]);
+ initrdSlices = attrsOf (submodule [ stage1SliceOptions unitConfig ]);
- mounts = with types; listOf (submodule [ stage2MountOptions unitConfig mountConfig ]);
- initrdMounts = with types; listOf (submodule [ stage1MountOptions unitConfig mountConfig ]);
+ mounts = listOf (submodule [ stage2MountOptions unitConfig mountConfig ]);
+ initrdMounts = listOf (submodule [ stage1MountOptions unitConfig mountConfig ]);
- automounts = with types; listOf (submodule [ stage2AutomountOptions unitConfig automountConfig ]);
- initrdAutomounts = with types; attrsOf (submodule [ stage1AutomountOptions unitConfig automountConfig ]);
+ automounts = listOf (submodule [ stage2AutomountOptions unitConfig automountConfig ]);
+ initrdAutomounts = attrsOf (submodule [ stage1AutomountOptions unitConfig automountConfig ]);
- initrdContents = types.attrsOf (types.submodule ({ config, options, name, ... }: {
+ initrdContents = attrsOf (submodule ({ config, options, name, ... }: {
options = {
- enable = mkEnableOption (lib.mdDoc "copying of this file and symlinking it") // { default = true; };
+ enable = mkEnableOption (mdDoc "copying of this file and symlinking it") // { default = true; };
target = mkOption {
- type = types.path;
- description = lib.mdDoc ''
+ type = path;
+ description = mdDoc ''
Path of the symlink.
'';
default = name;
@@ -49,13 +93,13 @@ rec {
text = mkOption {
default = null;
- type = types.nullOr types.lines;
- description = lib.mdDoc "Text of the file.";
+ type = nullOr lines;
+ description = mdDoc "Text of the file.";
};
source = mkOption {
- type = types.path;
- description = lib.mdDoc "Path of the source file.";
+ type = path;
+ description = mdDoc "Path of the source file.";
};
};
diff --git a/nixos/lib/systemd-unit-options.nix b/nixos/lib/systemd-unit-options.nix
index e4953ba72dd9..db644e006552 100644
--- a/nixos/lib/systemd-unit-options.nix
+++ b/nixos/lib/systemd-unit-options.nix
@@ -1,9 +1,33 @@
{ lib, systemdUtils }:
-with systemdUtils.lib;
-with lib;
-
let
+ inherit (systemdUtils.lib)
+ assertValueOneOf
+ automountConfig
+ checkUnitConfig
+ makeJobScript
+ mountConfig
+ serviceConfig
+ unitConfig
+ unitNameType
+ ;
+
+ inherit (lib)
+ any
+ concatMap
+ filterOverrides
+ isList
+ mdDoc
+ mergeEqualOption
+ mkIf
+ mkMerge
+ mkOption
+ mkOptionType
+ singleton
+ toList
+ types
+ ;
+
checkService = checkUnitConfig "Service" [
(assertValueOneOf "Type" [
"exec" "simple" "forking" "oneshot" "dbus" "notify" "notify-reload" "idle"
@@ -31,7 +55,7 @@ in rec {
enable = mkOption {
default = true;
type = types.bool;
- description = lib.mdDoc ''
+ description = mdDoc ''
If set to false, this unit will be a symlink to
/dev/null. This is primarily useful to prevent specific
template instances
@@ -45,7 +69,7 @@ in rec {
overrideStrategy = mkOption {
default = "asDropinIfExists";
type = types.enum [ "asDropinIfExists" "asDropin" ];
- description = lib.mdDoc ''
+ description = mdDoc ''
Defines how unit configuration is provided for systemd:
`asDropinIfExists` creates a unit file when no unit file is provided by the package
@@ -61,7 +85,7 @@ in rec {
requiredBy = mkOption {
default = [];
type = types.listOf unitNameType;
- description = lib.mdDoc ''
+ description = mdDoc ''
Units that require (i.e. depend on and need to go down with) this unit.
As discussed in the `wantedBy` option description this also creates
`.requires` symlinks automatically.
@@ -71,7 +95,7 @@ in rec {
upheldBy = mkOption {
default = [];
type = types.listOf unitNameType;
- description = lib.mdDoc ''
+ description = mdDoc ''
Keep this unit running as long as the listed units are running. This is a continuously
enforced version of wantedBy.
'';
@@ -80,7 +104,7 @@ in rec {
wantedBy = mkOption {
default = [];
type = types.listOf unitNameType;
- description = lib.mdDoc ''
+ description = mdDoc ''
Units that want (i.e. depend on) this unit. The default method for
starting a unit by default at boot time is to set this option to
`["multi-user.target"]` for system services. Likewise for user units
@@ -98,7 +122,7 @@ in rec {
aliases = mkOption {
default = [];
type = types.listOf unitNameType;
- description = lib.mdDoc "Aliases of that unit.";
+ description = mdDoc "Aliases of that unit.";
};
};
@@ -108,12 +132,12 @@ in rec {
text = mkOption {
type = types.nullOr types.str;
default = null;
- description = lib.mdDoc "Text of this systemd unit.";
+ description = mdDoc "Text of this systemd unit.";
};
unit = mkOption {
internal = true;
- description = lib.mdDoc "The generated unit.";
+ description = mdDoc "The generated unit.";
};
};
@@ -124,19 +148,19 @@ in rec {
description = mkOption {
default = "";
type = types.singleLineStr;
- description = lib.mdDoc "Description of this unit used in systemd messages and progress indicators.";
+ description = mdDoc "Description of this unit used in systemd messages and progress indicators.";
};
documentation = mkOption {
default = [];
type = types.listOf types.str;
- description = lib.mdDoc "A list of URIs referencing documentation for this unit or its configuration.";
+ description = mdDoc "A list of URIs referencing documentation for this unit or its configuration.";
};
requires = mkOption {
default = [];
type = types.listOf unitNameType;
- description = lib.mdDoc ''
+ description = mdDoc ''
Start the specified units when this unit is started, and stop
this unit when the specified units are stopped or fail.
'';
@@ -145,7 +169,7 @@ in rec {
wants = mkOption {
default = [];
type = types.listOf unitNameType;
- description = lib.mdDoc ''
+ description = mdDoc ''
Start the specified units when this unit is started.
'';
};
@@ -153,7 +177,7 @@ in rec {
upholds = mkOption {
default = [];
type = types.listOf unitNameType;
- description = lib.mdDoc ''
+ description = mdDoc ''
Keeps the specified running while this unit is running. A continuous version of `wants`.
'';
};
@@ -161,7 +185,7 @@ in rec {
after = mkOption {
default = [];
type = types.listOf unitNameType;
- description = lib.mdDoc ''
+ description = mdDoc ''
If the specified units are started at the same time as
this unit, delay this unit until they have started.
'';
@@ -170,7 +194,7 @@ in rec {
before = mkOption {
default = [];
type = types.listOf unitNameType;
- description = lib.mdDoc ''
+ description = mdDoc ''
If the specified units are started at the same time as
this unit, delay them until this unit has started.
'';
@@ -179,7 +203,7 @@ in rec {
bindsTo = mkOption {
default = [];
type = types.listOf unitNameType;
- description = lib.mdDoc ''
+ description = mdDoc ''
Like ‘requires’, but in addition, if the specified units
unexpectedly disappear, this unit will be stopped as well.
'';
@@ -188,7 +212,7 @@ in rec {
partOf = mkOption {
default = [];
type = types.listOf unitNameType;
- description = lib.mdDoc ''
+ description = mdDoc ''
If the specified units are stopped or restarted, then this
unit is stopped or restarted as well.
'';
@@ -197,7 +221,7 @@ in rec {
conflicts = mkOption {
default = [];
type = types.listOf unitNameType;
- description = lib.mdDoc ''
+ description = mdDoc ''
If the specified units are started, then this unit is stopped
and vice versa.
'';
@@ -206,7 +230,7 @@ in rec {
requisite = mkOption {
default = [];
type = types.listOf unitNameType;
- description = lib.mdDoc ''
+ description = mdDoc ''
Similar to requires. However if the units listed are not started,
they will not be started and the transaction will fail.
'';
@@ -216,7 +240,7 @@ in rec {
default = {};
example = { RequiresMountsFor = "/data"; };
type = types.attrsOf unitOption;
- description = lib.mdDoc ''
+ description = mdDoc ''
Each attribute in this set specifies an option in the
`[Unit]` section of the unit. See
{manpage}`systemd.unit(5)` for details.
@@ -226,7 +250,7 @@ in rec {
onFailure = mkOption {
default = [];
type = types.listOf unitNameType;
- description = lib.mdDoc ''
+ description = mdDoc ''
A list of one or more units that are activated when
this unit enters the "failed" state.
'';
@@ -235,7 +259,7 @@ in rec {
onSuccess = mkOption {
default = [];
type = types.listOf unitNameType;
- description = lib.mdDoc ''
+ description = mdDoc ''
A list of one or more units that are activated when
this unit enters the "inactive" state.
'';
@@ -243,7 +267,7 @@ in rec {
startLimitBurst = mkOption {
type = types.int;
- description = lib.mdDoc ''
+ description = mdDoc ''
Configure unit start rate limiting. Units which are started
more than startLimitBurst times within an interval time
interval are not permitted to start any more.
@@ -252,7 +276,7 @@ in rec {
startLimitIntervalSec = mkOption {
type = types.int;
- description = lib.mdDoc ''
+ description = mdDoc ''
Configure unit start rate limiting. Units which are started
more than startLimitBurst times within an interval time
interval are not permitted to start any more.
@@ -271,7 +295,7 @@ in rec {
restartTriggers = mkOption {
default = [];
type = types.listOf types.unspecified;
- description = lib.mdDoc ''
+ description = mdDoc ''
An arbitrary list of items such as derivations. If any item
in the list changes between reconfigurations, the service will
be restarted.
@@ -281,7 +305,7 @@ in rec {
reloadTriggers = mkOption {
default = [];
type = types.listOf unitOption;
- description = lib.mdDoc ''
+ description = mdDoc ''
An arbitrary list of items such as derivations. If any item
in the list changes between reconfigurations, the service will
be reloaded. If anything but a reload trigger changes in the
@@ -299,13 +323,13 @@ in rec {
default = {};
type = with types; attrsOf (nullOr (oneOf [ str path package ]));
example = { PATH = "/foo/bar/bin"; LANG = "nl_NL.UTF-8"; };
- description = lib.mdDoc "Environment variables passed to the service's processes.";
+ description = mdDoc "Environment variables passed to the service's processes.";
};
path = mkOption {
default = [];
type = with types; listOf (oneOf [ package str ]);
- description = lib.mdDoc ''
+ description = mdDoc ''
Packages added to the service's {env}`PATH`
environment variable. Both the {file}`bin`
and {file}`sbin` subdirectories of each
@@ -319,7 +343,7 @@ in rec {
{ RestartSec = 5;
};
type = types.addCheck (types.attrsOf unitOption) checkService;
- description = lib.mdDoc ''
+ description = mdDoc ''
Each attribute in this set specifies an option in the
`[Service]` section of the unit. See
{manpage}`systemd.service(5)` for details.
@@ -329,14 +353,14 @@ in rec {
script = mkOption {
type = types.lines;
default = "";
- description = lib.mdDoc "Shell commands executed as the service's main process.";
+ description = mdDoc "Shell commands executed as the service's main process.";
};
scriptArgs = mkOption {
type = types.str;
default = "";
example = "%i";
- description = lib.mdDoc ''
+ description = mdDoc ''
Arguments passed to the main process script.
Can contain specifiers (`%` placeholders expanded by systemd, see {manpage}`systemd.unit(5)`).
'';
@@ -345,7 +369,7 @@ in rec {
preStart = mkOption {
type = types.lines;
default = "";
- description = lib.mdDoc ''
+ description = mdDoc ''
Shell commands executed before the service's main process
is started.
'';
@@ -354,7 +378,7 @@ in rec {
postStart = mkOption {
type = types.lines;
default = "";
- description = lib.mdDoc ''
+ description = mdDoc ''
Shell commands executed after the service's main process
is started.
'';
@@ -363,7 +387,7 @@ in rec {
reload = mkOption {
type = types.lines;
default = "";
- description = lib.mdDoc ''
+ description = mdDoc ''
Shell commands executed when the service's main process
is reloaded.
'';
@@ -372,7 +396,7 @@ in rec {
preStop = mkOption {
type = types.lines;
default = "";
- description = lib.mdDoc ''
+ description = mdDoc ''
Shell commands executed to stop the service.
'';
};
@@ -380,7 +404,7 @@ in rec {
postStop = mkOption {
type = types.lines;
default = "";
- description = lib.mdDoc ''
+ description = mdDoc ''
Shell commands executed after the service's main process
has exited.
'';
@@ -389,7 +413,7 @@ in rec {
jobScripts = mkOption {
type = with types; coercedTo path singleton (listOf path);
internal = true;
- description = lib.mdDoc "A list of all job script derivations of this unit.";
+ description = mdDoc "A list of all job script derivations of this unit.";
default = [];
};
@@ -434,7 +458,7 @@ in rec {
restartIfChanged = mkOption {
type = types.bool;
default = true;
- description = lib.mdDoc ''
+ description = mdDoc ''
Whether the service should be restarted during a NixOS
configuration switch if its definition has changed.
'';
@@ -443,7 +467,7 @@ in rec {
reloadIfChanged = mkOption {
type = types.bool;
default = false;
- description = lib.mdDoc ''
+ description = mdDoc ''
Whether the service should be reloaded during a NixOS
configuration switch if its definition has changed. If
enabled, the value of {option}`restartIfChanged` is
@@ -459,7 +483,7 @@ in rec {
stopIfChanged = mkOption {
type = types.bool;
default = true;
- description = lib.mdDoc ''
+ description = mdDoc ''
If set, a changed unit is restarted by calling
{command}`systemctl stop` in the old configuration,
then {command}`systemctl start` in the new one.
@@ -475,7 +499,7 @@ in rec {
type = with types; either str (listOf str);
default = [];
example = "Sun 14:00:00";
- description = lib.mdDoc ''
+ description = mdDoc ''
Automatically start this unit at the given date/time, which
must be in the format described in
{manpage}`systemd.time(7)`. This is equivalent
@@ -502,7 +526,7 @@ in rec {
default = [];
type = types.listOf types.str;
example = [ "0.0.0.0:993" "/run/my-socket" ];
- description = lib.mdDoc ''
+ description = mdDoc ''
For each item in this list, a `ListenStream`
option in the `[Socket]` section will be created.
'';
@@ -512,7 +536,7 @@ in rec {
default = [];
type = types.listOf types.str;
example = [ "0.0.0.0:993" "/run/my-socket" ];
- description = lib.mdDoc ''
+ description = mdDoc ''
For each item in this list, a `ListenDatagram`
option in the `[Socket]` section will be created.
'';
@@ -522,7 +546,7 @@ in rec {
default = {};
example = { ListenStream = "/run/my-socket"; };
type = types.attrsOf unitOption;
- description = lib.mdDoc ''
+ description = mdDoc ''
Each attribute in this set specifies an option in the
`[Socket]` section of the unit. See
{manpage}`systemd.socket(5)` for details.
@@ -554,7 +578,7 @@ in rec {
default = {};
example = { OnCalendar = "Sun 14:00:00"; Unit = "foo.service"; };
type = types.attrsOf unitOption;
- description = lib.mdDoc ''
+ description = mdDoc ''
Each attribute in this set specifies an option in the
`[Timer]` section of the unit. See
{manpage}`systemd.timer(5)` and
@@ -587,7 +611,7 @@ in rec {
default = {};
example = { PathChanged = "/some/path"; Unit = "changedpath.service"; };
type = types.attrsOf unitOption;
- description = lib.mdDoc ''
+ description = mdDoc ''
Each attribute in this set specifies an option in the
`[Path]` section of the unit. See
{manpage}`systemd.path(5)` for details.
@@ -618,13 +642,13 @@ in rec {
what = mkOption {
example = "/dev/sda1";
type = types.str;
- description = lib.mdDoc "Absolute path of device node, file or other resource. (Mandatory)";
+ description = mdDoc "Absolute path of device node, file or other resource. (Mandatory)";
};
where = mkOption {
example = "/mnt";
type = types.str;
- description = lib.mdDoc ''
+ description = mdDoc ''
Absolute path of a directory of the mount point.
Will be created if it doesn't exist. (Mandatory)
'';
@@ -634,21 +658,21 @@ in rec {
default = "";
example = "ext4";
type = types.str;
- description = lib.mdDoc "File system type.";
+ description = mdDoc "File system type.";
};
options = mkOption {
default = "";
example = "noatime";
type = types.commas;
- description = lib.mdDoc "Options used to mount the file system.";
+ description = mdDoc "Options used to mount the file system.";
};
mountConfig = mkOption {
default = {};
example = { DirectoryMode = "0775"; };
type = types.attrsOf unitOption;
- description = lib.mdDoc ''
+ description = mdDoc ''
Each attribute in this set specifies an option in the
`[Mount]` section of the unit. See
{manpage}`systemd.mount(5)` for details.
@@ -678,7 +702,7 @@ in rec {
where = mkOption {
example = "/mnt";
type = types.str;
- description = lib.mdDoc ''
+ description = mdDoc ''
Absolute path of a directory of the mount point.
Will be created if it doesn't exist. (Mandatory)
'';
@@ -688,7 +712,7 @@ in rec {
default = {};
example = { DirectoryMode = "0775"; };
type = types.attrsOf unitOption;
- description = lib.mdDoc ''
+ description = mdDoc ''
Each attribute in this set specifies an option in the
`[Automount]` section of the unit. See
{manpage}`systemd.automount(5)` for details.
@@ -719,7 +743,7 @@ in rec {
default = {};
example = { MemoryMax = "2G"; };
type = types.attrsOf unitOption;
- description = lib.mdDoc ''
+ description = mdDoc ''
Each attribute in this set specifies an option in the
`[Slice]` section of the unit. See
{manpage}`systemd.slice(5)` for details.
diff --git a/nixos/lib/utils.nix b/nixos/lib/utils.nix
index 22a2c79843c6..4992113bdbd2 100644
--- a/nixos/lib/utils.nix
+++ b/nixos/lib/utils.nix
@@ -1,9 +1,44 @@
-{ lib, config, pkgs }: with lib;
+{ lib, config, pkgs }:
+
+let
+ inherit (lib)
+ any
+ attrNames
+ concatMapStringsSep
+ concatStringsSep
+ elem
+ escapeShellArg
+ filter
+ flatten
+ getName
+ hasPrefix
+ hasSuffix
+ imap0
+ imap1
+ isAttrs
+ isDerivation
+ isFloat
+ isInt
+ isList
+ isPath
+ isString
+ listToAttrs
+ nameValuePair
+ optionalString
+ removePrefix
+ removeSuffix
+ replaceStrings
+ stringToCharacters
+ types
+ ;
+
+ inherit (lib.strings) toJSON normalizePath escapeC;
+in
rec {
# Copy configuration files to avoid having the entire sources in the system closure
- copyFile = filePath: pkgs.runCommand (builtins.unsafeDiscardStringContext (builtins.baseNameOf filePath)) {} ''
+ copyFile = filePath: pkgs.runCommand (builtins.unsafeDiscardStringContext (baseNameOf filePath)) {} ''
cp ${filePath} $out
'';
@@ -46,11 +81,11 @@ rec {
escapeSystemdPath = s: let
replacePrefix = p: r: s: (if (hasPrefix p s) then r + (removePrefix p s) else s);
trim = s: removeSuffix "/" (removePrefix "/" s);
- normalizedPath = strings.normalizePath s;
+ normalizedPath = normalizePath s;
in
replaceStrings ["/"] ["-"]
- (replacePrefix "." (strings.escapeC ["."] ".")
- (strings.escapeC (stringToCharacters " !\"#$%&'()*+,;<=>=@[\\]^`{|}~-")
+ (replacePrefix "." (escapeC ["."] ".")
+ (escapeC (stringToCharacters " !\"#$%&'()*+,;<=>=@[\\]^`{|}~-")
(if normalizedPath == "/" then normalizedPath else trim normalizedPath)));
# Quotes an argument for use in Exec* service lines.
@@ -62,12 +97,12 @@ rec {
# substitution for the directive.
escapeSystemdExecArg = arg:
let
- s = if builtins.isPath arg then "${arg}"
- else if builtins.isString arg then arg
- else if builtins.isInt arg || builtins.isFloat arg || lib.isDerivation arg then toString arg
+ s = if isPath arg then "${arg}"
+ else if isString arg then arg
+ else if isInt arg || isFloat arg || isDerivation arg then toString arg
else throw "escapeSystemdExecArg only allows strings, paths, numbers and derivations";
in
- replaceStrings [ "%" "$" ] [ "%%" "$$" ] (builtins.toJSON s);
+ replaceStrings [ "%" "$" ] [ "%%" "$$" ] (toJSON s);
# Quotes a list of arguments into a single string for use in a Exec*
# line.
@@ -197,7 +232,7 @@ rec {
(attrNames secrets))
+ "\n"
+ "${pkgs.jq}/bin/jq >'${output}' "
- + lib.escapeShellArg (stringOrDefault
+ + escapeShellArg (stringOrDefault
(concatStringsSep
" | "
(imap1 (index: name: ''${name} = $ENV.secret${toString index}'')
@@ -205,7 +240,7 @@ rec {
".")
+ ''
<<'EOF'
- ${builtins.toJSON set}
+ ${toJSON set}
EOF
(( ! $inherit_errexit_enabled )) && shopt -u inherit_errexit
'';
@@ -222,9 +257,9 @@ rec {
*/
removePackagesByName = packages: packagesToRemove:
let
- namesToRemove = map lib.getName packagesToRemove;
+ namesToRemove = map getName packagesToRemove;
in
- lib.filter (x: !(builtins.elem (lib.getName x) namesToRemove)) packages;
+ filter (x: !(elem (getName x) namesToRemove)) packages;
systemdUtils = {
lib = import ./systemd-lib.nix { inherit lib config pkgs; };
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 9cbc421239ba..9a1bfe94a405 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -1309,6 +1309,7 @@
./services/web-apps/cloudlog.nix
./services/web-apps/code-server.nix
./services/web-apps/convos.nix
+ ./services/web-apps/davis.nix
./services/web-apps/dex.nix
./services/web-apps/discourse.nix
./services/web-apps/documize.nix
diff --git a/nixos/modules/services/network-filesystems/nfsd.nix b/nixos/modules/services/network-filesystems/nfsd.nix
index c9e1cbcbbda4..656f1aa5a488 100644
--- a/nixos/modules/services/network-filesystems/nfsd.nix
+++ b/nixos/modules/services/network-filesystems/nfsd.nix
@@ -113,25 +113,6 @@ in
config = mkIf cfg.enable {
- services.nfs.extraConfig = ''
- [nfsd]
- threads=${toString cfg.nproc}
- ${optionalString (cfg.hostName != null) "host=${cfg.hostName}"}
- ${cfg.extraNfsdConfig}
-
- [mountd]
- ${optionalString (cfg.mountdPort != null) "port=${toString cfg.mountdPort}"}
-
- [statd]
- ${optionalString (cfg.statdPort != null) "port=${toString cfg.statdPort}"}
-
- [lockd]
- ${optionalString (cfg.lockdPort != null) ''
- port=${toString cfg.lockdPort}
- udp-port=${toString cfg.lockdPort}
- ''}
- '';
-
services.rpcbind.enable = true;
boot.supportedFilesystems = [ "nfs" ]; # needed for statd and idmapd
diff --git a/nixos/modules/services/web-apps/davis.md b/nixos/modules/services/web-apps/davis.md
new file mode 100644
index 000000000000..9775d8221b5b
--- /dev/null
+++ b/nixos/modules/services/web-apps/davis.md
@@ -0,0 +1,32 @@
+# Davis {#module-services-davis}
+
+[Davis](https://github.com/tchapi/davis/) is a caldav and carrddav server. It
+has a simple, fully translatable admin interface for sabre/dav based on Symfony
+5 and Bootstrap 5, initially inspired by Baïkal.
+
+## Basic Usage {#module-services-davis-basic-usage}
+
+At first, an application secret is needed, this can be generated with:
+```ShellSession
+$ cat /dev/urandom | tr -dc a-zA-Z0-9 | fold -w 48 | head -n 1
+```
+
+After that, `davis` can be deployed like this:
+```
+{
+ services.davis = {
+ enable = true;
+ hostname = "davis.example.com";
+ mail = {
+ dsn = "smtp://username@example.com:25";
+ inviteFromAddress = "davis@example.com";
+ };
+ adminLogin = "admin";
+ adminPasswordFile = "/run/secrets/davis-admin-password";
+ appSecretFile = "/run/secrets/davis-app-secret";
+ nginx = {};
+ };
+}
+```
+
+This deploys Davis using a sqlite database running out of `/var/lib/davis`.
diff --git a/nixos/modules/services/web-apps/davis.nix b/nixos/modules/services/web-apps/davis.nix
new file mode 100644
index 000000000000..325ede38d2a1
--- /dev/null
+++ b/nixos/modules/services/web-apps/davis.nix
@@ -0,0 +1,554 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
+
+let
+ cfg = config.services.davis;
+ db = cfg.database;
+ mail = cfg.mail;
+
+ mysqlLocal = db.createLocally && db.driver == "mysql";
+ pgsqlLocal = db.createLocally && db.driver == "postgresql";
+
+ user = cfg.user;
+ group = cfg.group;
+
+ isSecret = v: lib.isAttrs v && v ? _secret && (lib.isString v._secret || builtins.isPath v._secret);
+ davisEnvVars = lib.generators.toKeyValue {
+ mkKeyValue = lib.flip lib.generators.mkKeyValueDefault "=" {
+ mkValueString =
+ v:
+ if builtins.isInt v then
+ toString v
+ else if lib.isString v then
+ "\"${v}\""
+ else if true == v then
+ "true"
+ else if false == v then
+ "false"
+ else if null == v then
+ ""
+ else if isSecret v then
+ if (lib.isString v._secret) then
+ builtins.hashString "sha256" v._secret
+ else
+ builtins.hashString "sha256" (builtins.readFile v._secret)
+ else
+ throw "unsupported type ${builtins.typeOf v}: ${(lib.generators.toPretty { }) v}";
+ };
+ };
+ secretPaths = lib.mapAttrsToList (_: v: v._secret) (lib.filterAttrs (_: isSecret) cfg.config);
+ mkSecretReplacement = file: ''
+ replace-secret ${
+ lib.escapeShellArgs [
+ (
+ if (lib.isString file) then
+ builtins.hashString "sha256" file
+ else
+ builtins.hashString "sha256" (builtins.readFile file)
+ )
+ file
+ "${cfg.dataDir}/.env.local"
+ ]
+ }
+ '';
+ secretReplacements = lib.concatMapStrings mkSecretReplacement secretPaths;
+ filteredConfig = lib.converge (lib.filterAttrsRecursive (
+ _: v:
+ !lib.elem v [
+ { }
+ null
+ ]
+ )) cfg.config;
+ davisEnv = pkgs.writeText "davis.env" (davisEnvVars filteredConfig);
+in
+{
+ options.services.davis = {
+ enable = lib.mkEnableOption (lib.mdDoc "Davis is a caldav and carddav server");
+
+ user = lib.mkOption {
+ default = "davis";
+ description = lib.mdDoc "User davis runs as.";
+ type = lib.types.str;
+ };
+
+ group = lib.mkOption {
+ default = "davis";
+ description = lib.mdDoc "Group davis runs as.";
+ type = lib.types.str;
+ };
+
+ package = lib.mkPackageOption pkgs "davis" { };
+
+ dataDir = lib.mkOption {
+ type = lib.types.path;
+ default = "/var/lib/davis";
+ description = lib.mdDoc ''
+ Davis data directory.
+ '';
+ };
+
+ hostname = lib.mkOption {
+ type = lib.types.str;
+ example = "davis.yourdomain.org";
+ description = lib.mdDoc ''
+ Domain of the host to serve davis under. You may want to change it if you
+ run Davis on a different URL than davis.yourdomain.
+ '';
+ };
+
+ config = lib.mkOption {
+ type = lib.types.attrsOf (
+ lib.types.nullOr (
+ lib.types.either
+ (lib.types.oneOf [
+ lib.types.bool
+ lib.types.int
+ lib.types.port
+ lib.types.path
+ lib.types.str
+ ])
+ (
+ lib.types.submodule {
+ options = {
+ _secret = lib.mkOption {
+ type = lib.types.nullOr (
+ lib.types.oneOf [
+ lib.types.str
+ lib.types.path
+ ]
+ );
+ description = lib.mdDoc ''
+ The path to a file containing the value the
+ option should be set to in the final
+ configuration file.
+ '';
+ };
+ };
+ }
+ )
+ )
+ );
+ default = { };
+
+ example = '''';
+ description = lib.mdDoc '''';
+ };
+
+ adminLogin = lib.mkOption {
+ type = lib.types.str;
+ default = "root";
+ description = lib.mdDoc ''
+ Username for the admin account.
+ '';
+ };
+ adminPasswordFile = lib.mkOption {
+ type = lib.types.path;
+ description = lib.mdDoc ''
+ The full path to a file that contains the admin's password. Must be
+ readable by the user.
+ '';
+ example = "/run/secrets/davis-admin-pass";
+ };
+
+ appSecretFile = lib.mkOption {
+ type = lib.types.path;
+ description = lib.mdDoc ''
+ A file containing the Symfony APP_SECRET - Its value should be a series
+ of characters, numbers and symbols chosen randomly and the recommended
+ length is around 32 characters. Can be generated with cat
+ /dev/urandom | tr -dc a-zA-Z0-9 | fold -w 48 | head -n 1.
+ '';
+ example = "/run/secrets/davis-appsecret";
+ };
+
+ database = {
+ driver = lib.mkOption {
+ type = lib.types.enum [
+ "sqlite"
+ "postgresql"
+ "mysql"
+ ];
+ default = "sqlite";
+ description = lib.mdDoc "Database type, required in all circumstances.";
+ };
+ urlFile = lib.mkOption {
+ type = lib.types.nullOr lib.types.path;
+ default = null;
+ example = "/run/secrets/davis-db-url";
+ description = lib.mdDoc ''
+ A file containing the database connection url. If set then it
+ overrides all other database settings (except driver). This is
+ mandatory if you want to use an external database, that is when
+ `services.davis.database.createLocally` is `false`.
+ '';
+ };
+ name = lib.mkOption {
+ type = lib.types.nullOr lib.types.str;
+ default = "davis";
+ description = lib.mdDoc "Database name, only used when the databse is created locally.";
+ };
+ createLocally = lib.mkOption {
+ type = lib.types.bool;
+ default = true;
+ description = lib.mdDoc "Create the database and database user locally.";
+ };
+ };
+
+ mail = {
+ dsn = lib.mkOption {
+ type = lib.types.nullOr lib.types.str;
+ default = null;
+ description = lib.mdDoc "Mail DSN for sending emails. Mutually exclusive with `services.davis.mail.dsnFile`.";
+ example = "smtp://username:password@example.com:25";
+ };
+ dsnFile = lib.mkOption {
+ type = lib.types.nullOr lib.types.str;
+ default = null;
+ example = "/run/secrets/davis-mail-dsn";
+ description = lib.mdDoc "A file containing the mail DSN for sending emails. Mutually exclusive with `servies.davis.mail.dsn`.";
+ };
+ inviteFromAddress = lib.mkOption {
+ type = lib.types.nullOr lib.types.str;
+ default = null;
+ description = lib.mdDoc "Email address to send invitations from.";
+ example = "no-reply@dav.example.com";
+ };
+ };
+
+ nginx = lib.mkOption {
+ type = lib.types.submodule (
+ lib.recursiveUpdate (import ../web-servers/nginx/vhost-options.nix { inherit config lib; }) { }
+ );
+ default = null;
+ example = ''
+ {
+ serverAliases = [
+ "dav.''${config.networking.domain}"
+ ];
+ # To enable encryption and let let's encrypt take care of certificate
+ forceSSL = true;
+ enableACME = true;
+ }
+ '';
+ description = lib.mdDoc ''
+ With this option, you can customize the nginx virtualHost settings.
+ '';
+ };
+
+ poolConfig = lib.mkOption {
+ type = lib.types.attrsOf (
+ lib.types.oneOf [
+ lib.types.str
+ lib.types.int
+ lib.types.bool
+ ]
+ );
+ default = {
+ "pm" = "dynamic";
+ "pm.max_children" = 32;
+ "pm.start_servers" = 2;
+ "pm.min_spare_servers" = 2;
+ "pm.max_spare_servers" = 4;
+ "pm.max_requests" = 500;
+ };
+ description = lib.mdDoc ''
+ Options for the davis PHP pool. See the documentation on php-fpm.conf
+ for details on configuration directives.
+ '';
+ };
+ };
+
+ config =
+ let
+ defaultServiceConfig = {
+ ReadWritePaths = "${cfg.dataDir}";
+ User = user;
+ UMask = 77;
+ DeviceAllow = "";
+ LockPersonality = true;
+ NoNewPrivileges = true;
+ PrivateDevices = true;
+ PrivateTmp = true;
+ PrivateUsers = true;
+ ProcSubset = "pid";
+ ProtectClock = true;
+ ProtectControlGroups = true;
+ ProtectHome = true;
+ ProtectHostname = true;
+ ProtectKernelLogs = true;
+ ProtectKernelModules = true;
+ ProtectKernelTunables = true;
+ ProtectProc = "invisible";
+ ProtectSystem = "strict";
+ RemoveIPC = true;
+ RestrictNamespaces = true;
+ RestrictRealtime = true;
+ RestrictSUIDSGID = true;
+ SystemCallArchitectures = "native";
+ SystemCallFilter = [
+ "@system-service"
+ "~@resources"
+ "~@privileged"
+ ];
+ WorkingDirectory = "${cfg.package}/";
+ };
+ in
+ lib.mkIf cfg.enable {
+ assertions = [
+ {
+ assertion = db.createLocally -> db.urlFile == null;
+ message = "services.davis.database.urlFile must be unset if services.davis.database.createLocally is set true.";
+ }
+ {
+ assertion = db.createLocally || db.urlFile != null;
+ message = "One of services.davis.database.urlFile or services.davis.database.createLocally must be set.";
+ }
+ {
+ assertion = (mail.dsn != null) != (mail.dsnFile != null);
+ message = "One of (and only one of) services.davis.mail.dsn or services.davis.mail.dsnFile must be set.";
+ }
+ ];
+ services.davis.config =
+ {
+ APP_ENV = "prod";
+ CACHE_DIR = "${cfg.dataDir}/var/cache";
+ # note: we do not need the log dir (we log to stdout/journald), by davis/symfony will try to create it, and the default value is one in the nix-store
+ # so we set it to a path under dataDir to avoid something like: Unable to create the "logs" directory (/nix/store/5cfskz0ybbx37s1161gjn5klwb5si1zg-davis-4.4.1/var/log).
+ LOG_DIR = "${cfg.dataDir}/var/log";
+ LOG_FILE_PATH = "/dev/stdout";
+ DATABASE_DRIVER = db.driver;
+ INVITE_FROM_ADDRESS = mail.inviteFromAddress;
+ APP_SECRET._secret = cfg.appSecretFile;
+ ADMIN_LOGIN = cfg.adminLogin;
+ ADMIN_PASSWORD._secret = cfg.adminPasswordFile;
+ APP_TIMEZONE = config.time.timeZone;
+ WEBDAV_ENABLED = false;
+ CALDAV_ENABLED = true;
+ CARDDAV_ENABLED = true;
+ }
+ // (if mail.dsn != null then { MAILER_DSN = mail.dsn; } else { MAILER_DSN._secret = mail.dsnFile; })
+ // (
+ if db.createLocally then
+ {
+ DATABASE_URL =
+ if db.driver == "sqlite" then
+ "sqlite:///${cfg.dataDir}/davis.db" # note: sqlite needs 4 slashes for an absolute path
+ else if
+ pgsqlLocal
+ # note: davis expects a non-standard postgres uri (due to the underlying doctrine library)
+ # specifically the charset query parameter, and the dummy hostname which is overriden by the host query parameter
+ then
+ "postgres://${user}@localhost/${db.name}?host=/run/postgresql&charset=UTF-8"
+ else if mysqlLocal then
+ "mysql://${user}@localhost/${db.name}?socket=/run/mysqld/mysqld.sock"
+ else
+ null;
+ }
+ else
+ { DATABASE_URL._secret = db.urlFile; }
+ );
+
+ users = {
+ users = lib.mkIf (user == "davis") {
+ davis = {
+ description = "Davis service user";
+ group = cfg.group;
+ isSystemUser = true;
+ home = cfg.dataDir;
+ };
+ };
+ groups = lib.mkIf (group == "davis") { davis = { }; };
+ };
+
+ systemd.tmpfiles.rules = [
+ "d ${cfg.dataDir} 0710 ${user} ${group} - -"
+ "d ${cfg.dataDir}/var 0700 ${user} ${group} - -"
+ "d ${cfg.dataDir}/var/log 0700 ${user} ${group} - -"
+ "d ${cfg.dataDir}/var/cache 0700 ${user} ${group} - -"
+ ];
+
+ services.phpfpm.pools.davis = {
+ inherit user group;
+ phpOptions = ''
+ log_errors = on
+ '';
+ phpEnv = {
+ ENV_DIR = "${cfg.dataDir}";
+ CACHE_DIR = "${cfg.dataDir}/var/cache";
+ #LOG_DIR = "${cfg.dataDir}/var/log";
+ };
+ settings =
+ {
+ "listen.mode" = "0660";
+ "pm" = "dynamic";
+ "pm.max_children" = 256;
+ "pm.start_servers" = 10;
+ "pm.min_spare_servers" = 5;
+ "pm.max_spare_servers" = 20;
+ }
+ // (
+ if cfg.nginx != null then
+ {
+ "listen.owner" = config.services.nginx.user;
+ "listen.group" = config.services.nginx.group;
+ }
+ else
+ { }
+ )
+ // cfg.poolConfig;
+ };
+
+ # Reading the user-provided secret files requires root access
+ systemd.services.davis-env-setup = {
+ description = "Setup davis environment";
+ before = [
+ "phpfpm-davis.service"
+ "davis-db-migrate.service"
+ ];
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig = {
+ Type = "oneshot";
+ RemainAfterExit = true;
+ };
+ path = [ pkgs.replace-secret ];
+ restartTriggers = [
+ cfg.package
+ davisEnv
+ ];
+ script = ''
+ # error handling
+ set -euo pipefail
+ # create .env file with the upstream values
+ install -T -m 0600 -o ${user} ${cfg.package}/env-upstream "${cfg.dataDir}/.env"
+ # create .env.local file with the user-provided values
+ install -T -m 0600 -o ${user} ${davisEnv} "${cfg.dataDir}/.env.local"
+ ${secretReplacements}
+ '';
+ };
+
+ systemd.services.davis-db-migrate = {
+ description = "Migrate davis database";
+ before = [ "phpfpm-davis.service" ];
+ after =
+ lib.optional mysqlLocal "mysql.service"
+ ++ lib.optional pgsqlLocal "postgresql.service"
+ ++ [ "davis-env-setup.service" ];
+ requires =
+ lib.optional mysqlLocal "mysql.service"
+ ++ lib.optional pgsqlLocal "postgresql.service"
+ ++ [ "davis-env-setup.service" ];
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig = defaultServiceConfig // {
+ Type = "oneshot";
+ RemainAfterExit = true;
+ Environment = [
+ "ENV_DIR=${cfg.dataDir}"
+ "CACHE_DIR=${cfg.dataDir}/var/cache"
+ "LOG_DIR=${cfg.dataDir}/var/log"
+ ];
+ EnvironmentFile = "${cfg.dataDir}/.env.local";
+ };
+ restartTriggers = [
+ cfg.package
+ davisEnv
+ ];
+ script = ''
+ set -euo pipefail
+ ${cfg.package}/bin/console cache:clear --no-debug
+ ${cfg.package}/bin/console cache:warmup --no-debug
+ ${cfg.package}/bin/console doctrine:migrations:migrate
+ '';
+ };
+
+ systemd.services.phpfpm-davis.after = [
+ "davis-env-setup.service"
+ "davis-db-migrate.service"
+ ];
+ systemd.services.phpfpm-davis.requires = [
+ "davis-env-setup.service"
+ "davis-db-migrate.service"
+ ] ++ lib.optional mysqlLocal "mysql.service" ++ lib.optional pgsqlLocal "postgresql.service";
+ systemd.services.phpfpm-davis.serviceConfig.ReadWritePaths = [ cfg.dataDir ];
+
+ services.nginx = lib.mkIf (cfg.nginx != null) {
+ enable = lib.mkDefault true;
+ virtualHosts = {
+ "${cfg.hostname}" = lib.mkMerge [
+ cfg.nginx
+ {
+ root = lib.mkForce "${cfg.package}/public";
+ extraConfig = ''
+ charset utf-8;
+ index index.php;
+ '';
+ locations = {
+ "/" = {
+ extraConfig = ''
+ try_files $uri $uri/ /index.php$is_args$args;
+ '';
+ };
+ "~* ^/.well-known/(caldav|carddav)$" = {
+ extraConfig = ''
+ return 302 $http_x_forwarded_proto://$host/dav/;
+ '';
+ };
+ "~ ^(.+\.php)(.*)$" = {
+ extraConfig = ''
+ try_files $fastcgi_script_name =404;
+ include ${config.services.nginx.package}/conf/fastcgi_params;
+ include ${config.services.nginx.package}/conf/fastcgi.conf;
+ fastcgi_pass unix:${config.services.phpfpm.pools.davis.socket};
+ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+ fastcgi_param PATH_INFO $fastcgi_path_info;
+ fastcgi_split_path_info ^(.+\.php)(.*)$;
+ fastcgi_param X-Forwarded-Proto $http_x_forwarded_proto;
+ fastcgi_param X-Forwarded-Port $http_x_forwarded_port;
+ '';
+ };
+ "~ /(\\.ht)" = {
+ extraConfig = ''
+ deny all;
+ return 404;
+ '';
+ };
+ };
+ }
+ ];
+ };
+ };
+
+ services.mysql = lib.mkIf mysqlLocal {
+ enable = true;
+ package = lib.mkDefault pkgs.mariadb;
+ ensureDatabases = [ db.name ];
+ ensureUsers = [
+ {
+ name = user;
+ ensurePermissions = {
+ "${db.name}.*" = "ALL PRIVILEGES";
+ };
+ }
+ ];
+ };
+
+ services.postgresql = lib.mkIf pgsqlLocal {
+ enable = true;
+ ensureDatabases = [ db.name ];
+ ensureUsers = [
+ {
+ name = user;
+ ensureDBOwnership = true;
+ }
+ ];
+ };
+ };
+
+ meta = {
+ doc = ./davis.md;
+ maintainers = pkgs.davis.meta.maintainers;
+ };
+}
diff --git a/nixos/modules/services/web-apps/outline.nix b/nixos/modules/services/web-apps/outline.nix
index 702755dfa2ab..09dd6f83f39a 100644
--- a/nixos/modules/services/web-apps/outline.nix
+++ b/nixos/modules/services/web-apps/outline.nix
@@ -783,6 +783,8 @@ in
# This working directory is required to find stuff like the set of
# onboarding files:
WorkingDirectory = "${cfg.package}/share/outline";
+ # In case this directory is not in /var/lib/outline, it needs to be made writable explicitly
+ ReadWritePaths = [ cfg.storage.localRootDir ];
};
};
};
diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix
index a8885aee78f2..aea6855f91c5 100644
--- a/nixos/modules/system/boot/systemd.nix
+++ b/nixos/modules/system/boot/systemd.nix
@@ -47,6 +47,9 @@ let
"rescue.target"
"rescue.service"
+ # systemd-debug-generator
+ "debug-shell.service"
+
# Udev.
"systemd-tmpfiles-setup-dev-early.service"
"systemd-udevd-control.socket"
diff --git a/nixos/modules/system/boot/systemd/initrd.nix b/nixos/modules/system/boot/systemd/initrd.nix
index 06359f273846..6546b500ed98 100644
--- a/nixos/modules/system/boot/systemd/initrd.nix
+++ b/nixos/modules/system/boot/systemd/initrd.nix
@@ -18,10 +18,10 @@ let
cfg = config.boot.initrd.systemd;
- # Copied from fedora
upstreamUnits = [
"basic.target"
"ctrl-alt-del.target"
+ "debug-shell.service"
"emergency.service"
"emergency.target"
"final.target"
@@ -398,7 +398,8 @@ in {
++ lib.optional (config.boot.initrd.systemd.root == "gpt-auto") "rw";
boot.initrd.systemd = {
- initrdBin = [pkgs.bash pkgs.coreutils cfg.package.kmod cfg.package];
+ # bashInteractive is easier to use and also required by debug-shell.service
+ initrdBin = [pkgs.bashInteractive pkgs.coreutils cfg.package.kmod cfg.package];
extraBin = {
less = "${pkgs.less}/bin/less";
mount = "${cfg.package.util-linux}/bin/mount";
@@ -472,6 +473,9 @@ in {
"${cfg.package.util-linux}/bin/umount"
"${cfg.package.util-linux}/bin/sulogin"
+ # required for script services
+ "${pkgs.runtimeShell}"
+
# so NSS can look up usernames
"${pkgs.glibc}/lib/libnss_files.so.2"
] ++ optionals (cfg.package.withCryptsetup && cfg.enableTpm2) [
diff --git a/nixos/modules/tasks/filesystems/nfs.nix b/nixos/modules/tasks/filesystems/nfs.nix
index 462568b5db3e..a447eef37f9a 100644
--- a/nixos/modules/tasks/filesystems/nfs.nix
+++ b/nixos/modules/tasks/filesystems/nfs.nix
@@ -13,7 +13,46 @@ let
format = pkgs.formats.ini {};
idmapdConfFile = format.generate "idmapd.conf" cfg.idmapd.settings;
- nfsConfFile = pkgs.writeText "nfs.conf" cfg.extraConfig;
+
+ # merge parameters from services.nfs.server
+ nfsConfSettings =
+ optionalAttrs (cfg.server.nproc != null) {
+ nfsd.threads = cfg.server.nproc;
+ } // optionalAttrs (cfg.server.hostName != null) {
+ nfsd.host= cfg.hostName;
+ } // optionalAttrs (cfg.server.mountdPort != null) {
+ mountd.port = cfg.server.mountdPort;
+ } // optionalAttrs (cfg.server.statdPort != null) {
+ statd.port = cfg.server.statdPort;
+ } // optionalAttrs (cfg.server.lockdPort != null) {
+ lockd.port = cfg.server.lockdPort;
+ lockd.udp-port = cfg.server.lockdPort;
+ };
+
+ nfsConfDeprecated = cfg.extraConfig + ''
+ [nfsd]
+ threads=${toString cfg.server.nproc}
+ ${optionalString (cfg.server.hostName != null) "host=${cfg.server.hostName}"}
+ ${cfg.server.extraNfsdConfig}
+
+ [mountd]
+ ${optionalString (cfg.server.mountdPort != null) "port=${toString cfg.server.mountdPort}"}
+
+ [statd]
+ ${optionalString (cfg.server.statdPort != null) "port=${toString cfg.server.statdPort}"}
+
+ [lockd]
+ ${optionalString (cfg.server.lockdPort != null) ''
+ port=${toString cfg.server.lockdPort}
+ udp-port=${toString cfg.server.lockdPort}
+ ''}
+ '';
+
+ nfsConfFile =
+ if cfg.settings != {}
+ then format.generate "nfs.conf" (recursiveUpdate nfsConfSettings cfg.settings)
+ else pkgs.writeText "nfs.conf" nfsConfDeprecated;
+
requestKeyConfFile = pkgs.writeText "request-key.conf" ''
create id_resolver * * ${pkgs.nfs-utils}/bin/nfsidmap -t 600 %k %d
'';
@@ -46,6 +85,19 @@ in
}
'';
};
+ settings = mkOption {
+ type = format.type;
+ default = {};
+ description = lib.mdDoc ''
+ General configuration for NFS daemons and tools.
+ See nfs.conf(5) and related man pages for details.
+ '';
+ example = literalExpression ''
+ {
+ mountd.manage-gids = true;
+ }
+ '';
+ };
extraConfig = mkOption {
type = types.lines;
default = "";
@@ -60,6 +112,17 @@ in
config = mkIf (config.boot.supportedFilesystems.nfs or config.boot.supportedFilesystems.nfs4 or false) {
+ warnings =
+ (optional (cfg.extraConfig != "") ''
+ `services.nfs.extraConfig` is deprecated. Use `services.nfs.settings` instead.
+ '') ++ (optional (cfg.server.extraNfsdConfig != "") ''
+ `services.nfs.server.extraNfsdConfig` is deprecated. Use `services.nfs.settings` instead.
+ '');
+ assertions = [{
+ assertion = cfg.settings != {} -> cfg.extraConfig == "" && cfg.server.extraNfsdConfig == "";
+ message = "`services.nfs.settings` cannot be used together with `services.nfs.extraConfig` and `services.nfs.server.extraNfsdConfig`.";
+ }];
+
services.rpcbind.enable = true;
services.nfs.idmapd.settings = {
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 204775c5d444..80edf70ee11c 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -233,6 +233,7 @@ in {
croc = handleTest ./croc.nix {};
darling = handleTest ./darling.nix {};
dae = handleTest ./dae.nix {};
+ davis = handleTest ./davis.nix {};
dconf = handleTest ./dconf.nix {};
deconz = handleTest ./deconz.nix {};
deepin = handleTest ./deepin.nix {};
diff --git a/nixos/tests/davis.nix b/nixos/tests/davis.nix
new file mode 100644
index 000000000000..68958cee7a43
--- /dev/null
+++ b/nixos/tests/davis.nix
@@ -0,0 +1,59 @@
+import ./make-test-python.nix (
+ { lib, pkgs, ... }:
+
+ {
+ name = "davis";
+
+ meta.maintainers = pkgs.davis.meta.maintainers;
+
+ nodes.machine =
+ { config, ... }:
+ {
+ virtualisation = {
+ memorySize = 512;
+ };
+
+ services.davis = {
+ enable = true;
+ hostname = "davis.example.com";
+ database = {
+ driver = "postgresql";
+ };
+ mail = {
+ dsnFile = "${pkgs.writeText "davisMailDns" "smtp://username:password@example.com:25"}";
+ inviteFromAddress = "dav@example.com";
+ };
+ adminLogin = "admin";
+ appSecretFile = "${pkgs.writeText "davisAppSecret" "52882ef142066e09ab99ce816ba72522e789505caba224"}";
+ adminPasswordFile = "${pkgs.writeText "davisAdminPass" "nixos"}";
+ nginx = { };
+ };
+ };
+
+ testScript = ''
+ start_all()
+ machine.wait_for_unit("postgresql.service")
+ machine.wait_for_unit("davis-env-setup.service")
+ machine.wait_for_unit("davis-db-migrate.service")
+ machine.wait_for_unit("nginx.service")
+ machine.wait_for_unit("phpfpm-davis.service")
+
+ with subtest("welcome screen loads"):
+ machine.succeed(
+ "curl -sSfL --resolve davis.example.com:80:127.0.0.1 http://davis.example.com/ | grep '
Davis'"
+ )
+
+ with subtest("login works"):
+ csrf_token = machine.succeed(
+ "curl -c /tmp/cookies -sSfL --resolve davis.example.com:80:127.0.0.1 http://davis.example.com/login | grep '_csrf_token' | sed -E 's,.*value=\"(.*)\".*,\\1,g'"
+ )
+ r = machine.succeed(
+ f"curl -b /tmp/cookies --resolve davis.example.com:80:127.0.0.1 http://davis.example.com/login -X POST -F username=admin -F password=nixos -F _csrf_token={csrf_token.strip()} -D headers"
+ )
+ print(r)
+ machine.succeed(
+ "[[ $(grep -i 'location: ' headers | cut -d: -f2- | xargs echo) == /dashboard* ]]"
+ )
+ '';
+ }
+)
diff --git a/pkgs/applications/audio/go-musicfox/default.nix b/pkgs/applications/audio/go-musicfox/default.nix
index 3d67cb7d46e9..944b2aa1aef1 100644
--- a/pkgs/applications/audio/go-musicfox/default.nix
+++ b/pkgs/applications/audio/go-musicfox/default.nix
@@ -9,18 +9,18 @@
buildGoModule rec {
pname = "go-musicfox";
- version = "4.3.1";
+ version = "4.3.3";
src = fetchFromGitHub {
owner = "go-musicfox";
- repo = pname;
+ repo = "go-musicfox";
rev = "v${version}";
- hash = "sha256-QZHuQAOnthSm7Kb82i3NUWTnKk+9OMHV5vzOU72inX0=";
+ hash = "sha256-J6R3T92cHFUkKwc+GKm612tVjglP2Tc/kDUmzUMhvio=";
};
deleteVendor = true;
- vendorHash = "sha256-6DeoxpjVfykBI3fJAJpMZwJ4VTooIbxGpk5+SW198hU=";
+ vendorHash = "sha256-KSIdBEEvYaYcDIDmzfRO857I8FSN4Ajw6phAPQLYEqg=";
subPackages = [ "cmd/musicfox.go" ];
diff --git a/pkgs/applications/audio/pwvucontrol/Cargo.lock b/pkgs/applications/audio/pwvucontrol/Cargo.lock
index 035a6d9af2f8..c894d9222ae7 100644
--- a/pkgs/applications/audio/pwvucontrol/Cargo.lock
+++ b/pkgs/applications/audio/pwvucontrol/Cargo.lock
@@ -4,18 +4,18 @@ version = 3
[[package]]
name = "aho-corasick"
-version = "1.0.3"
+version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86b8f9420f797f2d9e935edf629310eb938a0d839f984e25327f3c7eed22300c"
+checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a"
dependencies = [
"memchr",
]
[[package]]
name = "anyhow"
-version = "1.0.72"
+version = "1.0.75"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854"
+checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
[[package]]
name = "autocfg"
@@ -25,11 +25,11 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
[[package]]
name = "bindgen"
-version = "0.64.0"
+version = "0.66.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4"
+checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7"
dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.0",
"cexpr",
"clang-sys",
"lazy_static",
@@ -40,7 +40,7 @@ dependencies = [
"regex",
"rustc-hash",
"shlex",
- "syn 1.0.109",
+ "syn 2.0.29",
]
[[package]]
@@ -51,9 +51,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitflags"
-version = "2.3.3"
+version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
[[package]]
name = "bitmaps"
@@ -76,7 +76,7 @@ version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d859b656775a6b1dd078d3e5924884e6ea88aa649a7fdde03d5b2ec56ffcc10b"
dependencies = [
- "bitflags 2.3.3",
+ "bitflags 2.4.0",
"cairo-sys-rs",
"glib",
"libc",
@@ -137,6 +137,7 @@ checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
dependencies = [
"glob",
"libc",
+ "libloading",
]
[[package]]
@@ -226,7 +227,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.28",
+ "syn 2.0.29",
]
[[package]]
@@ -287,9 +288,9 @@ dependencies = [
[[package]]
name = "gdk4"
-version = "0.7.1"
+version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8965ed5455cbfa1eb45c14a3b971cbacb43481913a3a5b9078b2ef0d9a01bd4b"
+checksum = "6982d9815ed6ac95b0467b189e81f29dea26d08a732926ec113e65744ed3f96c"
dependencies = [
"cairo-rs",
"gdk-pixbuf",
@@ -302,9 +303,9 @@ dependencies = [
[[package]]
name = "gdk4-sys"
-version = "0.7.1"
+version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aeffd4a7d68046c28666d817071bf025254aaed4df35099443f0c306ca6177f3"
+checksum = "dbab43f332a3cf1df9974da690b5bb0e26720ed09a228178ce52175372dcfef0"
dependencies = [
"cairo-sys-rs",
"gdk-pixbuf-sys",
@@ -375,7 +376,7 @@ version = "0.18.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "331156127e8166dd815cf8d2db3a5beb492610c716c03ee6db4f2d07092af0a7"
dependencies = [
- "bitflags 2.3.3",
+ "bitflags 2.4.0",
"futures-channel",
"futures-core",
"futures-executor",
@@ -404,7 +405,7 @@ dependencies = [
"proc-macro-error",
"proc-macro2",
"quote",
- "syn 2.0.28",
+ "syn 2.0.29",
]
[[package]]
@@ -459,9 +460,9 @@ dependencies = [
[[package]]
name = "gsk4"
-version = "0.7.1"
+version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53b3b9e8090acb325d08cde84b30fc29b963a75fbac93160e9c5a30d2b335742"
+checksum = "cc25855255120f294d874acd6eaf4fbed7ce1cdc550e2d8415ea57fafbe816d5"
dependencies = [
"cairo-rs",
"gdk4",
@@ -474,9 +475,9 @@ dependencies = [
[[package]]
name = "gsk4-sys"
-version = "0.7.0"
+version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0770d1ede7189092748c4ef5b6921264eb945fd2318a58e8f59dc273000810f8"
+checksum = "e1ecf3a63bf1223d68f80f72cc896c4d8c80482fbce1c9a12c66d3de7290ee46"
dependencies = [
"cairo-sys-rs",
"gdk4-sys",
@@ -490,9 +491,9 @@ dependencies = [
[[package]]
name = "gtk4"
-version = "0.7.1"
+version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0973f9b9ade10fc22403810b7283d47b533033715f2aaa36288cd3bf90d63efc"
+checksum = "a3b095b26f2a2df70be1805d3590eeb9d7a05ecb5be9649b82defc72dc56228c"
dependencies = [
"cairo-rs",
"field-offset",
@@ -511,9 +512,9 @@ dependencies = [
[[package]]
name = "gtk4-macros"
-version = "0.7.1"
+version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae9f2c4530f3168fe506b0be7bc15f7a93ef38d020edb27d81a921a26cbca851"
+checksum = "d57ec49cf9b657f69a05bca8027cff0a8dfd0c49e812be026fc7311f2163832f"
dependencies = [
"anyhow",
"proc-macro-crate",
@@ -525,9 +526,9 @@ dependencies = [
[[package]]
name = "gtk4-sys"
-version = "0.7.0"
+version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19fde71ef2e78ac8fb18073c345b5f29609048d4045a345613645aa1163243c1"
+checksum = "7b0bdde87c50317b4f355bcbb4a9c2c414ece1b7c824fb4ad4ba8f3bdb2c6603"
dependencies = [
"cairo-sys-rs",
"gdk-pixbuf-sys",
@@ -629,11 +630,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
[[package]]
-name = "libspa"
-version = "0.6.0"
-source = "git+https://gitlab.freedesktop.org/saivert/pipewire-rs?branch=misc_fixes#46bfbd8bdf0ad3ff1d25d02b2e36f97333c78e23"
+name = "libloading"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
dependencies = [
- "bitflags 2.3.3",
+ "cfg-if",
+ "winapi",
+]
+
+[[package]]
+name = "libspa"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcdea6b6663acf456641a4dea1b87fa6970a3e881596237713192d8f5423b542"
+dependencies = [
+ "bitflags 2.4.0",
"cc",
"convert_case",
"cookie-factory",
@@ -646,8 +658,9 @@ dependencies = [
[[package]]
name = "libspa-sys"
-version = "0.6.0"
-source = "git+https://gitlab.freedesktop.org/saivert/pipewire-rs?branch=misc_fixes#46bfbd8bdf0ad3ff1d25d02b2e36f97333c78e23"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e63fc701d3375e6e255765d6a6172d9af06583115e78f3dfe2c8ff1dfd0b2dab"
dependencies = [
"bindgen",
"cc",
@@ -669,9 +682,9 @@ dependencies = [
[[package]]
name = "log"
-version = "0.4.19"
+version = "0.4.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
[[package]]
name = "malloc_buf"
@@ -816,11 +829,12 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
[[package]]
name = "pipewire"
-version = "0.6.0"
-source = "git+https://gitlab.freedesktop.org/saivert/pipewire-rs?branch=misc_fixes#46bfbd8bdf0ad3ff1d25d02b2e36f97333c78e23"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "062c97c31818918b8bffdc66cfd93f3e4b4141f505c63234f9ff0a658fddedab"
dependencies = [
"anyhow",
- "bitflags 2.3.3",
+ "bitflags 2.4.0",
"libc",
"libspa",
"libspa-sys",
@@ -832,8 +846,9 @@ dependencies = [
[[package]]
name = "pipewire-sys"
-version = "0.6.0"
-source = "git+https://gitlab.freedesktop.org/saivert/pipewire-rs?branch=misc_fixes#46bfbd8bdf0ad3ff1d25d02b2e36f97333c78e23"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d558e2cffe5f97ac32c7e0b6cb6074b5271b8c2c628ac68633342ee08fdab308"
dependencies = [
"bindgen",
"libspa-sys",
@@ -908,9 +923,9 @@ dependencies = [
[[package]]
name = "quote"
-version = "1.0.32"
+version = "1.0.33"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965"
+checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
dependencies = [
"proc-macro2",
]
@@ -1045,9 +1060,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "2.0.28"
+version = "2.0.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567"
+checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a"
dependencies = [
"proc-macro2",
"quote",
@@ -1081,22 +1096,22 @@ checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab"
[[package]]
name = "thiserror"
-version = "1.0.44"
+version = "1.0.47"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90"
+checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.44"
+version = "1.0.47"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96"
+checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.28",
+ "syn 2.0.29",
]
[[package]]
@@ -1187,9 +1202,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "winnow"
-version = "0.5.4"
+version = "0.5.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acaaa1190073b2b101e15083c38ee8ec891b5e05cbee516521e94ec008f61e64"
+checksum = "d09770118a7eb1ccaf4a594a221334119a44a814fcb0d31c5b85e83e97227a97"
dependencies = [
"memchr",
]
@@ -1197,9 +1212,9 @@ dependencies = [
[[package]]
name = "wireplumber"
version = "0.1.0"
-source = "git+https://github.com/saivert/wireplumber.rs.git?branch=use_pipewire_from_git#8dbf383ce54dee7b8d578b87c13f3507a65291f8"
+source = "git+https://github.com/arcnmx/wireplumber.rs.git?rev=341b0c4e8d177f5f21c109cf88cca4f2dc1f853a#341b0c4e8d177f5f21c109cf88cca4f2dc1f853a"
dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.0",
"gio",
"glib",
"libc",
@@ -1213,7 +1228,7 @@ dependencies = [
[[package]]
name = "wireplumber-sys"
version = "0.1.0"
-source = "git+https://github.com/saivert/wireplumber.rs.git?branch=use_pipewire_from_git#8dbf383ce54dee7b8d578b87c13f3507a65291f8"
+source = "git+https://github.com/arcnmx/wireplumber.rs.git?rev=341b0c4e8d177f5f21c109cf88cca4f2dc1f853a#341b0c4e8d177f5f21c109cf88cca4f2dc1f853a"
dependencies = [
"gio-sys",
"glib-sys",
diff --git a/pkgs/applications/audio/pwvucontrol/default.nix b/pkgs/applications/audio/pwvucontrol/default.nix
index 935fadb5f2fb..ae631e1ff516 100644
--- a/pkgs/applications/audio/pwvucontrol/default.nix
+++ b/pkgs/applications/audio/pwvucontrol/default.nix
@@ -1,6 +1,7 @@
{ lib
, stdenv
, fetchFromGitHub
+, fetchFromGitLab
, cargo
, desktop-file-utils
, meson
@@ -19,22 +20,33 @@
, wireplumber
}:
+let
+ wireplumber_0_4 = wireplumber.overrideAttrs (attrs: rec {
+ version = "0.4.17";
+ src = fetchFromGitLab {
+ domain = "gitlab.freedesktop.org";
+ owner = "pipewire";
+ repo = "wireplumber";
+ rev = version;
+ hash = "sha256-vhpQT67+849WV1SFthQdUeFnYe/okudTQJoL3y+wXwI=";
+ };
+ });
+in
stdenv.mkDerivation rec {
pname = "pwvucontrol";
- version = "0.2";
+ version = "0.3.1";
src = fetchFromGitHub {
owner = "saivert";
repo = "pwvucontrol";
rev = version;
- hash = "sha256-jBvMLewBZi4LyX//YUyJQjqPvxnKqlpuLZAm9zpDMrA=";
+ hash = "sha256-t4JUpKtuO1JgrdsNbl0M/SwPmoqu7WxsaD74vlJeVhY=";
};
cargoDeps = rustPlatform.importCargoLock {
lockFile = ./Cargo.lock;
outputHashes = {
- "libspa-0.6.0" = "sha256-CVLQ9JXRMo78/kay1TpRgRuk5v/Z5puPVMzLA30JRk8=";
- "wireplumber-0.1.0" = "sha256-wkku9vqIMdV+HTkWCPXKH2KM1Xzf0xApC5zrVmgxhsA=";
+ "wireplumber-0.1.0" = "sha256-+LZ8xKok2AOegW8WvfrfZGXuQB4xHrLNshcTOHab+xQ=";
};
};
@@ -58,7 +70,7 @@ stdenv.mkDerivation rec {
libadwaita
pango
pipewire
- wireplumber
+ wireplumber_0_4
];
meta = with lib; {
diff --git a/pkgs/applications/audio/ytmdesktop/default.nix b/pkgs/applications/audio/ytmdesktop/default.nix
deleted file mode 100644
index 534bee41a983..000000000000
--- a/pkgs/applications/audio/ytmdesktop/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib, fetchurl, appimageTools, }:
-
-let
- pname = "ytmdesktop";
- version = "1.13.0";
- name = "${pname}-${version}";
-
- src = fetchurl {
- url = "https://github.com/ytmdesktop/ytmdesktop/releases/download/v${version}/YouTube-Music-Desktop-App-${version}.AppImage";
- sha256 = "0f5l7hra3m3q9zd0ngc9dj4mh1lk0rgicvh9idpd27wr808vy28v";
- };
-
- appimageContents = appimageTools.extract { inherit name src; };
-in appimageTools.wrapType2 rec {
- inherit name src;
-
- extraInstallCommands = ''
- mv $out/bin/{${name},${pname}}
-
- install -m 444 \
- -D ${appimageContents}/youtube-music-desktop-app.desktop \
- -t $out/share/applications
- substituteInPlace \
- $out/share/applications/youtube-music-desktop-app.desktop \
- --replace 'Exec=AppRun' 'Exec=${pname}'
- cp -r ${appimageContents}/usr/share/icons $out/share
- '';
-
- meta = with lib; {
- description = "A Desktop App for YouTube Music";
- homepage = "https://ytmdesktop.app/";
- license = licenses.cc0;
- platforms = platforms.linux;
- maintainers = [ maintainers.lgcl ];
- mainProgram = "ytmdesktop";
- };
-}
diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix
index c274f1c14050..37fa8725ae52 100644
--- a/pkgs/applications/editors/vscode/extensions/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/default.nix
@@ -997,26 +997,26 @@ let
sources = {
"x86_64-linux" = {
arch = "linux-x64";
- sha256 = "05kh6sf3jv3510q33chf8s5n1kfp9wcm7650va7mcrdkfr9g8ysq";
+ sha256 = "1y5g8ay9sfz7r21fhwb2wr28yng7w3f2l265ljnfkz8yv8qzqpgk";
};
"x86_64-darwin" = {
arch = "darwin-x64";
- sha256 = "0242h9kq47qvs1xynr5x8dzxkc5pwgb6km0iqpyy9kydg8ng1vp3";
+ sha256 = "14v9p5k9c9s9hfb1ymmkp66kmm9pvnvvljzrrs9wmajss5mlglf5";
};
"aarch64-linux" = {
arch = "linux-arm64";
- sha256 = "1qm3f2lh8mi3hnyp2bmx7j2lir6fmbbxkzh6b8zf579khhbapnaz";
+ sha256 = "1mngfy42crp8xs14s06rkyzv16ci12bq8y39miyy7wa3a343b0ii";
};
"aarch64-darwin" = {
arch = "darwin-arm64";
- sha256 = "18w22z1c5qgkpw2zlwmi9gs9dx1pcm51f0r8my7ynnvgl6mp12sg";
+ sha256 = "1gd1kr91s52kc8ldzy78cbn6gix1b8cvd6jh4sfrhq7k8yyn7g1l";
};
};
in
{
name = "continue";
publisher = "Continue";
- version = "0.8.12";
+ version = "0.8.22";
} // sources.${stdenv.system};
nativeBuildInputs = [
autoPatchelfHook
diff --git a/pkgs/applications/editors/vscode/vscode.nix b/pkgs/applications/editors/vscode/vscode.nix
index 5d7342c823cf..0f7d8562e245 100644
--- a/pkgs/applications/editors/vscode/vscode.nix
+++ b/pkgs/applications/editors/vscode/vscode.nix
@@ -7,7 +7,7 @@
, isInsiders ? false
# sourceExecutableName is the name of the binary in the source archive over
# which we have no control and it is needed to run the insider version as
-# documented in https://nixos.wiki/wiki/Visual_Studio_Code#Insiders_Build
+# documented in https://wiki.nixos.org/wiki/Visual_Studio_Code#Insiders_Build
# On MacOS the insider binary is still called code instead of code-insiders as
# of 2023-08-06.
, sourceExecutableName ? "code" + lib.optionalString (isInsiders && stdenv.isLinux) "-insiders"
diff --git a/pkgs/applications/misc/diebahn/default.nix b/pkgs/applications/misc/diebahn/default.nix
index a934f0349cd2..52a004a83017 100644
--- a/pkgs/applications/misc/diebahn/default.nix
+++ b/pkgs/applications/misc/diebahn/default.nix
@@ -74,6 +74,6 @@ stdenv.mkDerivation rec {
homepage = "https://gitlab.com/schmiddi-on-mobile/railway";
license = lib.licenses.gpl3Plus;
mainProgram = "diebahn";
- maintainers = with lib.maintainers; [ dotlambda ];
+ maintainers = with lib.maintainers; [ dotlambda lilacious ];
};
}
diff --git a/pkgs/applications/misc/gollum/Gemfile.lock b/pkgs/applications/misc/gollum/Gemfile.lock
index fc707ca3c547..007084e44aa0 100644
--- a/pkgs/applications/misc/gollum/Gemfile.lock
+++ b/pkgs/applications/misc/gollum/Gemfile.lock
@@ -1,18 +1,19 @@
GEM
remote: https://rubygems.org/
specs:
- RedCloth (4.3.2)
- asciidoctor (2.0.18)
+ RedCloth (4.3.4)
+ asciidoctor (2.0.22)
+ base64 (0.2.0)
builder (3.2.4)
- concurrent-ruby (1.2.2)
+ concurrent-ruby (1.2.3)
crass (1.0.6)
creole (0.5.0)
- execjs (2.8.1)
+ execjs (2.9.1)
expression_parser (0.9.0)
- ffi (1.15.5)
+ ffi (1.16.3)
gemojione (4.3.3)
json
- github-markup (4.0.1)
+ github-markup (4.0.2)
gollum (5.3.2)
gemojione (~> 4.1)
gollum-lib (>= 5.2.3, < 6.0)
@@ -45,51 +46,51 @@ GEM
mime-types (~> 3.4)
rugged (~> 1.5)
htmlentities (4.3.4)
- i18n (1.13.0)
+ i18n (1.14.4)
concurrent-ruby (~> 1.0)
- json (2.6.3)
+ json (2.7.1)
kramdown (2.4.0)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
- loofah (2.20.0)
+ loofah (2.22.0)
crass (~> 1.0.2)
- nokogiri (>= 1.5.9)
- mime-types (3.4.1)
+ nokogiri (>= 1.12.0)
+ mime-types (3.5.2)
mime-types-data (~> 3.2015)
- mime-types-data (3.2023.0218.1)
- mini_portile2 (2.8.2)
+ mime-types-data (3.2024.0305)
+ mini_portile2 (2.8.5)
multi_json (1.15.0)
mustache (1.1.1)
mustache-sinatra (2.0.0)
mustache (~> 1.0)
mustermann (2.0.2)
ruby2_keywords (~> 0.0.1)
- nokogiri (1.14.3)
- mini_portile2 (~> 2.8.0)
+ nokogiri (1.16.3)
+ mini_portile2 (~> 2.8.2)
racc (~> 1.4)
octicons (12.1.0)
nokogiri (>= 1.6.3.1)
org-ruby (0.9.12)
rubypants (~> 0.2)
- psych (5.1.0)
+ psych (5.1.2)
stringio
- racc (1.6.2)
- rack (2.2.7)
+ racc (1.7.3)
+ rack (2.2.9)
rack-protection (2.2.4)
rack
rb-fsevent (0.11.2)
rb-inotify (0.10.1)
ffi (~> 1.0)
- rdoc (6.5.0)
+ rdoc (6.6.3.1)
psych (>= 4.0.0)
- rexml (3.2.5)
+ rexml (3.2.6)
rouge (3.30.0)
rss (0.2.9)
rexml
ruby2_keywords (0.0.5)
rubypants (0.7.1)
- rugged (1.6.3)
+ rugged (1.7.2)
sass (3.7.4)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)
@@ -106,23 +107,24 @@ GEM
rack-protection (= 2.2.4)
sinatra (= 2.2.4)
tilt (~> 2.0)
- sprockets (3.7.2)
+ sprockets (3.7.3)
+ base64
concurrent-ruby (~> 1.0)
rack (> 1, < 3)
sprockets-helpers (1.4.0)
sprockets (>= 2.2)
- stringio (3.0.6)
+ stringio (3.1.0)
therubyrhino (2.1.2)
therubyrhino_jar (>= 1.7.4, < 1.7.9)
therubyrhino_jar (1.7.8)
- tilt (2.1.0)
+ tilt (2.3.0)
twitter-text (1.14.7)
unf (~> 0.1.0)
uglifier (4.2.0)
execjs (>= 0.3.0, < 3)
unf (0.1.4)
unf_ext
- unf_ext (0.0.8.2)
+ unf_ext (0.0.9.1)
useragent (0.16.10)
webrick (1.8.1)
wikicloth (0.8.3)
@@ -144,4 +146,4 @@ DEPENDENCIES
wikicloth
BUNDLED WITH
- 2.4.12
+ 2.5.6
diff --git a/pkgs/applications/misc/gollum/gemset.nix b/pkgs/applications/misc/gollum/gemset.nix
index 8d106d5bc8b9..95533bffd107 100644
--- a/pkgs/applications/misc/gollum/gemset.nix
+++ b/pkgs/applications/misc/gollum/gemset.nix
@@ -4,10 +4,20 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "11z3vnd8vh3ny1vx69bjrbck5b2g8zsbj94npyadpn7fdp8y3ldv";
+ sha256 = "1mnan6dxw4aqii9kcmp1s3sc91jiwaqkdpsg6g01fdisb6xz3n56";
type = "gem";
};
- version = "2.0.18";
+ version = "2.0.22";
+ };
+ base64 = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g";
+ type = "gem";
+ };
+ version = "0.2.0";
};
builder = {
groups = ["default"];
@@ -24,10 +34,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0krcwb6mn0iklajwngwsg850nk8k9b35dhmc2qkbdqvmifdi2y9q";
+ sha256 = "1qh1b14jwbbj242klkyz5fc7npd4j0mvndz62gajhvl1l3wd7zc2";
type = "gem";
};
- version = "1.2.2";
+ version = "1.2.3";
};
crass = {
groups = ["default"];
@@ -54,10 +64,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "121h6af4i6wr3wxvv84y53jcyw2sk71j5wsncm6wq6yqrwcrk4vd";
+ sha256 = "1yywajqlpjhrj1m43s3lfg3i4lkb6pxwccmwps7qw37ndmphdzg8";
type = "gem";
};
- version = "2.8.1";
+ version = "2.9.1";
};
expression_parser = {
groups = ["default"];
@@ -74,10 +84,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1862ydmclzy1a0cjbvm8dz7847d9rch495ib0zb64y84d3xd4bkg";
+ sha256 = "1yvii03hcgqj30maavddqamqy50h7y6xcn2wcyq72wn823zl4ckd";
type = "gem";
};
- version = "1.15.5";
+ version = "1.16.3";
};
gemojione = {
dependencies = ["json"];
@@ -95,10 +105,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0p40hbrrzq9gypkx0p8wqdqa2gfmmw2cd9a0sv2dw1nnk1qbcl8y";
+ sha256 = "0mv2l0h3v5g4cwqh2lgb3braafh8n3v2s84i573wi5m79f4qhw1z";
type = "gem";
};
- version = "4.0.1";
+ version = "4.0.2";
};
gollum = {
dependencies = ["gemojione" "gollum-lib" "i18n" "kramdown" "kramdown-parser-gfm" "mustache-sinatra" "octicons" "rdoc" "rss" "sass" "sinatra" "sinatra-contrib" "sprockets" "sprockets-helpers" "therubyrhino" "uglifier" "useragent" "webrick"];
@@ -149,20 +159,20 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1yk33slipi3i1kydzrrchbi7cgisaxym6pgwlzx7ir8vjk6wl90x";
+ sha256 = "0lbm33fpb3w06wd2231sg58dwlwgjsvym93m548ajvl6s3mfvpn7";
type = "gem";
};
- version = "1.13.0";
+ version = "1.14.4";
};
json = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0nalhin1gda4v8ybk6lq8f407cgfrj6qzn234yra4ipkmlbfmal6";
+ sha256 = "0r9jmjhg2ly3l736flk7r2al47b5c8cayh0gqkq0yhjqzc9a6zhq";
type = "gem";
};
- version = "2.6.3";
+ version = "2.7.1";
};
kramdown = {
dependencies = ["rexml"];
@@ -192,10 +202,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1mi4ia13fisc97fzd8xcd9wkjdki7zfbmdn1xkdzplicir68gyp8";
+ sha256 = "1zkjqf37v2d7s11176cb35cl83wls5gm3adnfkn2zcc61h3nxmqh";
type = "gem";
};
- version = "2.20.0";
+ version = "2.22.0";
};
mime-types = {
dependencies = ["mime-types-data"];
@@ -203,30 +213,30 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0ipw892jbksbxxcrlx9g5ljq60qx47pm24ywgfbyjskbcl78pkvb";
+ sha256 = "1r64z0m5zrn4k37wabfnv43wa6yivgdfk6cf2rpmmirlz889yaf1";
type = "gem";
};
- version = "3.4.1";
+ version = "3.5.2";
};
mime-types-data = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1pky3vzaxlgm9gw5wlqwwi7wsw3jrglrfflrppvvnsrlaiz043z9";
+ sha256 = "00x7w5xqsj9m33v3vkmy23wipkkysafksib53ypzn27p5g81w455";
type = "gem";
};
- version = "3.2023.0218.1";
+ version = "3.2024.0305";
};
mini_portile2 = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0z7f38iq37h376n9xbl4gajdrnwzq284c9v1py4imw3gri2d5cj6";
+ sha256 = "1kl9c3kdchjabrihdqfmcplk3lq4cw1rr9f378y6q22qwy5dndvs";
type = "gem";
};
- version = "2.8.2";
+ version = "2.8.5";
};
multi_json = {
groups = ["default"];
@@ -276,10 +286,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0fnw0z8zl8b5k35g9m5hhc1g4s6ajzjinhyxnqjrx7l7p07fw71v";
+ sha256 = "0j72sg8n8834vbw2x8glcp46y5r2dls2pj64ll7rmf6mri9s52j9";
type = "gem";
};
- version = "1.14.3";
+ version = "1.16.3";
};
octicons = {
dependencies = ["nokogiri"];
@@ -309,30 +319,30 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1msambb54r3d1sg6smyj4k2pj9h9lz8jq4jamip7ivcyv32a85vz";
+ sha256 = "0s5383m6004q76xm3lb732bp4sjzb6mxb6rbgn129gy2izsj4wrk";
type = "gem";
};
- version = "5.1.0";
+ version = "5.1.2";
};
racc = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "09jgz6r0f7v84a7jz9an85q8vvmp743dqcsdm3z9c8rqcqv6pljq";
+ sha256 = "01b9662zd2x9bp4rdjfid07h09zxj7kvn7f5fghbqhzc625ap1dp";
type = "gem";
};
- version = "1.6.2";
+ version = "1.7.3";
};
rack = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "16w217k9z02c4hqizym8dkj6bqmmzx4qdvqpnskgzf174a5pwdxk";
+ sha256 = "0hj0rkw2z9r1lcg2wlrcld2n3phwrcgqcp7qd1g9a7hwgalh2qzx";
type = "gem";
};
- version = "2.2.7";
+ version = "2.2.9";
};
rack-protection = {
dependencies = ["rack"];
@@ -372,30 +382,30 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "05r2cxscapr9saqjw8dlp89as7jvc2mlz1h5kssrmkbz105qmfcm";
+ sha256 = "0ib3cnf4yllvw070gr4bz94sbmqx3haqc5f846fsvdcs494vgxrr";
type = "gem";
};
- version = "6.5.0";
+ version = "6.6.3.1";
};
RedCloth = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0m9dv7ya9q93r8x1pg2gi15rxlbck8m178j1fz7r5v6wr1avrrqy";
+ sha256 = "15r2h7rfp4bi9i0bfmvgnmvmw0kl3byyac53rcakk4qsv7yv4caj";
type = "gem";
};
- version = "4.3.2";
+ version = "4.3.4";
};
rexml = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
+ sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
type = "gem";
};
- version = "3.2.5";
+ version = "3.2.6";
};
rouge = {
groups = ["default"];
@@ -443,10 +453,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "016bawsahkhxx7p8azxirpl7y2y7i8a027pj8910gwf6ipg329in";
+ sha256 = "1sccng15h8h3mcjxfgvxy85lfpswbj0nhmzwwsqdffbzqgsb2jch";
type = "gem";
};
- version = "1.6.3";
+ version = "1.7.2";
};
sass = {
dependencies = ["sass-listen"];
@@ -493,15 +503,15 @@
version = "2.2.4";
};
sprockets = {
- dependencies = ["concurrent-ruby" "rack"];
+ dependencies = ["base64" "concurrent-ruby" "rack"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay";
+ sha256 = "0lyc6mx4yalsnxc9yp4a5xra4nz1nwwbk5634wlfncml0ll1bnnw";
type = "gem";
};
- version = "3.7.2";
+ version = "3.7.3";
};
sprockets-helpers = {
dependencies = ["sprockets"];
@@ -519,10 +529,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "10w46rlh844kax248l1m3pyrj94n1qpc9691j8r5v0rzdxibpy7v";
+ sha256 = "063psvsn1aq6digpznxfranhcpmi0sdv2jhra5g0459sw0x2dxn1";
type = "gem";
};
- version = "3.0.6";
+ version = "3.1.0";
};
therubyrhino = {
dependencies = ["therubyrhino_jar"];
@@ -550,10 +560,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1qmhi6d9przjzhsyk9g5pq2j75c656msh6xzprqd2mxgphf23jxs";
+ sha256 = "0p3l7v619hwfi781l3r7ypyv1l8hivp09r18kmkn6g11c4yr1pc2";
type = "gem";
};
- version = "2.1.0";
+ version = "2.3.0";
};
twitter-text = {
dependencies = ["unf"];
@@ -593,10 +603,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1yj2nz2l101vr1x9w2k83a0fag1xgnmjwp8w8rw4ik2rwcz65fch";
+ sha256 = "1sf6bxvf6x8gihv6j63iakixmdddgls58cpxpg32chckb2l18qcj";
type = "gem";
};
- version = "0.0.8.2";
+ version = "0.0.9.1";
};
useragent = {
groups = ["default"];
diff --git a/pkgs/applications/misc/jekyll/basic/Gemfile.lock b/pkgs/applications/misc/jekyll/basic/Gemfile.lock
index 2c1206ca7004..2c7a76e29991 100644
--- a/pkgs/applications/misc/jekyll/basic/Gemfile.lock
+++ b/pkgs/applications/misc/jekyll/basic/Gemfile.lock
@@ -14,12 +14,11 @@ GEM
addressable (2.8.6)
public_suffix (>= 2.0.2, < 6.0)
base64 (0.2.0)
- bigdecimal (3.1.6)
+ bigdecimal (3.1.7)
colorator (1.1.0)
concurrent-ruby (1.2.3)
connection_pool (2.4.1)
- drb (2.2.0)
- ruby2_keywords
+ drb (2.2.1)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
@@ -27,12 +26,13 @@ GEM
ffi (1.16.3)
forwardable-extended (2.6.0)
gemoji (4.1.0)
- google-protobuf (3.25.3)
+ google-protobuf (4.26.1)
+ rake (>= 13)
html-pipeline (2.14.3)
activesupport (>= 2)
nokogiri (>= 1.4)
http_parser.rb (0.8.0)
- i18n (1.14.1)
+ i18n (1.14.4)
concurrent-ruby (~> 1.0)
jekyll (4.3.3)
addressable (~> 2.4)
@@ -77,9 +77,9 @@ GEM
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0)
mini_portile2 (2.8.5)
- minitest (5.22.2)
+ minitest (5.22.3)
mutex_m (0.2.0)
- nokogiri (1.16.2)
+ nokogiri (1.16.3)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
pathutil (0.16.2)
@@ -91,11 +91,10 @@ GEM
rb-inotify (0.10.1)
ffi (~> 1.0)
rexml (3.2.6)
- rouge (4.2.0)
- ruby2_keywords (0.0.5)
+ rouge (4.2.1)
safe_yaml (1.0.5)
- sass-embedded (1.71.1)
- google-protobuf (~> 3.25)
+ sass-embedded (1.72.0)
+ google-protobuf (>= 3.25, < 5.0)
rake (>= 13.0.0)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
diff --git a/pkgs/applications/misc/jekyll/basic/gemset.nix b/pkgs/applications/misc/jekyll/basic/gemset.nix
index 07acae17bc6f..fc049e314e54 100644
--- a/pkgs/applications/misc/jekyll/basic/gemset.nix
+++ b/pkgs/applications/misc/jekyll/basic/gemset.nix
@@ -36,10 +36,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "00db5v09k1z3539g1zrk7vkjrln9967k08adh6qx33ng97a2gg5w";
+ sha256 = "0cq1c29zbkcxgdihqisirhcw76xc768z2zpd5vbccpq0l1lv76g7";
type = "gem";
};
- version = "3.1.6";
+ version = "3.1.7";
};
colorator = {
groups = ["default"];
@@ -72,15 +72,14 @@
version = "2.4.1";
};
drb = {
- dependencies = ["ruby2_keywords"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "03ylflxbp9jrs1hx3d4wvx05yb9hdq4a0r706zz6qc6kvqfazr79";
+ sha256 = "0h5kbj9hvg5hb3c7l425zpds0vb42phvln2knab8nmazg2zp5m79";
type = "gem";
};
- version = "2.2.0";
+ version = "2.2.1";
};
em-websocket = {
dependencies = ["eventmachine" "http_parser.rb"];
@@ -134,14 +133,15 @@
version = "4.1.0";
};
google-protobuf = {
+ dependencies = ["rake"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1mnxzcq8kmyfb9bkzqnp019d1hx1vprip3yzdkkha6b3qz5rgg9r";
+ sha256 = "14s40yxj35vixx9pvpnbrkz9z7ga3m7vcy72yll1flnn3cirl1aj";
type = "gem";
};
- version = "3.25.3";
+ version = "4.26.1";
};
html-pipeline = {
dependencies = ["activesupport" "nokogiri"];
@@ -170,10 +170,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0qaamqsh5f3szhcakkak8ikxlzxqnv49n2p7504hcz2l0f4nj0wx";
+ sha256 = "0lbm33fpb3w06wd2231sg58dwlwgjsvym93m548ajvl6s3mfvpn7";
type = "gem";
};
- version = "1.14.1";
+ version = "1.14.4";
};
jekyll = {
dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table" "webrick"];
@@ -331,10 +331,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0667vf0zglacry87nkcl3ns8421aydvz71vfa3g3yjhiq8zh19f5";
+ sha256 = "07lq26b86giy3ha3fhrywk9r1ajhc2pm2mzj657jnpnbj1i6g17a";
type = "gem";
};
- version = "5.22.2";
+ version = "5.22.3";
};
mutex_m = {
groups = ["default"];
@@ -352,10 +352,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "173zavvxlwyi48lfskk48wcrdbkvjlhjhvy4jpcrfx72rpjjx4k8";
+ sha256 = "0j72sg8n8834vbw2x8glcp46y5r2dls2pj64ll7rmf6mri9s52j9";
type = "gem";
};
- version = "1.16.2";
+ version = "1.16.3";
};
pathutil = {
dependencies = ["forwardable-extended"];
@@ -434,20 +434,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1fkfa0iq3r9b0zzrxpxha17avmyzci3kidzmfbf6fd1279mndpb0";
+ sha256 = "1zd1pdldi6h8x27dqim7cy8m69xr01aw5c8k1zhkz497n4np6wgk";
type = "gem";
};
- version = "4.2.0";
- };
- ruby2_keywords = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz";
- type = "gem";
- };
- version = "0.0.5";
+ version = "4.2.1";
};
safe_yaml = {
groups = ["default"];
@@ -465,10 +455,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1ccqqkmicqs2nbawyknb17qfafwqq0k6jxibcm86vqd1jp185pxa";
+ sha256 = "0bixk8c02dhflvhi4s5hxzjg8akzgicvjxjvxx74nah2j8qfblq5";
type = "gem";
};
- version = "1.71.1";
+ version = "1.72.0";
};
terminal-table = {
dependencies = ["unicode-display_width"];
diff --git a/pkgs/applications/misc/jekyll/full/Gemfile.lock b/pkgs/applications/misc/jekyll/full/Gemfile.lock
index 04d0e9d0cf1e..c9cae601691a 100644
--- a/pkgs/applications/misc/jekyll/full/Gemfile.lock
+++ b/pkgs/applications/misc/jekyll/full/Gemfile.lock
@@ -14,7 +14,7 @@ GEM
addressable (2.8.6)
public_suffix (>= 2.0.2, < 6.0)
base64 (0.2.0)
- bigdecimal (3.1.6)
+ bigdecimal (3.1.7)
classifier-reborn (2.3.0)
fast-stemmer (~> 1.0)
matrix (~> 0.4)
@@ -26,8 +26,7 @@ GEM
colorator (1.1.0)
concurrent-ruby (1.2.3)
connection_pool (2.4.1)
- drb (2.2.0)
- ruby2_keywords
+ drb (2.2.1)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
@@ -41,12 +40,13 @@ GEM
ffi (1.16.3)
forwardable-extended (2.6.0)
gemoji (4.1.0)
- google-protobuf (3.25.3)
+ google-protobuf (4.26.1)
+ rake (>= 13)
html-pipeline (2.14.3)
activesupport (>= 2)
nokogiri (>= 1.4)
http_parser.rb (0.8.0)
- i18n (1.14.1)
+ i18n (1.14.4)
concurrent-ruby (~> 1.0)
jekyll (4.3.3)
addressable (~> 2.4)
@@ -81,7 +81,7 @@ GEM
html-pipeline (~> 2.3)
jekyll (>= 3.7, < 5.0)
jekyll-paginate (1.1.0)
- jekyll-polyglot (1.7.0)
+ jekyll-polyglot (1.8.0)
jekyll (>= 4.0, >= 3.0)
jekyll-redirect-from (0.16.0)
jekyll (>= 3.3, < 5.0)
@@ -114,14 +114,14 @@ GEM
mercenary (0.4.0)
mime-types (3.5.2)
mime-types-data (~> 3.2015)
- mime-types-data (3.2024.0206)
+ mime-types-data (3.2024.0305)
mini_magick (4.12.0)
mini_portile2 (2.8.5)
- minitest (5.22.2)
+ minitest (5.22.3)
mutex_m (0.2.0)
net-http (0.4.1)
uri
- nokogiri (1.16.2)
+ nokogiri (1.16.3)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
octokit (4.25.1)
@@ -137,14 +137,13 @@ GEM
rb-fsevent (0.11.2)
rb-inotify (0.10.1)
ffi (~> 1.0)
- rdoc (6.6.2)
+ rdoc (6.6.3.1)
psych (>= 4.0.0)
rexml (3.2.6)
- rouge (4.2.0)
- ruby2_keywords (0.0.5)
+ rouge (4.2.1)
safe_yaml (1.0.5)
- sass-embedded (1.71.1)
- google-protobuf (~> 3.25)
+ sass-embedded (1.72.0)
+ google-protobuf (>= 3.25, < 5.0)
rake (>= 13.0.0)
sawyer (0.9.2)
addressable (>= 2.3.5)
diff --git a/pkgs/applications/misc/jekyll/full/gemset.nix b/pkgs/applications/misc/jekyll/full/gemset.nix
index b6eaa1a1eede..d81dee1136a0 100644
--- a/pkgs/applications/misc/jekyll/full/gemset.nix
+++ b/pkgs/applications/misc/jekyll/full/gemset.nix
@@ -36,10 +36,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "00db5v09k1z3539g1zrk7vkjrln9967k08adh6qx33ng97a2gg5w";
+ sha256 = "0cq1c29zbkcxgdihqisirhcw76xc768z2zpd5vbccpq0l1lv76g7";
type = "gem";
};
- version = "3.1.6";
+ version = "3.1.7";
};
classifier-reborn = {
dependencies = ["fast-stemmer" "matrix"];
@@ -126,15 +126,14 @@
version = "2.4.1";
};
drb = {
- dependencies = ["ruby2_keywords"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "03ylflxbp9jrs1hx3d4wvx05yb9hdq4a0r706zz6qc6kvqfazr79";
+ sha256 = "0h5kbj9hvg5hb3c7l425zpds0vb42phvln2knab8nmazg2zp5m79";
type = "gem";
};
- version = "2.2.0";
+ version = "2.2.1";
};
em-websocket = {
dependencies = ["eventmachine" "http_parser.rb"];
@@ -242,14 +241,15 @@
version = "4.1.0";
};
google-protobuf = {
+ dependencies = ["rake"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1mnxzcq8kmyfb9bkzqnp019d1hx1vprip3yzdkkha6b3qz5rgg9r";
+ sha256 = "14s40yxj35vixx9pvpnbrkz9z7ga3m7vcy72yll1flnn3cirl1aj";
type = "gem";
};
- version = "3.25.3";
+ version = "4.26.1";
};
html-pipeline = {
dependencies = ["activesupport" "nokogiri"];
@@ -278,10 +278,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0qaamqsh5f3szhcakkak8ikxlzxqnv49n2p7504hcz2l0f4nj0wx";
+ sha256 = "0lbm33fpb3w06wd2231sg58dwlwgjsvym93m548ajvl6s3mfvpn7";
type = "gem";
};
- version = "1.14.1";
+ version = "1.14.4";
};
jekyll = {
dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table" "webrick"];
@@ -376,10 +376,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "189scj27hczbxp02s5v27r4civfqq2fr981jrp0xldwvcw5qfbll";
+ sha256 = "0xbmsm30jgpbamqvbjvjgfq2w9ihdpqsbay9jrd5pljrbhvy02di";
type = "gem";
};
- version = "1.7.0";
+ version = "1.8.0";
};
jekyll-redirect-from = {
dependencies = ["jekyll"];
@@ -584,10 +584,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0zpn5brxdf5akh7ij511bkrd30fxd7697shmxxszahqj9m62zvn5";
+ sha256 = "00x7w5xqsj9m33v3vkmy23wipkkysafksib53ypzn27p5g81w455";
type = "gem";
};
- version = "3.2024.0206";
+ version = "3.2024.0305";
};
mini_magick = {
groups = ["default"];
@@ -614,10 +614,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0667vf0zglacry87nkcl3ns8421aydvz71vfa3g3yjhiq8zh19f5";
+ sha256 = "07lq26b86giy3ha3fhrywk9r1ajhc2pm2mzj657jnpnbj1i6g17a";
type = "gem";
};
- version = "5.22.2";
+ version = "5.22.3";
};
mutex_m = {
groups = ["default"];
@@ -646,10 +646,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "173zavvxlwyi48lfskk48wcrdbkvjlhjhvy4jpcrfx72rpjjx4k8";
+ sha256 = "0j72sg8n8834vbw2x8glcp46y5r2dls2pj64ll7rmf6mri9s52j9";
type = "gem";
};
- version = "1.16.2";
+ version = "1.16.3";
};
octokit = {
dependencies = ["faraday" "sawyer"];
@@ -741,10 +741,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "14wnrpd1kl43ynk1wwwgv9avsw84d1lrvlfyrjy3d4h7h7ndnqzp";
+ sha256 = "0ib3cnf4yllvw070gr4bz94sbmqx3haqc5f846fsvdcs494vgxrr";
type = "gem";
};
- version = "6.6.2";
+ version = "6.6.3.1";
};
rexml = {
groups = ["default"];
@@ -761,20 +761,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1fkfa0iq3r9b0zzrxpxha17avmyzci3kidzmfbf6fd1279mndpb0";
+ sha256 = "1zd1pdldi6h8x27dqim7cy8m69xr01aw5c8k1zhkz497n4np6wgk";
type = "gem";
};
- version = "4.2.0";
- };
- ruby2_keywords = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz";
- type = "gem";
- };
- version = "0.0.5";
+ version = "4.2.1";
};
safe_yaml = {
groups = ["default"];
@@ -792,10 +782,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1ccqqkmicqs2nbawyknb17qfafwqq0k6jxibcm86vqd1jp185pxa";
+ sha256 = "0bixk8c02dhflvhi4s5hxzjg8akzgicvjxjvxx74nah2j8qfblq5";
type = "gem";
};
- version = "1.71.1";
+ version = "1.72.0";
};
sawyer = {
dependencies = ["addressable" "faraday"];
diff --git a/pkgs/applications/misc/johnny-reborn/default.nix b/pkgs/applications/misc/johnny-reborn/default.nix
index 180d46519c64..c2329e2c26f2 100644
--- a/pkgs/applications/misc/johnny-reborn/default.nix
+++ b/pkgs/applications/misc/johnny-reborn/default.nix
@@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "johnny-reborn-engine";
- version = "0.30";
+ version = "0.34";
src = fetchFromGitHub {
owner = "xesf";
repo = "jc_reborn";
rev = "v${version}";
- hash = "sha256-n3ELNFvjeDzbamyQIdM9mf/A1sstuhCGzrL9NuXf90Y=";
+ hash = "sha256-JXaYSHpow7Pzy+ATEinET9ffvPIkOmlylnerZJnMUjY=";
};
buildInputs = [ SDL2 ];
diff --git a/pkgs/applications/networking/cluster/kubedb-cli/default.nix b/pkgs/applications/networking/cluster/kubedb-cli/default.nix
index 2a3b6e63a9a8..ce2e92356db4 100644
--- a/pkgs/applications/networking/cluster/kubedb-cli/default.nix
+++ b/pkgs/applications/networking/cluster/kubedb-cli/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "kubedb-cli";
- version = "0.42.1";
+ version = "0.44.0";
src = fetchFromGitHub {
owner = "kubedb";
repo = "cli";
rev = "v${version}";
- sha256 = "sha256-i+0oQaEHMu3525mJTQyL+Me2DPFSpaIK1xGaPMR2M0s=";
+ sha256 = "sha256-ppsGSzgJvAHRGs6PGPNgE7nDbK8SPYBPNbAlGwocAZs=";
};
vendorHash = null;
diff --git a/pkgs/applications/networking/cluster/tfswitch/default.nix b/pkgs/applications/networking/cluster/tfswitch/default.nix
index 50079dc762d8..63c4ba3c2de4 100644
--- a/pkgs/applications/networking/cluster/tfswitch/default.nix
+++ b/pkgs/applications/networking/cluster/tfswitch/default.nix
@@ -1,16 +1,16 @@
{ buildGoModule, lib, fetchFromGitHub }:
buildGoModule rec {
pname = "tfswitch";
- version = "0.13.1308";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "warrensbox";
repo = "terraform-switcher";
rev = version;
- sha256 = "sha256-EyA7LwfL3vCNzd2wpyUbrUnvkM0/f7/cQp+jcAcGZsg=";
+ sha256 = "sha256-zUFnJCYh6XM0HiET45ZRa/ESS/n3XdYKkUJuLiDDRAg=";
};
- vendorHash = "sha256-NX+vzI/Fa/n9ZQjpESes4fNVAmKlA1rqPwSKsL2GEUY=";
+ vendorHash = "sha256-DsC9djgt7Er2m2TacUldpJP43jC0IBklPnu41Saf4DY=";
# Disable tests since it requires network access and relies on the
# presence of release.hashicorp.com
diff --git a/pkgs/applications/networking/cluster/werf/default.nix b/pkgs/applications/networking/cluster/werf/default.nix
index 6e2ace8ac9ce..0af40d0c1037 100644
--- a/pkgs/applications/networking/cluster/werf/default.nix
+++ b/pkgs/applications/networking/cluster/werf/default.nix
@@ -10,16 +10,16 @@
buildGoModule rec {
pname = "werf";
- version = "1.2.300";
+ version = "1.2.301";
src = fetchFromGitHub {
owner = "werf";
repo = "werf";
rev = "v${version}";
- hash = "sha256-DWSjdgLjVJHlcXa6QV2KzASFQkCpUDSrtYpx/oa+Ff4=";
+ hash = "sha256-w7gHcHXvCWGzIiq4NvKjha/gs7W8fmNnZPe99lHstIg=";
};
- vendorHash = "sha256-o/s3JZe/lO6smCXVs0ZzOTqGt7ikgTsC4Wo2O9fALe8=";
+ vendorHash = "sha256-pPWX9KtWDgJrQKt9PX1gb0v/DCop8lOxJyAjFZr3RpI=";
proxyVendor = true;
diff --git a/pkgs/applications/networking/instant-messengers/element/pin.nix b/pkgs/applications/networking/instant-messengers/element/pin.nix
index f6e239a89d71..b769f73f948f 100644
--- a/pkgs/applications/networking/instant-messengers/element/pin.nix
+++ b/pkgs/applications/networking/instant-messengers/element/pin.nix
@@ -1,9 +1,9 @@
{
- "version" = "1.11.61";
+ "version" = "1.11.63";
"hashes" = {
- "desktopSrcHash" = "sha256-1Pq26e2ngcji7wieHNOQAWPFBKGLoeTRAKQ3Aqnn1jw=";
- "desktopYarnHash" = "16psxfai8dyckm4xwrg5czv6l4163x2nlqqcdgly6axabllgacj1";
- "webSrcHash" = "sha256-RJhZgwTMDLMt+ha0lxPwqiP5sipXIcGZfdPVgCxePH4=";
- "webYarnHash" = "1vj3f2bml8jyjz6djzvw1hbrv7148wk8y9hwp323zf8n6y4rnk28";
+ "desktopSrcHash" = "sha256-wQSFnF3HzERW4iS5leHP2LZKrJkTPW+LUgmj5b0/KZk=";
+ "desktopYarnHash" = "003d44psrw09dldvp9lfhsnipmcy1fwbicsvmd48mg7n3vnrg0zw";
+ "webSrcHash" = "sha256-FjYDwXa+7Lx/K0AERn64mPbjp0QFIoVoYMPx/mG4Zrs=";
+ "webYarnHash" = "0n7z9y3141rx0c5476zw3ccfck0f4b2jwsaxmq2ff7spwyw81zd2";
};
}
diff --git a/pkgs/applications/networking/synology-drive-client/default.nix b/pkgs/applications/networking/synology-drive-client/default.nix
index 7d3efef57de9..84ca42cec167 100644
--- a/pkgs/applications/networking/synology-drive-client/default.nix
+++ b/pkgs/applications/networking/synology-drive-client/default.nix
@@ -1,8 +1,8 @@
{ stdenv, lib, writeScript, qt5, fetchurl, autoPatchelfHook, dpkg, glibc, cpio, xar, undmg, gtk3, pango, libxcb }:
let
pname = "synology-drive-client";
- baseUrl = "https://global.download.synology.com/download/Utility/SynologyDriveClient";
- version = "3.3.0-15082";
+ baseUrl = "https://global.synologydownload.com/download/Utility/SynologyDriveClient";
+ version = "3.4.0-15724";
buildNumber = with lib; last (splitString "-" version);
meta = with lib; {
description = "Desktop application to synchronize files and folders between the computer and the Synology Drive server.";
@@ -29,8 +29,8 @@ let
inherit pname version meta passthru;
src = fetchurl {
- url = "${baseUrl}/${version}/Ubuntu/Installer/x86_64/synology-drive-client-${buildNumber}.x86_64.deb";
- sha256 = "sha256-ha3KRpEIT7w6pUVUwZV011W1F/v/hNq9f3ArfzU0ZGc=";
+ url = "${baseUrl}/${version}/Ubuntu/Installer/synology-drive-client-${buildNumber}.x86_64.deb";
+ sha256 = "sha256-Zf6JMghXy8ODbR4MhVSPmD4QDu003MTc7YNfbiRVRoY=";
};
nativeBuildInputs = [ autoPatchelfHook dpkg ];
@@ -60,7 +60,7 @@ let
src = fetchurl {
url = "${baseUrl}/${version}/Mac/Installer/synology-drive-client-${buildNumber}.dmg";
- sha256 = "sha256-dxmpB31ZjO1uAnAbY13OjVR81CCDLf9vJC20iZaPZJ4=";
+ sha256 = "sha256-65mZeRYHGl+n9TeTx7bxRrGPjcZiV9UlyfcCZ3GwOhE=";
};
nativeBuildInputs = [ cpio xar undmg ];
diff --git a/pkgs/applications/version-management/github-desktop/default.nix b/pkgs/applications/version-management/github-desktop/default.nix
deleted file mode 100644
index b16befcd080d..000000000000
--- a/pkgs/applications/version-management/github-desktop/default.nix
+++ /dev/null
@@ -1,86 +0,0 @@
-{ stdenv
-, lib
-, fetchurl
-, autoPatchelfHook
-, wrapGAppsHook
-, makeWrapper
-, gnome
-, libsecret
-, git
-, curl
-, nss
-, nspr
-, xorg
-, libdrm
-, alsa-lib
-, cups
-, mesa
-, systemd
-, openssl
-}:
-
-stdenv.mkDerivation (finalAttrs: {
- pname = "github-desktop";
- version = "3.3.6";
- rcversion = "3";
- arch = "amd64";
-
- src = fetchurl {
- url = "https://github.com/shiftkey/desktop/releases/download/release-${finalAttrs.version}-linux${finalAttrs.rcversion}/GitHubDesktop-linux-${finalAttrs.arch}-${finalAttrs.version}-linux${finalAttrs.rcversion}.deb";
- hash = "sha256-900JhfHN78CuAXptPX2ToTvT9E+g+xRXqmlm34J9l6k=";
- };
-
- nativeBuildInputs = [
- autoPatchelfHook
- (wrapGAppsHook.override { inherit makeWrapper; })
- ];
-
- buildInputs = [
- gnome.gnome-keyring
- xorg.libXdamage
- xorg.libX11
- libsecret
- git
- curl
- nss
- nspr
- libdrm
- alsa-lib
- cups
- mesa
- openssl
- ];
-
- unpackPhase = ''
- mkdir -p $TMP/${finalAttrs.pname} $out/{opt,bin}
- cp $src $TMP/${finalAttrs.pname}.deb
- ar vx ${finalAttrs.pname}.deb
- tar --no-overwrite-dir -xvf data.tar.xz -C $TMP/${finalAttrs.pname}/
- '';
-
- installPhase = ''
- cp -R $TMP/${finalAttrs.pname}/usr/share $out/
- cp -R $TMP/${finalAttrs.pname}/usr/lib/${finalAttrs.pname}/* $out/opt/
- ln -sf $out/opt/${finalAttrs.pname} $out/bin/${finalAttrs.pname}
- '';
-
- preFixup = ''
- gappsWrapperArgs+=(
- --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland}}"
- )
- '';
-
- runtimeDependencies = [
- (lib.getLib systemd)
- ];
-
- meta = {
- description = "GUI for managing Git and GitHub.";
- homepage = "https://desktop.github.com/";
- sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
- license = lib.licenses.mit;
- maintainers = with lib.maintainers; [ dan4ik605743 ];
- platforms = lib.platforms.linux;
- mainProgram = "github-desktop";
- };
-})
diff --git a/pkgs/applications/window-managers/hyprwm/hyprshade/default.nix b/pkgs/applications/window-managers/hyprwm/hyprshade/default.nix
index 229f53ed3de8..61690f8f8bdb 100644
--- a/pkgs/applications/window-managers/hyprwm/hyprshade/default.nix
+++ b/pkgs/applications/window-managers/hyprwm/hyprshade/default.nix
@@ -24,6 +24,10 @@ buildPythonPackage rec {
propagatedBuildInputs = [ more-itertools click ];
+ postFixup = ''
+ wrapProgram $out/bin/hyprshade --set HYPRSHADE_SHADERS_DIR $out/share/hyprshade/shaders
+ '';
+
meta = with lib; {
homepage = "https://github.com/loqusion/hyprshade";
description = "Hyprland shade configuration tool";
diff --git a/pkgs/build-support/checkpoint-build.nix b/pkgs/build-support/checkpoint-build.nix
index c9bee45005a1..f1202ca1ce0a 100644
--- a/pkgs/build-support/checkpoint-build.nix
+++ b/pkgs/build-support/checkpoint-build.nix
@@ -53,7 +53,12 @@ rec {
mkdir -p $out/outputs
cp -r ./* $out/outputs/
runHook postCheckpointInstall
+ unset postPhases
'';
+
+ dontFixup = true;
+ doInstallCheck = false;
+ doDist = false;
});
/* Build a derivation based on the checkpoint output generated by
diff --git a/pkgs/by-name/da/davis/composer.lock b/pkgs/by-name/da/davis/composer.lock
new file mode 100644
index 000000000000..5c22400eaa78
--- /dev/null
+++ b/pkgs/by-name/da/davis/composer.lock
@@ -0,0 +1,10650 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+ "This file is @generated automatically"
+ ],
+ "content-hash": "fe947178f95cbf35f405635a30949954",
+ "packages": [
+ {
+ "name": "dantsu/php-image-editor",
+ "version": "1.4.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/DantSu/php-image-editor.git",
+ "reference": "59a3e922000767051d380a2c530c61344f1e79ec"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/DantSu/php-image-editor/zipball/59a3e922000767051d380a2c530c61344f1e79ec",
+ "reference": "59a3e922000767051d380a2c530c61344f1e79ec",
+ "shasum": ""
+ },
+ "require": {
+ "ext-gd": "*",
+ "php": ">=7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "DantSu\\PHPImageEditor\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Franck ALARY",
+ "homepage": "https://github.com/DantSu",
+ "role": "Developer"
+ }
+ ],
+ "description": "PHP library to easily edit image with GD extension.",
+ "homepage": "https://github.com/DantSu/php-image-editor",
+ "keywords": [
+ "GD2",
+ "edit",
+ "edition",
+ "editor",
+ "image",
+ "photo",
+ "php",
+ "picture"
+ ],
+ "support": {
+ "issues": "https://github.com/DantSu/php-image-editor/issues",
+ "source": "https://github.com/DantSu/php-image-editor/tree/1.4.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/DantSu",
+ "type": "github"
+ }
+ ],
+ "time": "2023-08-23T07:36:11+00:00"
+ },
+ {
+ "name": "dantsu/php-osm-static-api",
+ "version": "0.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/DantSu/php-osm-static-api.git",
+ "reference": "54a8b914736fb861348c1daa5325012ea9fd2273"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/DantSu/php-osm-static-api/zipball/54a8b914736fb861348c1daa5325012ea9fd2273",
+ "reference": "54a8b914736fb861348c1daa5325012ea9fd2273",
+ "shasum": ""
+ },
+ "require": {
+ "dantsu/php-image-editor": "^1.3",
+ "php": ">=7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "DantSu\\OpenStreetMapStaticAPI\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Franck ALARY",
+ "homepage": "https://github.com/DantSu",
+ "role": "Developer"
+ }
+ ],
+ "description": "PHP library to easily get static image from OpenStreetMap (OSM), add markers and draw lines.",
+ "homepage": "https://github.com/DantSu/php-osm-static-api",
+ "keywords": [
+ "OpenStreetMap",
+ "api",
+ "image",
+ "map",
+ "maps",
+ "osm",
+ "php",
+ "static"
+ ],
+ "support": {
+ "issues": "https://github.com/DantSu/php-osm-static-api/issues",
+ "source": "https://github.com/DantSu/php-osm-static-api/tree/0.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/DantSu",
+ "type": "github"
+ }
+ ],
+ "time": "2022-11-09T10:22:07+00:00"
+ },
+ {
+ "name": "doctrine/annotations",
+ "version": "1.14.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/annotations.git",
+ "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/annotations/zipball/fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af",
+ "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/lexer": "^1 || ^2",
+ "ext-tokenizer": "*",
+ "php": "^7.1 || ^8.0",
+ "psr/cache": "^1 || ^2 || ^3"
+ },
+ "require-dev": {
+ "doctrine/cache": "^1.11 || ^2.0",
+ "doctrine/coding-standard": "^9 || ^10",
+ "phpstan/phpstan": "~1.4.10 || ^1.8.0",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "symfony/cache": "^4.4 || ^5.4 || ^6",
+ "vimeo/psalm": "^4.10"
+ },
+ "suggest": {
+ "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "Docblock Annotations Parser",
+ "homepage": "https://www.doctrine-project.org/projects/annotations.html",
+ "keywords": [
+ "annotations",
+ "docblock",
+ "parser"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/annotations/issues",
+ "source": "https://github.com/doctrine/annotations/tree/1.14.3"
+ },
+ "time": "2023-02-01T09:20:38+00:00"
+ },
+ {
+ "name": "doctrine/cache",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/cache.git",
+ "reference": "1ca8f21980e770095a31456042471a57bc4c68fb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/cache/zipball/1ca8f21980e770095a31456042471a57bc4c68fb",
+ "reference": "1ca8f21980e770095a31456042471a57bc4c68fb",
+ "shasum": ""
+ },
+ "require": {
+ "php": "~7.1 || ^8.0"
+ },
+ "conflict": {
+ "doctrine/common": ">2.2,<2.4"
+ },
+ "require-dev": {
+ "cache/integration-tests": "dev-master",
+ "doctrine/coding-standard": "^9",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "psr/cache": "^1.0 || ^2.0 || ^3.0",
+ "symfony/cache": "^4.4 || ^5.4 || ^6",
+ "symfony/var-exporter": "^4.4 || ^5.4 || ^6"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.",
+ "homepage": "https://www.doctrine-project.org/projects/cache.html",
+ "keywords": [
+ "abstraction",
+ "apcu",
+ "cache",
+ "caching",
+ "couchdb",
+ "memcached",
+ "php",
+ "redis",
+ "xcache"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/cache/issues",
+ "source": "https://github.com/doctrine/cache/tree/2.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-05-20T20:07:39+00:00"
+ },
+ {
+ "name": "doctrine/collections",
+ "version": "1.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/collections.git",
+ "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/collections/zipball/2b44dd4cbca8b5744327de78bafef5945c7e7b5e",
+ "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/deprecations": "^0.5.3 || ^1",
+ "php": "^7.1.3 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^9.0 || ^10.0",
+ "phpstan/phpstan": "^1.4.8",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.1.5",
+ "vimeo/psalm": "^4.22"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.",
+ "homepage": "https://www.doctrine-project.org/projects/collections.html",
+ "keywords": [
+ "array",
+ "collections",
+ "iterators",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/collections/issues",
+ "source": "https://github.com/doctrine/collections/tree/1.8.0"
+ },
+ "time": "2022-09-01T20:12:10+00:00"
+ },
+ {
+ "name": "doctrine/common",
+ "version": "3.4.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/common.git",
+ "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/common/zipball/8b5e5650391f851ed58910b3e3d48a71062eeced",
+ "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/persistence": "^2.0 || ^3.0",
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^9.0 || ^10.0",
+ "doctrine/collections": "^1",
+ "phpstan/phpstan": "^1.4.1",
+ "phpstan/phpstan-phpunit": "^1",
+ "phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.0",
+ "squizlabs/php_codesniffer": "^3.0",
+ "symfony/phpunit-bridge": "^6.1",
+ "vimeo/psalm": "^4.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ },
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, proxies and much more.",
+ "homepage": "https://www.doctrine-project.org/projects/common.html",
+ "keywords": [
+ "common",
+ "doctrine",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/common/issues",
+ "source": "https://github.com/doctrine/common/tree/3.4.3"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcommon",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-10-09T11:47:59+00:00"
+ },
+ {
+ "name": "doctrine/dbal",
+ "version": "3.7.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/dbal.git",
+ "reference": "5b7bd66c9ff58c04c5474ab85edce442f8081cb2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/dbal/zipball/5b7bd66c9ff58c04c5474ab85edce442f8081cb2",
+ "reference": "5b7bd66c9ff58c04c5474ab85edce442f8081cb2",
+ "shasum": ""
+ },
+ "require": {
+ "composer-runtime-api": "^2",
+ "doctrine/cache": "^1.11|^2.0",
+ "doctrine/deprecations": "^0.5.3|^1",
+ "doctrine/event-manager": "^1|^2",
+ "php": "^7.4 || ^8.0",
+ "psr/cache": "^1|^2|^3",
+ "psr/log": "^1|^2|^3"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "12.0.0",
+ "fig/log-test": "^1",
+ "jetbrains/phpstorm-stubs": "2023.1",
+ "phpstan/phpstan": "1.10.35",
+ "phpstan/phpstan-strict-rules": "^1.5",
+ "phpunit/phpunit": "9.6.13",
+ "psalm/plugin-phpunit": "0.18.4",
+ "slevomat/coding-standard": "8.13.1",
+ "squizlabs/php_codesniffer": "3.7.2",
+ "symfony/cache": "^5.4|^6.0",
+ "symfony/console": "^4.4|^5.4|^6.0",
+ "vimeo/psalm": "4.30.0"
+ },
+ "suggest": {
+ "symfony/console": "For helpful console commands such as SQL execution and import of files."
+ },
+ "bin": [
+ "bin/doctrine-dbal"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\DBAL\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ }
+ ],
+ "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.",
+ "homepage": "https://www.doctrine-project.org/projects/dbal.html",
+ "keywords": [
+ "abstraction",
+ "database",
+ "db2",
+ "dbal",
+ "mariadb",
+ "mssql",
+ "mysql",
+ "oci8",
+ "oracle",
+ "pdo",
+ "pgsql",
+ "postgresql",
+ "queryobject",
+ "sasql",
+ "sql",
+ "sqlite",
+ "sqlserver",
+ "sqlsrv"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/dbal/issues",
+ "source": "https://github.com/doctrine/dbal/tree/3.7.1"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-06T05:06:20+00:00"
+ },
+ {
+ "name": "doctrine/deprecations",
+ "version": "1.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/deprecations.git",
+ "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931",
+ "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^9",
+ "phpstan/phpstan": "1.4.10 || 1.10.15",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "psalm/plugin-phpunit": "0.18.4",
+ "psr/log": "^1 || ^2 || ^3",
+ "vimeo/psalm": "4.30.0 || 5.12.0"
+ },
+ "suggest": {
+ "psr/log": "Allows logging deprecations via PSR-3 logger implementation"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.",
+ "homepage": "https://www.doctrine-project.org/",
+ "support": {
+ "issues": "https://github.com/doctrine/deprecations/issues",
+ "source": "https://github.com/doctrine/deprecations/tree/1.1.2"
+ },
+ "time": "2023-09-27T20:04:15+00:00"
+ },
+ {
+ "name": "doctrine/doctrine-bundle",
+ "version": "2.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/DoctrineBundle.git",
+ "reference": "ca64ca70247d7b1b56a57c3b147b77253eaea2f5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/ca64ca70247d7b1b56a57c3b147b77253eaea2f5",
+ "reference": "ca64ca70247d7b1b56a57c3b147b77253eaea2f5",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/cache": "^1.11 || ^2.0",
+ "doctrine/dbal": "^3.7.0 || ^4.0",
+ "doctrine/persistence": "^2.2 || ^3",
+ "doctrine/sql-formatter": "^1.0.1",
+ "php": "^7.4 || ^8.0",
+ "symfony/cache": "^5.4 || ^6.0 || ^7.0",
+ "symfony/config": "^5.4 || ^6.0 || ^7.0",
+ "symfony/console": "^5.4 || ^6.0 || ^7.0",
+ "symfony/dependency-injection": "^5.4 || ^6.0 || ^7.0",
+ "symfony/deprecation-contracts": "^2.1 || ^3",
+ "symfony/doctrine-bridge": "^5.4.19 || ^6.0.7 || ^7.0",
+ "symfony/framework-bundle": "^5.4 || ^6.0 || ^7.0",
+ "symfony/polyfill-php80": "^1.15",
+ "symfony/service-contracts": "^1.1.1 || ^2.0 || ^3"
+ },
+ "conflict": {
+ "doctrine/annotations": ">=3.0",
+ "doctrine/orm": "<2.14 || >=4.0",
+ "twig/twig": "<1.34 || >=2.0 <2.4"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1 || ^2",
+ "doctrine/coding-standard": "^12",
+ "doctrine/deprecations": "^1.0",
+ "doctrine/orm": "^2.14 || ^3.0",
+ "friendsofphp/proxy-manager-lts": "^1.0",
+ "phpunit/phpunit": "^9.5.26 || ^10.0",
+ "psalm/plugin-phpunit": "^0.18.4",
+ "psalm/plugin-symfony": "^4",
+ "psr/log": "^1.1.4 || ^2.0 || ^3.0",
+ "symfony/phpunit-bridge": "^6.1 || ^7.0",
+ "symfony/property-info": "^5.4 || ^6.0 || ^7.0",
+ "symfony/proxy-manager-bridge": "^5.4 || ^6.0 || ^7.0",
+ "symfony/security-bundle": "^5.4 || ^6.0 || ^7.0",
+ "symfony/string": "^5.4 || ^6.0 || ^7.0",
+ "symfony/twig-bridge": "^5.4 || ^6.0 || ^7.0",
+ "symfony/validator": "^5.4 || ^6.0 || ^7.0",
+ "symfony/var-exporter": "^5.4 || ^6.2 || ^7.0",
+ "symfony/web-profiler-bundle": "^5.4 || ^6.0 || ^7.0",
+ "symfony/yaml": "^5.4 || ^6.0 || ^7.0",
+ "twig/twig": "^1.34 || ^2.12 || ^3.0",
+ "vimeo/psalm": "^4.30"
+ },
+ "suggest": {
+ "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.",
+ "ext-pdo": "*",
+ "symfony/web-profiler-bundle": "To use the data collector."
+ },
+ "type": "symfony-bundle",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Bundle\\DoctrineBundle\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ },
+ {
+ "name": "Doctrine Project",
+ "homepage": "https://www.doctrine-project.org/"
+ }
+ ],
+ "description": "Symfony DoctrineBundle",
+ "homepage": "https://www.doctrine-project.org",
+ "keywords": [
+ "database",
+ "dbal",
+ "orm",
+ "persistence"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/DoctrineBundle/issues",
+ "source": "https://github.com/doctrine/DoctrineBundle/tree/2.11.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-bundle",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-12T18:59:02+00:00"
+ },
+ {
+ "name": "doctrine/doctrine-migrations-bundle",
+ "version": "3.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/DoctrineMigrationsBundle.git",
+ "reference": "1dd42906a5fb9c5960723e2ebb45c68006493835"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/1dd42906a5fb9c5960723e2ebb45c68006493835",
+ "reference": "1dd42906a5fb9c5960723e2ebb45c68006493835",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/doctrine-bundle": "^2.4",
+ "doctrine/migrations": "^3.2",
+ "php": "^7.2|^8.0",
+ "symfony/deprecation-contracts": "^2.1 || ^3",
+ "symfony/framework-bundle": "^5.4 || ^6.0 || ^7.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^12",
+ "doctrine/orm": "^2.6 || ^3",
+ "doctrine/persistence": "^2.0 || ^3 ",
+ "phpstan/phpstan": "^1.4",
+ "phpstan/phpstan-deprecation-rules": "^1",
+ "phpstan/phpstan-phpunit": "^1",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "phpstan/phpstan-symfony": "^1.3",
+ "phpunit/phpunit": "^8.5|^9.5",
+ "psalm/plugin-phpunit": "^0.18.4",
+ "psalm/plugin-symfony": "^3 || ^5",
+ "symfony/phpunit-bridge": "^6.3 || ^7",
+ "symfony/var-exporter": "^5.4 || ^6 || ^7",
+ "vimeo/psalm": "^4.30 || ^5.15"
+ },
+ "type": "symfony-bundle",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Bundle\\MigrationsBundle\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Doctrine Project",
+ "homepage": "https://www.doctrine-project.org"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony DoctrineMigrationsBundle",
+ "homepage": "https://www.doctrine-project.org",
+ "keywords": [
+ "dbal",
+ "migrations",
+ "schema"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/DoctrineMigrationsBundle/issues",
+ "source": "https://github.com/doctrine/DoctrineMigrationsBundle/tree/3.3.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-migrations-bundle",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-13T19:44:41+00:00"
+ },
+ {
+ "name": "doctrine/event-manager",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/event-manager.git",
+ "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/event-manager/zipball/95aa4cb529f1e96576f3fda9f5705ada4056a520",
+ "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/deprecations": "^0.5.3 || ^1",
+ "php": "^7.1 || ^8.0"
+ },
+ "conflict": {
+ "doctrine/common": "<2.9"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^9 || ^10",
+ "phpstan/phpstan": "~1.4.10 || ^1.8.8",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "vimeo/psalm": "^4.24"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ },
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
+ }
+ ],
+ "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.",
+ "homepage": "https://www.doctrine-project.org/projects/event-manager.html",
+ "keywords": [
+ "event",
+ "event dispatcher",
+ "event manager",
+ "event system",
+ "events"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/event-manager/issues",
+ "source": "https://github.com/doctrine/event-manager/tree/1.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-10-12T20:51:15+00:00"
+ },
+ {
+ "name": "doctrine/inflector",
+ "version": "2.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/inflector.git",
+ "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/f9301a5b2fb1216b2b08f02ba04dc45423db6bff",
+ "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^11.0",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpstan/phpstan-strict-rules": "^1.3",
+ "phpunit/phpunit": "^8.5 || ^9.5",
+ "vimeo/psalm": "^4.25 || ^5.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.",
+ "homepage": "https://www.doctrine-project.org/projects/inflector.html",
+ "keywords": [
+ "inflection",
+ "inflector",
+ "lowercase",
+ "manipulation",
+ "php",
+ "plural",
+ "singular",
+ "strings",
+ "uppercase",
+ "words"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/inflector/issues",
+ "source": "https://github.com/doctrine/inflector/tree/2.0.8"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-06-16T13:40:37+00:00"
+ },
+ {
+ "name": "doctrine/instantiator",
+ "version": "1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/instantiator.git",
+ "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b",
+ "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^9 || ^11",
+ "ext-pdo": "*",
+ "ext-phar": "*",
+ "phpbench/phpbench": "^0.16 || ^1",
+ "phpstan/phpstan": "^1.4",
+ "phpstan/phpstan-phpunit": "^1",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "vimeo/psalm": "^4.30 || ^5.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com",
+ "homepage": "https://ocramius.github.io/"
+ }
+ ],
+ "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
+ "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
+ "keywords": [
+ "constructor",
+ "instantiate"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/instantiator/issues",
+ "source": "https://github.com/doctrine/instantiator/tree/1.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-12-30T00:15:36+00:00"
+ },
+ {
+ "name": "doctrine/lexer",
+ "version": "2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/lexer.git",
+ "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/39ab8fcf5a51ce4b85ca97c7a7d033eb12831124",
+ "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/deprecations": "^1.0",
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^9 || ^10",
+ "phpstan/phpstan": "^1.3",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "psalm/plugin-phpunit": "^0.18.3",
+ "vimeo/psalm": "^4.11 || ^5.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Lexer\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
+ "homepage": "https://www.doctrine-project.org/projects/lexer.html",
+ "keywords": [
+ "annotations",
+ "docblock",
+ "lexer",
+ "parser",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/lexer/issues",
+ "source": "https://github.com/doctrine/lexer/tree/2.1.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-12-14T08:49:07+00:00"
+ },
+ {
+ "name": "doctrine/migrations",
+ "version": "3.5.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/migrations.git",
+ "reference": "4b1e2b6ba71d21d0c5be22ed03b6fc954d20b204"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/migrations/zipball/4b1e2b6ba71d21d0c5be22ed03b6fc954d20b204",
+ "reference": "4b1e2b6ba71d21d0c5be22ed03b6fc954d20b204",
+ "shasum": ""
+ },
+ "require": {
+ "composer-runtime-api": "^2",
+ "doctrine/dbal": "^3.5.1",
+ "doctrine/deprecations": "^0.5.3 || ^1",
+ "doctrine/event-manager": "^1.2 || ^2.0",
+ "friendsofphp/proxy-manager-lts": "^1.0",
+ "php": "^7.4 || ^8.0",
+ "psr/log": "^1.1.3 || ^2 || ^3",
+ "symfony/console": "^4.4.16 || ^5.4 || ^6.0",
+ "symfony/stopwatch": "^4.4 || ^5.4 || ^6.0"
+ },
+ "conflict": {
+ "doctrine/orm": "<2.12"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^9",
+ "doctrine/orm": "^2.13",
+ "doctrine/persistence": "^2 || ^3",
+ "doctrine/sql-formatter": "^1.0",
+ "ext-pdo_sqlite": "*",
+ "phpstan/phpstan": "^1.5",
+ "phpstan/phpstan-deprecation-rules": "^1",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "phpstan/phpstan-symfony": "^1.1",
+ "phpunit/phpunit": "^9.5",
+ "symfony/cache": "^4.4 || ^5.4 || ^6.0",
+ "symfony/process": "^4.4 || ^5.4 || ^6.0",
+ "symfony/yaml": "^4.4 || ^5.4 || ^6.0"
+ },
+ "suggest": {
+ "doctrine/sql-formatter": "Allows to generate formatted SQL with the diff command.",
+ "symfony/yaml": "Allows the use of yaml for migration configuration files."
+ },
+ "bin": [
+ "bin/doctrine-migrations"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Migrations\\": "lib/Doctrine/Migrations"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Michael Simonson",
+ "email": "contact@mikesimonson.com"
+ }
+ ],
+ "description": "PHP Doctrine Migrations project offer additional functionality on top of the database abstraction layer (DBAL) for versioning your database schema and easily deploying changes to it. It is a very easy to use and a powerful tool.",
+ "homepage": "https://www.doctrine-project.org/projects/migrations.html",
+ "keywords": [
+ "database",
+ "dbal",
+ "migrations"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/migrations/issues",
+ "source": "https://github.com/doctrine/migrations/tree/3.5.5"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fmigrations",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-01-18T12:44:30+00:00"
+ },
+ {
+ "name": "doctrine/orm",
+ "version": "2.16.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/orm.git",
+ "reference": "17500f56eaa930f5cd14d765bc2cd851c7d37cc0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/orm/zipball/17500f56eaa930f5cd14d765bc2cd851c7d37cc0",
+ "reference": "17500f56eaa930f5cd14d765bc2cd851c7d37cc0",
+ "shasum": ""
+ },
+ "require": {
+ "composer-runtime-api": "^2",
+ "doctrine/cache": "^1.12.1 || ^2.1.1",
+ "doctrine/collections": "^1.5 || ^2.1",
+ "doctrine/common": "^3.0.3",
+ "doctrine/dbal": "^2.13.1 || ^3.2",
+ "doctrine/deprecations": "^0.5.3 || ^1",
+ "doctrine/event-manager": "^1.2 || ^2",
+ "doctrine/inflector": "^1.4 || ^2.0",
+ "doctrine/instantiator": "^1.3 || ^2",
+ "doctrine/lexer": "^2",
+ "doctrine/persistence": "^2.4 || ^3",
+ "ext-ctype": "*",
+ "php": "^7.1 || ^8.0",
+ "psr/cache": "^1 || ^2 || ^3",
+ "symfony/console": "^4.2 || ^5.0 || ^6.0",
+ "symfony/polyfill-php72": "^1.23",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "conflict": {
+ "doctrine/annotations": "<1.13 || >= 3.0"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.13 || ^2",
+ "doctrine/coding-standard": "^9.0.2 || ^12.0",
+ "phpbench/phpbench": "^0.16.10 || ^1.0",
+ "phpstan/phpstan": "~1.4.10 || 1.10.28",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6",
+ "psr/log": "^1 || ^2 || ^3",
+ "squizlabs/php_codesniffer": "3.7.2",
+ "symfony/cache": "^4.4 || ^5.4 || ^6.0",
+ "symfony/var-exporter": "^4.4 || ^5.4 || ^6.2",
+ "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0",
+ "vimeo/psalm": "4.30.0 || 5.14.1"
+ },
+ "suggest": {
+ "ext-dom": "Provides support for XSD validation for XML mapping files",
+ "symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0",
+ "symfony/yaml": "If you want to use YAML Metadata Mapping Driver"
+ },
+ "bin": [
+ "bin/doctrine"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\ORM\\": "lib/Doctrine/ORM"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
+ }
+ ],
+ "description": "Object-Relational-Mapper for PHP",
+ "homepage": "https://www.doctrine-project.org/projects/orm.html",
+ "keywords": [
+ "database",
+ "orm"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/orm/issues",
+ "source": "https://github.com/doctrine/orm/tree/2.16.2"
+ },
+ "time": "2023-08-27T18:21:56+00:00"
+ },
+ {
+ "name": "doctrine/persistence",
+ "version": "3.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/persistence.git",
+ "reference": "63fee8c33bef740db6730eb2a750cd3da6495603"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/persistence/zipball/63fee8c33bef740db6730eb2a750cd3da6495603",
+ "reference": "63fee8c33bef740db6730eb2a750cd3da6495603",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/event-manager": "^1 || ^2",
+ "php": "^7.2 || ^8.0",
+ "psr/cache": "^1.0 || ^2.0 || ^3.0"
+ },
+ "conflict": {
+ "doctrine/common": "<2.10"
+ },
+ "require-dev": {
+ "composer/package-versions-deprecated": "^1.11",
+ "doctrine/coding-standard": "^11",
+ "doctrine/common": "^3.0",
+ "phpstan/phpstan": "1.9.4",
+ "phpstan/phpstan-phpunit": "^1",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "phpunit/phpunit": "^8.5 || ^9.5",
+ "symfony/cache": "^4.4 || ^5.4 || ^6.0",
+ "vimeo/psalm": "4.30.0 || 5.3.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Persistence\\": "src/Persistence"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ },
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
+ }
+ ],
+ "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.",
+ "homepage": "https://www.doctrine-project.org/projects/persistence.html",
+ "keywords": [
+ "mapper",
+ "object",
+ "odm",
+ "orm",
+ "persistence"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/persistence/issues",
+ "source": "https://github.com/doctrine/persistence/tree/3.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fpersistence",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-05-17T18:32:04+00:00"
+ },
+ {
+ "name": "doctrine/sql-formatter",
+ "version": "1.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/sql-formatter.git",
+ "reference": "25a06c7bf4c6b8218f47928654252863ffc890a5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/25a06c7bf4c6b8218f47928654252863ffc890a5",
+ "reference": "25a06c7bf4c6b8218f47928654252863ffc890a5",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.4"
+ },
+ "bin": [
+ "bin/sql-formatter"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\SqlFormatter\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jeremy Dorn",
+ "email": "jeremy@jeremydorn.com",
+ "homepage": "https://jeremydorn.com/"
+ }
+ ],
+ "description": "a PHP SQL highlighting library",
+ "homepage": "https://github.com/doctrine/sql-formatter/",
+ "keywords": [
+ "highlight",
+ "sql"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/sql-formatter/issues",
+ "source": "https://github.com/doctrine/sql-formatter/tree/1.1.3"
+ },
+ "time": "2022-05-23T21:33:49+00:00"
+ },
+ {
+ "name": "egulias/email-validator",
+ "version": "3.2.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/egulias/EmailValidator.git",
+ "reference": "e5997fa97e8790cdae03a9cbd5e78e45e3c7bda7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/e5997fa97e8790cdae03a9cbd5e78e45e3c7bda7",
+ "reference": "e5997fa97e8790cdae03a9cbd5e78e45e3c7bda7",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/lexer": "^1.2|^2",
+ "php": ">=7.2",
+ "symfony/polyfill-intl-idn": "^1.15"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5.8|^9.3.3",
+ "vimeo/psalm": "^4"
+ },
+ "suggest": {
+ "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Egulias\\EmailValidator\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Eduardo Gulias Davis"
+ }
+ ],
+ "description": "A library for validating emails against several RFCs",
+ "homepage": "https://github.com/egulias/EmailValidator",
+ "keywords": [
+ "email",
+ "emailvalidation",
+ "emailvalidator",
+ "validation",
+ "validator"
+ ],
+ "support": {
+ "issues": "https://github.com/egulias/EmailValidator/issues",
+ "source": "https://github.com/egulias/EmailValidator/tree/3.2.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/egulias",
+ "type": "github"
+ }
+ ],
+ "time": "2023-06-01T07:04:22+00:00"
+ },
+ {
+ "name": "friendsofphp/proxy-manager-lts",
+ "version": "v1.0.16",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/FriendsOfPHP/proxy-manager-lts.git",
+ "reference": "ecadbdc9052e4ad08c60c8a02268712e50427f7c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/FriendsOfPHP/proxy-manager-lts/zipball/ecadbdc9052e4ad08c60c8a02268712e50427f7c",
+ "reference": "ecadbdc9052e4ad08c60c8a02268712e50427f7c",
+ "shasum": ""
+ },
+ "require": {
+ "laminas/laminas-code": "~3.4.1|^4.0",
+ "php": ">=7.1",
+ "symfony/filesystem": "^4.4.17|^5.0|^6.0|^7.0"
+ },
+ "conflict": {
+ "laminas/laminas-stdlib": "<3.2.1",
+ "zendframework/zend-stdlib": "<3.2.1"
+ },
+ "replace": {
+ "ocramius/proxy-manager": "^2.1"
+ },
+ "require-dev": {
+ "ext-phar": "*",
+ "symfony/phpunit-bridge": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "ocramius/proxy-manager",
+ "url": "https://github.com/Ocramius/ProxyManager"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "ProxyManager\\": "src/ProxyManager"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com",
+ "homepage": "https://ocramius.github.io/"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ }
+ ],
+ "description": "Adding support for a wider range of PHP versions to ocramius/proxy-manager",
+ "homepage": "https://github.com/FriendsOfPHP/proxy-manager-lts",
+ "keywords": [
+ "aop",
+ "lazy loading",
+ "proxy",
+ "proxy pattern",
+ "service proxies"
+ ],
+ "support": {
+ "issues": "https://github.com/FriendsOfPHP/proxy-manager-lts/issues",
+ "source": "https://github.com/FriendsOfPHP/proxy-manager-lts/tree/v1.0.16"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Ocramius",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/ocramius/proxy-manager",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-05-24T07:17:17+00:00"
+ },
+ {
+ "name": "laminas/laminas-code",
+ "version": "4.7.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-code.git",
+ "reference": "91aabc066d5620428120800c0eafc0411e441a62"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laminas/laminas-code/zipball/91aabc066d5620428120800c0eafc0411e441a62",
+ "reference": "91aabc066d5620428120800c0eafc0411e441a62",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.4, <8.2"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.13.2",
+ "ext-phar": "*",
+ "laminas/laminas-coding-standard": "^2.3.0",
+ "laminas/laminas-stdlib": "^3.6.1",
+ "phpunit/phpunit": "^9.5.10",
+ "psalm/plugin-phpunit": "^0.17.0",
+ "vimeo/psalm": "^4.13.1"
+ },
+ "suggest": {
+ "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features",
+ "laminas/laminas-stdlib": "Laminas\\Stdlib component"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "polyfill/ReflectionEnumPolyfill.php"
+ ],
+ "psr-4": {
+ "Laminas\\Code\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Extensions to the PHP Reflection API, static code scanning, and code generation",
+ "homepage": "https://laminas.dev",
+ "keywords": [
+ "code",
+ "laminas",
+ "laminasframework"
+ ],
+ "support": {
+ "chat": "https://laminas.dev/chat",
+ "docs": "https://docs.laminas.dev/laminas-code/",
+ "forum": "https://discourse.laminas.dev",
+ "issues": "https://github.com/laminas/laminas-code/issues",
+ "rss": "https://github.com/laminas/laminas-code/releases.atom",
+ "source": "https://github.com/laminas/laminas-code"
+ },
+ "funding": [
+ {
+ "url": "https://funding.communitybridge.org/projects/laminas-project",
+ "type": "community_bridge"
+ }
+ ],
+ "time": "2022-11-21T01:32:31+00:00"
+ },
+ {
+ "name": "monolog/monolog",
+ "version": "2.9.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/monolog.git",
+ "reference": "437cb3628f4cf6042cc10ae97fc2b8472e48ca1f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/437cb3628f4cf6042cc10ae97fc2b8472e48ca1f",
+ "reference": "437cb3628f4cf6042cc10ae97fc2b8472e48ca1f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2",
+ "psr/log": "^1.0.1 || ^2.0 || ^3.0"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0"
+ },
+ "require-dev": {
+ "aws/aws-sdk-php": "^2.4.9 || ^3.0",
+ "doctrine/couchdb": "~1.0@dev",
+ "elasticsearch/elasticsearch": "^7 || ^8",
+ "ext-json": "*",
+ "graylog2/gelf-php": "^1.4.2 || ^2@dev",
+ "guzzlehttp/guzzle": "^7.4",
+ "guzzlehttp/psr7": "^2.2",
+ "mongodb/mongodb": "^1.8",
+ "php-amqplib/php-amqplib": "~2.4 || ^3",
+ "phpspec/prophecy": "^1.15",
+ "phpstan/phpstan": "^0.12.91",
+ "phpunit/phpunit": "^8.5.14",
+ "predis/predis": "^1.1 || ^2.0",
+ "rollbar/rollbar": "^1.3 || ^2 || ^3",
+ "ruflin/elastica": "^7",
+ "swiftmailer/swiftmailer": "^5.3|^6.0",
+ "symfony/mailer": "^5.4 || ^6",
+ "symfony/mime": "^5.4 || ^6"
+ },
+ "suggest": {
+ "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
+ "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
+ "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client",
+ "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
+ "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler",
+ "ext-mbstring": "Allow to work properly with unicode symbols",
+ "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)",
+ "ext-openssl": "Required to send log messages using SSL",
+ "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)",
+ "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
+ "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)",
+ "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
+ "rollbar/rollbar": "Allow sending log messages to Rollbar",
+ "ruflin/elastica": "Allow sending log messages to an Elastic Search server"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Monolog\\": "src/Monolog"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "https://seld.be"
+ }
+ ],
+ "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
+ "homepage": "https://github.com/Seldaek/monolog",
+ "keywords": [
+ "log",
+ "logging",
+ "psr-3"
+ ],
+ "support": {
+ "issues": "https://github.com/Seldaek/monolog/issues",
+ "source": "https://github.com/Seldaek/monolog/tree/2.9.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Seldaek",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/monolog/monolog",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-27T15:25:26+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-common",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-2.x": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "opensource@ijaap.nl"
+ }
+ ],
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
+ "homepage": "http://www.phpdoc.org",
+ "keywords": [
+ "FQSEN",
+ "phpDocumentor",
+ "phpdoc",
+ "reflection",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
+ },
+ "time": "2020-06-27T09:03:43+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-docblock",
+ "version": "5.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
+ "reference": "622548b623e81ca6d78b721c5e029f4ce664f170"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170",
+ "reference": "622548b623e81ca6d78b721c5e029f4ce664f170",
+ "shasum": ""
+ },
+ "require": {
+ "ext-filter": "*",
+ "php": "^7.2 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.2",
+ "phpdocumentor/type-resolver": "^1.3",
+ "webmozart/assert": "^1.9.1"
+ },
+ "require-dev": {
+ "mockery/mockery": "~1.3.2",
+ "psalm/phar": "^4.8"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ },
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "account@ijaap.nl"
+ }
+ ],
+ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0"
+ },
+ "time": "2021-10-19T17:43:47+00:00"
+ },
+ {
+ "name": "phpdocumentor/type-resolver",
+ "version": "1.7.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/TypeResolver.git",
+ "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419",
+ "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/deprecations": "^1.0",
+ "php": "^7.4 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.0",
+ "phpstan/phpdoc-parser": "^1.13"
+ },
+ "require-dev": {
+ "ext-tokenizer": "*",
+ "phpbench/phpbench": "^1.2",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.13.9",
+ "vimeo/psalm": "^4.25"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-1.x": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ }
+ ],
+ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
+ "support": {
+ "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
+ "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.3"
+ },
+ "time": "2023-08-12T11:01:26+00:00"
+ },
+ {
+ "name": "phpstan/phpdoc-parser",
+ "version": "1.24.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/phpdoc-parser.git",
+ "reference": "bcad8d995980440892759db0c32acae7c8e79442"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bcad8d995980440892759db0c32acae7c8e79442",
+ "reference": "bcad8d995980440892759db0c32acae7c8e79442",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^2.0",
+ "nikic/php-parser": "^4.15",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^1.5",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpstan/phpstan-strict-rules": "^1.0",
+ "phpunit/phpunit": "^9.5",
+ "symfony/process": "^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "PHPStan\\PhpDocParser\\": [
+ "src/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHPDoc parser with support for nullable, intersection and generic types",
+ "support": {
+ "issues": "https://github.com/phpstan/phpdoc-parser/issues",
+ "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.2"
+ },
+ "time": "2023-09-26T12:28:12+00:00"
+ },
+ {
+ "name": "psr/cache",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/cache.git",
+ "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/cache/zipball/213f9dbc5b9bfbc4f8db86d2838dc968752ce13b",
+ "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Cache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for caching libraries",
+ "keywords": [
+ "cache",
+ "psr",
+ "psr-6"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/cache/tree/2.0.0"
+ },
+ "time": "2021-02-03T23:23:37+00:00"
+ },
+ {
+ "name": "psr/container",
+ "version": "1.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "513e0666f7216c7459170d56df27dfcefe1689ea"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea",
+ "reference": "513e0666f7216c7459170d56df27dfcefe1689ea",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.4.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Psr\\Container\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common Container Interface (PHP FIG PSR-11)",
+ "homepage": "https://github.com/php-fig/container",
+ "keywords": [
+ "PSR-11",
+ "container",
+ "container-interface",
+ "container-interop",
+ "psr"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/container/issues",
+ "source": "https://github.com/php-fig/container/tree/1.1.2"
+ },
+ "time": "2021-11-05T16:50:12+00:00"
+ },
+ {
+ "name": "psr/event-dispatcher",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/event-dispatcher.git",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\EventDispatcher\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Standard interfaces for event handling.",
+ "keywords": [
+ "events",
+ "psr",
+ "psr-14"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/event-dispatcher/issues",
+ "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
+ },
+ "time": "2019-01-08T18:20:26+00:00"
+ },
+ {
+ "name": "psr/link",
+ "version": "1.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/link.git",
+ "reference": "846c25f58a1f02b93a00f2404e3626b6bf9b7807"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/link/zipball/846c25f58a1f02b93a00f2404e3626b6bf9b7807",
+ "reference": "846c25f58a1f02b93a00f2404e3626b6bf9b7807",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Link\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interfaces for HTTP links",
+ "homepage": "https://github.com/php-fig/link",
+ "keywords": [
+ "http",
+ "http-link",
+ "link",
+ "psr",
+ "psr-13",
+ "rest"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/link/tree/1.1.1"
+ },
+ "time": "2021-03-11T22:59:13+00:00"
+ },
+ {
+ "name": "psr/log",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376",
+ "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Log\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for logging libraries",
+ "homepage": "https://github.com/php-fig/log",
+ "keywords": [
+ "log",
+ "psr",
+ "psr-3"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/log/tree/2.0.0"
+ },
+ "time": "2021-07-14T16:41:46+00:00"
+ },
+ {
+ "name": "sabre/dav",
+ "version": "4.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sabre-io/dav.git",
+ "reference": "7e40343e473f17eab3d1d6ca4ae3e1cdfc6e0fd8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sabre-io/dav/zipball/7e40343e473f17eab3d1d6ca4ae3e1cdfc6e0fd8",
+ "reference": "7e40343e473f17eab3d1d6ca4ae3e1cdfc6e0fd8",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "ext-date": "*",
+ "ext-dom": "*",
+ "ext-iconv": "*",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "ext-pcre": "*",
+ "ext-simplexml": "*",
+ "ext-spl": "*",
+ "lib-libxml": ">=2.7.0",
+ "php": "^7.1.0 || ^8.0",
+ "psr/log": "^1.0 || ^2.0 || ^3.0",
+ "sabre/event": "^5.0",
+ "sabre/http": "^5.0.5",
+ "sabre/uri": "^2.0",
+ "sabre/vobject": "^4.2.1",
+ "sabre/xml": "^2.0.1"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^2.19",
+ "monolog/monolog": "^1.27",
+ "phpstan/phpstan": "^0.12 || ^1.0",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6"
+ },
+ "suggest": {
+ "ext-curl": "*",
+ "ext-imap": "*",
+ "ext-pdo": "*"
+ },
+ "bin": [
+ "bin/sabredav",
+ "bin/naturalselection"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Sabre\\": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Evert Pot",
+ "email": "me@evertpot.com",
+ "homepage": "http://evertpot.com/",
+ "role": "Developer"
+ }
+ ],
+ "description": "WebDAV Framework for PHP",
+ "homepage": "http://sabre.io/",
+ "keywords": [
+ "CalDAV",
+ "CardDAV",
+ "WebDAV",
+ "framework",
+ "iCalendar"
+ ],
+ "support": {
+ "forum": "https://groups.google.com/group/sabredav-discuss",
+ "issues": "https://github.com/sabre-io/dav/issues",
+ "source": "https://github.com/fruux/sabre-dav"
+ },
+ "time": "2023-11-14T10:48:05+00:00"
+ },
+ {
+ "name": "sabre/event",
+ "version": "5.1.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sabre-io/event.git",
+ "reference": "d7da22897125d34d7eddf7977758191c06a74497"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sabre-io/event/zipball/d7da22897125d34d7eddf7977758191c06a74497",
+ "reference": "d7da22897125d34d7eddf7977758191c06a74497",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "~2.17.1",
+ "phpstan/phpstan": "^0.12",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "lib/coroutine.php",
+ "lib/Loop/functions.php",
+ "lib/Promise/functions.php"
+ ],
+ "psr-4": {
+ "Sabre\\Event\\": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Evert Pot",
+ "email": "me@evertpot.com",
+ "homepage": "http://evertpot.com/",
+ "role": "Developer"
+ }
+ ],
+ "description": "sabre/event is a library for lightweight event-based programming",
+ "homepage": "http://sabre.io/event/",
+ "keywords": [
+ "EventEmitter",
+ "async",
+ "coroutine",
+ "eventloop",
+ "events",
+ "hooks",
+ "plugin",
+ "promise",
+ "reactor",
+ "signal"
+ ],
+ "support": {
+ "forum": "https://groups.google.com/group/sabredav-discuss",
+ "issues": "https://github.com/sabre-io/event/issues",
+ "source": "https://github.com/fruux/sabre-event"
+ },
+ "time": "2021-11-04T06:51:17+00:00"
+ },
+ {
+ "name": "sabre/http",
+ "version": "5.1.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sabre-io/http.git",
+ "reference": "f9f3d1fba8916fa2f4ec25636c4fedc26cb94e02"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sabre-io/http/zipball/f9f3d1fba8916fa2f4ec25636c4fedc26cb94e02",
+ "reference": "f9f3d1fba8916fa2f4ec25636c4fedc26cb94e02",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "ext-curl": "*",
+ "ext-mbstring": "*",
+ "php": "^7.1 || ^8.0",
+ "sabre/event": ">=4.0 <6.0",
+ "sabre/uri": "^2.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "~2.17.1",
+ "phpstan/phpstan": "^0.12",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.0"
+ },
+ "suggest": {
+ "ext-curl": " to make http requests with the Client class"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "lib/functions.php"
+ ],
+ "psr-4": {
+ "Sabre\\HTTP\\": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Evert Pot",
+ "email": "me@evertpot.com",
+ "homepage": "http://evertpot.com/",
+ "role": "Developer"
+ }
+ ],
+ "description": "The sabre/http library provides utilities for dealing with http requests and responses. ",
+ "homepage": "https://github.com/fruux/sabre-http",
+ "keywords": [
+ "http"
+ ],
+ "support": {
+ "forum": "https://groups.google.com/group/sabredav-discuss",
+ "issues": "https://github.com/sabre-io/http/issues",
+ "source": "https://github.com/fruux/sabre-http"
+ },
+ "time": "2023-08-18T01:55:28+00:00"
+ },
+ {
+ "name": "sabre/uri",
+ "version": "2.3.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sabre-io/uri.git",
+ "reference": "7e0e7dfd0b7e14346a27eabd66e843a6e7f1812b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sabre-io/uri/zipball/7e0e7dfd0b7e14346a27eabd66e843a6e7f1812b",
+ "reference": "7e0e7dfd0b7e14346a27eabd66e843a6e7f1812b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^3.17",
+ "phpstan/extension-installer": "^1.3",
+ "phpstan/phpstan": "^1.10",
+ "phpstan/phpstan-phpunit": "^1.3",
+ "phpstan/phpstan-strict-rules": "^1.5",
+ "phpunit/phpunit": "^9.6"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "lib/functions.php"
+ ],
+ "psr-4": {
+ "Sabre\\Uri\\": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Evert Pot",
+ "email": "me@evertpot.com",
+ "homepage": "http://evertpot.com/",
+ "role": "Developer"
+ }
+ ],
+ "description": "Functions for making sense out of URIs.",
+ "homepage": "http://sabre.io/uri/",
+ "keywords": [
+ "rfc3986",
+ "uri",
+ "url"
+ ],
+ "support": {
+ "forum": "https://groups.google.com/group/sabredav-discuss",
+ "issues": "https://github.com/sabre-io/uri/issues",
+ "source": "https://github.com/fruux/sabre-uri"
+ },
+ "time": "2023-06-09T06:54:04+00:00"
+ },
+ {
+ "name": "sabre/vobject",
+ "version": "4.5.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sabre-io/vobject.git",
+ "reference": "a6d53a3e5bec85ed3dd78868b7de0f5b4e12f772"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sabre-io/vobject/zipball/a6d53a3e5bec85ed3dd78868b7de0f5b4e12f772",
+ "reference": "a6d53a3e5bec85ed3dd78868b7de0f5b4e12f772",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": "^7.1 || ^8.0",
+ "sabre/xml": "^2.1 || ^3.0 || ^4.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "~2.17.1",
+ "phpstan/phpstan": "^0.12",
+ "phpunit/php-invoker": "^2.0 || ^3.1",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.0"
+ },
+ "suggest": {
+ "hoa/bench": "If you would like to run the benchmark scripts"
+ },
+ "bin": [
+ "bin/vobject",
+ "bin/generate_vcards"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Sabre\\VObject\\": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Evert Pot",
+ "email": "me@evertpot.com",
+ "homepage": "http://evertpot.com/",
+ "role": "Developer"
+ },
+ {
+ "name": "Dominik Tobschall",
+ "email": "dominik@fruux.com",
+ "homepage": "http://tobschall.de/",
+ "role": "Developer"
+ },
+ {
+ "name": "Ivan Enderlin",
+ "email": "ivan.enderlin@hoa-project.net",
+ "homepage": "http://mnt.io/",
+ "role": "Developer"
+ }
+ ],
+ "description": "The VObject library for PHP allows you to easily parse and manipulate iCalendar and vCard objects",
+ "homepage": "http://sabre.io/vobject/",
+ "keywords": [
+ "availability",
+ "freebusy",
+ "iCalendar",
+ "ical",
+ "ics",
+ "jCal",
+ "jCard",
+ "recurrence",
+ "rfc2425",
+ "rfc2426",
+ "rfc2739",
+ "rfc4770",
+ "rfc5545",
+ "rfc5546",
+ "rfc6321",
+ "rfc6350",
+ "rfc6351",
+ "rfc6474",
+ "rfc6638",
+ "rfc6715",
+ "rfc6868",
+ "vCalendar",
+ "vCard",
+ "vcf",
+ "xCal",
+ "xCard"
+ ],
+ "support": {
+ "forum": "https://groups.google.com/group/sabredav-discuss",
+ "issues": "https://github.com/sabre-io/vobject/issues",
+ "source": "https://github.com/fruux/sabre-vobject"
+ },
+ "time": "2023-11-09T12:54:37+00:00"
+ },
+ {
+ "name": "sabre/xml",
+ "version": "2.2.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sabre-io/xml.git",
+ "reference": "9cde7cdab1e50893cc83b037b40cd47bfde42a2b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sabre-io/xml/zipball/9cde7cdab1e50893cc83b037b40cd47bfde42a2b",
+ "reference": "9cde7cdab1e50893cc83b037b40cd47bfde42a2b",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-xmlreader": "*",
+ "ext-xmlwriter": "*",
+ "lib-libxml": ">=2.6.20",
+ "php": "^7.1 || ^8.0",
+ "sabre/uri": ">=1.0,<3.0.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "~2.17.1",
+ "phpstan/phpstan": "^0.12",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "lib/Deserializer/functions.php",
+ "lib/Serializer/functions.php"
+ ],
+ "psr-4": {
+ "Sabre\\Xml\\": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Evert Pot",
+ "email": "me@evertpot.com",
+ "homepage": "http://evertpot.com/",
+ "role": "Developer"
+ },
+ {
+ "name": "Markus Staab",
+ "email": "markus.staab@redaxo.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "sabre/xml is an XML library that you may not hate.",
+ "homepage": "https://sabre.io/xml/",
+ "keywords": [
+ "XMLReader",
+ "XMLWriter",
+ "dom",
+ "xml"
+ ],
+ "support": {
+ "forum": "https://groups.google.com/group/sabredav-discuss",
+ "issues": "https://github.com/sabre-io/xml/issues",
+ "source": "https://github.com/fruux/sabre-xml"
+ },
+ "time": "2023-06-28T12:56:05+00:00"
+ },
+ {
+ "name": "symfony/apache-pack",
+ "version": "v1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/apache-pack.git",
+ "reference": "3aa5818d73ad2551281fc58a75afd9ca82622e6c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/apache-pack/zipball/3aa5818d73ad2551281fc58a75afd9ca82622e6c",
+ "reference": "3aa5818d73ad2551281fc58a75afd9ca82622e6c",
+ "shasum": ""
+ },
+ "type": "symfony-pack",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A pack for Apache support in Symfony",
+ "support": {
+ "issues": "https://github.com/symfony/apache-pack/issues",
+ "source": "https://github.com/symfony/apache-pack/tree/master"
+ },
+ "time": "2017-12-12T01:46:35+00:00"
+ },
+ {
+ "name": "symfony/asset",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/asset.git",
+ "reference": "edb2457a0ef615d420d2319851f679a4cc3b3635"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/asset/zipball/edb2457a0ef615d420d2319851f679a4cc3b3635",
+ "reference": "edb2457a0ef615d420d2319851f679a4cc3b3635",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "conflict": {
+ "symfony/http-foundation": "<5.3"
+ },
+ "require-dev": {
+ "symfony/http-client": "^4.4|^5.0|^6.0",
+ "symfony/http-foundation": "^5.3|^6.0",
+ "symfony/http-kernel": "^4.4|^5.0|^6.0"
+ },
+ "suggest": {
+ "symfony/http-foundation": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Asset\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/asset/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-31T07:58:33+00:00"
+ },
+ {
+ "name": "symfony/cache",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/cache.git",
+ "reference": "9c0a3a5d0718e51ff81e0605be38fe1acbee9eeb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/cache/zipball/9c0a3a5d0718e51ff81e0605be38fe1acbee9eeb",
+ "reference": "9c0a3a5d0718e51ff81e0605be38fe1acbee9eeb",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/cache": "^1.0|^2.0",
+ "psr/log": "^1.1|^2|^3",
+ "symfony/cache-contracts": "^1.1.7|^2",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php73": "^1.9",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/service-contracts": "^1.1|^2|^3",
+ "symfony/var-exporter": "^4.4|^5.0|^6.0"
+ },
+ "conflict": {
+ "doctrine/dbal": "<2.13.1",
+ "symfony/dependency-injection": "<4.4",
+ "symfony/http-kernel": "<4.4",
+ "symfony/var-dumper": "<4.4"
+ },
+ "provide": {
+ "psr/cache-implementation": "1.0|2.0",
+ "psr/simple-cache-implementation": "1.0|2.0",
+ "symfony/cache-implementation": "1.0|2.0"
+ },
+ "require-dev": {
+ "cache/integration-tests": "dev-master",
+ "doctrine/cache": "^1.6|^2.0",
+ "doctrine/dbal": "^2.13.1|^3|^4",
+ "predis/predis": "^1.1",
+ "psr/simple-cache": "^1.0|^2.0",
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/filesystem": "^4.4|^5.0|^6.0",
+ "symfony/http-kernel": "^4.4|^5.0|^6.0",
+ "symfony/messenger": "^4.4|^5.0|^6.0",
+ "symfony/var-dumper": "^4.4|^5.0|^6.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Cache\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides extended PSR-6, PSR-16 (and tags) implementations",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "caching",
+ "psr6"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/cache/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-06T17:37:55+00:00"
+ },
+ {
+ "name": "symfony/cache-contracts",
+ "version": "v2.5.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/cache-contracts.git",
+ "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/64be4a7acb83b6f2bf6de9a02cee6dad41277ebc",
+ "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/cache": "^1.0|^2.0|^3.0"
+ },
+ "suggest": {
+ "symfony/cache-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Cache\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to caching",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/cache-contracts/tree/v2.5.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-01-02T09:53:40+00:00"
+ },
+ {
+ "name": "symfony/config",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/config.git",
+ "reference": "dd5ea39de228813aba0c23c3a4153da2a4cf3cd9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/config/zipball/dd5ea39de228813aba0c23c3a4153da2a4cf3cd9",
+ "reference": "dd5ea39de228813aba0c23c3a4153da2a4cf3cd9",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/filesystem": "^4.4|^5.0|^6.0",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/polyfill-php81": "^1.22"
+ },
+ "conflict": {
+ "symfony/finder": "<4.4"
+ },
+ "require-dev": {
+ "symfony/event-dispatcher": "^4.4|^5.0|^6.0",
+ "symfony/finder": "^4.4|^5.0|^6.0",
+ "symfony/messenger": "^4.4|^5.0|^6.0",
+ "symfony/service-contracts": "^1.1|^2|^3",
+ "symfony/yaml": "^4.4|^5.0|^6.0"
+ },
+ "suggest": {
+ "symfony/yaml": "To use the yaml reference dumper"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Config\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/config/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-09T08:22:43+00:00"
+ },
+ {
+ "name": "symfony/console",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/console.git",
+ "reference": "11ac5f154e0e5c4c77af83ad11ead9165280b92a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/console/zipball/11ac5f154e0e5c4c77af83ad11ead9165280b92a",
+ "reference": "11ac5f154e0e5c4c77af83ad11ead9165280b92a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php73": "^1.9",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/service-contracts": "^1.1|^2|^3",
+ "symfony/string": "^5.1|^6.0"
+ },
+ "conflict": {
+ "psr/log": ">=3",
+ "symfony/dependency-injection": "<4.4",
+ "symfony/dotenv": "<5.1",
+ "symfony/event-dispatcher": "<4.4",
+ "symfony/lock": "<4.4",
+ "symfony/process": "<4.4"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0|2.0"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2",
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/event-dispatcher": "^4.4|^5.0|^6.0",
+ "symfony/lock": "^4.4|^5.0|^6.0",
+ "symfony/process": "^4.4|^5.0|^6.0",
+ "symfony/var-dumper": "^4.4|^5.0|^6.0"
+ },
+ "suggest": {
+ "psr/log": "For using the console logger",
+ "symfony/event-dispatcher": "",
+ "symfony/lock": "",
+ "symfony/process": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Console\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Eases the creation of beautiful and testable command line interfaces",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "cli",
+ "command-line",
+ "console",
+ "terminal"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/console/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-31T07:58:33+00:00"
+ },
+ {
+ "name": "symfony/dependency-injection",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/dependency-injection.git",
+ "reference": "eb1bcafa54e00ed218e1b733b8b6ad1c9ff83d20"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/eb1bcafa54e00ed218e1b733b8b6ad1c9ff83d20",
+ "reference": "eb1bcafa54e00ed218e1b733b8b6ad1c9ff83d20",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/container": "^1.1.1",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/polyfill-php81": "^1.22",
+ "symfony/service-contracts": "^1.1.6|^2"
+ },
+ "conflict": {
+ "ext-psr": "<1.1|>=2",
+ "symfony/config": "<5.3",
+ "symfony/finder": "<4.4",
+ "symfony/proxy-manager-bridge": "<4.4",
+ "symfony/yaml": "<4.4.26"
+ },
+ "provide": {
+ "psr/container-implementation": "1.0",
+ "symfony/service-implementation": "1.0|2.0"
+ },
+ "require-dev": {
+ "symfony/config": "^5.3|^6.0",
+ "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/yaml": "^4.4.26|^5.0|^6.0"
+ },
+ "suggest": {
+ "symfony/config": "",
+ "symfony/expression-language": "For using expressions in service container configuration",
+ "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required",
+ "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them",
+ "symfony/yaml": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\DependencyInjection\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Allows you to standardize and centralize the way objects are constructed in your application",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/dependency-injection/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-31T07:58:33+00:00"
+ },
+ {
+ "name": "symfony/deprecation-contracts",
+ "version": "v3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/deprecation-contracts.git",
+ "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c",
+ "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.0-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "files": [
+ "function.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "A generic function and convention to trigger deprecation notices",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-01-02T09:55:41+00:00"
+ },
+ {
+ "name": "symfony/doctrine-bridge",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/doctrine-bridge.git",
+ "reference": "e82ccb815ac20fd6579e1f42f924071f20fa4264"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/e82ccb815ac20fd6579e1f42f924071f20fa4264",
+ "reference": "e82ccb815ac20fd6579e1f42f924071f20fa4264",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/event-manager": "~1.0",
+ "doctrine/persistence": "^2|^3",
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/service-contracts": "^1.1|^2|^3"
+ },
+ "conflict": {
+ "doctrine/dbal": "<2.13.1",
+ "doctrine/lexer": "<1.1",
+ "doctrine/orm": "<2.7.4",
+ "symfony/cache": "<5.4",
+ "symfony/dependency-injection": "<4.4",
+ "symfony/form": "<5.4.21|>=6,<6.2.7",
+ "symfony/http-kernel": "<5",
+ "symfony/messenger": "<4.4",
+ "symfony/property-info": "<5",
+ "symfony/proxy-manager-bridge": "<4.4.19",
+ "symfony/security-bundle": "<5",
+ "symfony/security-core": "<5.3",
+ "symfony/validator": "<5.4.25|>=6,<6.2.12|>=6.3,<6.3.1"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.10.4|^2",
+ "doctrine/collections": "^1.0|^2.0",
+ "doctrine/data-fixtures": "^1.1",
+ "doctrine/dbal": "^2.13.1|^3|^4",
+ "doctrine/orm": "^2.7.4|^3",
+ "psr/log": "^1|^2|^3",
+ "symfony/cache": "^5.4|^6.0",
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/doctrine-messenger": "^5.1|^6.0",
+ "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/form": "^5.4.21|^6.2.7",
+ "symfony/http-kernel": "^5.0|^6.0",
+ "symfony/messenger": "^4.4|^5.0|^6.0",
+ "symfony/property-access": "^4.4|^5.0|^6.0",
+ "symfony/property-info": "^5.0|^6.0",
+ "symfony/proxy-manager-bridge": "^4.4|^5.0|^6.0",
+ "symfony/security-core": "^5.3|^6.0",
+ "symfony/stopwatch": "^4.4|^5.0|^6.0",
+ "symfony/translation": "^4.4|^5.0|^6.0",
+ "symfony/uid": "^5.1|^6.0",
+ "symfony/validator": "^5.4.25|~6.2.12|^6.3.1",
+ "symfony/var-dumper": "^4.4|^5.0|^6.0"
+ },
+ "suggest": {
+ "doctrine/data-fixtures": "",
+ "doctrine/dbal": "",
+ "doctrine/orm": "",
+ "symfony/form": "",
+ "symfony/property-info": "",
+ "symfony/validator": ""
+ },
+ "type": "symfony-bridge",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bridge\\Doctrine\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides integration for Doctrine with various Symfony components",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/doctrine-bridge/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-31T07:58:33+00:00"
+ },
+ {
+ "name": "symfony/dotenv",
+ "version": "v5.4.30",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/dotenv.git",
+ "reference": "ceed2cd28442adcf3679a9a82dacd45baeefc458"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/dotenv/zipball/ceed2cd28442adcf3679a9a82dacd45baeefc458",
+ "reference": "ceed2cd28442adcf3679a9a82dacd45baeefc458",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3"
+ },
+ "require-dev": {
+ "symfony/console": "^4.4|^5.0|^6.0",
+ "symfony/process": "^4.4|^5.0|^6.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Dotenv\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Registers environment variables from a .env file",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "dotenv",
+ "env",
+ "environment"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/dotenv/tree/v5.4.30"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-26T16:37:39+00:00"
+ },
+ {
+ "name": "symfony/error-handler",
+ "version": "v5.4.29",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/error-handler.git",
+ "reference": "328c6fcfd2f90b64c16efaf0ea67a311d672f078"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/328c6fcfd2f90b64c16efaf0ea67a311d672f078",
+ "reference": "328c6fcfd2f90b64c16efaf0ea67a311d672f078",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/log": "^1|^2|^3",
+ "symfony/var-dumper": "^4.4|^5.0|^6.0"
+ },
+ "require-dev": {
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/http-kernel": "^4.4|^5.0|^6.0",
+ "symfony/serializer": "^4.4|^5.0|^6.0"
+ },
+ "bin": [
+ "Resources/bin/patch-type-declarations"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\ErrorHandler\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides tools to manage errors and ease debugging PHP code",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/error-handler/tree/v5.4.29"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-09-06T21:54:06+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher",
+ "version": "v5.4.26",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher.git",
+ "reference": "5dcc00e03413f05c1e7900090927bb7247cb0aac"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/5dcc00e03413f05c1e7900090927bb7247cb0aac",
+ "reference": "5dcc00e03413f05c1e7900090927bb7247cb0aac",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/event-dispatcher-contracts": "^2|^3",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<4.4"
+ },
+ "provide": {
+ "psr/event-dispatcher-implementation": "1.0",
+ "symfony/event-dispatcher-implementation": "2.0"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/error-handler": "^4.4|^5.0|^6.0",
+ "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/http-foundation": "^4.4|^5.0|^6.0",
+ "symfony/service-contracts": "^1.1|^2|^3",
+ "symfony/stopwatch": "^4.4|^5.0|^6.0"
+ },
+ "suggest": {
+ "symfony/dependency-injection": "",
+ "symfony/http-kernel": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\EventDispatcher\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.26"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-07-06T06:34:20+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher-contracts",
+ "version": "v3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher-contracts.git",
+ "reference": "7bc61cc2db649b4637d331240c5346dcc7708051"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7bc61cc2db649b4637d331240c5346dcc7708051",
+ "reference": "7bc61cc2db649b4637d331240c5346dcc7708051",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.2",
+ "psr/event-dispatcher": "^1"
+ },
+ "suggest": {
+ "symfony/event-dispatcher-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.0-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\EventDispatcher\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to dispatching event",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-01-02T09:55:41+00:00"
+ },
+ {
+ "name": "symfony/expression-language",
+ "version": "v5.4.21",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/expression-language.git",
+ "reference": "501589522b844b8eecf012c133f0404f0eef77ac"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/expression-language/zipball/501589522b844b8eecf012c133f0404f0eef77ac",
+ "reference": "501589522b844b8eecf012c133f0404f0eef77ac",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/cache": "^4.4|^5.0|^6.0",
+ "symfony/service-contracts": "^1.1|^2|^3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\ExpressionLanguage\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an engine that can compile and evaluate expressions",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/expression-language/tree/v5.4.21"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-02-14T08:03:56+00:00"
+ },
+ {
+ "name": "symfony/filesystem",
+ "version": "v5.4.25",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/filesystem.git",
+ "reference": "0ce3a62c9579a53358d3a7eb6b3dfb79789a6364"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/0ce3a62c9579a53358d3a7eb6b3dfb79789a6364",
+ "reference": "0ce3a62c9579a53358d3a7eb6b3dfb79789a6364",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.8",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Filesystem\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides basic utilities for the filesystem",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/filesystem/tree/v5.4.25"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-05-31T13:04:02+00:00"
+ },
+ {
+ "name": "symfony/finder",
+ "version": "v5.4.27",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/finder.git",
+ "reference": "ff4bce3c33451e7ec778070e45bd23f74214cd5d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/ff4bce3c33451e7ec778070e45bd23f74214cd5d",
+ "reference": "ff4bce3c33451e7ec778070e45bd23f74214cd5d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Finder\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Finds files and directories via an intuitive fluent interface",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/finder/tree/v5.4.27"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-07-31T08:02:31+00:00"
+ },
+ {
+ "name": "symfony/flex",
+ "version": "v1.21.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/flex.git",
+ "reference": "f1cf4014ffac79e0c031cc40d6d66354e7de5da5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/flex/zipball/f1cf4014ffac79e0c031cc40d6d66354e7de5da5",
+ "reference": "f1cf4014ffac79e0c031cc40d6d66354e7de5da5",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.0|^2.0",
+ "php": ">=7.1"
+ },
+ "require-dev": {
+ "composer/composer": "^1.0.2|^2.0",
+ "symfony/dotenv": "^4.4|^5.0|^6.0",
+ "symfony/filesystem": "^4.4|^5.0|^6.0",
+ "symfony/phpunit-bridge": "^4.4.12|^5.0|^6.0",
+ "symfony/process": "^4.4|^5.0|^6.0"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "Symfony\\Flex\\Flex"
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Flex\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien.potencier@gmail.com"
+ }
+ ],
+ "description": "Composer plugin for Symfony",
+ "support": {
+ "issues": "https://github.com/symfony/flex/issues",
+ "source": "https://github.com/symfony/flex/tree/v1.21.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-30T18:34:59+00:00"
+ },
+ {
+ "name": "symfony/form",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/form.git",
+ "reference": "48d26192c14f4f11802718a8d37bd757bae22c68"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/form/zipball/48d26192c14f4f11802718a8d37bd757bae22c68",
+ "reference": "48d26192c14f4f11802718a8d37bd757bae22c68",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/event-dispatcher": "^4.4|^5.0|^6.0",
+ "symfony/options-resolver": "^5.1|^6.0",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-intl-icu": "^1.21",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/polyfill-php81": "^1.23",
+ "symfony/property-access": "^5.0.8|^6.0",
+ "symfony/service-contracts": "^1.1|^2|^3"
+ },
+ "conflict": {
+ "symfony/console": "<4.4",
+ "symfony/dependency-injection": "<4.4",
+ "symfony/doctrine-bridge": "<5.4.21|>=6,<6.2.7",
+ "symfony/error-handler": "<4.4.5",
+ "symfony/framework-bundle": "<4.4",
+ "symfony/http-kernel": "<4.4",
+ "symfony/translation": "<4.4",
+ "symfony/translation-contracts": "<1.1.7",
+ "symfony/twig-bridge": "<5.4.21|>=6,<6.2.7"
+ },
+ "require-dev": {
+ "doctrine/collections": "^1.0|^2.0",
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/http-foundation": "^4.4|^5.0|^6.0",
+ "symfony/http-kernel": "^4.4|^5.0|^6.0",
+ "symfony/intl": "^4.4|^5.0|^6.0",
+ "symfony/security-csrf": "^4.4|^5.0|^6.0",
+ "symfony/translation": "^4.4|^5.0|^6.0",
+ "symfony/uid": "^5.1|^6.0",
+ "symfony/validator": "^4.4.17|^5.1.9|^6.0",
+ "symfony/var-dumper": "^4.4|^5.0|^6.0"
+ },
+ "suggest": {
+ "symfony/security-csrf": "For protecting forms against CSRF attacks.",
+ "symfony/twig-bridge": "For templating with Twig.",
+ "symfony/validator": "For form validation."
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Form\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Allows to easily create, process and reuse HTML forms",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/form/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-02T08:45:35+00:00"
+ },
+ {
+ "name": "symfony/framework-bundle",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/framework-bundle.git",
+ "reference": "4eeac66c8b0f2793324e94cfc6ac1c8bc5b92960"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/4eeac66c8b0f2793324e94cfc6ac1c8bc5b92960",
+ "reference": "4eeac66c8b0f2793324e94cfc6ac1c8bc5b92960",
+ "shasum": ""
+ },
+ "require": {
+ "ext-xml": "*",
+ "php": ">=7.2.5",
+ "symfony/cache": "^5.2|^6.0",
+ "symfony/config": "^5.3|^6.0",
+ "symfony/dependency-injection": "^5.4.5|^6.0.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/error-handler": "^4.4.1|^5.0.1|^6.0",
+ "symfony/event-dispatcher": "^5.1|^6.0",
+ "symfony/filesystem": "^4.4|^5.0|^6.0",
+ "symfony/finder": "^4.4|^5.0|^6.0",
+ "symfony/http-foundation": "^5.4.24|^6.2.11",
+ "symfony/http-kernel": "^5.4|^6.0",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/polyfill-php81": "^1.22",
+ "symfony/routing": "^5.3|^6.0"
+ },
+ "conflict": {
+ "doctrine/annotations": "<1.13.1",
+ "doctrine/cache": "<1.11",
+ "doctrine/persistence": "<1.3",
+ "phpdocumentor/reflection-docblock": "<3.2.2",
+ "phpdocumentor/type-resolver": "<1.4.0",
+ "symfony/asset": "<5.3",
+ "symfony/console": "<5.2.5",
+ "symfony/dom-crawler": "<4.4",
+ "symfony/dotenv": "<5.1",
+ "symfony/form": "<5.2",
+ "symfony/http-client": "<4.4",
+ "symfony/lock": "<4.4",
+ "symfony/mailer": "<5.2",
+ "symfony/messenger": "<5.4",
+ "symfony/mime": "<4.4",
+ "symfony/property-access": "<5.3",
+ "symfony/property-info": "<4.4",
+ "symfony/security-csrf": "<5.3",
+ "symfony/serializer": "<5.2",
+ "symfony/service-contracts": ">=3.0",
+ "symfony/stopwatch": "<4.4",
+ "symfony/translation": "<5.3",
+ "symfony/twig-bridge": "<4.4",
+ "symfony/twig-bundle": "<4.4",
+ "symfony/validator": "<5.3.11",
+ "symfony/web-profiler-bundle": "<4.4",
+ "symfony/workflow": "<5.2"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.13.1|^2",
+ "doctrine/cache": "^1.11|^2.0",
+ "doctrine/persistence": "^1.3|^2|^3",
+ "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
+ "symfony/asset": "^5.3|^6.0",
+ "symfony/browser-kit": "^5.4|^6.0",
+ "symfony/console": "^5.4.9|^6.0.9",
+ "symfony/css-selector": "^4.4|^5.0|^6.0",
+ "symfony/dom-crawler": "^4.4.30|^5.3.7|^6.0",
+ "symfony/dotenv": "^5.1|^6.0",
+ "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/form": "^5.2|^6.0",
+ "symfony/http-client": "^4.4|^5.0|^6.0",
+ "symfony/lock": "^4.4|^5.0|^6.0",
+ "symfony/mailer": "^5.2|^6.0",
+ "symfony/messenger": "^5.4|^6.0",
+ "symfony/mime": "^4.4|^5.0|^6.0",
+ "symfony/notifier": "^5.4|^6.0",
+ "symfony/polyfill-intl-icu": "~1.0",
+ "symfony/process": "^4.4|^5.0|^6.0",
+ "symfony/property-info": "^4.4|^5.0|^6.0",
+ "symfony/rate-limiter": "^5.2|^6.0",
+ "symfony/security-bundle": "^5.4|^6.0",
+ "symfony/serializer": "^5.4|^6.0",
+ "symfony/stopwatch": "^4.4|^5.0|^6.0",
+ "symfony/string": "^5.0|^6.0",
+ "symfony/translation": "^5.3|^6.0",
+ "symfony/twig-bundle": "^4.4|^5.0|^6.0",
+ "symfony/validator": "^5.3.11|^6.0",
+ "symfony/web-link": "^4.4|^5.0|^6.0",
+ "symfony/workflow": "^5.2|^6.0",
+ "symfony/yaml": "^4.4|^5.0|^6.0",
+ "twig/twig": "^2.10|^3.0"
+ },
+ "suggest": {
+ "ext-apcu": "For best performance of the system caches",
+ "symfony/console": "For using the console commands",
+ "symfony/form": "For using forms",
+ "symfony/property-info": "For using the property_info service",
+ "symfony/serializer": "For using the serializer service",
+ "symfony/validator": "For using validation",
+ "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering",
+ "symfony/yaml": "For using the debug:config and lint:yaml commands"
+ },
+ "type": "symfony-bundle",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bundle\\FrameworkBundle\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/framework-bundle/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-31T07:58:33+00:00"
+ },
+ {
+ "name": "symfony/http-client",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-client.git",
+ "reference": "6cdf6cdf48101454f014a9ab4e0905f0b902389d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-client/zipball/6cdf6cdf48101454f014a9ab4e0905f0b902389d",
+ "reference": "6cdf6cdf48101454f014a9ab4e0905f0b902389d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/log": "^1|^2|^3",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/http-client-contracts": "^2.4",
+ "symfony/polyfill-php73": "^1.11",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/service-contracts": "^1.0|^2|^3"
+ },
+ "provide": {
+ "php-http/async-client-implementation": "*",
+ "php-http/client-implementation": "*",
+ "psr/http-client-implementation": "1.0",
+ "symfony/http-client-implementation": "2.4"
+ },
+ "require-dev": {
+ "amphp/amp": "^2.5",
+ "amphp/http-client": "^4.2.1",
+ "amphp/http-tunnel": "^1.0",
+ "amphp/socket": "^1.1",
+ "guzzlehttp/promises": "^1.4",
+ "nyholm/psr7": "^1.0",
+ "php-http/httplug": "^1.0|^2.0",
+ "php-http/message-factory": "^1.0",
+ "psr/http-client": "^1.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/http-kernel": "^4.4.13|^5.1.5|^6.0",
+ "symfony/process": "^4.4|^5.0|^6.0",
+ "symfony/stopwatch": "^4.4|^5.0|^6.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpClient\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "http"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/http-client/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-29T12:33:05+00:00"
+ },
+ {
+ "name": "symfony/http-client-contracts",
+ "version": "v2.5.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-client-contracts.git",
+ "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70",
+ "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5"
+ },
+ "suggest": {
+ "symfony/http-client-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\HttpClient\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to HTTP clients",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-04-12T15:48:08+00:00"
+ },
+ {
+ "name": "symfony/http-foundation",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-foundation.git",
+ "reference": "f84fd4fd8311a541ceb2ae3f257841d002450a90"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f84fd4fd8311a541ceb2ae3f257841d002450a90",
+ "reference": "f84fd4fd8311a541ceb2ae3f257841d002450a90",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-mbstring": "~1.1",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "require-dev": {
+ "predis/predis": "~1.0",
+ "symfony/cache": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4",
+ "symfony/mime": "^4.4|^5.0|^6.0",
+ "symfony/rate-limiter": "^5.2|^6.0"
+ },
+ "suggest": {
+ "symfony/mime": "To use the file extension guesser"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpFoundation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Defines an object-oriented layer for the HTTP specification",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/http-foundation/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-06T22:05:57+00:00"
+ },
+ {
+ "name": "symfony/http-kernel",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-kernel.git",
+ "reference": "d2fad58d32a7b4864d205a7289602a27ce75018c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/d2fad58d32a7b4864d205a7289602a27ce75018c",
+ "reference": "d2fad58d32a7b4864d205a7289602a27ce75018c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/log": "^1|^2",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/error-handler": "^4.4|^5.0|^6.0",
+ "symfony/event-dispatcher": "^5.0|^6.0",
+ "symfony/http-foundation": "^5.4.21|^6.2.7",
+ "symfony/polyfill-ctype": "^1.8",
+ "symfony/polyfill-php73": "^1.9",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "conflict": {
+ "symfony/browser-kit": "<5.4",
+ "symfony/cache": "<5.0",
+ "symfony/config": "<5.0",
+ "symfony/console": "<4.4",
+ "symfony/dependency-injection": "<5.3",
+ "symfony/doctrine-bridge": "<5.0",
+ "symfony/form": "<5.0",
+ "symfony/http-client": "<5.0",
+ "symfony/mailer": "<5.0",
+ "symfony/messenger": "<5.0",
+ "symfony/translation": "<5.0",
+ "symfony/twig-bridge": "<5.0",
+ "symfony/validator": "<5.0",
+ "twig/twig": "<2.13"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0|2.0"
+ },
+ "require-dev": {
+ "psr/cache": "^1.0|^2.0|^3.0",
+ "symfony/browser-kit": "^5.4|^6.0",
+ "symfony/config": "^5.0|^6.0",
+ "symfony/console": "^4.4|^5.0|^6.0",
+ "symfony/css-selector": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^5.3|^6.0",
+ "symfony/dom-crawler": "^4.4|^5.0|^6.0",
+ "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/finder": "^4.4|^5.0|^6.0",
+ "symfony/http-client-contracts": "^1.1|^2|^3",
+ "symfony/process": "^4.4|^5.0|^6.0",
+ "symfony/routing": "^4.4|^5.0|^6.0",
+ "symfony/stopwatch": "^4.4|^5.0|^6.0",
+ "symfony/translation": "^4.4|^5.0|^6.0",
+ "symfony/translation-contracts": "^1.1|^2|^3",
+ "twig/twig": "^2.13|^3.0.4"
+ },
+ "suggest": {
+ "symfony/browser-kit": "",
+ "symfony/config": "",
+ "symfony/console": "",
+ "symfony/dependency-injection": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpKernel\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides a structured process for converting a Request into a Response",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/http-kernel/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-10T13:39:09+00:00"
+ },
+ {
+ "name": "symfony/intl",
+ "version": "v5.4.30",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/intl.git",
+ "reference": "cd6cce16151ac871071a3495e7a325460b952b5a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/intl/zipball/cd6cce16151ac871071a3495e7a325460b952b5a",
+ "reference": "cd6cce16151ac871071a3495e7a325460b952b5a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "require-dev": {
+ "symfony/filesystem": "^4.4|^5.0|^6.0",
+ "symfony/var-exporter": "^5.4|^6.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\Intl\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ],
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ },
+ {
+ "name": "Eriksen Costa",
+ "email": "eriksen.costa@infranology.com.br"
+ },
+ {
+ "name": "Igor Wiedler",
+ "email": "igor@wiedler.ch"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides a PHP replacement layer for the C intl extension that includes additional data from the ICU library",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "i18n",
+ "icu",
+ "internationalization",
+ "intl",
+ "l10n",
+ "localization"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/intl/tree/v5.4.30"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-28T09:19:54+00:00"
+ },
+ {
+ "name": "symfony/mailer",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/mailer.git",
+ "reference": "5ca8a7628a5ee69767047dd0f4cf4c9521c999b8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/mailer/zipball/5ca8a7628a5ee69767047dd0f4cf4c9521c999b8",
+ "reference": "5ca8a7628a5ee69767047dd0f4cf4c9521c999b8",
+ "shasum": ""
+ },
+ "require": {
+ "egulias/email-validator": "^2.1.10|^3|^4",
+ "php": ">=7.2.5",
+ "psr/event-dispatcher": "^1",
+ "psr/log": "^1|^2|^3",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/event-dispatcher": "^4.4|^5.0|^6.0",
+ "symfony/mime": "^5.2.6|^6.0",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/service-contracts": "^1.1|^2|^3"
+ },
+ "conflict": {
+ "symfony/http-kernel": "<4.4"
+ },
+ "require-dev": {
+ "symfony/http-client": "^4.4|^5.0|^6.0",
+ "symfony/messenger": "^4.4|^5.0|^6.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Mailer\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Helps sending emails",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/mailer/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-03T16:16:43+00:00"
+ },
+ {
+ "name": "symfony/mime",
+ "version": "v5.4.26",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/mime.git",
+ "reference": "2ea06dfeee20000a319d8407cea1d47533d5a9d2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/2ea06dfeee20000a319d8407cea1d47533d5a9d2",
+ "reference": "2ea06dfeee20000a319d8407cea1d47533d5a9d2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-intl-idn": "^1.10",
+ "symfony/polyfill-mbstring": "^1.0",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "conflict": {
+ "egulias/email-validator": "~3.0.0",
+ "phpdocumentor/reflection-docblock": "<3.2.2",
+ "phpdocumentor/type-resolver": "<1.4.0",
+ "symfony/mailer": "<4.4",
+ "symfony/serializer": "<5.4.26|>=6,<6.2.13|>=6.3,<6.3.2"
+ },
+ "require-dev": {
+ "egulias/email-validator": "^2.1.10|^3.1|^4",
+ "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/property-access": "^4.4|^5.1|^6.0",
+ "symfony/property-info": "^4.4|^5.1|^6.0",
+ "symfony/serializer": "^5.4.26|~6.2.13|^6.3.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Mime\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Allows manipulating MIME messages",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "mime",
+ "mime-type"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/mime/tree/v5.4.26"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-07-27T06:29:31+00:00"
+ },
+ {
+ "name": "symfony/monolog-bridge",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/monolog-bridge.git",
+ "reference": "3e295d9b0a873476356cb6cff0ce39b3f528b387"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/3e295d9b0a873476356cb6cff0ce39b3f528b387",
+ "reference": "3e295d9b0a873476356cb6cff0ce39b3f528b387",
+ "shasum": ""
+ },
+ "require": {
+ "monolog/monolog": "^1.25.1|^2",
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/http-kernel": "^5.3|^6.0",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/service-contracts": "^1.1|^2|^3"
+ },
+ "conflict": {
+ "symfony/console": "<4.4",
+ "symfony/http-foundation": "<5.3"
+ },
+ "require-dev": {
+ "symfony/console": "^4.4|^5.0|^6.0",
+ "symfony/http-client": "^4.4|^5.0|^6.0",
+ "symfony/mailer": "^4.4|^5.0|^6.0",
+ "symfony/messenger": "^4.4|^5.0|^6.0",
+ "symfony/mime": "^4.4|^5.0|^6.0",
+ "symfony/security-core": "^4.4|^5.0|^6.0",
+ "symfony/var-dumper": "^4.4|^5.0|^6.0"
+ },
+ "suggest": {
+ "symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings.",
+ "symfony/http-kernel": "For using the debugging handlers together with the response life cycle of the HTTP kernel.",
+ "symfony/var-dumper": "For using the debugging handlers like the console handler or the log server handler."
+ },
+ "type": "symfony-bridge",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bridge\\Monolog\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides integration for Monolog with various Symfony components",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/monolog-bridge/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-31T07:58:33+00:00"
+ },
+ {
+ "name": "symfony/monolog-bundle",
+ "version": "v3.10.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/monolog-bundle.git",
+ "reference": "414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181",
+ "reference": "414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181",
+ "shasum": ""
+ },
+ "require": {
+ "monolog/monolog": "^1.25.1 || ^2.0 || ^3.0",
+ "php": ">=7.2.5",
+ "symfony/config": "^5.4 || ^6.0 || ^7.0",
+ "symfony/dependency-injection": "^5.4 || ^6.0 || ^7.0",
+ "symfony/http-kernel": "^5.4 || ^6.0 || ^7.0",
+ "symfony/monolog-bridge": "^5.4 || ^6.0 || ^7.0"
+ },
+ "require-dev": {
+ "symfony/console": "^5.4 || ^6.0 || ^7.0",
+ "symfony/phpunit-bridge": "^6.3 || ^7.0",
+ "symfony/yaml": "^5.4 || ^6.0 || ^7.0"
+ },
+ "type": "symfony-bundle",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bundle\\MonologBundle\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony MonologBundle",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "log",
+ "logging"
+ ],
+ "support": {
+ "issues": "https://github.com/symfony/monolog-bundle/issues",
+ "source": "https://github.com/symfony/monolog-bundle/tree/v3.10.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-06T17:08:13+00:00"
+ },
+ {
+ "name": "symfony/options-resolver",
+ "version": "v5.4.21",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/options-resolver.git",
+ "reference": "4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9",
+ "reference": "4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php73": "~1.0",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\OptionsResolver\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an improved replacement for the array_replace PHP function",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "config",
+ "configuration",
+ "options"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/options-resolver/tree/v5.4.21"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-02-14T08:03:56+00:00"
+ },
+ {
+ "name": "symfony/password-hasher",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/password-hasher.git",
+ "reference": "f1a07181f3442836b0aadfd4c65841804d4173c4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/password-hasher/zipball/f1a07181f3442836b0aadfd4c65841804d4173c4",
+ "reference": "f1a07181f3442836b0aadfd4c65841804d4173c4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php80": "^1.15"
+ },
+ "conflict": {
+ "symfony/security-core": "<5.3"
+ },
+ "require-dev": {
+ "symfony/console": "^5.3|^6.0",
+ "symfony/security-core": "^5.3|^6.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\PasswordHasher\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Robin Chalas",
+ "email": "robin.chalas@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides password hashing utilities",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "hashing",
+ "password"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/password-hasher/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-02T10:18:11+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-grapheme",
+ "version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
+ "reference": "875e90aeea2777b6f135677f618529449334a612"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612",
+ "reference": "875e90aeea2777b6f135677f618529449334a612",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.28-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's grapheme_* functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "grapheme",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-01-26T09:26:14+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-icu",
+ "version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-icu.git",
+ "reference": "e46b4da57951a16053cd751f63f4a24292788157"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/e46b4da57951a16053cd751f63f4a24292788157",
+ "reference": "e46b4da57951a16053cd751f63f4a24292788157",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-intl": "For best performance and support of other locales than \"en\""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.28-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Icu\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ],
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's ICU-related data and classes",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "icu",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.28.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-03-21T17:27:24+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-idn",
+ "version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-idn.git",
+ "reference": "ecaafce9f77234a6a449d29e49267ba10499116d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ecaafce9f77234a6a449d29e49267ba10499116d",
+ "reference": "ecaafce9f77234a6a449d29e49267ba10499116d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1",
+ "symfony/polyfill-intl-normalizer": "^1.10",
+ "symfony/polyfill-php72": "^1.10"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.28-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Idn\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Laurent Bassin",
+ "email": "laurent@bassin.info"
+ },
+ {
+ "name": "Trevor Rowbotham",
+ "email": "trevor.rowbotham@pm.me"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "idn",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.28.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-01-26T09:30:37+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-normalizer",
+ "version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
+ "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
+ "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.28-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's Normalizer class and related functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "intl",
+ "normalizer",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-01-26T09:26:14+00:00"
+ },
+ {
+ "name": "symfony/polyfill-mbstring",
+ "version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "42292d99c55abe617799667f454222c54c60e229"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229",
+ "reference": "42292d99c55abe617799667f454222c54c60e229",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "provide": {
+ "ext-mbstring": "*"
+ },
+ "suggest": {
+ "ext-mbstring": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.28-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Mbstring\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for the Mbstring extension",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "mbstring",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-07-28T09:04:16+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php72",
+ "version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php72.git",
+ "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/70f4aebd92afca2f865444d30a4d2151c13c3179",
+ "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.28-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php72\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php72/tree/v1.28.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-01-26T09:26:14+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php73",
+ "version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php73.git",
+ "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fe2f306d1d9d346a7fee353d0d5012e401e984b5",
+ "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.28-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php73\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php73/tree/v1.28.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-01-26T09:26:14+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php80",
+ "version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php80.git",
+ "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
+ "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.28-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php80\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ion Bazan",
+ "email": "ion.bazan@gmail.com"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-01-26T09:26:14+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php81",
+ "version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php81.git",
+ "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/7581cd600fa9fd681b797d00b02f068e2f13263b",
+ "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.28-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php81\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php81/tree/v1.28.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-01-26T09:26:14+00:00"
+ },
+ {
+ "name": "symfony/process",
+ "version": "v5.4.28",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/process.git",
+ "reference": "45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/process/zipball/45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b",
+ "reference": "45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Process\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Executes commands in sub-processes",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/process/tree/v5.4.28"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-08-07T10:36:04+00:00"
+ },
+ {
+ "name": "symfony/property-access",
+ "version": "v5.4.26",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/property-access.git",
+ "reference": "0249e46f69e92049a488f39fcf531cb42c50caaa"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/property-access/zipball/0249e46f69e92049a488f39fcf531cb42c50caaa",
+ "reference": "0249e46f69e92049a488f39fcf531cb42c50caaa",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/property-info": "^5.2|^6.0"
+ },
+ "require-dev": {
+ "symfony/cache": "^4.4|^5.0|^6.0"
+ },
+ "suggest": {
+ "psr/cache-implementation": "To cache access methods."
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\PropertyAccess\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides functions to read and write from/to an object or array using a simple string notation",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "access",
+ "array",
+ "extraction",
+ "index",
+ "injection",
+ "object",
+ "property",
+ "property-path",
+ "reflection"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/property-access/tree/v5.4.26"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-07-13T15:20:41+00:00"
+ },
+ {
+ "name": "symfony/property-info",
+ "version": "v5.4.24",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/property-info.git",
+ "reference": "d43b85b00699b4484964c297575b5c6f9dc5f6e1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/property-info/zipball/d43b85b00699b4484964c297575b5c6f9dc5f6e1",
+ "reference": "d43b85b00699b4484964c297575b5c6f9dc5f6e1",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/string": "^5.1|^6.0"
+ },
+ "conflict": {
+ "phpdocumentor/reflection-docblock": "<3.2.2",
+ "phpdocumentor/type-resolver": "<1.4.0",
+ "symfony/dependency-injection": "<4.4"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.10.4|^2",
+ "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
+ "phpstan/phpdoc-parser": "^1.0",
+ "symfony/cache": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/serializer": "^4.4|^5.0|^6.0"
+ },
+ "suggest": {
+ "phpdocumentor/reflection-docblock": "To use the PHPDoc",
+ "psr/cache-implementation": "To cache results",
+ "symfony/doctrine-bridge": "To use Doctrine metadata",
+ "symfony/serializer": "To use Serializer metadata"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\PropertyInfo\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Kévin Dunglas",
+ "email": "dunglas@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Extracts information about PHP class' properties using metadata of popular sources",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "doctrine",
+ "phpdoc",
+ "property",
+ "symfony",
+ "type",
+ "validator"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/property-info/tree/v5.4.24"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-05-15T20:11:03+00:00"
+ },
+ {
+ "name": "symfony/proxy-manager-bridge",
+ "version": "v5.4.21",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/proxy-manager-bridge.git",
+ "reference": "a4cf96f3acfa252503a216bea877478f9621c7c0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/a4cf96f3acfa252503a216bea877478f9621c7c0",
+ "reference": "a4cf96f3acfa252503a216bea877478f9621c7c0",
+ "shasum": ""
+ },
+ "require": {
+ "friendsofphp/proxy-manager-lts": "^1.0.2",
+ "php": ">=7.2.5",
+ "symfony/dependency-injection": "^5.0|^6.0",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "require-dev": {
+ "symfony/config": "^4.4|^5.0|^6.0"
+ },
+ "type": "symfony-bridge",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bridge\\ProxyManager\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides integration for ProxyManager with various Symfony components",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/proxy-manager-bridge/tree/v5.4.21"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-02-16T09:33:00+00:00"
+ },
+ {
+ "name": "symfony/routing",
+ "version": "v5.4.26",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/routing.git",
+ "reference": "853fc7df96befc468692de0a48831b38f04d2cb2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/853fc7df96befc468692de0a48831b38f04d2cb2",
+ "reference": "853fc7df96befc468692de0a48831b38f04d2cb2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "conflict": {
+ "doctrine/annotations": "<1.12",
+ "symfony/config": "<5.3",
+ "symfony/dependency-injection": "<4.4",
+ "symfony/yaml": "<4.4"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.12|^2",
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^5.3|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/http-foundation": "^4.4|^5.0|^6.0",
+ "symfony/yaml": "^4.4|^5.0|^6.0"
+ },
+ "suggest": {
+ "symfony/config": "For using the all-in-one router or any loader",
+ "symfony/expression-language": "For using expression matching",
+ "symfony/http-foundation": "For using a Symfony Request object",
+ "symfony/yaml": "For using the YAML loader"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Routing\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Maps an HTTP request to a set of configuration variables",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "router",
+ "routing",
+ "uri",
+ "url"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/routing/tree/v5.4.26"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-07-24T13:28:37+00:00"
+ },
+ {
+ "name": "symfony/runtime",
+ "version": "v5.4.26",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/runtime.git",
+ "reference": "4659b552bc9f2380986e3f4b7e2bd4e512470e0d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/runtime/zipball/4659b552bc9f2380986e3f4b7e2bd4e512470e0d",
+ "reference": "4659b552bc9f2380986e3f4b7e2bd4e512470e0d",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.0|^2.0",
+ "php": ">=7.2.5",
+ "symfony/polyfill-php80": "^1.15"
+ },
+ "conflict": {
+ "symfony/dotenv": "<5.1"
+ },
+ "require-dev": {
+ "composer/composer": "^1.0.2|^2.0",
+ "symfony/console": "^4.4.30|^5.4.9|^6.0.9",
+ "symfony/dotenv": "^5.1|^6.0",
+ "symfony/http-foundation": "^4.4.30|^5.3.7|^6.0",
+ "symfony/http-kernel": "^4.4.30|^5.3.7|^6.0"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "Symfony\\Component\\Runtime\\Internal\\ComposerPlugin"
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Runtime\\": "",
+ "Symfony\\Runtime\\Symfony\\Component\\": "Internal/"
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Enables decoupling PHP applications from global state",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "runtime"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/runtime/tree/v5.4.26"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-07-16T16:48:57+00:00"
+ },
+ {
+ "name": "symfony/security-bundle",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/security-bundle.git",
+ "reference": "92e24de1759b6a502896d87c5e0997973ef47ac4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/security-bundle/zipball/92e24de1759b6a502896d87c5e0997973ef47ac4",
+ "reference": "92e24de1759b6a502896d87c5e0997973ef47ac4",
+ "shasum": ""
+ },
+ "require": {
+ "ext-xml": "*",
+ "php": ">=7.2.5",
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^5.3|^6.0",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/event-dispatcher": "^5.1|^6.0",
+ "symfony/http-foundation": "^5.3|^6.0",
+ "symfony/http-kernel": "^5.3|^6.0",
+ "symfony/password-hasher": "^5.3|^6.0",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/security-core": "^5.4|^6.0",
+ "symfony/security-csrf": "^4.4|^5.0|^6.0",
+ "symfony/security-guard": "^5.3",
+ "symfony/security-http": "^5.4.30|^6.3.6",
+ "symfony/service-contracts": "^1.10|^2|^3"
+ },
+ "conflict": {
+ "symfony/browser-kit": "<4.4",
+ "symfony/console": "<4.4",
+ "symfony/framework-bundle": "<4.4",
+ "symfony/ldap": "<5.1",
+ "symfony/twig-bundle": "<4.4"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.10.4|^2",
+ "symfony/asset": "^4.4|^5.0|^6.0",
+ "symfony/browser-kit": "^4.4|^5.0|^6.0",
+ "symfony/console": "^4.4|^5.0|^6.0",
+ "symfony/css-selector": "^4.4|^5.0|^6.0",
+ "symfony/dom-crawler": "^4.4|^5.0|^6.0",
+ "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/form": "^4.4|^5.0|^6.0",
+ "symfony/framework-bundle": "^5.3|^6.0",
+ "symfony/ldap": "^5.3|^6.0",
+ "symfony/process": "^4.4|^5.0|^6.0",
+ "symfony/rate-limiter": "^5.2|^6.0",
+ "symfony/serializer": "^4.4|^5.0|^6.0",
+ "symfony/translation": "^4.4|^5.0|^6.0",
+ "symfony/twig-bridge": "^4.4|^5.0|^6.0",
+ "symfony/twig-bundle": "^4.4|^5.0|^6.0",
+ "symfony/validator": "^4.4|^5.0|^6.0",
+ "symfony/yaml": "^4.4|^5.0|^6.0",
+ "twig/twig": "^2.13|^3.0.4"
+ },
+ "type": "symfony-bundle",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bundle\\SecurityBundle\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides a tight integration of the Security component into the Symfony full-stack framework",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/security-bundle/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-09T09:26:13+00:00"
+ },
+ {
+ "name": "symfony/security-core",
+ "version": "v5.4.30",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/security-core.git",
+ "reference": "3908c54da30dd68c2fe31915d82a1c81809d1928"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/security-core/zipball/3908c54da30dd68c2fe31915d82a1c81809d1928",
+ "reference": "3908c54da30dd68c2fe31915d82a1c81809d1928",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/event-dispatcher-contracts": "^1.1|^2|^3",
+ "symfony/password-hasher": "^5.3|^6.0",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/service-contracts": "^1.1.6|^2|^3"
+ },
+ "conflict": {
+ "symfony/event-dispatcher": "<4.4",
+ "symfony/http-foundation": "<5.3",
+ "symfony/ldap": "<4.4",
+ "symfony/security-guard": "<4.4",
+ "symfony/validator": "<5.2"
+ },
+ "require-dev": {
+ "psr/cache": "^1.0|^2.0|^3.0",
+ "psr/container": "^1.0|^2.0",
+ "psr/log": "^1|^2|^3",
+ "symfony/cache": "^4.4|^5.0|^6.0",
+ "symfony/event-dispatcher": "^4.4|^5.0|^6.0",
+ "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/http-foundation": "^5.3|^6.0",
+ "symfony/ldap": "^4.4|^5.0|^6.0",
+ "symfony/translation": "^4.4|^5.0|^6.0",
+ "symfony/validator": "^5.2|^6.0"
+ },
+ "suggest": {
+ "psr/container-implementation": "To instantiate the Security class",
+ "symfony/event-dispatcher": "",
+ "symfony/expression-language": "For using the expression voter",
+ "symfony/http-foundation": "",
+ "symfony/ldap": "For using LDAP integration",
+ "symfony/validator": "For using the user password constraint"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Security\\Core\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Security Component - Core Library",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/security-core/tree/v5.4.30"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-27T07:38:28+00:00"
+ },
+ {
+ "name": "symfony/security-csrf",
+ "version": "v5.4.27",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/security-csrf.git",
+ "reference": "995fcfcc5a3be09df157b4960668f61cceb86611"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/security-csrf/zipball/995fcfcc5a3be09df157b4960668f61cceb86611",
+ "reference": "995fcfcc5a3be09df157b4960668f61cceb86611",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/security-core": "^4.4|^5.0|^6.0"
+ },
+ "conflict": {
+ "symfony/http-foundation": "<5.3"
+ },
+ "require-dev": {
+ "symfony/http-foundation": "^5.3|^6.0"
+ },
+ "suggest": {
+ "symfony/http-foundation": "For using the class SessionTokenStorage."
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Security\\Csrf\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Security Component - CSRF Library",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/security-csrf/tree/v5.4.27"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-07-28T14:44:35+00:00"
+ },
+ {
+ "name": "symfony/security-guard",
+ "version": "v5.4.27",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/security-guard.git",
+ "reference": "72c53142533462fc6fda4a429c2a21c2b944a8cc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/security-guard/zipball/72c53142533462fc6fda4a429c2a21c2b944a8cc",
+ "reference": "72c53142533462fc6fda4a429c2a21c2b944a8cc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php80": "^1.15",
+ "symfony/security-core": "^5.0",
+ "symfony/security-http": "^5.3"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2|^3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Security\\Guard\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Security Component - Guard",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/security-guard/tree/v5.4.27"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-07-28T14:44:35+00:00"
+ },
+ {
+ "name": "symfony/security-http",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/security-http.git",
+ "reference": "6d3cd5a4deee9697738db8d24258890ca4140ae9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/security-http/zipball/6d3cd5a4deee9697738db8d24258890ca4140ae9",
+ "reference": "6d3cd5a4deee9697738db8d24258890ca4140ae9",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/http-foundation": "^5.3|^6.0",
+ "symfony/http-kernel": "^5.3|^6.0",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/property-access": "^4.4|^5.0|^6.0",
+ "symfony/security-core": "^5.4.19|~6.0.19|~6.1.11|^6.2.5",
+ "symfony/service-contracts": "^1.10|^2|^3"
+ },
+ "conflict": {
+ "symfony/event-dispatcher": "<4.3",
+ "symfony/security-bundle": "<5.3",
+ "symfony/security-csrf": "<4.4"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2|^3",
+ "symfony/cache": "^4.4|^5.0|^6.0",
+ "symfony/rate-limiter": "^5.2|^6.0",
+ "symfony/routing": "^4.4|^5.0|^6.0",
+ "symfony/security-csrf": "^4.4|^5.0|^6.0",
+ "symfony/translation": "^4.4|^5.0|^6.0"
+ },
+ "suggest": {
+ "symfony/routing": "For using the HttpUtils class to create sub-requests, redirect the user, and match URLs",
+ "symfony/security-csrf": "For using tokens to protect authentication/logout attempts"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Security\\Http\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Security Component - HTTP Integration",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/security-http/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-03T16:13:08+00:00"
+ },
+ {
+ "name": "symfony/serializer",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/serializer.git",
+ "reference": "15574cfa408a6082b6d66c2b6922f95db6cab26d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/serializer/zipball/15574cfa408a6082b6d66c2b6922f95db6cab26d",
+ "reference": "15574cfa408a6082b6d66c2b6922f95db6cab26d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "conflict": {
+ "doctrine/annotations": "<1.12",
+ "phpdocumentor/reflection-docblock": "<3.2.2",
+ "phpdocumentor/type-resolver": "<1.4.0",
+ "symfony/dependency-injection": "<4.4",
+ "symfony/property-access": "<5.4",
+ "symfony/property-info": "<5.4.24|>=6,<6.2.11",
+ "symfony/uid": "<5.3",
+ "symfony/yaml": "<4.4"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.12|^2",
+ "phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0",
+ "symfony/cache": "^4.4|^5.0|^6.0",
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/error-handler": "^4.4|^5.0|^6.0",
+ "symfony/filesystem": "^4.4|^5.0|^6.0",
+ "symfony/form": "^4.4|^5.0|^6.0",
+ "symfony/http-foundation": "^4.4|^5.0|^6.0",
+ "symfony/http-kernel": "^4.4|^5.0|^6.0",
+ "symfony/mime": "^4.4|^5.0|^6.0",
+ "symfony/property-access": "^5.4|^6.0",
+ "symfony/property-info": "^5.4.24|^6.2.11",
+ "symfony/uid": "^5.3|^6.0",
+ "symfony/validator": "^4.4|^5.0|^6.0",
+ "symfony/var-dumper": "^4.4|^5.0|^6.0",
+ "symfony/var-exporter": "^4.4|^5.0|^6.0",
+ "symfony/yaml": "^4.4|^5.0|^6.0"
+ },
+ "suggest": {
+ "psr/cache-implementation": "For using the metadata cache.",
+ "symfony/config": "For using the XML mapping loader.",
+ "symfony/mime": "For using a MIME type guesser within the DataUriNormalizer.",
+ "symfony/property-access": "For using the ObjectNormalizer.",
+ "symfony/property-info": "To deserialize relations.",
+ "symfony/var-exporter": "For using the metadata compiler.",
+ "symfony/yaml": "For using the default YAML mapping loader."
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Serializer\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/serializer/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-31T07:58:33+00:00"
+ },
+ {
+ "name": "symfony/service-contracts",
+ "version": "v2.5.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/service-contracts.git",
+ "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
+ "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/container": "^1.1",
+ "symfony/deprecation-contracts": "^2.1|^3"
+ },
+ "conflict": {
+ "ext-psr": "<1.1|>=2"
+ },
+ "suggest": {
+ "symfony/service-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Service\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to writing services",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/service-contracts/tree/v2.5.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-05-30T19:17:29+00:00"
+ },
+ {
+ "name": "symfony/stopwatch",
+ "version": "v5.4.21",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/stopwatch.git",
+ "reference": "f83692cd869a6f2391691d40a01e8acb89e76fee"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/stopwatch/zipball/f83692cd869a6f2391691d40a01e8acb89e76fee",
+ "reference": "f83692cd869a6f2391691d40a01e8acb89e76fee",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/service-contracts": "^1|^2|^3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Stopwatch\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides a way to profile code",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/stopwatch/tree/v5.4.21"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-02-14T08:03:56+00:00"
+ },
+ {
+ "name": "symfony/string",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/string.git",
+ "reference": "2765096c03f39ddf54f6af532166e42aaa05b24b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/string/zipball/2765096c03f39ddf54f6af532166e42aaa05b24b",
+ "reference": "2765096c03f39ddf54f6af532166e42aaa05b24b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-intl-grapheme": "~1.0",
+ "symfony/polyfill-intl-normalizer": "~1.0",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "~1.15"
+ },
+ "conflict": {
+ "symfony/translation-contracts": ">=3.0"
+ },
+ "require-dev": {
+ "symfony/error-handler": "^4.4|^5.0|^6.0",
+ "symfony/http-client": "^4.4|^5.0|^6.0",
+ "symfony/translation-contracts": "^1.1|^2",
+ "symfony/var-exporter": "^4.4|^5.0|^6.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\String\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "grapheme",
+ "i18n",
+ "string",
+ "unicode",
+ "utf-8",
+ "utf8"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/string/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-09T08:19:44+00:00"
+ },
+ {
+ "name": "symfony/translation",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/translation.git",
+ "reference": "ba72f72fceddf36f00bd495966b5873f2d17ad8f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/ba72f72fceddf36f00bd495966b5873f2d17ad8f",
+ "reference": "ba72f72fceddf36f00bd495966b5873f2d17ad8f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/translation-contracts": "^2.3"
+ },
+ "conflict": {
+ "symfony/config": "<4.4",
+ "symfony/console": "<5.3",
+ "symfony/dependency-injection": "<5.0",
+ "symfony/http-kernel": "<5.0",
+ "symfony/twig-bundle": "<5.0",
+ "symfony/yaml": "<4.4"
+ },
+ "provide": {
+ "symfony/translation-implementation": "2.3"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.0|^6.0",
+ "symfony/finder": "^4.4|^5.0|^6.0",
+ "symfony/http-client-contracts": "^1.1|^2.0|^3.0",
+ "symfony/http-kernel": "^5.0|^6.0",
+ "symfony/intl": "^4.4|^5.0|^6.0",
+ "symfony/polyfill-intl-icu": "^1.21",
+ "symfony/service-contracts": "^1.1.2|^2|^3",
+ "symfony/yaml": "^4.4|^5.0|^6.0"
+ },
+ "suggest": {
+ "psr/log-implementation": "To use logging capability in translator",
+ "symfony/config": "",
+ "symfony/yaml": ""
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\Translation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides tools to internationalize your application",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/translation/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-03T16:16:43+00:00"
+ },
+ {
+ "name": "symfony/translation-contracts",
+ "version": "v2.5.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/translation-contracts.git",
+ "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/136b19dd05cdf0709db6537d058bcab6dd6e2dbe",
+ "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5"
+ },
+ "suggest": {
+ "symfony/translation-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Translation\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to translation",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/translation-contracts/tree/v2.5.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-06-27T16:58:25+00:00"
+ },
+ {
+ "name": "symfony/twig-bridge",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/twig-bridge.git",
+ "reference": "fc6ee0a3b672ea12ca1f26592d257bfc7f4ee942"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/fc6ee0a3b672ea12ca1f26592d257bfc7f4ee942",
+ "reference": "fc6ee0a3b672ea12ca1f26592d257bfc7f4ee942",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/translation-contracts": "^1.1|^2|^3",
+ "twig/twig": "^2.13|^3.0.4"
+ },
+ "conflict": {
+ "phpdocumentor/reflection-docblock": "<3.2.2",
+ "phpdocumentor/type-resolver": "<1.4.0",
+ "symfony/console": "<5.3",
+ "symfony/form": "<5.4.21|>=6,<6.2.7",
+ "symfony/http-foundation": "<5.3",
+ "symfony/http-kernel": "<4.4",
+ "symfony/translation": "<5.2",
+ "symfony/workflow": "<5.2"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.12|^2",
+ "egulias/email-validator": "^2.1.10|^3|^4",
+ "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
+ "symfony/asset": "^4.4|^5.0|^6.0",
+ "symfony/console": "^5.3|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/finder": "^4.4|^5.0|^6.0",
+ "symfony/form": "^5.4.21|^6.2.7",
+ "symfony/http-foundation": "^5.3|^6.0",
+ "symfony/http-kernel": "^4.4|^5.0|^6.0",
+ "symfony/intl": "^4.4|^5.0|^6.0",
+ "symfony/mime": "^5.2|^6.0",
+ "symfony/polyfill-intl-icu": "~1.0",
+ "symfony/property-info": "^4.4|^5.1|^6.0",
+ "symfony/routing": "^4.4|^5.0|^6.0",
+ "symfony/security-acl": "^2.8|^3.0",
+ "symfony/security-core": "^4.4|^5.0|^6.0",
+ "symfony/security-csrf": "^4.4|^5.0|^6.0",
+ "symfony/security-http": "^4.4|^5.0|^6.0",
+ "symfony/serializer": "^5.2|^6.0",
+ "symfony/stopwatch": "^4.4|^5.0|^6.0",
+ "symfony/translation": "^5.2|^6.0",
+ "symfony/web-link": "^4.4|^5.0|^6.0",
+ "symfony/workflow": "^5.2|^6.0",
+ "symfony/yaml": "^4.4|^5.0|^6.0",
+ "twig/cssinliner-extra": "^2.12|^3",
+ "twig/inky-extra": "^2.12|^3",
+ "twig/markdown-extra": "^2.12|^3"
+ },
+ "suggest": {
+ "symfony/asset": "For using the AssetExtension",
+ "symfony/expression-language": "For using the ExpressionExtension",
+ "symfony/finder": "",
+ "symfony/form": "For using the FormExtension",
+ "symfony/http-kernel": "For using the HttpKernelExtension",
+ "symfony/routing": "For using the RoutingExtension",
+ "symfony/security-core": "For using the SecurityExtension",
+ "symfony/security-csrf": "For using the CsrfExtension",
+ "symfony/security-http": "For using the LogoutUrlExtension",
+ "symfony/stopwatch": "For using the StopwatchExtension",
+ "symfony/translation": "For using the TranslationExtension",
+ "symfony/var-dumper": "For using the DumpExtension",
+ "symfony/web-link": "For using the WebLinkExtension",
+ "symfony/yaml": "For using the YamlExtension"
+ },
+ "type": "symfony-bridge",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bridge\\Twig\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides integration for Twig with various Symfony components",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/twig-bridge/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-09T21:19:08+00:00"
+ },
+ {
+ "name": "symfony/twig-bundle",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/twig-bundle.git",
+ "reference": "62e3505a62f482a577f55ba08747dc6a3b7463b3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/62e3505a62f482a577f55ba08747dc6a3b7463b3",
+ "reference": "62e3505a62f482a577f55ba08747dc6a3b7463b3",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/http-foundation": "^4.4|^5.0|^6.0",
+ "symfony/http-kernel": "^5.0|^6.0",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/twig-bridge": "^5.3|^6.0",
+ "twig/twig": "^2.13|^3.0.4"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<5.3",
+ "symfony/framework-bundle": "<5.0",
+ "symfony/service-contracts": ">=3.0",
+ "symfony/translation": "<5.0"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.10.4|^2",
+ "doctrine/cache": "^1.0|^2.0",
+ "symfony/asset": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^5.3|^6.0",
+ "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/finder": "^4.4|^5.0|^6.0",
+ "symfony/form": "^4.4|^5.0|^6.0",
+ "symfony/framework-bundle": "^5.0|^6.0",
+ "symfony/routing": "^4.4|^5.0|^6.0",
+ "symfony/stopwatch": "^4.4|^5.0|^6.0",
+ "symfony/translation": "^5.0|^6.0",
+ "symfony/web-link": "^4.4|^5.0|^6.0",
+ "symfony/yaml": "^4.4|^5.0|^6.0"
+ },
+ "type": "symfony-bundle",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bundle\\TwigBundle\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides a tight integration of Twig into the Symfony full-stack framework",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/twig-bundle/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-31T07:58:33+00:00"
+ },
+ {
+ "name": "symfony/validator",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/validator.git",
+ "reference": "2be3e406a4e2321c2d9441fe749ce1540f38e5b6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/validator/zipball/2be3e406a4e2321c2d9441fe749ce1540f38e5b6",
+ "reference": "2be3e406a4e2321c2d9441fe749ce1540f38e5b6",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php73": "~1.0",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/polyfill-php81": "^1.22",
+ "symfony/translation-contracts": "^1.1|^2|^3"
+ },
+ "conflict": {
+ "doctrine/annotations": "<1.13",
+ "doctrine/cache": "<1.11",
+ "doctrine/lexer": "<1.1",
+ "symfony/dependency-injection": "<4.4",
+ "symfony/expression-language": "<5.1",
+ "symfony/http-kernel": "<4.4",
+ "symfony/intl": "<4.4",
+ "symfony/property-info": "<5.3",
+ "symfony/translation": "<4.4",
+ "symfony/yaml": "<4.4"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.13|^2",
+ "doctrine/cache": "^1.11|^2.0",
+ "egulias/email-validator": "^2.1.10|^3|^4",
+ "symfony/cache": "^4.4|^5.0|^6.0",
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/console": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/expression-language": "^5.1|^6.0",
+ "symfony/finder": "^4.4|^5.0|^6.0",
+ "symfony/http-client": "^4.4|^5.0|^6.0",
+ "symfony/http-foundation": "^4.4|^5.0|^6.0",
+ "symfony/http-kernel": "^4.4|^5.0|^6.0",
+ "symfony/intl": "^4.4|^5.0|^6.0",
+ "symfony/mime": "^4.4|^5.0|^6.0",
+ "symfony/property-access": "^4.4|^5.0|^6.0",
+ "symfony/property-info": "^5.3|^6.0",
+ "symfony/translation": "^4.4|^5.0|^6.0",
+ "symfony/yaml": "^4.4|^5.0|^6.0"
+ },
+ "suggest": {
+ "egulias/email-validator": "Strict (RFC compliant) email validation",
+ "psr/cache-implementation": "For using the mapping cache.",
+ "symfony/config": "",
+ "symfony/expression-language": "For using the Expression validator and the ExpressionLanguageSyntax constraints",
+ "symfony/http-foundation": "",
+ "symfony/intl": "",
+ "symfony/property-access": "For accessing properties within comparison constraints",
+ "symfony/property-info": "To automatically add NotNull and Type constraints",
+ "symfony/translation": "For translating validation errors.",
+ "symfony/yaml": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Validator\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides tools to validate values",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/validator/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-06T17:47:19+00:00"
+ },
+ {
+ "name": "symfony/var-dumper",
+ "version": "v5.4.29",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/var-dumper.git",
+ "reference": "6172e4ae3534d25ee9e07eb487c20be7760fcc65"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6172e4ae3534d25ee9e07eb487c20be7760fcc65",
+ "reference": "6172e4ae3534d25ee9e07eb487c20be7760fcc65",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "conflict": {
+ "symfony/console": "<4.4"
+ },
+ "require-dev": {
+ "ext-iconv": "*",
+ "symfony/console": "^4.4|^5.0|^6.0",
+ "symfony/http-kernel": "^4.4|^5.0|^6.0",
+ "symfony/process": "^4.4|^5.0|^6.0",
+ "symfony/uid": "^5.1|^6.0",
+ "twig/twig": "^2.13|^3.0.4"
+ },
+ "suggest": {
+ "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
+ "ext-intl": "To show region name in time zone dump",
+ "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
+ },
+ "bin": [
+ "Resources/bin/var-dump-server"
+ ],
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions/dump.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\VarDumper\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides mechanisms for walking through any arbitrary PHP variable",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "debug",
+ "dump"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/var-dumper/tree/v5.4.29"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-09-12T10:09:58+00:00"
+ },
+ {
+ "name": "symfony/var-exporter",
+ "version": "v6.0.19",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/var-exporter.git",
+ "reference": "df56f53818c2d5d9f683f4ad2e365ba73a3b69d2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/var-exporter/zipball/df56f53818c2d5d9f683f4ad2e365ba73a3b69d2",
+ "reference": "df56f53818c2d5d9f683f4ad2e365ba73a3b69d2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.2"
+ },
+ "require-dev": {
+ "symfony/var-dumper": "^5.4|^6.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\VarExporter\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Allows exporting any serializable PHP data structure to plain PHP code",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "clone",
+ "construct",
+ "export",
+ "hydrate",
+ "instantiate",
+ "serialize"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/var-exporter/tree/v6.0.19"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-01-13T08:34:10+00:00"
+ },
+ {
+ "name": "symfony/web-link",
+ "version": "v5.4.21",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/web-link.git",
+ "reference": "57c03a5e89ed7c2d7a1a09258dfec12f95f95adb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/web-link/zipball/57c03a5e89ed7c2d7a1a09258dfec12f95f95adb",
+ "reference": "57c03a5e89ed7c2d7a1a09258dfec12f95f95adb",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/link": "^1.0",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "conflict": {
+ "symfony/http-kernel": "<5.3"
+ },
+ "provide": {
+ "psr/link-implementation": "1.0"
+ },
+ "require-dev": {
+ "symfony/http-kernel": "^5.3|^6.0"
+ },
+ "suggest": {
+ "symfony/http-kernel": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\WebLink\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Kévin Dunglas",
+ "email": "dunglas@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Manages links between resources",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "dns-prefetch",
+ "http",
+ "http2",
+ "link",
+ "performance",
+ "prefetch",
+ "preload",
+ "prerender",
+ "psr13",
+ "push"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/web-link/tree/v5.4.21"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-02-14T08:03:56+00:00"
+ },
+ {
+ "name": "symfony/yaml",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/yaml.git",
+ "reference": "f387675d7f5fc4231f7554baa70681f222f73563"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/f387675d7f5fc4231f7554baa70681f222f73563",
+ "reference": "f387675d7f5fc4231f7554baa70681f222f73563",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "conflict": {
+ "symfony/console": "<5.3"
+ },
+ "require-dev": {
+ "symfony/console": "^5.3|^6.0"
+ },
+ "suggest": {
+ "symfony/console": "For validating YAML files using the lint command"
+ },
+ "bin": [
+ "Resources/bin/yaml-lint"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Yaml\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Loads and dumps YAML files",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/yaml/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-03T14:41:28+00:00"
+ },
+ {
+ "name": "twig/twig",
+ "version": "v3.7.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/twigphp/Twig.git",
+ "reference": "a0ce373a0ca3bf6c64b9e3e2124aca502ba39554"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/twigphp/Twig/zipball/a0ce373a0ca3bf6c64b9e3e2124aca502ba39554",
+ "reference": "a0ce373a0ca3bf6c64b9e3e2124aca502ba39554",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-ctype": "^1.8",
+ "symfony/polyfill-mbstring": "^1.3"
+ },
+ "require-dev": {
+ "psr/container": "^1.0|^2.0",
+ "symfony/phpunit-bridge": "^5.4.9|^6.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Twig\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com",
+ "homepage": "http://fabien.potencier.org",
+ "role": "Lead Developer"
+ },
+ {
+ "name": "Twig Team",
+ "role": "Contributors"
+ },
+ {
+ "name": "Armin Ronacher",
+ "email": "armin.ronacher@active-4.com",
+ "role": "Project Founder"
+ }
+ ],
+ "description": "Twig, the flexible, fast, and secure template language for PHP",
+ "homepage": "https://twig.symfony.com",
+ "keywords": [
+ "templating"
+ ],
+ "support": {
+ "issues": "https://github.com/twigphp/Twig/issues",
+ "source": "https://github.com/twigphp/Twig/tree/v3.7.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/twig/twig",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-08-28T11:09:02+00:00"
+ },
+ {
+ "name": "webmozart/assert",
+ "version": "1.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozarts/assert.git",
+ "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991",
+ "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "conflict": {
+ "phpstan/phpstan": "<0.12.20",
+ "vimeo/psalm": "<4.6.1 || 4.6.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5.13"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.10-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Webmozart\\Assert\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Assertions to validate method input/output with nice error messages.",
+ "keywords": [
+ "assert",
+ "check",
+ "validate"
+ ],
+ "support": {
+ "issues": "https://github.com/webmozarts/assert/issues",
+ "source": "https://github.com/webmozarts/assert/tree/1.11.0"
+ },
+ "time": "2022-06-03T18:03:27+00:00"
+ }
+ ],
+ "packages-dev": [
+ {
+ "name": "composer/pcre",
+ "version": "3.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/pcre.git",
+ "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9",
+ "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.3",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "symfony/phpunit-bridge": "^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\Pcre\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "PCRE wrapping library that offers type-safe preg_* replacements.",
+ "keywords": [
+ "PCRE",
+ "preg",
+ "regex",
+ "regular expression"
+ ],
+ "support": {
+ "issues": "https://github.com/composer/pcre/issues",
+ "source": "https://github.com/composer/pcre/tree/3.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-11T07:11:09+00:00"
+ },
+ {
+ "name": "composer/semver",
+ "version": "3.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/semver.git",
+ "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32",
+ "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.2 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.4",
+ "symfony/phpunit-bridge": "^4.2 || ^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\Semver\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nils Adermann",
+ "email": "naderman@naderman.de",
+ "homepage": "http://www.naderman.de"
+ },
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ },
+ {
+ "name": "Rob Bast",
+ "email": "rob.bast@gmail.com",
+ "homepage": "http://robbast.nl"
+ }
+ ],
+ "description": "Semver library that offers utilities, version constraint parsing and validation.",
+ "keywords": [
+ "semantic",
+ "semver",
+ "validation",
+ "versioning"
+ ],
+ "support": {
+ "irc": "ircs://irc.libera.chat:6697/composer",
+ "issues": "https://github.com/composer/semver/issues",
+ "source": "https://github.com/composer/semver/tree/3.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-08-31T09:50:34+00:00"
+ },
+ {
+ "name": "composer/xdebug-handler",
+ "version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/xdebug-handler.git",
+ "reference": "ced299686f41dce890debac69273b47ffe98a40c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c",
+ "reference": "ced299686f41dce890debac69273b47ffe98a40c",
+ "shasum": ""
+ },
+ "require": {
+ "composer/pcre": "^1 || ^2 || ^3",
+ "php": "^7.2.5 || ^8.0",
+ "psr/log": "^1 || ^2 || ^3"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.0",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "symfony/phpunit-bridge": "^6.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Composer\\XdebugHandler\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "John Stevenson",
+ "email": "john-stevenson@blueyonder.co.uk"
+ }
+ ],
+ "description": "Restarts a process without Xdebug.",
+ "keywords": [
+ "Xdebug",
+ "performance"
+ ],
+ "support": {
+ "irc": "irc://irc.freenode.org/composer",
+ "issues": "https://github.com/composer/xdebug-handler/issues",
+ "source": "https://github.com/composer/xdebug-handler/tree/3.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-02-25T21:32:43+00:00"
+ },
+ {
+ "name": "friendsofphp/php-cs-fixer",
+ "version": "v3.38.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
+ "reference": "d872cdd543797ade030aaa307c0a4954a712e081"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/d872cdd543797ade030aaa307c0a4954a712e081",
+ "reference": "d872cdd543797ade030aaa307c0a4954a712e081",
+ "shasum": ""
+ },
+ "require": {
+ "composer/semver": "^3.3",
+ "composer/xdebug-handler": "^3.0.3",
+ "ext-json": "*",
+ "ext-tokenizer": "*",
+ "php": "^7.4 || ^8.0",
+ "sebastian/diff": "^4.0 || ^5.0",
+ "symfony/console": "^5.4 || ^6.0",
+ "symfony/event-dispatcher": "^5.4 || ^6.0",
+ "symfony/filesystem": "^5.4 || ^6.0",
+ "symfony/finder": "^5.4 || ^6.0",
+ "symfony/options-resolver": "^5.4 || ^6.0",
+ "symfony/polyfill-mbstring": "^1.27",
+ "symfony/polyfill-php80": "^1.27",
+ "symfony/polyfill-php81": "^1.27",
+ "symfony/process": "^5.4 || ^6.0",
+ "symfony/stopwatch": "^5.4 || ^6.0"
+ },
+ "require-dev": {
+ "facile-it/paraunit": "^1.3 || ^2.0",
+ "justinrainbow/json-schema": "^5.2",
+ "keradus/cli-executor": "^2.0",
+ "mikey179/vfsstream": "^1.6.11",
+ "php-coveralls/php-coveralls": "^2.5.3",
+ "php-cs-fixer/accessible-object": "^1.1",
+ "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2",
+ "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1",
+ "phpspec/prophecy": "^1.16",
+ "phpspec/prophecy-phpunit": "^2.0",
+ "phpunit/phpunit": "^9.5",
+ "symfony/phpunit-bridge": "^6.2.3",
+ "symfony/yaml": "^5.4 || ^6.0"
+ },
+ "suggest": {
+ "ext-dom": "For handling output formats in XML",
+ "ext-mbstring": "For handling non-UTF8 characters."
+ },
+ "bin": [
+ "php-cs-fixer"
+ ],
+ "type": "application",
+ "autoload": {
+ "psr-4": {
+ "PhpCsFixer\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Dariusz Rumiński",
+ "email": "dariusz.ruminski@gmail.com"
+ }
+ ],
+ "description": "A tool to automatically fix PHP code style",
+ "keywords": [
+ "Static code analysis",
+ "fixer",
+ "standards",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues",
+ "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.38.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/keradus",
+ "type": "github"
+ }
+ ],
+ "time": "2023-11-14T00:19:22+00:00"
+ },
+ {
+ "name": "myclabs/deep-copy",
+ "version": "1.11.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/myclabs/DeepCopy.git",
+ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "conflict": {
+ "doctrine/collections": "<1.6.8",
+ "doctrine/common": "<2.13.3 || >=3,<3.2.2"
+ },
+ "require-dev": {
+ "doctrine/collections": "^1.6.8",
+ "doctrine/common": "^2.13.3 || ^3.2.2",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/DeepCopy/deep_copy.php"
+ ],
+ "psr-4": {
+ "DeepCopy\\": "src/DeepCopy/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Create deep copies (clones) of your objects",
+ "keywords": [
+ "clone",
+ "copy",
+ "duplicate",
+ "object",
+ "object graph"
+ ],
+ "support": {
+ "issues": "https://github.com/myclabs/DeepCopy/issues",
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1"
+ },
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-03-08T13:26:56+00:00"
+ },
+ {
+ "name": "nikic/php-parser",
+ "version": "v4.17.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/PHP-Parser.git",
+ "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d",
+ "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": ">=7.0"
+ },
+ "require-dev": {
+ "ircmaxell/php-yacc": "^0.0.7",
+ "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
+ },
+ "bin": [
+ "bin/php-parse"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.9-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpParser\\": "lib/PhpParser"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Nikita Popov"
+ }
+ ],
+ "description": "A PHP parser written in PHP",
+ "keywords": [
+ "parser",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/nikic/PHP-Parser/issues",
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1"
+ },
+ "time": "2023-08-13T19:53:39+00:00"
+ },
+ {
+ "name": "phar-io/manifest",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/manifest.git",
+ "reference": "97803eca37d319dfa7826cc2437fc020857acb53"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53",
+ "reference": "97803eca37d319dfa7826cc2437fc020857acb53",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-phar": "*",
+ "ext-xmlwriter": "*",
+ "phar-io/version": "^3.0.1",
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
+ "support": {
+ "issues": "https://github.com/phar-io/manifest/issues",
+ "source": "https://github.com/phar-io/manifest/tree/2.0.3"
+ },
+ "time": "2021-07-20T11:28:43+00:00"
+ },
+ {
+ "name": "phar-io/version",
+ "version": "3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/version.git",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Library for handling version information and constraints",
+ "support": {
+ "issues": "https://github.com/phar-io/version/issues",
+ "source": "https://github.com/phar-io/version/tree/3.2.1"
+ },
+ "time": "2022-02-21T01:04:05+00:00"
+ },
+ {
+ "name": "phpunit/php-code-coverage",
+ "version": "9.2.29",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/6a3a87ac2bbe33b25042753df8195ba4aa534c76",
+ "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "ext-xmlwriter": "*",
+ "nikic/php-parser": "^4.15",
+ "php": ">=7.3",
+ "phpunit/php-file-iterator": "^3.0.3",
+ "phpunit/php-text-template": "^2.0.2",
+ "sebastian/code-unit-reverse-lookup": "^2.0.2",
+ "sebastian/complexity": "^2.0",
+ "sebastian/environment": "^5.1.2",
+ "sebastian/lines-of-code": "^1.0.3",
+ "sebastian/version": "^3.0.1",
+ "theseer/tokenizer": "^1.2.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-pcov": "PHP extension that provides line coverage",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "9.2-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+ "keywords": [
+ "coverage",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
+ "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.29"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-09-19T04:57:46+00:00"
+ },
+ {
+ "name": "phpunit/php-file-iterator",
+ "version": "3.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
+ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+ "keywords": [
+ "filesystem",
+ "iterator"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2021-12-02T12:48:52+00:00"
+ },
+ {
+ "name": "phpunit/php-invoker",
+ "version": "3.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-invoker.git",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "ext-pcntl": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-pcntl": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Invoke callables with a timeout",
+ "homepage": "https://github.com/sebastianbergmann/php-invoker/",
+ "keywords": [
+ "process"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:58:55+00:00"
+ },
+ {
+ "name": "phpunit/php-text-template",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Simple template engine.",
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+ "keywords": [
+ "template"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T05:33:50+00:00"
+ },
+ {
+ "name": "phpunit/php-timer",
+ "version": "5.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Utility class for timing",
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "keywords": [
+ "timer"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-timer/issues",
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:16:10+00:00"
+ },
+ {
+ "name": "phpunit/phpunit",
+ "version": "9.6.13",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
+ "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f3d767f7f9e191eab4189abe41ab37797e30b1be",
+ "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/instantiator": "^1.3.1 || ^2",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-xml": "*",
+ "ext-xmlwriter": "*",
+ "myclabs/deep-copy": "^1.10.1",
+ "phar-io/manifest": "^2.0.3",
+ "phar-io/version": "^3.0.2",
+ "php": ">=7.3",
+ "phpunit/php-code-coverage": "^9.2.28",
+ "phpunit/php-file-iterator": "^3.0.5",
+ "phpunit/php-invoker": "^3.1.1",
+ "phpunit/php-text-template": "^2.0.3",
+ "phpunit/php-timer": "^5.0.2",
+ "sebastian/cli-parser": "^1.0.1",
+ "sebastian/code-unit": "^1.0.6",
+ "sebastian/comparator": "^4.0.8",
+ "sebastian/diff": "^4.0.3",
+ "sebastian/environment": "^5.1.3",
+ "sebastian/exporter": "^4.0.5",
+ "sebastian/global-state": "^5.0.1",
+ "sebastian/object-enumerator": "^4.0.3",
+ "sebastian/resource-operations": "^3.0.3",
+ "sebastian/type": "^3.2",
+ "sebastian/version": "^3.0.2"
+ },
+ "suggest": {
+ "ext-soap": "To be able to generate mocks based on WSDL files",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
+ },
+ "bin": [
+ "phpunit"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "9.6-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Framework/Assert/Functions.php"
+ ],
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "The PHP Unit Testing framework.",
+ "homepage": "https://phpunit.de/",
+ "keywords": [
+ "phpunit",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/phpunit/issues",
+ "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.13"
+ },
+ "funding": [
+ {
+ "url": "https://phpunit.de/sponsors.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-09-19T05:39:22+00:00"
+ },
+ {
+ "name": "sebastian/cli-parser",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/cli-parser.git",
+ "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
+ "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for parsing CLI options",
+ "homepage": "https://github.com/sebastianbergmann/cli-parser",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T06:08:49+00:00"
+ },
+ {
+ "name": "sebastian/code-unit",
+ "version": "1.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit.git",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/code-unit",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:08:54+00:00"
+ },
+ {
+ "name": "sebastian/code-unit-reverse-lookup",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
+ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Looks up which function or method a line of code belongs to",
+ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:30:19+00:00"
+ },
+ {
+ "name": "sebastian/comparator",
+ "version": "4.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/comparator.git",
+ "reference": "fa0f136dd2334583309d32b62544682ee972b51a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a",
+ "reference": "fa0f136dd2334583309d32b62544682ee972b51a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/diff": "^4.0",
+ "sebastian/exporter": "^4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ }
+ ],
+ "description": "Provides the functionality to compare PHP values for equality",
+ "homepage": "https://github.com/sebastianbergmann/comparator",
+ "keywords": [
+ "comparator",
+ "compare",
+ "equality"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/comparator/issues",
+ "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2022-09-14T12:41:17+00:00"
+ },
+ {
+ "name": "sebastian/complexity",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/complexity.git",
+ "reference": "739b35e53379900cc9ac327b2147867b8b6efd88"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88",
+ "reference": "739b35e53379900cc9ac327b2147867b8b6efd88",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.7",
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for calculating the complexity of PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/complexity",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/complexity/issues",
+ "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T15:52:27+00:00"
+ },
+ {
+ "name": "sebastian/diff",
+ "version": "4.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/diff.git",
+ "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
+ "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3",
+ "symfony/process": "^4.2 || ^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
+ }
+ ],
+ "description": "Diff implementation",
+ "homepage": "https://github.com/sebastianbergmann/diff",
+ "keywords": [
+ "diff",
+ "udiff",
+ "unidiff",
+ "unified diff"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/diff/issues",
+ "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-05-07T05:35:17+00:00"
+ },
+ {
+ "name": "sebastian/environment",
+ "version": "5.1.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/environment.git",
+ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
+ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-posix": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides functionality to handle HHVM/PHP environments",
+ "homepage": "http://www.github.com/sebastianbergmann/environment",
+ "keywords": [
+ "Xdebug",
+ "environment",
+ "hhvm"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/environment/issues",
+ "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:03:51+00:00"
+ },
+ {
+ "name": "sebastian/exporter",
+ "version": "4.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/exporter.git",
+ "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
+ "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "ext-mbstring": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Provides the functionality to export PHP variables for visualization",
+ "homepage": "https://www.github.com/sebastianbergmann/exporter",
+ "keywords": [
+ "export",
+ "exporter"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/exporter/issues",
+ "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2022-09-14T06:03:37+00:00"
+ },
+ {
+ "name": "sebastian/global-state",
+ "version": "5.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/global-state.git",
+ "reference": "bde739e7565280bda77be70044ac1047bc007e34"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34",
+ "reference": "bde739e7565280bda77be70044ac1047bc007e34",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "ext-dom": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-uopz": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Snapshotting of global state",
+ "homepage": "http://www.github.com/sebastianbergmann/global-state",
+ "keywords": [
+ "global state"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/global-state/issues",
+ "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-08-02T09:26:13+00:00"
+ },
+ {
+ "name": "sebastian/lines-of-code",
+ "version": "1.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/lines-of-code.git",
+ "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc",
+ "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.6",
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for counting the lines of code in PHP source code",
+ "homepage": "https://github.com/sebastianbergmann/lines-of-code",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-11-28T06:42:11+00:00"
+ },
+ {
+ "name": "sebastian/object-enumerator",
+ "version": "4.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Traverses array structures and object graphs to enumerate all referenced objects",
+ "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:12:34+00:00"
+ },
+ {
+ "name": "sebastian/object-reflector",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-reflector.git",
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Allows reflection of object attributes, including inherited and non-public ones",
+ "homepage": "https://github.com/sebastianbergmann/object-reflector/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:14:26+00:00"
+ },
+ {
+ "name": "sebastian/recursion-context",
+ "version": "4.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
+ "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
+ "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides functionality to recursively process PHP variables",
+ "homepage": "https://github.com/sebastianbergmann/recursion-context",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:07:39+00:00"
+ },
+ {
+ "name": "sebastian/resource-operations",
+ "version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/resource-operations.git",
+ "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
+ "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides a list of PHP built-in functions that operate on resources",
+ "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/resource-operations/issues",
+ "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T06:45:17+00:00"
+ },
+ {
+ "name": "sebastian/type",
+ "version": "3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/type.git",
+ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
+ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.2-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the types of the PHP type system",
+ "homepage": "https://github.com/sebastianbergmann/type",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/type/issues",
+ "source": "https://github.com/sebastianbergmann/type/tree/3.2.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:13:03+00:00"
+ },
+ {
+ "name": "sebastian/version",
+ "version": "3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/version.git",
+ "reference": "c6c1022351a901512170118436c764e473f6de8c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
+ "reference": "c6c1022351a901512170118436c764e473f6de8c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+ "homepage": "https://github.com/sebastianbergmann/version",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/version/issues",
+ "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T06:39:44+00:00"
+ },
+ {
+ "name": "symfony/browser-kit",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/browser-kit.git",
+ "reference": "0ed1f634a36606f2065eec221b3975e05016cbbe"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/browser-kit/zipball/0ed1f634a36606f2065eec221b3975e05016cbbe",
+ "reference": "0ed1f634a36606f2065eec221b3975e05016cbbe",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/dom-crawler": "^4.4|^5.0|^6.0",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "require-dev": {
+ "symfony/css-selector": "^4.4|^5.0|^6.0",
+ "symfony/http-client": "^4.4|^5.0|^6.0",
+ "symfony/mime": "^4.4|^5.0|^6.0",
+ "symfony/process": "^4.4|^5.0|^6.0"
+ },
+ "suggest": {
+ "symfony/process": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\BrowserKit\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/browser-kit/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-31T07:58:33+00:00"
+ },
+ {
+ "name": "symfony/css-selector",
+ "version": "v5.4.26",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/css-selector.git",
+ "reference": "0ad3f7e9a1ab492c5b4214cf22a9dc55dcf8600a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/0ad3f7e9a1ab492c5b4214cf22a9dc55dcf8600a",
+ "reference": "0ad3f7e9a1ab492c5b4214cf22a9dc55dcf8600a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\CssSelector\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Jean-François Simon",
+ "email": "jeanfrancois.simon@sensiolabs.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Converts CSS selectors to XPath expressions",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/css-selector/tree/v5.4.26"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-07-07T06:10:25+00:00"
+ },
+ {
+ "name": "symfony/debug-bundle",
+ "version": "v5.4.26",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/debug-bundle.git",
+ "reference": "17c372891d4554d5d2f5cf602aef02c859ad52d8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/17c372891d4554d5d2f5cf602aef02c859ad52d8",
+ "reference": "17c372891d4554d5d2f5cf602aef02c859ad52d8",
+ "shasum": ""
+ },
+ "require": {
+ "ext-xml": "*",
+ "php": ">=7.2.5",
+ "symfony/http-kernel": "^4.4|^5.0|^6.0",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/twig-bridge": "^4.4|^5.0|^6.0",
+ "symfony/var-dumper": "^4.4|^5.0|^6.0"
+ },
+ "conflict": {
+ "symfony/config": "<4.4",
+ "symfony/dependency-injection": "<5.2"
+ },
+ "require-dev": {
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/web-profiler-bundle": "^4.4|^5.0|^6.0"
+ },
+ "suggest": {
+ "symfony/config": "For service container configuration",
+ "symfony/dependency-injection": "For using as a service from the container"
+ },
+ "type": "symfony-bundle",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bundle\\DebugBundle\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides a tight integration of the Symfony VarDumper component and the ServerLogCommand from MonologBridge into the Symfony full-stack framework",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/debug-bundle/tree/v5.4.26"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-07-11T21:42:03+00:00"
+ },
+ {
+ "name": "symfony/dom-crawler",
+ "version": "v5.4.25",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/dom-crawler.git",
+ "reference": "d2aefa5a7acc5511422792931d14d1be96fe9fea"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/d2aefa5a7acc5511422792931d14d1be96fe9fea",
+ "reference": "d2aefa5a7acc5511422792931d14d1be96fe9fea",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "conflict": {
+ "masterminds/html5": "<2.6"
+ },
+ "require-dev": {
+ "masterminds/html5": "^2.6",
+ "symfony/css-selector": "^4.4|^5.0|^6.0"
+ },
+ "suggest": {
+ "symfony/css-selector": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\DomCrawler\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Eases DOM navigation for HTML and XML documents",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/dom-crawler/tree/v5.4.25"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-06-05T08:05:41+00:00"
+ },
+ {
+ "name": "symfony/maker-bundle",
+ "version": "v1.50.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/maker-bundle.git",
+ "reference": "a1733f849b999460c308e66f6392fb09b621fa86"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/a1733f849b999460c308e66f6392fb09b621fa86",
+ "reference": "a1733f849b999460c308e66f6392fb09b621fa86",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/inflector": "^2.0",
+ "nikic/php-parser": "^4.11",
+ "php": ">=8.0",
+ "symfony/config": "^5.4.7|^6.0",
+ "symfony/console": "^5.4.7|^6.0",
+ "symfony/dependency-injection": "^5.4.7|^6.0",
+ "symfony/deprecation-contracts": "^2.2|^3",
+ "symfony/filesystem": "^5.4.7|^6.0",
+ "symfony/finder": "^5.4.3|^6.0",
+ "symfony/framework-bundle": "^5.4.7|^6.0",
+ "symfony/http-kernel": "^5.4.7|^6.0",
+ "symfony/process": "^5.4.7|^6.0"
+ },
+ "conflict": {
+ "doctrine/doctrine-bundle": "<2.4",
+ "doctrine/orm": "<2.10",
+ "symfony/doctrine-bridge": "<5.4"
+ },
+ "require-dev": {
+ "composer/semver": "^3.0",
+ "doctrine/doctrine-bundle": "^2.4",
+ "doctrine/orm": "^2.10.0",
+ "symfony/http-client": "^5.4.7|^6.0",
+ "symfony/phpunit-bridge": "^5.4.17|^6.0",
+ "symfony/polyfill-php80": "^1.16.0",
+ "symfony/security-core": "^5.4.7|^6.0",
+ "symfony/yaml": "^5.4.3|^6.0",
+ "twig/twig": "^2.0|^3.0"
+ },
+ "type": "symfony-bundle",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bundle\\MakerBundle\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code.",
+ "homepage": "https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html",
+ "keywords": [
+ "code generator",
+ "dev",
+ "generator",
+ "scaffold",
+ "scaffolding"
+ ],
+ "support": {
+ "issues": "https://github.com/symfony/maker-bundle/issues",
+ "source": "https://github.com/symfony/maker-bundle/tree/v1.50.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-07-10T18:21:57+00:00"
+ },
+ {
+ "name": "symfony/phpunit-bridge",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/phpunit-bridge.git",
+ "reference": "30656f441e1c59ea5688dfb11ab449a56dad2925"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/30656f441e1c59ea5688dfb11ab449a56dad2925",
+ "reference": "30656f441e1c59ea5688dfb11ab449a56dad2925",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/deprecation-contracts": "^2.1|^3"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<7.5|9.1.2"
+ },
+ "require-dev": {
+ "symfony/error-handler": "^4.4|^5.0|^6.0"
+ },
+ "suggest": {
+ "symfony/error-handler": "For tracking deprecated interfaces usages at runtime with DebugClassLoader"
+ },
+ "bin": [
+ "bin/simple-phpunit"
+ ],
+ "type": "symfony-bridge",
+ "extra": {
+ "thanks": {
+ "name": "phpunit/phpunit",
+ "url": "https://github.com/sebastianbergmann/phpunit"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Bridge\\PhpUnit\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides utilities for PHPUnit, especially user deprecation notices management",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/phpunit-bridge/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-31T07:58:33+00:00"
+ },
+ {
+ "name": "symfony/web-profiler-bundle",
+ "version": "v5.4.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/web-profiler-bundle.git",
+ "reference": "c3e04e0ad13df22acad1157a5b66404a85c3c538"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/c3e04e0ad13df22acad1157a5b66404a85c3c538",
+ "reference": "c3e04e0ad13df22acad1157a5b66404a85c3c538",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/framework-bundle": "^5.3|^6.0,<6.4",
+ "symfony/http-kernel": "^5.3|^6.0",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/routing": "^4.4|^5.0|^6.0",
+ "symfony/twig-bundle": "^4.4|^5.0|^6.0",
+ "twig/twig": "^2.13|^3.0.4"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<5.2",
+ "symfony/form": "<4.4",
+ "symfony/mailer": "<5.4",
+ "symfony/messenger": "<4.4"
+ },
+ "require-dev": {
+ "symfony/browser-kit": "^4.4|^5.0|^6.0",
+ "symfony/console": "^4.4|^5.0|^6.0",
+ "symfony/css-selector": "^4.4|^5.0|^6.0",
+ "symfony/stopwatch": "^4.4|^5.0|^6.0"
+ },
+ "type": "symfony-bundle",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bundle\\WebProfilerBundle\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides a development tool that gives detailed information about the execution of any request",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/web-profiler-bundle/tree/v5.4.31"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-31T14:39:57+00:00"
+ },
+ {
+ "name": "theseer/tokenizer",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/theseer/tokenizer.git",
+ "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e",
+ "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
+ "support": {
+ "issues": "https://github.com/theseer/tokenizer/issues",
+ "source": "https://github.com/theseer/tokenizer/tree/1.2.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2021-07-28T10:34:58+00:00"
+ }
+ ],
+ "aliases": [],
+ "minimum-stability": "stable",
+ "stability-flags": [],
+ "prefer-stable": false,
+ "prefer-lowest": false,
+ "platform": {
+ "php": "^8.0",
+ "ext-ctype": "*",
+ "ext-gd": "*",
+ "ext-iconv": "*",
+ "composer-runtime-api": "^2"
+ },
+ "platform-dev": [],
+ "platform-overrides": {
+ "php": "8.0.28"
+ },
+ "plugin-api-version": "2.6.0"
+}
diff --git a/pkgs/by-name/da/davis/davis-data.patch b/pkgs/by-name/da/davis/davis-data.patch
new file mode 100644
index 000000000000..e2ea2c3d0330
--- /dev/null
+++ b/pkgs/by-name/da/davis/davis-data.patch
@@ -0,0 +1,78 @@
+diff --git a/bin/console b/bin/console
+index 8fe9d49..3af9662 100755
+--- a/bin/console
++++ b/bin/console
+@@ -1,5 +1,8 @@
+ #!/usr/bin/env php
+ hasParameterOption('--no-debug', true)) {
+ putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0');
+ }
+
+-(new Dotenv())->bootEnv(dirname(__DIR__).'/.env');
++if (getenv('ENV_DIR') !== false) {
++ (new Dotenv())->bootEnv(getenv('ENV_DIR').'/.env');
++} else {
++ (new Dotenv())->bootEnv(dirname(__DIR__).'/.env');
++}
+
+ if ($_SERVER['APP_DEBUG']) {
+ umask(0000);
+diff --git a/public/index.php b/public/index.php
+index 3f8b90e..c57ec21 100644
+--- a/public/index.php
++++ b/public/index.php
+@@ -1,5 +1,9 @@
+ bootEnv(dirname(__DIR__).'/.env');
++if (getenv('ENV_DIR') !== false) {
++ (new Dotenv())->bootEnv(getenv('ENV_DIR').'/.env');
++} else {
++ (new Dotenv())->bootEnv(dirname(__DIR__).'/.env');
++}
+
+ if ($_SERVER['APP_DEBUG']) {
+ umask(0000);
+diff --git a/src/Kernel.php b/src/Kernel.php
+index 0f43d2f..8863f2c 100644
+--- a/src/Kernel.php
++++ b/src/Kernel.php
+@@ -49,4 +49,20 @@ class Kernel extends BaseKernel
+ (require $path)($routes->withPath($path), $this);
+ }
+ }
++
++ public function getCacheDir(): string
++ {
++ if (getenv('CACHE_DIR') !== false) {
++ return getenv('CACHE_DIR') . '/' . $this->getEnvironment();
++ }
++ return parent::getCacheDir();
++ }
++
++ public function getLogDir(): string
++ {
++ if (getenv('LOG_DIR') !== false) {
++ return getenv('LOG_DIR') . '/' . $this->getEnvironment();
++ }
++ return parent::getLogDir();
++ }
+ }
diff --git a/pkgs/by-name/da/davis/package.nix b/pkgs/by-name/da/davis/package.nix
new file mode 100644
index 000000000000..6469fd363f46
--- /dev/null
+++ b/pkgs/by-name/da/davis/package.nix
@@ -0,0 +1,41 @@
+{ lib, fetchFromGitHub, php, }:
+
+php.buildComposerProject (finalAttrs: {
+ pname = "davis";
+ version = "4.4.1";
+
+ src = fetchFromGitHub {
+ owner = "tchapi";
+ repo = "davis";
+ rev = "v${finalAttrs.version}";
+ hash = "sha256-UBekmxKs4dveHh866Ix8UzY2NL6ygb8CKor+V3Cblns=";
+ };
+
+ composerLock = ./composer.lock;
+ vendorHash = "sha256-WGeNwBRzfUXa7kPIwd7/5dPXDjaBxXirAJcm6lNzueY=";
+
+ patches = [
+ # Symfony loads .env files from the same directory as composer.json
+ # The .env files contain runtime configuration that shouldn't be baked into deriviation for the package
+ # This patch adds a few extension points exposing three environment variables:
+ # RUNTIME_DIRECTORY (where to load .env from), CACHE_DIRECTORY and LOG_DIRECTORY (symfony cache and log rw directories)
+ # Upstream PR https://github.com/tchapi/davis/issues/154
+ ./davis-data.patch
+ ];
+
+ postInstall = ''
+ # Only include the files needed for runtime in the derivation
+ mv $out/share/php/${finalAttrs.pname}/{migrations,public,src,config,bin,templates,tests,translations,vendor,symfony.lock,composer.json,composer.lock} $out
+ # Save the upstream .env file for reference, but rename it so it is not loaded
+ mv $out/share/php/${finalAttrs.pname}/.env $out/env-upstream
+ rm -rf "$out/share"
+ '';
+
+ meta = {
+ changelog = "https://github.com/tchapi/davis/releases/tag/v${finalAttrs.version}";
+ homepage = "https://github.com/tchapi/davis";
+ description = "A simple CardDav and CalDav server inspired by Baïkal";
+ license = lib.licenses.mit;
+ maintainers = with lib.maintainers; [ ramblurr ];
+ };
+})
diff --git a/pkgs/by-name/fl/flye/aarch64-fix.patch b/pkgs/by-name/fl/flye/aarch64-fix.patch
new file mode 100644
index 000000000000..02588fc63e21
--- /dev/null
+++ b/pkgs/by-name/fl/flye/aarch64-fix.patch
@@ -0,0 +1,15 @@
+diff --git a/Makefile b/Makefile
+index 75f62aed..91b9571b 100644
+--- a/Makefile
++++ b/Makefile
+@@ -16,6 +16,10 @@ ifeq ($(shell uname -m),arm64)
+ export aarch64=1
+ endif
+
++ifeq ($(shell uname -m),aarch64)
++ export aarch64=1
++endif
++
+ .PHONY: clean all profile debug minimap2 samtools
+
+ .DEFAULT_GOAL := all
diff --git a/pkgs/by-name/fl/flye/package.nix b/pkgs/by-name/fl/flye/package.nix
new file mode 100644
index 000000000000..ccbb56eb6795
--- /dev/null
+++ b/pkgs/by-name/fl/flye/package.nix
@@ -0,0 +1,51 @@
+{ lib
+, fetchFromGitHub
+, python3Packages
+, zlib
+, curl
+, libdeflate
+, bash
+, coreutils
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "flye";
+ version = "2.9.3";
+
+ src = fetchFromGitHub {
+ owner = "fenderglass";
+ repo = "flye";
+ rev = version;
+ hash = "sha256-IALqtIPmvDYoH4w/tk2WB/P/pAcKXxgnsu9PFp+wIes=";
+ };
+
+ nativeCheckInputs = [ python3Packages.pytestCheckHook ];
+
+ propagatedBuildInputs = [ coreutils ];
+
+ buildInputs = [
+ zlib
+ curl
+ libdeflate
+ ];
+
+ patches = [ ./aarch64-fix.patch ];
+
+ postPatch = ''
+ substituteInPlace flye/polishing/alignment.py \
+ --replace-fail "/bin/bash" "${lib.getExe bash}"
+
+ substituteInPlace flye/tests/test_toy.py \
+ --replace-fail "find_executable(\"flye" "find_executable(\"$out/bin/flye" \
+ --replace-fail "[\"flye" "[\"$out/bin/flye"
+ '';
+
+ meta = with lib; {
+ description = "De novo assembler for single molecule sequencing reads using repeat graphs";
+ homepage = "https://github.com/fenderglass/Flye";
+ license = licenses.bsd3;
+ platforms = platforms.unix;
+ mainProgram = "flye";
+ maintainers = with maintainers; [ assistant ];
+ };
+}
diff --git a/pkgs/by-name/gi/github-desktop/package.nix b/pkgs/by-name/gi/github-desktop/package.nix
new file mode 100644
index 000000000000..7ada2ddb663b
--- /dev/null
+++ b/pkgs/by-name/gi/github-desktop/package.nix
@@ -0,0 +1,101 @@
+{ stdenvNoCC
+, lib
+, fetchurl
+, autoPatchelfHook
+, wrapGAppsHook
+, makeWrapper
+, gnome
+, libsecret
+, git
+, curl
+, nss
+, nspr
+, xorg
+, libdrm
+, alsa-lib
+, cups
+, mesa
+, systemd
+, openssl
+}:
+
+let
+ rcversion = "2";
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
+ pname = "github-desktop";
+ version = "3.3.12";
+
+ src =
+ let
+ urls = {
+ "x86_64-linux" = {
+ url = "https://github.com/shiftkey/desktop/releases/download/release-${finalAttrs.version}-linux${rcversion}/GitHubDesktop-linux-amd64-${finalAttrs.version}-linux${rcversion}.deb";
+ hash = "sha256-iflKD7NPuZvhxviNW8xmtCOYgdRz1rXiG42ycWCjXiY=";
+ };
+ "aarch64-linux" = {
+ url = "https://github.com/shiftkey/desktop/releases/download/release-${finalAttrs.version}-linux${rcversion}/GitHubDesktop-linux-arm64-${finalAttrs.version}-linux${rcversion}.deb";
+ hash = "sha256-C9eCvuf/TwXQiYjZ88xSiyaqi8+cppmrLiSYTyQCkmg=";
+ };
+ };
+ in
+ fetchurl urls."${stdenvNoCC.hostPlatform.system}" or (throw "Unsupported system: ${stdenvNoCC.hostPlatform.system}");
+
+ nativeBuildInputs = [
+ autoPatchelfHook
+ (wrapGAppsHook.override { inherit makeWrapper; })
+ ];
+
+ buildInputs = [
+ gnome.gnome-keyring
+ xorg.libXdamage
+ xorg.libX11
+ libsecret
+ git
+ curl
+ nss
+ nspr
+ libdrm
+ alsa-lib
+ cups
+ mesa
+ openssl
+ ];
+
+ unpackPhase = ''
+ runHook preUnpack
+ mkdir -p $TMP/github-desktop $out/{opt,bin}
+ cp $src $TMP/github-desktop.deb
+ ar vx github-desktop.deb
+ tar --no-overwrite-dir -xvf data.tar.xz -C $TMP/github-desktop/
+ runHook postUnpack
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ cp -R $TMP/github-desktop/usr/share $out/
+ cp -R $TMP/github-desktop/usr/lib/github-desktop/* $out/opt/
+ ln -sf $out/opt/github-desktop $out/bin/github-desktop
+ runHook postInstall
+ '';
+
+ preFixup = ''
+ gappsWrapperArgs+=(
+ --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland}}"
+ )
+ '';
+
+ runtimeDependencies = [
+ (lib.getLib systemd)
+ ];
+
+ meta = {
+ description = "GUI for managing Git and GitHub.";
+ homepage = "https://desktop.github.com/";
+ license = lib.licenses.mit;
+ mainProgram = "github-desktop";
+ maintainers = with lib.maintainers; [ dan4ik605743 ];
+ platforms = lib.platforms.linux;
+ sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+ };
+})
diff --git a/pkgs/by-name/he/hello/package.nix b/pkgs/by-name/he/hello/package.nix
index f1b056faf640..68fdcf7e408c 100644
--- a/pkgs/by-name/he/hello/package.nix
+++ b/pkgs/by-name/he/hello/package.nix
@@ -18,6 +18,13 @@ stdenv.mkDerivation (finalAttrs: {
doCheck = true;
+ doInstallCheck = true;
+
+ # Give hello some install checks for testing purpose.
+ postInstallCheck = ''
+ stat "''${!outputBin}/bin/${finalAttrs.meta.mainProgram}"
+ '';
+
passthru.tests = {
version = testers.testVersion { package = hello; };
diff --git a/pkgs/development/libraries/libtoxcore/default.nix b/pkgs/by-name/li/libtoxcore/package.nix
similarity index 82%
rename from pkgs/development/libraries/libtoxcore/default.nix
rename to pkgs/by-name/li/libtoxcore/package.nix
index 87d6633f124e..00f145d17292 100644
--- a/pkgs/development/libraries/libtoxcore/default.nix
+++ b/pkgs/by-name/li/libtoxcore/package.nix
@@ -14,14 +14,14 @@
let buildToxAV = !stdenv.isAarch32;
in stdenv.mkDerivation rec {
pname = "libtoxcore";
- version = "0.2.18";
+ version = "0.2.19";
src =
# We need the prepared sources tarball.
fetchurl {
url =
"https://github.com/TokTok/c-toxcore/releases/download/v${version}/c-toxcore-${version}.tar.gz";
- sha256 = "sha256-8pQFN5mIY1k+KLxqa19W8JZ19s2KKDJre8MbSDbAiUI=";
+ sha256 = "sha256-i0GPZHDbCFz1mpkVaFYTVWVW3yv0JxSPGBS3sRhihZQ=";
};
cmakeFlags = [
@@ -51,11 +51,11 @@ in stdenv.mkDerivation rec {
# We might be getting the wrong pkg-config file anyway:
# https://github.com/TokTok/c-toxcore/issues/2334
- meta = with lib; {
+ meta = {
description = "P2P FOSS instant messaging application aimed to replace Skype";
homepage = "https://tox.chat";
- license = licenses.gpl3Plus;
- maintainers = with maintainers; [ peterhoeg ehmry ];
- platforms = platforms.all;
+ license = lib.licenses.gpl3Plus;
+ maintainers = with lib.maintainers; [ peterhoeg ehmry ];
+ platforms = lib.platforms.all;
};
}
diff --git a/pkgs/by-name/ne/nerdfetch/package.nix b/pkgs/by-name/ne/nerdfetch/package.nix
new file mode 100644
index 000000000000..de0931d3b685
--- /dev/null
+++ b/pkgs/by-name/ne/nerdfetch/package.nix
@@ -0,0 +1,37 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, gitUpdater
+}:
+stdenvNoCC.mkDerivation (finalAttrs: {
+ pname = "nerdfetch";
+ version = "8.1.1";
+
+ src = fetchFromGitHub {
+ owner = "ThatOneCalculator";
+ repo = "NerdFetch";
+ rev = "v${finalAttrs.version}";
+ hash = "sha256-mSRS7MUgaa14mgPYkbC4O1/gXxbyDKOiVCRgoh8He/c=";
+ };
+
+ dontUnpack = true;
+ dontConfigure = true;
+ dontBuild = true;
+ installPhase = ''
+ mkdir -p $out/bin
+ cp $src/nerdfetch $out/bin
+ '';
+
+ passthru.updateScript = gitUpdater {
+ rev-prefix = "v";
+ };
+
+ meta = with lib;{
+ description = "A POSIX *nix (Linux, macOS, Android, *BSD, etc) fetch script using Nerdfonts";
+ homepage = "https://github.com/ThatOneCalculator/NerdFetch";
+ maintainers = with maintainers; [ ByteSudoer ];
+ license = licenses.mit;
+ mainProgram = "nerdfetch";
+ platforms = platforms.unix;
+ };
+})
diff --git a/pkgs/by-name/qu/quarkus/package.nix b/pkgs/by-name/qu/quarkus/package.nix
index 56eeb7a57826..29fd9f2af539 100644
--- a/pkgs/by-name/qu/quarkus/package.nix
+++ b/pkgs/by-name/qu/quarkus/package.nix
@@ -7,11 +7,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "quarkus-cli";
- version = "3.8.3";
+ version = "3.9.1";
src = fetchurl {
url = "https://github.com/quarkusio/quarkus/releases/download/${finalAttrs.version}/quarkus-cli-${finalAttrs.version}.tar.gz";
- hash = "sha256-+HUVnd21q2xln58UR1QS0UFCjlY0sbf79ZkvWbRCH7Q=";
+ hash = "sha256-qWlg6ZferLAy3TOyFe7Dhy102GzISGpB08Dwy8JFxSk=";
};
nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/by-name/ra/raft-cowsql/package.nix b/pkgs/by-name/ra/raft-cowsql/package.nix
index 8dbd07a74870..65835a086284 100644
--- a/pkgs/by-name/ra/raft-cowsql/package.nix
+++ b/pkgs/by-name/ra/raft-cowsql/package.nix
@@ -11,13 +11,13 @@
stdenv.mkDerivation rec {
pname = "raft-cowsql";
- version = "0.22.0";
+ version = "0.22.1";
src = fetchFromGitHub {
owner = "cowsql";
repo = "raft";
rev = "refs/tags/v${version}";
- hash = "sha256-kd0PD45+CenlfRMp5O48uELyZ2gEtasCe7xNEzsKU+M=";
+ hash = "sha256-aGw/ATu8Xdjfqa0qWg8Sld9PKCmQsMtZhuNBwagER7M=";
};
nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/by-name/ra/railway-travel/package.nix b/pkgs/by-name/ra/railway-travel/package.nix
deleted file mode 100644
index be09a63e6dd0..000000000000
--- a/pkgs/by-name/ra/railway-travel/package.nix
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- lib,
- stdenv,
- fetchFromGitLab,
- cargo,
- desktop-file-utils,
- meson,
- ninja,
- pkg-config,
- rustPlatform,
- rustc,
- wrapGAppsHook4,
- cairo,
- gdk-pixbuf,
- glib,
- gtk4,
- libadwaita,
- pango,
- darwin,
-}:
-stdenv.mkDerivation rec {
- pname = "railway-travel";
- version = "2.4.0";
-
- src = fetchFromGitLab {
- owner = "schmiddi-on-mobile";
- repo = "railway";
- rev = version;
- hash = "sha256-2iLxErEP0OG+BcG7fvJBzNjh95EkNoC3NC7rKxPLhYk=";
- };
-
- cargoDeps = rustPlatform.fetchCargoTarball {
- inherit src;
- name = "${pname}-${version}";
- hash = "sha256-yalFC7Pw9rq1ylLwoxLi4joTyjQsZJ/ZC61GhTNc49w=";
- };
-
- nativeBuildInputs = [
- desktop-file-utils
- cargo
- meson
- ninja
- pkg-config
- rustPlatform.cargoSetupHook
- rustc
- wrapGAppsHook4
- ];
-
- buildInputs =
- [
- cairo
- gdk-pixbuf
- glib
- gtk4
- libadwaita
- pango
- ]
- ++ lib.optionals stdenv.isDarwin [
- darwin.apple_sdk.frameworks.Foundation
- darwin.apple_sdk.frameworks.Security
- ];
-
- env.NIX_CFLAGS_COMPILE = toString (
- lib.optionals stdenv.cc.isClang [ "-Wno-error=incompatible-function-pointer-types" ]
- );
-
- meta = with lib; {
- description = "Find all your travel information";
- homepage = "https://gitlab.com/schmiddi-on-mobile/railway";
- changelog = "https://gitlab.com/schmiddi-on-mobile/railway/-/blob/${src.rev}/CHANGELOG.md";
- license = licenses.gpl3Plus;
- maintainers = with maintainers; [ lilacious ];
- mainProgram = "diebahn";
- platforms = platforms.all;
- };
-}
diff --git a/pkgs/applications/networking/instant-messengers/toxic/default.nix b/pkgs/by-name/to/toxic/package.nix
similarity index 68%
rename from pkgs/applications/networking/instant-messengers/toxic/default.nix
rename to pkgs/by-name/to/toxic/package.nix
index bd3f30adc688..d697420bf32e 100644
--- a/pkgs/applications/networking/instant-messengers/toxic/default.nix
+++ b/pkgs/by-name/to/toxic/package.nix
@@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "toxic";
- version = "0.11.3";
+ version = "0.15.1";
src = fetchFromGitHub {
- owner = "Tox";
+ owner = "TokTok";
repo = "toxic";
rev = "v${version}";
- sha256 = "sha256-BabRY9iu5ccEXo5POrWkWaIWAeQU4MVlMK8I+Iju6aQ=";
+ sha256 = "sha256-+nOjlQED2pbYwGV6IGeKK1pymBSrDVWCWKjZ42vib7E=";
};
makeFlags = [ "PREFIX=$(out)"];
@@ -23,11 +23,12 @@ stdenv.mkDerivation rec {
];
nativeBuildInputs = [ pkg-config libconfig ];
- meta = with lib; src.meta // {
+ meta = src.meta // {
description = "Reference CLI for Tox";
mainProgram = "toxic";
- license = licenses.gpl3Plus;
- maintainers = with maintainers; [ ehmry ];
- platforms = platforms.linux;
+ homepage = "https://github.com/TokTok/toxic";
+ license = lib.licenses.gpl3Only;
+ maintainers = with lib.maintainers; [ ehmry ];
+ platforms = lib.platforms.linux;
};
}
diff --git a/pkgs/by-name/vc/vcpkg/package.nix b/pkgs/by-name/vc/vcpkg/package.nix
index 940bed58feb7..befa6eab94c2 100644
--- a/pkgs/by-name/vc/vcpkg/package.nix
+++ b/pkgs/by-name/vc/vcpkg/package.nix
@@ -7,13 +7,13 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "vcpkg";
- version = "2024.03.19";
+ version = "2024.03.25";
src = fetchFromGitHub {
owner = "microsoft";
repo = "vcpkg";
rev = finalAttrs.version;
- hash = "sha256-861r4XsXCyxUVDlSrekZ+g17td+idUN8qJmmTZNDzow=";
+ hash = "sha256-HMK3sebq/9TuxHQ75+5UIMvN09cPWmq7TFBBwRY4X7o=";
};
installPhase = let
diff --git a/pkgs/by-name/wh/whatfiles/package.nix b/pkgs/by-name/wh/whatfiles/package.nix
new file mode 100644
index 000000000000..73289f95f7aa
--- /dev/null
+++ b/pkgs/by-name/wh/whatfiles/package.nix
@@ -0,0 +1,33 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+ pname = "whatfiles";
+ version = "1.0";
+
+ src = fetchFromGitHub {
+ owner = "spieglt";
+ repo = "whatfiles";
+ rev = "v${version}";
+ hash = "sha256-5Ju9g7/B9uxLkQzV/MN3vBkjve4EAMseO6K4HTAoS/o=";
+ };
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm755 bin/whatfiles $out/bin/whatfiles
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "Log what files are accessed by any Linux process";
+ homepage = "https://github.com/spieglt/whatfiles";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ azahi ];
+ platforms = platforms.linux;
+ mainProgram = "whatfiles";
+ };
+}
diff --git a/pkgs/data/fonts/u001/default.nix b/pkgs/data/fonts/u001/default.nix
index c50e972a4d69..b0359ac1e55e 100644
--- a/pkgs/data/fonts/u001/default.nix
+++ b/pkgs/data/fonts/u001/default.nix
@@ -5,8 +5,11 @@ stdenvNoCC.mkDerivation rec {
version = "unstable-2016-08-01"; # date in the zip file, actual creation date unknown
src = fetchzip {
- url = "https://fontlibrary.org/assets/downloads/u001/3ea00b3c0c8fa6ce4373e5766fafd651/u001.zip";
- sha256 = "sha256-7H32pfr0g68XP5B48VUY99e6fbd7rhH6fEnCKNXWEkU=";
+ urls = [
+ "https://fontlibrary.org/assets/downloads/u001/3ea00b3c0c8fa6ce4373e5766fafd651/u001.zip"
+ "https://web.archive.org/web/20220830085803/https://fontlibrary.org/assets/downloads/u001/3ea00b3c0c8fa6ce4373e5766fafd651/u001.zip"
+ ];
+ hash = "sha256-7H32pfr0g68XP5B48VUY99e6fbd7rhH6fEnCKNXWEkU=";
stripRoot = false;
};
diff --git a/pkgs/data/misc/v2ray-domain-list-community/default.nix b/pkgs/data/misc/v2ray-domain-list-community/default.nix
index 5d6b512e6d7d..8db69e784a98 100644
--- a/pkgs/data/misc/v2ray-domain-list-community/default.nix
+++ b/pkgs/data/misc/v2ray-domain-list-community/default.nix
@@ -3,12 +3,12 @@
let
generator = pkgsBuildBuild.buildGoModule rec {
pname = "v2ray-domain-list-community";
- version = "20240316051411";
+ version = "20240324094850";
src = fetchFromGitHub {
owner = "v2fly";
repo = "domain-list-community";
rev = version;
- hash = "sha256-wao//QAdEqxkyKSVgC2eJqtQlPQ7IXG88atUSjQIGcI=";
+ hash = "sha256-Fdb0Bk0dk0SkBmUdeBjMH8/++fDvw1GtiKCYXdVAfCc=";
};
vendorHash = "sha256-azvMUi8eLNoNofRa2X4SKTTiMd6aOyO6H/rOiKjkpIY=";
meta = with lib; {
diff --git a/pkgs/data/themes/catppuccin-gtk/colloid-src-git-reset.patch b/pkgs/data/themes/catppuccin-gtk/colloid-src-git-reset.patch
new file mode 100644
index 000000000000..7ee1f4bd9b6f
--- /dev/null
+++ b/pkgs/data/themes/catppuccin-gtk/colloid-src-git-reset.patch
@@ -0,0 +1,17 @@
+diff --git a/scripts/create_theme.py b/scripts/create_theme.py
+index 074dc43..7e7a8eb 100644
+--- a/scripts/create_theme.py
++++ b/scripts/create_theme.py
+@@ -34,7 +34,11 @@ def create_theme(types: List[str], accents: List[str], dest: str, link: bool = F
+ os.chdir(work_dir)
+ subprocess.call("./build.sh", shell=True) # Rebuild all scss
+ subprocess.call(install_cmd, shell=True) # Install the theme globally for you
+- subprocess.call("git reset --hard HEAD", shell=True) # reset colloid repo to original state
++ # subprocess.call("git reset --hard HEAD", shell=True) # reset colloid repo to original state
++ # recreate git reset
++ os.chdir(repo_dir)
++ shutil.rmtree("colloid")
++ shutil.copytree("colloid-base", "colloid")
+
+ try:
+ # Rename colloid generated files as per catppuccin
diff --git a/pkgs/data/themes/catppuccin-gtk/default.nix b/pkgs/data/themes/catppuccin-gtk/default.nix
index 49df77b2adb9..0dc881942bcc 100644
--- a/pkgs/data/themes/catppuccin-gtk/default.nix
+++ b/pkgs/data/themes/catppuccin-gtk/default.nix
@@ -40,6 +40,10 @@ stdenvNoCC.mkDerivation rec {
nativeBuildInputs = [ gtk3 sassc ];
+ patches = [
+ ./colloid-src-git-reset.patch
+ ];
+
buildInputs = [
gnome-themes-extra
(python3.withPackages (ps: [ ps.catppuccin ]))
@@ -54,7 +58,7 @@ stdenvNoCC.mkDerivation rec {
'';
postPatch = ''
- patchShebangs --build colloid/install.sh
+ patchShebangs --build colloid/install.sh colloid/build.sh
'';
dontConfigure = true;
@@ -63,6 +67,7 @@ stdenvNoCC.mkDerivation rec {
installPhase = ''
runHook preInstall
+ cp -r colloid colloid-base
mkdir -p $out/share/themes
export HOME=$(mktemp -d)
diff --git a/pkgs/development/compilers/cakelisp/default.nix b/pkgs/development/compilers/cakelisp/default.nix
index 9f8939708cec..1d52430a16a5 100644
--- a/pkgs/development/compilers/cakelisp/default.nix
+++ b/pkgs/development/compilers/cakelisp/default.nix
@@ -3,12 +3,12 @@
stdenv.mkDerivation {
pname = "cakelisp";
# using unstable as it's the only version that builds against gcc-13
- version = "0.3.0-unstable-2024-02-21";
+ version = "0.3.0-unstable-2024-03-21";
src = fetchgit {
url = "https://macoy.me/code/macoy/cakelisp";
- rev = "75ce620b265bf83c6952c0093df2b9d4f7f32a54";
- hash = "sha256-X+tWq2QQogy4d042pcVuldc80jcClYtV09Jr91rHJl4=";
+ rev = "6bde4b8002e4825116f3b18291a012bf1729f497";
+ hash = "sha256-jpwVHiDRVa6QoYxsasmiV1IdbBqZj0tU5EBruOHfzYg=";
};
buildInputs = [ gcc ];
diff --git a/pkgs/development/interpreters/perl/default.nix b/pkgs/development/interpreters/perl/default.nix
index 50189a6213ba..76a51dc8cb3e 100644
--- a/pkgs/development/interpreters/perl/default.nix
+++ b/pkgs/development/interpreters/perl/default.nix
@@ -55,7 +55,7 @@ let
in rec {
# Maint version
- perl536 = callPackage ./intepreter.nix {
+ perl536 = callPackage ./interpreter.nix {
self = perl536;
version = "5.36.3";
sha256 = "sha256-8qGtiBFjkaF2Ji3ULfxS7yKvtA9MDpgQ8V1WHm8ccmo=";
@@ -63,7 +63,7 @@ in rec {
};
# Maint version
- perl538 = callPackage ./intepreter.nix {
+ perl538 = callPackage ./interpreter.nix {
self = perl538;
version = "5.38.2";
sha256 = "sha256-oKMVNEUet7g8fWWUpJdUOlTUiLyQygD140diV39AZV4=";
diff --git a/pkgs/development/interpreters/perl/intepreter.nix b/pkgs/development/interpreters/perl/interpreter.nix
similarity index 100%
rename from pkgs/development/interpreters/perl/intepreter.nix
rename to pkgs/development/interpreters/perl/interpreter.nix
diff --git a/pkgs/development/libraries/libfive/default.nix b/pkgs/development/libraries/libfive/default.nix
index 3f3c7f753c70..9dc2f368e2cd 100644
--- a/pkgs/development/libraries/libfive/default.nix
+++ b/pkgs/development/libraries/libfive/default.nix
@@ -18,13 +18,13 @@
stdenv.mkDerivation {
pname = "libfive";
- version = "0-unstable-2024-02-14";
+ version = "0-unstable-2024-03-28";
src = fetchFromGitHub {
owner = "libfive";
repo = "libfive";
- rev = "7af5f43684a8a497ac8610d39f7fca935364a9b9";
- hash = "sha256-GQzsHKeKsCWKOVfBrTuUFq2XasPxhsN+19stWY0WtVc=";
+ rev = "4c59b11667bbe8be9802f59697fa64bbfe1ea82d";
+ hash = "sha256-scYSprozfC537vAXhMfWswyS3xivpoURWPhplH7yHIg=";
};
nativeBuildInputs = [ wrapQtAppsHook cmake ninja pkg-config python.pkgs.pythonImportsCheckHook ];
diff --git a/pkgs/development/python-modules/elementpath/default.nix b/pkgs/development/python-modules/elementpath/default.nix
index 79389d56fc70..a87762131abb 100644
--- a/pkgs/development/python-modules/elementpath/default.nix
+++ b/pkgs/development/python-modules/elementpath/default.nix
@@ -7,7 +7,7 @@
buildPythonPackage rec {
pname = "elementpath";
- version = "4.3.0";
+ version = "4.4.0";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
owner = "sissaschool";
repo = "elementpath";
rev = "refs/tags/v${version}";
- hash = "sha256-DE8XAZwYzbYaTJoBNqHR0x4Wigmke+/zgj562X391qM=";
+ hash = "sha256-n1Ps0CybeLeDR5E4UnqmSkbFe0SXyplomEGDchAweSY=";
};
nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/frozendict/default.nix b/pkgs/development/python-modules/frozendict/default.nix
index 05f9f0ea7c07..3742c9ef9a44 100644
--- a/pkgs/development/python-modules/frozendict/default.nix
+++ b/pkgs/development/python-modules/frozendict/default.nix
@@ -8,7 +8,7 @@
buildPythonPackage rec {
pname = "frozendict";
- version = "2.4.0";
+ version = "2.4.1";
format = "setuptools";
disabled = pythonOlder "3.6";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "Marco-Sulla";
repo = "python-frozendict";
rev = "refs/tags/v${version}";
- hash = "sha256-mC5udKWez1s9JiVthtzCwEUPLheJpxRmcL3KdRiYP18=";
+ hash = "sha256-cPDuJ6AzMxOmJztSf6IZ04acJhjJCphQSl0DaN9cChI=";
};
# build C version if it exists
diff --git a/pkgs/development/python-modules/google-cloud-securitycenter/default.nix b/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
index a553d67e0670..83c296a5294b 100644
--- a/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
+++ b/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
@@ -13,21 +13,21 @@
buildPythonPackage rec {
pname = "google-cloud-securitycenter";
- version = "1.29.0";
+ version = "1.30.0";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
- hash = "sha256-4c7tuLxO3+B8ZojVpSKWcl35doqoqHrofY6n80t9UrY=";
+ hash = "sha256-Tq+Uicfk1SqvisYEdBfREngICvWP8NyFJy4hJp9qD8Y=";
};
- nativeBuildInputs = [
+ build-system = [
setuptools
];
- propagatedBuildInputs = [
+ dependencies = [
grpc-google-iam-v1
google-api-core
proto-plus
diff --git a/pkgs/development/python-modules/imbalanced-learn/default.nix b/pkgs/development/python-modules/imbalanced-learn/default.nix
index 585e043e4eb3..412b0424a218 100644
--- a/pkgs/development/python-modules/imbalanced-learn/default.nix
+++ b/pkgs/development/python-modules/imbalanced-learn/default.nix
@@ -17,14 +17,14 @@
buildPythonPackage rec {
pname = "imbalanced-learn";
- version = "0.12.0";
+ version = "0.12.2";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
- hash = "sha256-uczZqqMChpkHnUOm1Nn8nQOfVTdnM7Mfh8fZsSXcwWU=";
+ hash = "sha256-qAxWztywcSTyZr5i06XSq1tXeZCac0P98bmTR5Zi9sE=";
};
nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/plexapi/default.nix b/pkgs/development/python-modules/plexapi/default.nix
index 8b2911222e37..a8e2c3ef4bc1 100644
--- a/pkgs/development/python-modules/plexapi/default.nix
+++ b/pkgs/development/python-modules/plexapi/default.nix
@@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "plexapi";
- version = "4.15.10";
+ version = "4.15.11";
pyproject = true;
disabled = pythonOlder "3.8";
@@ -19,14 +19,14 @@ buildPythonPackage rec {
owner = "pkkid";
repo = "python-plexapi";
rev = "refs/tags/${version}";
- hash = "sha256-3qvAf3oray3Fm3No6ixv/D1mY4lipt5pixgpyXNCRoc=";
+ hash = "sha256-OPhmw7nCe0n7VLekXeB5PiLdBk2DPmLoQ1nZiGEwqis=";
};
- nativeBuildInputs = [
+ build-system = [
setuptools
];
- propagatedBuildInputs = [
+ dependencies = [
requests
tqdm
websocket-client
diff --git a/pkgs/development/python-modules/pytest-mypy-plugins/default.nix b/pkgs/development/python-modules/pytest-mypy-plugins/default.nix
index fecc71372159..097dabe8a39d 100644
--- a/pkgs/development/python-modules/pytest-mypy-plugins/default.nix
+++ b/pkgs/development/python-modules/pytest-mypy-plugins/default.nix
@@ -17,19 +17,19 @@
buildPythonPackage rec {
pname = "pytest-mypy-plugins";
- version = "3.1.1";
+ version = "3.1.2";
pyproject = true;
- disabled = pythonOlder "3.7";
+ disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "typeddjango";
repo = "pytest-mypy-plugins";
rev = "refs/tags/${version}";
- hash = "sha256-kZbTCdZM+809yFkKWMpeyBOq6hcqcYk7rEYqee9hZwk=";
+ hash = "sha256-yme1g9Kj5guao0Lf8mbkNJRw6ipS2Wd4Io1cSlEBAGo=";
};
- nativeBuildInputs = [
+ build-system = [
setuptools
];
@@ -37,7 +37,7 @@ buildPythonPackage rec {
pytest
];
- propagatedBuildInputs = [
+ dependencies = [
decorator
jinja2
jsonschema
diff --git a/pkgs/development/python-modules/testcontainers/default.nix b/pkgs/development/python-modules/testcontainers/default.nix
index f4529499c97d..d92d9733749f 100644
--- a/pkgs/development/python-modules/testcontainers/default.nix
+++ b/pkgs/development/python-modules/testcontainers/default.nix
@@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "testcontainers";
- version = "4.2.0";
+ version = "4.3.0";
disabled = pythonOlder "3.9";
pyproject = true;
@@ -19,7 +19,7 @@ buildPythonPackage rec {
owner = "testcontainers";
repo = "testcontainers-python";
rev = "refs/tags/testcontainers-v${version}";
- hash = "sha256-vHCrfeL3fPLZQgH7nlugIlADQaBbUQKsTBFhhq7kYWQ=";
+ hash = "sha256-eCoGMfd4gNuPY1rRRK5LH2BI236ZiZ0igTZDALuHevk=";
};
postPatch = ''
diff --git a/pkgs/development/tools/build-managers/ekam/default.nix b/pkgs/development/tools/build-managers/ekam/default.nix
index 9247a2b21302..09e43f7ef8a6 100644
--- a/pkgs/development/tools/build-managers/ekam/default.nix
+++ b/pkgs/development/tools/build-managers/ekam/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation {
# of the nix store -- but ekam builds capnp locally and links against it,
# so that causes the build to fail. So, we turn this off.
#
- # See: https://nixos.wiki/wiki/Development_environment_with_nix-shell#Troubleshooting
+ # See: https://wiki.nixos.org/wiki/Development_environment_with_nix-shell#Troubleshooting
preBuild = ''
unset NIX_ENFORCE_PURITY
'';
diff --git a/pkgs/development/tools/conftest/default.nix b/pkgs/development/tools/conftest/default.nix
index da3c2cc54f72..5fe017565f12 100644
--- a/pkgs/development/tools/conftest/default.nix
+++ b/pkgs/development/tools/conftest/default.nix
@@ -6,15 +6,15 @@
buildGoModule rec {
pname = "conftest";
- version = "0.50.0";
+ version = "0.51.0";
src = fetchFromGitHub {
owner = "open-policy-agent";
repo = "conftest";
rev = "refs/tags/v${version}";
- hash = "sha256-DqZl16CQR88n5etJvX+5wxpOQsyWq/UWjJou23pjpWk=";
+ hash = "sha256-1jMVb1Hip7ljmt4WtFg3Qa2/rse2sjISTe3SUS5UCTo=";
};
- vendorHash = "sha256-9afq6ccgiaeZqyM3Le1NQ0ADB/wmBW+qdT+uVtbARC8=";
+ vendorHash = "sha256-Yw5p2mTTkYvRjeuF9owirohyClSS3j1gKVg8Ma2NIa8=";
ldflags = [
"-s"
diff --git a/pkgs/development/tools/go-migrate/default.nix b/pkgs/development/tools/go-migrate/default.nix
index eec4419ef3bb..da20ec45c20b 100644
--- a/pkgs/development/tools/go-migrate/default.nix
+++ b/pkgs/development/tools/go-migrate/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
subPackages = [ "cmd/migrate" ];
- tags = [ "postgres" "mysql" "redshift" "cassandra" "spanner" "cockroachdb" "clickhouse" "mongodb" "sqlserver" "firebird" "neo4j" "pgx" ];
+ tags = [ "cassandra" "clickhouse" "cockroachdb" "crate" "firebird" "mongodb" "multistmt" "mysql" "neo4j" "pgx" "postgres" "ql" "redshift" "rqlite" "shell" "snowflake" "spanner" "sqlite3" "sqlserver" "stub" "testing" "yugabytedb" ];
meta = with lib; {
homepage = "https://github.com/golang-migrate/migrate";
diff --git a/pkgs/development/tools/godot/4/default.nix b/pkgs/development/tools/godot/4/default.nix
index 50cdeb857245..29cc7543e37f 100644
--- a/pkgs/development/tools/godot/4/default.nix
+++ b/pkgs/development/tools/godot/4/default.nix
@@ -42,7 +42,7 @@ let
else "${k}=${builtins.toJSON v}");
in
stdenv.mkDerivation rec {
- pname = "godot";
+ pname = "godot4";
version = "4.2.1-stable";
commitHash = "b09f793f564a6c95dc76acc654b390e68441bd01";
diff --git a/pkgs/development/tools/golangci-lint/default.nix b/pkgs/development/tools/golangci-lint/default.nix
index 071dd6740869..e7deb9537000 100644
--- a/pkgs/development/tools/golangci-lint/default.nix
+++ b/pkgs/development/tools/golangci-lint/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "golangci-lint";
- version = "1.57.1";
+ version = "1.57.2";
src = fetchFromGitHub {
owner = "golangci";
repo = "golangci-lint";
rev = "v${version}";
- hash = "sha256-CDk0lmspteeewLzvixjIJr16M8Ko8uSgdnJZfJ1SqOA=";
+ hash = "sha256-d3U56fRIyntj/uKTOHuKFvOZqh+6VtzYrbKDjcKzhbI=";
};
- vendorHash = "sha256-lBRVnsttq6M9gyZfV4I/EOwsp6yGARCSYYefRvZvHEA=";
+ vendorHash = "sha256-3gS/F1jcjegtkLfmPcBzYqDA4KmwABkKpPAhTxqguYw=";
subPackages = [ "cmd/golangci-lint" ];
diff --git a/pkgs/development/tools/misc/act/default.nix b/pkgs/development/tools/misc/act/default.nix
index 7f4e992f0983..2bb9467a4170 100644
--- a/pkgs/development/tools/misc/act/default.nix
+++ b/pkgs/development/tools/misc/act/default.nix
@@ -5,16 +5,16 @@
buildGoModule rec {
pname = "act";
- version = "0.2.60";
+ version = "0.2.61";
src = fetchFromGitHub {
owner = "nektos";
repo = pname;
rev = "refs/tags/v${version}";
- hash = "sha256-FFSnxxqKAFYPuX4NJahiBS65Goj6se2U5WdPiKpNXDo=";
+ hash = "sha256-X2Um6z3BXhshNGTwih/mvXigCplzUr+mVOn0SZ7RESA=";
};
- vendorHash = "sha256-FLomnHVhpvbM+O3OGwjXfrtTVbegnzry8Sl+4a3uw08=";
+ vendorHash = "sha256-HtCHAMcTFQS8YWjWt9LEHkhZBE8XDF4YOcGBFv0e5l0=";
doCheck = false;
diff --git a/pkgs/development/tools/oxlint/default.nix b/pkgs/development/tools/oxlint/default.nix
index e24b78a4bd29..8294871aeb39 100644
--- a/pkgs/development/tools/oxlint/default.nix
+++ b/pkgs/development/tools/oxlint/default.nix
@@ -8,16 +8,16 @@
rustPlatform.buildRustPackage rec {
pname = "oxlint";
- version = "0.2.14";
+ version = "0.2.15";
src = fetchFromGitHub {
owner = "web-infra-dev";
repo = "oxc";
rev = "oxlint_v${version}";
- hash = "sha256-nIY80YWZpDJSFkPLMBjXyk2SYx2tnVhFrxiBrYFu/e4=";
+ hash = "sha256-hEN9TLIeAfMGO/PL5OcT7+H0dmoCtH+dcIEafpQ45UU=";
};
- cargoHash = "sha256-BRrF0Ad6tbN+xajzPhDHP7ZJPbruRrcdwjZBFukMKfs=";
+ cargoHash = "sha256-uChoDlU0tb52pBBEqmmwhCS83pykFRpXRFSuUGquHEQ=";
buildInputs = [
rust-jemalloc-sys
diff --git a/pkgs/development/tools/templ/default.nix b/pkgs/development/tools/templ/default.nix
index 6270ca3fb991..154ce64ce364 100644
--- a/pkgs/development/tools/templ/default.nix
+++ b/pkgs/development/tools/templ/default.nix
@@ -5,7 +5,7 @@
buildGoModule rec {
pname = "templ";
- version = "0.2.646";
+ version = "0.2.648";
subPackages = [ "cmd/templ" ];
@@ -21,7 +21,7 @@ buildGoModule rec {
owner = "a-h";
repo = "templ";
rev = "refs/tags/v${version}";
- hash = "sha256-ocuDWdIHL4Ub1ybWBScg4ysTRQdvCxlod0TNuJFDA4o=";
+ hash = "sha256-9Co3yvfy8X69PIffPg2lDjVCVTjDhiFnSsJd4MQ6cf4=";
};
vendorHash = "sha256-Upd5Wq4ajsyOMDiAWS2g2iNO1sm1XJc43AFQLIo5eDM=";
diff --git a/pkgs/development/tools/tokio-console/cargo-lock.patch b/pkgs/development/tools/tokio-console/cargo-lock.patch
deleted file mode 100644
index 224a4acc082b..000000000000
--- a/pkgs/development/tools/tokio-console/cargo-lock.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Cargo.lock b/Cargo.lock
-index fcbe50c..27d4c30 100644
---- a/Cargo.lock
-+++ b/Cargo.lock
-@@ -1390,7 +1390,7 @@ dependencies = [
-
- [[package]]
- name = "tokio-console"
--version = "0.1.8"
-+version = "0.1.9"
- dependencies = [
- "atty",
- "clap",
diff --git a/pkgs/development/tools/tokio-console/default.nix b/pkgs/development/tools/tokio-console/default.nix
index 558934fd15ff..c37bf85de975 100644
--- a/pkgs/development/tools/tokio-console/default.nix
+++ b/pkgs/development/tools/tokio-console/default.nix
@@ -1,25 +1,27 @@
{ lib
, fetchFromGitHub
+, installShellFiles
, rustPlatform
, protobuf
}:
rustPlatform.buildRustPackage rec {
pname = "tokio-console";
- version = "0.1.9";
+ version = "0.1.10";
src = fetchFromGitHub {
owner = "tokio-rs";
repo = "console";
rev = "tokio-console-v${version}";
- hash = "sha256-zISgEhUmAfHErq4AelbnSwtKjtxYH//pbLUAlPKxQYk=";
+ hash = "sha256-sjfdxOeaNANYJuJMjZ/tCGc2mWM+98d8yPHAVSl4cF4=";
};
- cargoHash = "sha256-qK8U6BZN7sdBP8CbzsDeewsGulNA/KFVS9vscBxysRg=";
+ cargoHash = "sha256-86KQpRpYSCQs6SUeG0HV26b58x/QUyovoL+5fg8JCOI=";
- nativeBuildInputs = [ protobuf ];
-
- cargoPatches = [ ./cargo-lock.patch ];
+ nativeBuildInputs = [
+ installShellFiles
+ protobuf
+ ];
# uses currently unstable tokio features
RUSTFLAGS = "--cfg tokio_unstable";
@@ -31,6 +33,13 @@ rustPlatform.buildRustPackage rec {
"--skip config::tests::toml_example_changed"
];
+ postInstall = ''
+ installShellCompletion --cmd tokio-console \
+ --bash <($out/bin/tokio-console --log-dir $(mktemp -d) gen-completion bash) \
+ --fish <($out/bin/tokio-console --log-dir $(mktemp -d) gen-completion fish) \
+ --zsh <($out/bin/tokio-console --log-dir $(mktemp -d) gen-completion zsh)
+ '';
+
meta = with lib; {
description = "A debugger for asynchronous Rust code";
homepage = "https://github.com/tokio-rs/console";
diff --git a/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix b/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix
index 914296d70953..b43bc40c85f6 100644
--- a/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix
+++ b/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix
@@ -100,7 +100,7 @@ in rec {
) (builtins.attrNames pkgConfig);
# build-time JSON generation to avoid IFD
- # see https://nixos.wiki/wiki/Import_From_Derivation
+ # see https://wiki.nixos.org/wiki/Import_From_Derivation
workspaceJSON = pkgs.runCommand "${name}-workspace-package.json"
{
nativeBuildInputs = [ pkgs.jq ];
diff --git a/pkgs/development/web/bun/default.nix b/pkgs/development/web/bun/default.nix
index dc7003376813..dc91e8c6939b 100644
--- a/pkgs/development/web/bun/default.nix
+++ b/pkgs/development/web/bun/default.nix
@@ -12,7 +12,7 @@
}:
stdenvNoCC.mkDerivation rec {
- version = "1.0.35";
+ version = "1.0.36";
pname = "bun";
src = passthru.sources.${stdenvNoCC.hostPlatform.system} or (throw "Unsupported system: ${stdenvNoCC.hostPlatform.system}");
@@ -51,19 +51,19 @@ stdenvNoCC.mkDerivation rec {
sources = {
"aarch64-darwin" = fetchurl {
url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-aarch64.zip";
- hash = "sha256-QuCd2l5PNz2pJzKrzy5Zvd9MbAsTu9HzdBulyBvSUok=";
+ hash = "sha256-NYsCwYdYL8cw5uPaViCA+fcaP1znNzvRCJuhnFixx84=";
};
"aarch64-linux" = fetchurl {
url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-aarch64.zip";
- hash = "sha256-rxXkCViPgJiSNhlaNQMGcurONhXXK7shrLD0Zk1pLmw=";
+ hash = "sha256-ztRE4MxrAkSvORTGU5veDj5qhchYbsY4BxP6duZLeoQ=";
};
"x86_64-darwin" = fetchurl {
url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-x64.zip";
- hash = "sha256-eS9s6acf1AxzFkeb/RskuJ1pXdiv52WpP7cEKTEXPEo=";
+ hash = "sha256-p8YqXW1iShvTX2bB0UrD9yh5PMpcaoiUJ5ZfCrEZmsI=";
};
"x86_64-linux" = fetchurl {
url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-x64.zip";
- hash = "sha256-I7fqIhMs/2N9pcxJf5ED4p0kq+rQPnfYGOciAd+6mXU=";
+ hash = "sha256-+AR0EYOVOgvElDzQjCtlCg5oZFBtLfdEmrL1jFWDAfQ=";
};
};
updateScript = writeShellScript "update-bun" ''
diff --git a/pkgs/games/anki/bin.nix b/pkgs/games/anki/bin.nix
index d6789f63b82d..ee293cb7c962 100644
--- a/pkgs/games/anki/bin.nix
+++ b/pkgs/games/anki/bin.nix
@@ -3,22 +3,22 @@
let
pname = "anki-bin";
# Update hashes for both Linux and Darwin!
- version = "23.12.1";
+ version = "24.04";
sources = {
linux = fetchurl {
url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-linux-qt6.tar.zst";
- sha256 = "sha256-bFtAUqSoFS8CWESiepWXywndkijATbWp6CJdqlQecuk=";
+ sha256 = "sha256-mIQ448ecBDrMo3qspXVOBJM/0LebJ9lA1JIwz70Uqhc=";
};
# For some reason anki distributes completely separate dmg-files for the aarch64 version and the x86_64 version
darwin-x86_64 = fetchurl {
url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-mac-intel-qt6.dmg";
- sha256 = "sha256-z48REB14p7rb50ty9u/26wx0sY4QZb4pj6wOXsSBCdg=";
+ sha256 = "sha256-ab8cc+QMt3ZJp1NZmAwz2VNZwWQK0DBPKnz2fGmC7Fs=";
};
darwin-aarch64 = fetchurl {
url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-mac-apple-qt6.dmg";
- sha256 = "sha256-bdaCqSjje86wmVKIFZqzuFaEZ7SWQr7CAS/Hm1CpOMg=";
+ sha256 = "sha256-bRpPVOXpDRq+EXwW1yWiAgzkcdLhLnMrHo/t9Jgzth0=";
};
};
@@ -60,7 +60,7 @@ let
'';
# Dependencies of anki
- targetPkgs = pkgs: (with pkgs; [ xorg.libxkbfile xcb-util-cursor-HEAD krb5 ]);
+ targetPkgs = pkgs: (with pkgs; [ xorg.libxkbfile xcb-util-cursor-HEAD krb5 zstd ]);
runScript = writeShellScript "anki-wrapper.sh" ''
exec ${unpacked}/bin/anki ${ lib.strings.escapeShellArgs commandLineArgs } "$@"
diff --git a/pkgs/games/widelands/default.nix b/pkgs/games/widelands/default.nix
index f49921024e45..324f388e716e 100644
--- a/pkgs/games/widelands/default.nix
+++ b/pkgs/games/widelands/default.nix
@@ -29,13 +29,13 @@
stdenv.mkDerivation rec {
pname = "widelands";
- version = "1.1";
+ version = "1.2";
src = fetchFromGitHub {
owner = "widelands";
repo = "widelands";
rev = "v${version}";
- sha256 = "sha256-fe1fey34b6T1+kqMa22STROu7dagQJtg24nW2jhVix8=";
+ sha256 = "sha256-V7eappIMEQMNbf9EGQhv71Fwz0wH679ifi/qAHWwMNU=";
};
postPatch = ''
@@ -45,6 +45,7 @@ stdenv.mkDerivation rec {
cmakeFlags = [
"-Wno-dev" # dev warnings are only needed for upstream development
+ "-DCMAKE_BUILD_TYPE=Release"
"-DWL_INSTALL_BASEDIR=${placeholder "out"}/share/widelands" # for COPYING, Changelog, etc.
"-DWL_INSTALL_DATADIR=${placeholder "out"}/share/widelands" # for game data
"-DWL_INSTALL_BINDIR=${placeholder "out"}/bin"
@@ -92,7 +93,7 @@ stdenv.mkDerivation rec {
Settlers II". It has a single player campaign mode, as well as a networked
multiplayer mode.
'';
- changelog = "https://github.com/widelands/widelands/releases/tag/v1.1";
+ changelog = "https://github.com/widelands/widelands/releases/tag/v${version}";
mainProgram = "widelands";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ raskin jcumming ];
diff --git a/pkgs/kde/generated/sources/plasma.json b/pkgs/kde/generated/sources/plasma.json
index 13b8781de46a..a01558e8550e 100644
--- a/pkgs/kde/generated/sources/plasma.json
+++ b/pkgs/kde/generated/sources/plasma.json
@@ -125,9 +125,9 @@
"hash": "sha256-2dz0Ncoy1J8kG5EWyzWa2TrQ8KsgZ/bkG5VaeDTY4bo="
},
"kwin": {
- "version": "6.0.3",
- "url": "mirror://kde/stable/plasma/6.0.3/kwin-6.0.3.tar.xz",
- "hash": "sha256-D0bnds1Qg3TFUsClpVpFvyj5zMyIcAiQCYVKETTXKnk="
+ "version": "6.0.3.1",
+ "url": "mirror://kde/stable/plasma/6.0.3/kwin-6.0.3.1.tar.xz",
+ "hash": "sha256-8VEIqZMga5YqPFg1uYigtJIsCpvJq4D69rNqM00yGzM="
},
"kwrited": {
"version": "6.0.3",
@@ -215,9 +215,9 @@
"hash": "sha256-W+t3hNEk2eoQjwCAQ6k8g3wHVz9byK/PkhbutGRK/Yo="
},
"plasma-mobile": {
- "version": "6.0.3",
- "url": "mirror://kde/stable/plasma/6.0.3/plasma-mobile-6.0.3.tar.xz",
- "hash": "sha256-oHgh272xMZYdoTidGyR2xsdASVTU50mAw9+nUyF5+Xo="
+ "version": "6.0.3.1",
+ "url": "mirror://kde/stable/plasma/6.0.3/plasma-mobile-6.0.3.1.tar.xz",
+ "hash": "sha256-pIkzv+U5s3JOxKP4JwW54SF4MwhgNA1nd4riCmU224M="
},
"plasma-nano": {
"version": "6.0.3",
diff --git a/pkgs/misc/uboot/0001-configs-rpi-allow-for-bigger-kernels.patch b/pkgs/misc/uboot/0001-configs-rpi-allow-for-bigger-kernels.patch
index b90cc6ef0781..65497a6d4f06 100644
--- a/pkgs/misc/uboot/0001-configs-rpi-allow-for-bigger-kernels.patch
+++ b/pkgs/misc/uboot/0001-configs-rpi-allow-for-bigger-kernels.patch
@@ -2,22 +2,6 @@ diff --git a/board/raspberrypi/rpi/rpi.env b/board/raspberrypi/rpi/rpi.env
index 30228285ed..0327ef74fa 100644
--- a/board/raspberrypi/rpi/rpi.env
+++ b/board/raspberrypi/rpi/rpi.env
-@@ -55,11 +55,11 @@ dfu_alt_info+=zImage fat 0 1
- * more than ~700M away from the start of the kernel image but this number can
- * be larger OR smaller depending on e.g. the 'vmalloc=xxxM' command line
- * parameter given to the kernel. So reserving memory from low to high
-- * satisfies this constraint again. Reserving 1M at 0x02600000-0x02700000 for
-- * the DTB leaves rest of the free RAM to the initrd starting at 0x02700000.
-+ * satisfies this constraint again. Reserving 1M at 0x04700000-0x04800000 for
-+ * the DTB leaves rest of the free RAM to the initrd starting at 0x04800000.
- * Even with the smallest possible CPU-GPU memory split of the CPU getting
-- * only 64M, the remaining 25M starting at 0x02700000 should allow quite
-- * large initrds before they start colliding with U-Boot.
-+ * only 64M, the remaining 8M starting at 0x04800000 should allow reasonably
-+ * sized initrds before they start colliding with U-Boot.
- */
- #ifdef CONFIG_ARM64
- fdt_high=ffffffffffffffff
@@ -69,9 +69,9 @@ fdt_high=ffffffff
initrd_high=ffffffff
#endif
@@ -26,10 +10,10 @@ index 30228285ed..0327ef74fa 100644
-pxefile_addr_r=0x02500000
-fdt_addr_r=0x02600000
-ramdisk_addr_r=0x02700000
-+scriptaddr=0x04500000
-+pxefile_addr_r=0x04600000
-+fdt_addr_r=0x04700000
-+ramdisk_addr_r=0x04800000
++scriptaddr=0x05500000
++pxefile_addr_r=0x05600000
++fdt_addr_r=0x05700000
++ramdisk_addr_r=0x05800000
boot_targets=mmc usb pxe dhcp
diff --git a/pkgs/os-specific/bsd/freebsd/default.nix b/pkgs/os-specific/bsd/freebsd/default.nix
index 398b2ff6fa6d..1f321f032516 100644
--- a/pkgs/os-specific/bsd/freebsd/default.nix
+++ b/pkgs/os-specific/bsd/freebsd/default.nix
@@ -1,904 +1,77 @@
{ stdenv, lib, stdenvNoCC
, makeScopeWithSplicing', generateSplicesForMkScope
, buildPackages
-, bsdSetupHook, makeSetupHook
-, fetchgit, fetchzip, coreutils, groff, mandoc, byacc, flex, which, m4, gawk, substituteAll, runtimeShell
-, zlib, expat, libmd
-, runCommand, writeShellScript, writeText, symlinkJoin
+, fetchgit, fetchzip
}:
let
inherit (buildPackages.buildPackages) rsync;
+ versions = builtins.fromJSON (builtins.readFile ./versions.json);
+
version = "13.1.0";
-
- # `BuildPackages.fetchgit` avoids some probably splicing-caused infinite
- # recursion.
- freebsdSrc = buildPackages.fetchgit {
- url = "https://git.FreeBSD.org/src.git";
- rev = "release/${version}";
- sha256 = "14nhk0kls83xfb64d5xy14vpi6k8laswjycjg80indq9pkcr2rlv";
- };
-
- freebsdSetupHook = makeSetupHook {
- name = "freebsd-setup-hook";
- } ./setup-hook.sh;
-
- mkBsdArch = stdenv': {
- x86_64 = "amd64";
- aarch64 = "arm64";
- i486 = "i386";
- i586 = "i386";
- i686 = "i386";
- }.${stdenv'.hostPlatform.parsed.cpu.name}
- or stdenv'.hostPlatform.parsed.cpu.name;
-
- install-wrapper = ''
- set -eu
-
- args=()
- declare -i path_args=0
-
- while (( $# )); do
- if (( $# == 1 )); then
- if (( path_args > 1)) || [[ "$1" = */ ]]; then
- mkdir -p "$1"
- else
- mkdir -p "$(dirname "$1")"
- fi
- fi
- case $1 in
- -C) ;;
- -o | -g) shift ;;
- -s) ;;
- -m | -l)
- # handle next arg so not counted as path arg
- args+=("$1" "$2")
- shift
- ;;
- -*) args+=("$1") ;;
- *)
- path_args+=1
- args+=("$1")
- ;;
- esac
- shift
- done
- '';
+ branch = "release/${version}";
in makeScopeWithSplicing' {
otherSplices = generateSplicesForMkScope "freebsd";
- f = (self: let
- inherit (self) mkDerivation;
- in {
- inherit freebsdSrc;
+ f = (self: lib.packagesFromDirectoryRecursive {
+ callPackage = self.callPackage;
+ directory = ./pkgs;
+ } // {
+ sourceData = versions.${branch};
- ports = fetchzip {
- url = "https://cgit.freebsd.org/ports/snapshot/ports-dde3b2b456c3a4bdd217d0bf3684231cc3724a0a.tar.gz";
- sha256 = "BpHqJfnGOeTE7tkFJBx0Wk8ryalmf4KNTit/Coh026E=";
- };
-
- # Why do we have splicing and yet do `nativeBuildInputs = with self; ...`?
- # See note in ../netbsd/default.nix.
-
- compatIfNeeded = lib.optional (!stdenvNoCC.hostPlatform.isFreeBSD) self.compat;
-
- mkDerivation = lib.makeOverridable (attrs: let
- stdenv' = if attrs.noCC or false then stdenvNoCC else stdenv;
- in stdenv'.mkDerivation (rec {
- pname = "${attrs.pname or (baseNameOf attrs.path)}-freebsd";
- inherit version;
- src = runCommand "${pname}-filtered-src" {
- nativeBuildInputs = [ rsync ];
- } ''
- for p in ${lib.concatStringsSep " " ([ attrs.path ] ++ attrs.extraPaths or [])}; do
- set -x
- path="$out/$p"
- mkdir -p "$(dirname "$path")"
- src_path="${freebsdSrc}/$p"
- if [[ -d "$src_path" ]]; then src_path+=/; fi
- rsync --chmod="+w" -r "$src_path" "$path"
- set +x
- done
- '';
-
- extraPaths = [ ];
-
- nativeBuildInputs = with buildPackages.freebsd; [
- bsdSetupHook freebsdSetupHook
- makeMinimal
- install tsort lorder mandoc groff #statHook
- ];
- buildInputs = with self; compatIfNeeded;
-
- HOST_SH = stdenv'.shell;
-
- # Since STRIP below is the flag
- STRIPBIN = "${stdenv.cc.bintools.targetPrefix}strip";
-
- makeFlags = [
- "STRIP=-s" # flag to install, not command
- ] ++ lib.optional (!stdenv.hostPlatform.isFreeBSD) "MK_WERROR=no";
-
- # amd64 not x86_64 for this on unlike NetBSD
- MACHINE_ARCH = mkBsdArch stdenv';
-
- MACHINE = mkBsdArch stdenv';
-
- MACHINE_CPUARCH = MACHINE_ARCH;
-
- COMPONENT_PATH = attrs.path or null;
-
- strictDeps = true;
-
- meta = with lib; {
- maintainers = with maintainers; [ ericson2314 ];
- platforms = platforms.unix;
- license = licenses.bsd2;
+ ports = fetchzip {
+ url = "https://cgit.freebsd.org/ports/snapshot/ports-dde3b2b456c3a4bdd217d0bf3684231cc3724a0a.tar.gz";
+ sha256 = "BpHqJfnGOeTE7tkFJBx0Wk8ryalmf4KNTit/Coh026E=";
};
- } // lib.optionalAttrs stdenv'.hasCC {
- # TODO should CC wrapper set this?
- CPP = "${stdenv'.cc.targetPrefix}cpp";
- } // lib.optionalAttrs stdenv'.isDarwin {
- MKRELRO = "no";
- } // lib.optionalAttrs (stdenv'.cc.isClang or false) {
- HAVE_LLVM = lib.versions.major (lib.getVersion stdenv'.cc.cc);
- } // lib.optionalAttrs (stdenv'.cc.isGNU or false) {
- HAVE_GCC = lib.versions.major (lib.getVersion stdenv'.cc.cc);
- } // lib.optionalAttrs (stdenv'.isx86_32) {
- USE_SSP = "no";
- } // lib.optionalAttrs (attrs.headersOnly or false) {
- installPhase = "includesPhase";
- dontBuild = true;
- } // attrs));
- ##
- ## START BOOTSTRAPPING
- ##
- makeMinimal = mkDerivation rec {
- inherit (self.make) path;
+ # Why do we have splicing and yet do `nativeBuildInputs = with self; ...`?
+ # See note in ../netbsd/default.nix.
- buildInputs = with self; [];
- nativeBuildInputs = with buildPackages.netbsd; [ bsdSetupHook freebsdSetupHook ];
+ compatIfNeeded = lib.optional (!stdenvNoCC.hostPlatform.isFreeBSD) self.compat;
- skipIncludesPhase = true;
+ freebsd-lib = import ./lib { inherit version; };
- makeFlags = [];
+ # Overridden arguments avoid cross package-set splicing issues,
+ # otherwise would just use implicit
+ # `lib.packagesFromDirectoryRecursive` auto-call.
- postPatch = ''
- patchShebangs configure
- ${self.make.postPatch}
- '';
+ compat = self.callPackage ./pkgs/compat/package.nix {
+ inherit stdenv;
+ inherit (buildPackages.freebsd) makeMinimal boot-install;
+ };
- buildPhase = ''
- runHook preBuild
+ csu = self.callPackage ./pkgs/csu.nix {
+ inherit (buildPackages.freebsd) makeMinimal install gencat;
+ inherit (self) include;
+ };
- sh ./make-bootstrap.sh
+ include = self.callPackage ./pkgs/include/package.nix {
+ inherit (buildPackages.freebsd) makeMinimal install rpcgen;
+ };
- runHook postBuild
- '';
+ install = self.callPackage ./pkgs/install.nix {
+ inherit (buildPackages.freebsd) makeMinimal;
+ inherit (self) mtree libnetbsd;
+ };
- installPhase = ''
- runHook preInstall
+ libc = self.callPackage ./pkgs/libc/package.nix {
+ inherit (buildPackages.freebsd) makeMinimal install gencat rpcgen;
+ inherit (self) csu include;
+ };
- install -D bmake "$out/bin/bmake"
- ln -s "$out/bin/bmake" "$out/bin/make"
- mkdir -p "$out/share"
- cp -r "$BSDSRCDIR/share/mk" "$out/share/mk"
- find "$out/share/mk" -type f -print0 |
- while IFS= read -r -d "" f; do
- substituteInPlace "$f" --replace 'usr/' ""
- done
- substituteInPlace "$out/share/mk/bsd.symver.mk" \
- --replace '/share/mk' "$out/share/mk"
+ libnetbsd = self.callPackage ./pkgs/libnetbsd/package.nix {
+ inherit (buildPackages.freebsd) makeMinimal;
+ };
- runHook postInstall
- '';
+ mkDerivation = self.callPackage ./pkgs/mkDerivation.nix {
+ inherit stdenv;
+ inherit (buildPackages.freebsd) makeMinimal install tsort;
+ };
- postInstall = lib.optionalString (!stdenv.targetPlatform.isFreeBSD) ''
- boot_mk="$BSDSRCDIR/tools/build/mk"
- cp "$boot_mk"/Makefile.boot* "$out/share/mk"
- replaced_mk="$out/share/mk.orig"
- mkdir "$replaced_mk"
- mv "$out"/share/mk/bsd.{lib,prog}.mk "$replaced_mk"
- for m in bsd.{lib,prog}.mk; do
- cp "$boot_mk/$m" "$out/share/mk"
- substituteInPlace "$out/share/mk/$m" --replace '../../../share/mk' '../mk.orig'
- done
- '';
+ makeMinimal = self.callPackage ./pkgs/makeMinimal.nix {
+ inherit (self) make;
+ };
- extraPaths = with self; make.extraPaths;
- };
-
- # Wrap NetBSD's install
- boot-install = buildPackages.writeShellScriptBin "boot-install" (install-wrapper + ''
-
- ${buildPackages.netbsd.install}/bin/xinstall "''${args[@]}"
- '');
-
- compat = mkDerivation rec {
- pname = "compat";
- path = "tools/build";
- extraPaths = [
- "lib/libc/db"
- "lib/libc/stdlib" # getopt
- "lib/libc/gen" # getcap
- "lib/libc/locale" # rpmatch
- ] ++ lib.optionals stdenv.hostPlatform.isLinux [
- "lib/libc/string" # strlcpy
- "lib/libutil"
- ] ++ [
- "contrib/libc-pwcache"
- "contrib/libc-vis"
- "sys/libkern"
- "sys/kern/subr_capability.c"
-
- # Take only individual headers, or else we will clobber native libc, etc.
-
- "sys/rpc/types.h"
-
- # Listed in Makekfile as INC
- "include/mpool.h"
- "include/ndbm.h"
- "include/err.h"
- "include/stringlist.h"
- "include/a.out.h"
- "include/nlist.h"
- "include/db.h"
- "include/getopt.h"
- "include/nl_types.h"
- "include/elf.h"
- "sys/sys/ctf.h"
-
- # Listed in Makekfile as SYSINC
-
- "sys/sys/capsicum.h"
- "sys/sys/caprights.h"
- "sys/sys/imgact_aout.h"
- "sys/sys/nlist_aout.h"
- "sys/sys/nv.h"
- "sys/sys/dnv.h"
- "sys/sys/cnv.h"
-
- "sys/sys/elf32.h"
- "sys/sys/elf64.h"
- "sys/sys/elf_common.h"
- "sys/sys/elf_generic.h"
- "sys/${mkBsdArch stdenv}/include"
- ] ++ lib.optionals stdenv.hostPlatform.isx86 [
- "sys/x86/include"
- ] ++ [
-
- "sys/sys/queue.h"
- "sys/sys/md5.h"
- "sys/sys/sbuf.h"
- "sys/sys/tree.h"
- "sys/sys/font.h"
- "sys/sys/consio.h"
- "sys/sys/fnv_hash.h"
-
- "sys/crypto/chacha20/_chacha.h"
- "sys/crypto/chacha20/chacha.h"
- # included too, despite ".c"
- "sys/crypto/chacha20/chacha.c"
-
- "sys/fs"
- "sys/ufs"
- "sys/sys/disk"
-
- "lib/libcapsicum"
- "lib/libcasper"
- ];
-
- patches = [
- ./compat-install-dirs.patch
- ./compat-fix-typedefs-locations.patch
- ];
-
- preBuild = ''
- NIX_CFLAGS_COMPILE+=' -I../../include -I../../sys'
-
- cp ../../sys/${mkBsdArch stdenv}/include/elf.h ../../sys/sys
- cp ../../sys/${mkBsdArch stdenv}/include/elf.h ../../sys/sys/${mkBsdArch stdenv}
- '' + lib.optionalString stdenv.hostPlatform.isx86 ''
- cp ../../sys/x86/include/elf.h ../../sys/x86
- '';
-
- setupHooks = [
- ../../../build-support/setup-hooks/role.bash
- ./compat-setup-hook.sh
- ];
-
- # This one has an ifdefed `#include_next` that makes it annoying.
- postInstall = ''
- rm ''${!outputDev}/0-include/libelf.h
- '';
-
- nativeBuildInputs = with buildPackages.freebsd; [
- bsdSetupHook freebsdSetupHook
- makeMinimal
- boot-install
-
- which
- ];
- buildInputs = [ expat zlib ];
-
- makeFlags = [
- "STRIP=-s" # flag to install, not command
- "MK_WERROR=no"
- "HOST_INCLUDE_ROOT=${lib.getDev stdenv.cc.libc}/include"
- "INSTALL=boot-install"
- ];
-
- preIncludes = ''
- mkdir -p $out/{0,1}-include
- cp --no-preserve=mode -r cross-build/include/common/* $out/0-include
- '' + lib.optionalString stdenv.hostPlatform.isLinux ''
- cp --no-preserve=mode -r cross-build/include/linux/* $out/1-include
- '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
- cp --no-preserve=mode -r cross-build/include/darwin/* $out/1-include
- '';
- };
-
- libnetbsd = mkDerivation {
- path = "lib/libnetbsd";
- nativeBuildInputs = with buildPackages.freebsd; [
- bsdSetupHook freebsdSetupHook
- makeMinimal mandoc groff
- (if stdenv.hostPlatform == stdenv.buildPlatform
- then boot-install
- else install)
- ];
- patches = lib.optionals (!stdenv.hostPlatform.isFreeBSD) [
- ./libnetbsd-do-install.patch
- #./libnetbsd-define-__va_list.patch
- ];
- makeFlags = [
- "STRIP=-s" # flag to install, not command
- "MK_WERROR=no"
- ] ++ lib.optional (stdenv.hostPlatform == stdenv.buildPlatform) "INSTALL=boot-install";
- buildInputs = with self; compatIfNeeded;
- };
-
- # HACK: to ensure parent directories exist. This emulates GNU
- # install’s -D option. No alternative seems to exist in BSD install.
- install = let binstall = writeShellScript "binstall" (install-wrapper + ''
-
- @out@/bin/xinstall "''${args[@]}"
- ''); in mkDerivation {
- path = "usr.bin/xinstall";
- extraPaths = with self; [ mtree.path ];
- nativeBuildInputs = with buildPackages.freebsd; [
- bsdSetupHook freebsdSetupHook
- makeMinimal mandoc groff
- (if stdenv.hostPlatform == stdenv.buildPlatform
- then boot-install
- else install)
- ];
- skipIncludesPhase = true;
- buildInputs = with self; compatIfNeeded ++ [ libmd libnetbsd ];
- makeFlags = [
- "STRIP=-s" # flag to install, not command
- "MK_WERROR=no"
- "TESTSDIR=${builtins.placeholder "test"}"
- ] ++ lib.optional (stdenv.hostPlatform == stdenv.buildPlatform) "INSTALL=boot-install";
- postInstall = ''
- install -D -m 0550 ${binstall} $out/bin/binstall
- substituteInPlace $out/bin/binstall --subst-var out
- mv $out/bin/install $out/bin/xinstall
- ln -s ./binstall $out/bin/install
- '';
- outputs = [ "out" "man" "test" ];
- };
-
- sed = mkDerivation {
- path = "usr.bin/sed";
- TESTSRC = "${freebsdSrc}/contrib/netbsd-tests";
- MK_TESTS = "no";
- };
-
- # Don't add this to nativeBuildInputs directly. Use statHook instead.
- stat = mkDerivation {
- path = "usr.bin/stat";
- nativeBuildInputs = with buildPackages.freebsd; [
- bsdSetupHook freebsdSetupHook
- makeMinimal install mandoc groff
- ];
- };
-
- # stat isn't in POSIX, and NetBSD stat supports a completely
- # different range of flags than GNU stat, so including it in PATH
- # breaks stdenv. Work around that with a hook that will point
- # NetBSD's build system and NetBSD stat without including it in
- # PATH.
- statHook = makeSetupHook {
- name = "netbsd-stat-hook";
- } (writeText "netbsd-stat-hook-impl" ''
- makeFlagsArray+=(TOOL_STAT=${self.stat}/bin/stat)
- '');
-
- tsort = mkDerivation {
- path = "usr.bin/tsort";
- nativeBuildInputs = with buildPackages.freebsd; [
- bsdSetupHook freebsdSetupHook
- makeMinimal install mandoc groff
- ];
- };
-
- lorder = mkDerivation rec {
- path = "usr.bin/lorder";
- noCC = true;
- dontBuild = true;
- installPhase = ''
- mkdir -p "$out/bin" "$man/share/man"
- mv "lorder.sh" "$out/bin/lorder"
- chmod +x "$out/bin/lorder"
- mv "lorder.1" "$man/share/man"
- '';
- nativeBuildInputs = [ bsdSetupHook freebsdSetupHook ];
- buildInputs = [];
- outputs = [ "out" "man" ];
- };
-
- ##
- ## END BOOTSTRAPPING
- ##
-
- ##
- ## START COMMAND LINE TOOLS
- ##
- make = mkDerivation {
- path = "contrib/bmake";
- version = "9.2";
- postPatch = ''
- # make needs this to pick up our sys make files
- export NIX_CFLAGS_COMPILE+=" -D_PATH_DEFSYSPATH=\"$out/share/mk\""
-
- '' + lib.optionalString stdenv.isDarwin ''
- substituteInPlace $BSDSRCDIR/share/mk/bsd.sys.mk \
- --replace '-Wl,--fatal-warnings' "" \
- --replace '-Wl,--warn-shared-textrel' ""
- '';
- postInstall = ''
- make -C $BSDSRCDIR/share/mk FILESDIR=$out/share/mk install
- '';
- extraPaths = [ "share/mk" ]
- ++ lib.optional (!stdenv.hostPlatform.isFreeBSD) "tools/build/mk";
- };
- mtree = mkDerivation {
- path = "contrib/mtree";
- extraPaths = with self; [ mknod.path ];
- };
-
- mknod = mkDerivation {
- path = "sbin/mknod";
- };
-
- rpcgen = mkDerivation rec {
- path = "usr.bin/rpcgen";
- patches = lib.optionals (stdenv.hostPlatform.libc == "glibc") [
- # `WUNTRACED` is defined privately `bits/waitflags.h` in glibc.
- # But instead of having a regular header guard, it has some silly
- # non-modular logic. `stdlib.h` will include it if `sys/wait.h`
- # hasn't yet been included (for it would first), and vice versa.
- #
- # The problem is that with the FreeBSD compat headers, one of
- # those headers ends up included other headers...which ends up
- # including the other one, this means by the first time we reach
- # `#include ``, both `_SYS_WAIT_H` and
- # `_STDLIB_H` are already defined! Thus, we never ned up including
- # `` and defining `WUNTRACED`.
- #
- # This hacks around this by manually including `WUNTRACED` until
- # the problem is fixed properly in glibc.
- ./rpcgen-glibc-hack.patch
- ];
- };
-
- gencat = mkDerivation {
- path = "usr.bin/gencat";
- };
-
- file2c = mkDerivation {
- path = "usr.bin/file2c";
- MK_TESTS = "no";
- };
-
- libnv = mkDerivation {
- path = "lib/libnv";
- extraPaths = [
- "sys/contrib/libnv"
- "sys/sys"
- ];
- MK_TESTS = "no";
- };
-
- libsbuf = mkDerivation {
- path = "lib/libsbuf";
- extraPaths = [
- "sys/kern"
- ];
- MK_TESTS = "no";
- };
-
- libelf = mkDerivation {
- path = "lib/libelf";
- extraPaths = [
- "contrib/elftoolchain/libelf"
- "contrib/elftoolchain/common"
- "sys/sys/elf32.h"
- "sys/sys/elf64.h"
- "sys/sys/elf_common.h"
- ];
- BOOTSTRAPPING = !stdenv.isFreeBSD;
- nativeBuildInputs = with buildPackages.freebsd; [
- bsdSetupHook freebsdSetupHook
- makeMinimal install mandoc groff
-
- m4
- ];
- MK_TESTS = "no";
- };
-
- libdwarf = mkDerivation {
- path = "lib/libdwarf";
- extraPaths = [
- "contrib/elftoolchain/libdwarf"
- "contrib/elftoolchain/common"
- "sys/sys/elf32.h"
- "sys/sys/elf64.h"
- "sys/sys/elf_common.h"
- ];
- nativeBuildInputs = with buildPackages.freebsd; [
- bsdSetupHook freebsdSetupHook
- makeMinimal install mandoc groff
-
- m4
- ];
- buildInputs = with self; compatIfNeeded ++ [
- libelf
- ];
- MK_TESTS = "no";
- };
-
- uudecode = mkDerivation {
- path = "usr.bin/uudecode";
- MK_TESTS = "no";
- };
-
- config = mkDerivation {
- path = "usr.sbin/config";
- nativeBuildInputs = with buildPackages.freebsd; [
- bsdSetupHook freebsdSetupHook
- makeMinimal install mandoc groff
-
- flex byacc file2c
- ];
- buildInputs = with self; compatIfNeeded ++ [ libnv libsbuf ];
- };
- ##
- ## END COMMAND LINE TOOLS
- ##
-
- ##
- ## START HEADERS
- ##
- include = mkDerivation {
- path = "include";
-
- extraPaths = [
- "contrib/libc-vis"
- "etc/mtree/BSD.include.dist"
- "sys"
- ];
-
- nativeBuildInputs = with buildPackages.freebsd; [
- bsdSetupHook freebsdSetupHook
- makeMinimal
- install
- mandoc groff rsync /*nbperf*/ rpcgen
-
- # HACK use NetBSD's for now
- buildPackages.netbsd.mtree
- ];
-
- patches = [
- ./no-perms-BSD.include.dist.patch
- ];
-
- # The makefiles define INCSDIR per subdirectory, so we have to set
- # something else on the command line so those definitions aren't
- # overridden.
- postPatch = ''
- find "$BSDSRCDIR" -name Makefile -exec \
- sed -i -E \
- -e 's_/usr/include_''${INCSDIR0}_' \
- {} \;
- '';
-
- makeFlags = [
- "RPCGEN_CPP=${buildPackages.stdenv.cc.cc}/bin/cpp"
- ];
-
- # multiple header dirs, see above
- postConfigure = ''
- makeFlags=''${makeFlags/INCSDIR/INCSDIR0}
- '';
-
- headersOnly = true;
-
- MK_HESIOD = "yes";
-
- meta.platforms = lib.platforms.freebsd;
- };
-
- ##
- ## END HEADERS
- ##
-
- csu = mkDerivation {
- path = "lib/csu";
- extraPaths = with self; [
- "lib/Makefile.inc"
- "lib/libc/include/libc_private.h"
- ];
- nativeBuildInputs = with buildPackages.freebsd; [
- bsdSetupHook freebsdSetupHook
- makeMinimal
- install
-
- flex byacc gencat
- ];
- buildInputs = with self; [ include ];
- MK_TESTS = "no";
- meta.platforms = lib.platforms.freebsd;
- };
-
- libc = mkDerivation rec {
- pname = "libc";
- path = "lib/libc";
- extraPaths = [
- "etc/group"
- "etc/master.passwd"
- "etc/shells"
- "lib/libmd"
- "lib/libutil"
- "lib/msun"
- "sys/kern"
- "sys/libkern"
- "sys/sys"
- "sys/crypto/chacha20"
- "include/rpcsvc"
- "contrib/jemalloc"
- "contrib/gdtoa"
- "contrib/libc-pwcache"
- "contrib/libc-vis"
- "contrib/tzcode/stdtime"
-
- # libthr
- "lib/libthr"
- "lib/libthread_db"
- "libexec/rtld-elf"
-
- # librpcsvc
- "lib/librpcsvc"
-
- # librt
- "lib/librt"
-
- # libcrypt
- "lib/libcrypt"
- "lib/libmd"
- "sys/crypto/sha2"
- ];
-
- patches = [
- # Hack around broken propogating MAKEFLAGS to submake, just inline logic
- ./libc-msun-arch-subdir.patch
-
- # Don't force -lcompiler-rt, we don't actually call it that
- ./libc-no-force--lcompiler-rt.patch
-
- # Fix extra include dir to get rpcsvc headers.
- ./librpcsvc-include-subdir.patch
- ];
-
- postPatch = ''
- substituteInPlace $COMPONENT_PATH/Makefile --replace '.include ' ""
- '';
-
- nativeBuildInputs = with buildPackages.freebsd; [
- bsdSetupHook freebsdSetupHook
- makeMinimal
- install
-
- flex byacc gencat rpcgen
- ];
- buildInputs = with self; [ include csu ];
- env.NIX_CFLAGS_COMPILE = "-B${self.csu}/lib";
-
- # Suppress lld >= 16 undefined version errors
- # https://github.com/freebsd/freebsd-src/commit/2ba84b4bcdd6012e8cfbf8a0d060a4438623a638
- env.NIX_LDFLAGS = lib.optionalString (stdenv.targetPlatform.linker == "lld") "--undefined-version";
-
- makeFlags = [
- "STRIP=-s" # flag to install, not command
- # lib/libc/gen/getgrent.c has sketchy cast from `void *` to enum
- "MK_WERROR=no"
- ];
-
- MK_SYMVER = "yes";
- MK_SSP = "yes";
- MK_NLS = "yes";
- MK_ICONV = "no"; # TODO make srctop
- MK_NS_CACHING = "yes";
- MK_INET6_SUPPORT = "yes";
- MK_HESIOD = "yes";
- MK_NIS = "yes";
- MK_HYPERV = "yes";
- MK_FP_LIBC = "yes";
-
- MK_TCSH = "no";
- MK_MALLOC_PRODUCTION = "yes";
-
- MK_TESTS = "no";
-
- postInstall = ''
- pushd ${self.include}
- find . -type d -exec mkdir -p $out/\{} \;
- find . \( -type f -o -type l \) -exec cp -pr \{} $out/\{} \;
- popd
-
- pushd ${self.csu}
- find . -type d -exec mkdir -p $out/\{} \;
- find . \( -type f -o -type l \) -exec cp -pr \{} $out/\{} \;
- popd
-
- sed -i -e 's| [^ ]*/libc_nonshared.a||' $out/lib/libc.so
-
- $CC -nodefaultlibs -lgcc -shared -o $out/lib/libgcc_s.so
-
- NIX_CFLAGS_COMPILE+=" -B$out/lib"
- NIX_CFLAGS_COMPILE+=" -I$out/include"
- NIX_LDFLAGS+=" -L$out/lib"
-
- make -C $BSDSRCDIR/lib/libthr $makeFlags
- make -C $BSDSRCDIR/lib/libthr $makeFlags install
-
- make -C $BSDSRCDIR/lib/msun $makeFlags
- make -C $BSDSRCDIR/lib/msun $makeFlags install
-
- make -C $BSDSRCDIR/lib/librpcsvc $makeFlags
- make -C $BSDSRCDIR/lib/librpcsvc $makeFlags install
-
- make -C $BSDSRCDIR/lib/libutil $makeFlags
- make -C $BSDSRCDIR/lib/libutil $makeFlags install
-
- make -C $BSDSRCDIR/lib/librt $makeFlags
- make -C $BSDSRCDIR/lib/librt $makeFlags install
-
- make -C $BSDSRCDIR/lib/libcrypt $makeFlags
- make -C $BSDSRCDIR/lib/libcrypt $makeFlags install
- '';
-
- meta.platforms = lib.platforms.freebsd;
- };
-
- ##
- ## Kernel
- ##
-
- libspl = mkDerivation {
- path = "cddl/lib/libspl";
- extraPaths = [
- "sys/contrib/openzfs/lib/libspl"
- "sys/contrib/openzfs/include"
-
- "cddl/compat/opensolaris/include"
- "sys/contrib/openzfs/module/icp/include"
- "sys/modules/zfs"
- ];
- # nativeBuildInputs = with buildPackages.freebsd; [
- # bsdSetupHook freebsdSetupHook
- # makeMinimal install mandoc groff
-
- # flex byacc file2c
- # ];
- # buildInputs = with self; compatIfNeeded ++ [ libnv libsbuf ];
- meta.license = lib.licenses.cddl;
- };
-
- ctfconvert = mkDerivation {
- path = "cddl/usr.bin/ctfconvert";
- extraPaths = [
- "cddl/compat/opensolaris"
- "cddl/contrib/opensolaris"
- "sys/cddl/compat/opensolaris"
- "sys/cddl/contrib/opensolaris"
- "sys/contrib/openzfs"
- ];
- OPENSOLARIS_USR_DISTDIR = "$(SRCTOP)/cddl/contrib/opensolaris";
- OPENSOLARIS_SYS_DISTDIR = "$(SRCTOP)/sys/cddl/contrib/opensolaris";
- nativeBuildInputs = with buildPackages.freebsd; [
- bsdSetupHook freebsdSetupHook
- makeMinimal install mandoc groff
-
- # flex byacc file2c
- ];
- buildInputs = with self; compatIfNeeded ++ [
- libelf libdwarf zlib libspl
- ];
- meta.license = lib.licenses.cddl;
- };
-
- xargs-j = substituteAll {
- name = "xargs-j";
- shell = runtimeShell;
- src = ../xargs-j.sh;
- dir = "bin";
- isExecutable = true;
- };
-
- sys = mkDerivation (let
- cfg = "MINIMAL";
- in rec {
- path = "sys";
-
- nativeBuildInputs = with buildPackages.freebsd; [
- bsdSetupHook freebsdSetupHook
- makeMinimal install mandoc groff
-
- config rpcgen file2c gawk uudecode xargs-j
- #ctfconvert
- ];
-
- patches = [
- ./sys-gnu-date.patch
- ./sys-no-explicit-intrinsics-dep.patch
- ];
-
- # --dynamic-linker /red/herring is used when building the kernel.
- NIX_ENFORCE_PURITY = 0;
-
- AWK = "${buildPackages.gawk}/bin/awk";
-
- CWARNEXTRA = "-Wno-error=shift-negative-value -Wno-address-of-packed-member";
-
- MK_CTF = "no";
-
- KODIR = "${builtins.placeholder "out"}/kernel";
- KMODDIR = "${builtins.placeholder "out"}/kernel";
- DTBDIR = "${builtins.placeholder"out"}/dbt";
-
- KERN_DEBUGDIR = "${builtins.placeholder "out"}/debug";
- KERN_DEBUGDIR_KODIR = "${KERN_DEBUGDIR}/kernel";
- KERN_DEBUGDIR_KMODDIR = "${KERN_DEBUGDIR}/kernel";
-
- skipIncludesPhase = true;
-
- configurePhase = ''
- runHook preConfigure
-
- for f in conf/kmod.mk contrib/dev/acpica/acpica_prep.sh; do
- substituteInPlace "$f" --replace 'xargs -J' 'xargs-j '
- done
-
- for f in conf/*.mk; do
- substituteInPlace "$f" --replace 'KERN_DEBUGDIR}''${' 'KERN_DEBUGDIR_'
- done
-
- cd ${mkBsdArch stdenv}/conf
- sed -i ${cfg} \
- -e 's/WITH_CTF=1/WITH_CTF=0/' \
- -e '/KDTRACE/d'
- config ${cfg}
-
- runHook postConfigure
- '';
- preBuild = ''
- cd ../compile/${cfg}
- '';
});
-
-});
}
diff --git a/pkgs/os-specific/bsd/freebsd/evdev-proto/default.nix b/pkgs/os-specific/bsd/freebsd/evdev-proto/default.nix
index b6dab0d8bdfc..d62c01f5eb88 100644
--- a/pkgs/os-specific/bsd/freebsd/evdev-proto/default.nix
+++ b/pkgs/os-specific/bsd/freebsd/evdev-proto/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation {
INSTALL_AS_USER = true;
NO_CHECKSUM = true;
NO_MTREE = true;
- SRC_BASE = freebsd.freebsdSrc;
+ SRC_BASE = freebsd.source;
preUnpack = ''
export MAKE_JOBS_NUMBER="$NIX_BUILD_CORES"
diff --git a/pkgs/os-specific/bsd/freebsd/lib/default.nix b/pkgs/os-specific/bsd/freebsd/lib/default.nix
new file mode 100644
index 000000000000..30fea7e17dce
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/lib/default.nix
@@ -0,0 +1,16 @@
+{ version }:
+
+{
+ inherit version;
+
+ mkBsdArch = stdenv': {
+ x86_64 = "amd64";
+ aarch64 = "arm64";
+ i486 = "i386";
+ i586 = "i386";
+ i686 = "i386";
+ }.${stdenv'.hostPlatform.parsed.cpu.name}
+ or stdenv'.hostPlatform.parsed.cpu.name;
+
+ install-wrapper = builtins.readFile ./install-wrapper.sh;
+}
diff --git a/pkgs/os-specific/bsd/freebsd/lib/install-wrapper.sh b/pkgs/os-specific/bsd/freebsd/lib/install-wrapper.sh
new file mode 100644
index 000000000000..91a7a2679f20
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/lib/install-wrapper.sh
@@ -0,0 +1,30 @@
+set -eu
+
+args=()
+declare -i path_args=0
+
+while (( $# )); do
+ if (( $# == 1 )); then
+ if (( path_args > 1)) || [[ "$1" = */ ]]; then
+ mkdir -p "$1"
+ else
+ mkdir -p "$(dirname "$1")"
+ fi
+ fi
+ case $1 in
+ -C) ;;
+ -o | -g) shift ;;
+ -s) ;;
+ -m | -l)
+ # handle next arg so not counted as path arg
+ args+=("$1" "$2")
+ shift
+ ;;
+ -*) args+=("$1") ;;
+ *)
+ path_args+=1
+ args+=("$1")
+ ;;
+ esac
+ shift
+done
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/boot-install.nix b/pkgs/os-specific/bsd/freebsd/pkgs/boot-install.nix
new file mode 100644
index 000000000000..71ecef1bcae4
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/boot-install.nix
@@ -0,0 +1,7 @@
+{ buildPackages, freebsd-lib }:
+
+# Wrap NetBSD's install
+buildPackages.writeShellScriptBin "boot-install" (freebsd-lib.install-wrapper + ''
+
+ ${buildPackages.netbsd.install}/bin/xinstall "''${args[@]}"
+'')
diff --git a/pkgs/os-specific/bsd/freebsd/compat-fix-typedefs-locations.patch b/pkgs/os-specific/bsd/freebsd/pkgs/compat/compat-fix-typedefs-locations.patch
similarity index 100%
rename from pkgs/os-specific/bsd/freebsd/compat-fix-typedefs-locations.patch
rename to pkgs/os-specific/bsd/freebsd/pkgs/compat/compat-fix-typedefs-locations.patch
diff --git a/pkgs/os-specific/bsd/freebsd/compat-install-dirs.patch b/pkgs/os-specific/bsd/freebsd/pkgs/compat/compat-install-dirs.patch
similarity index 100%
rename from pkgs/os-specific/bsd/freebsd/compat-install-dirs.patch
rename to pkgs/os-specific/bsd/freebsd/pkgs/compat/compat-install-dirs.patch
diff --git a/pkgs/os-specific/bsd/freebsd/compat-setup-hook.sh b/pkgs/os-specific/bsd/freebsd/pkgs/compat/compat-setup-hook.sh
similarity index 100%
rename from pkgs/os-specific/bsd/freebsd/compat-setup-hook.sh
rename to pkgs/os-specific/bsd/freebsd/pkgs/compat/compat-setup-hook.sh
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/compat/package.nix b/pkgs/os-specific/bsd/freebsd/pkgs/compat/package.nix
new file mode 100644
index 000000000000..5e4528fbf46a
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/compat/package.nix
@@ -0,0 +1,135 @@
+{ lib, stdenv, mkDerivation
+, bsdSetupHook, freebsdSetupHook
+, makeMinimal, boot-install
+, which
+, freebsd-lib
+, expat, zlib,
+}:
+
+let
+ inherit (freebsd-lib) mkBsdArch;
+in
+
+mkDerivation rec {
+ pname = "compat";
+ path = "tools/build";
+ extraPaths = [
+ "lib/libc/db"
+ "lib/libc/stdlib" # getopt
+ "lib/libc/gen" # getcap
+ "lib/libc/locale" # rpmatch
+ ] ++ lib.optionals stdenv.hostPlatform.isLinux [
+ "lib/libc/string" # strlcpy
+ "lib/libutil"
+ ] ++ [
+ "contrib/libc-pwcache"
+ "contrib/libc-vis"
+ "sys/libkern"
+ "sys/kern/subr_capability.c"
+
+ # Take only individual headers, or else we will clobber native libc, etc.
+
+ "sys/rpc/types.h"
+
+ # Listed in Makekfile as INC
+ "include/mpool.h"
+ "include/ndbm.h"
+ "include/err.h"
+ "include/stringlist.h"
+ "include/a.out.h"
+ "include/nlist.h"
+ "include/db.h"
+ "include/getopt.h"
+ "include/nl_types.h"
+ "include/elf.h"
+ "sys/sys/ctf.h"
+
+ # Listed in Makekfile as SYSINC
+
+ "sys/sys/capsicum.h"
+ "sys/sys/caprights.h"
+ "sys/sys/imgact_aout.h"
+ "sys/sys/nlist_aout.h"
+ "sys/sys/nv.h"
+ "sys/sys/dnv.h"
+ "sys/sys/cnv.h"
+
+ "sys/sys/elf32.h"
+ "sys/sys/elf64.h"
+ "sys/sys/elf_common.h"
+ "sys/sys/elf_generic.h"
+ "sys/${mkBsdArch stdenv}/include"
+ ] ++ lib.optionals stdenv.hostPlatform.isx86 [
+ "sys/x86/include"
+ ] ++ [
+
+ "sys/sys/queue.h"
+ "sys/sys/md5.h"
+ "sys/sys/sbuf.h"
+ "sys/sys/tree.h"
+ "sys/sys/font.h"
+ "sys/sys/consio.h"
+ "sys/sys/fnv_hash.h"
+
+ "sys/crypto/chacha20/_chacha.h"
+ "sys/crypto/chacha20/chacha.h"
+ # included too, despite ".c"
+ "sys/crypto/chacha20/chacha.c"
+
+ "sys/fs"
+ "sys/ufs"
+ "sys/sys/disk"
+
+ "lib/libcapsicum"
+ "lib/libcasper"
+ ];
+
+ patches = [
+ ./compat-install-dirs.patch
+ ./compat-fix-typedefs-locations.patch
+ ];
+
+ preBuild = ''
+ NIX_CFLAGS_COMPILE+=' -I../../include -I../../sys'
+
+ cp ../../sys/${mkBsdArch stdenv}/include/elf.h ../../sys/sys
+ cp ../../sys/${mkBsdArch stdenv}/include/elf.h ../../sys/sys/${mkBsdArch stdenv}
+ '' + lib.optionalString stdenv.hostPlatform.isx86 ''
+ cp ../../sys/x86/include/elf.h ../../sys/x86
+ '';
+
+ setupHooks = [
+ ../../../../../build-support/setup-hooks/role.bash
+ ./compat-setup-hook.sh
+ ];
+
+ # This one has an ifdefed `#include_next` that makes it annoying.
+ postInstall = ''
+ rm ''${!outputDev}/0-include/libelf.h
+ '';
+
+ nativeBuildInputs = [
+ bsdSetupHook freebsdSetupHook
+ makeMinimal
+ boot-install
+
+ which
+ ];
+ buildInputs = [ expat zlib ];
+
+ makeFlags = [
+ "STRIP=-s" # flag to install, not command
+ "MK_WERROR=no"
+ "HOST_INCLUDE_ROOT=${lib.getDev stdenv.cc.libc}/include"
+ "INSTALL=boot-install"
+ ];
+
+ preIncludes = ''
+ mkdir -p $out/{0,1}-include
+ cp --no-preserve=mode -r cross-build/include/common/* $out/0-include
+ '' + lib.optionalString stdenv.hostPlatform.isLinux ''
+ cp --no-preserve=mode -r cross-build/include/linux/* $out/1-include
+ '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
+ cp --no-preserve=mode -r cross-build/include/darwin/* $out/1-include
+ '';
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/config.nix b/pkgs/os-specific/bsd/freebsd/pkgs/config.nix
new file mode 100644
index 000000000000..641cfc46b4e9
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/config.nix
@@ -0,0 +1,17 @@
+{ mkDerivation
+, bsdSetupHook, freebsdSetupHook
+, makeMinimal, install, mandoc, groff
+, flex, byacc, file2c
+, compatIfNeeded, libnv, libsbuf
+}:
+
+mkDerivation {
+ path = "usr.sbin/config";
+ nativeBuildInputs = [
+ bsdSetupHook freebsdSetupHook
+ makeMinimal install mandoc groff
+
+ flex byacc file2c
+ ];
+ buildInputs = compatIfNeeded ++ [ libnv libsbuf ];
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/csu.nix b/pkgs/os-specific/bsd/freebsd/pkgs/csu.nix
new file mode 100644
index 000000000000..0b17cb1c8481
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/csu.nix
@@ -0,0 +1,25 @@
+{ lib, mkDerivation
+, bsdSetupHook, freebsdSetupHook
+, makeMinimal
+, install
+, flex, byacc, gencat
+, include
+}:
+
+mkDerivation {
+ path = "lib/csu";
+ extraPaths = [
+ "lib/Makefile.inc"
+ "lib/libc/include/libc_private.h"
+ ];
+ nativeBuildInputs = [
+ bsdSetupHook freebsdSetupHook
+ makeMinimal
+ install
+
+ flex byacc gencat
+ ];
+ buildInputs = [ include ];
+ MK_TESTS = "no";
+ meta.platforms = lib.platforms.freebsd;
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/ctfconvert.nix b/pkgs/os-specific/bsd/freebsd/pkgs/ctfconvert.nix
new file mode 100644
index 000000000000..0aebc9b3d0b9
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/ctfconvert.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, mkDerivation
+, bsdSetupHook, freebsdSetupHook
+, makeMinimal, install, mandoc, groff
+, compatIfNeeded, libelf, libdwarf, zlib, libspl
+}:
+
+mkDerivation {
+ path = "cddl/usr.bin/ctfconvert";
+ extraPaths = [
+ "cddl/compat/opensolaris"
+ "cddl/contrib/opensolaris"
+ "sys/cddl/compat/opensolaris"
+ "sys/cddl/contrib/opensolaris"
+ "sys/contrib/openzfs"
+ ];
+ OPENSOLARIS_USR_DISTDIR = "$(SRCTOP)/cddl/contrib/opensolaris";
+ OPENSOLARIS_SYS_DISTDIR = "$(SRCTOP)/sys/cddl/contrib/opensolaris";
+ nativeBuildInputs = [
+ bsdSetupHook freebsdSetupHook
+ makeMinimal install mandoc groff
+
+ # flex byacc file2c
+ ];
+ buildInputs = compatIfNeeded ++ [
+ libelf libdwarf zlib libspl
+ ];
+ meta.license = lib.licenses.cddl;
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/file2c.nix b/pkgs/os-specific/bsd/freebsd/pkgs/file2c.nix
new file mode 100644
index 000000000000..ff35d97afe36
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/file2c.nix
@@ -0,0 +1,6 @@
+{ mkDerivation }:
+
+mkDerivation {
+ path = "usr.bin/file2c";
+ MK_TESTS = "no";
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/freebsdSetupHook/package.nix b/pkgs/os-specific/bsd/freebsd/pkgs/freebsdSetupHook/package.nix
new file mode 100644
index 000000000000..430c4c5c43ac
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/freebsdSetupHook/package.nix
@@ -0,0 +1,5 @@
+{ makeSetupHook }:
+
+makeSetupHook {
+ name = "freebsd-setup-hook";
+} ./setup-hook.sh
diff --git a/pkgs/os-specific/bsd/freebsd/setup-hook.sh b/pkgs/os-specific/bsd/freebsd/pkgs/freebsdSetupHook/setup-hook.sh
similarity index 100%
rename from pkgs/os-specific/bsd/freebsd/setup-hook.sh
rename to pkgs/os-specific/bsd/freebsd/pkgs/freebsdSetupHook/setup-hook.sh
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/gencat.nix b/pkgs/os-specific/bsd/freebsd/pkgs/gencat.nix
new file mode 100644
index 000000000000..e9ae9f27cc05
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/gencat.nix
@@ -0,0 +1,5 @@
+{ mkDerivation }:
+
+mkDerivation {
+ path = "usr.bin/gencat";
+}
diff --git a/pkgs/os-specific/bsd/freebsd/no-perms-BSD.include.dist.patch b/pkgs/os-specific/bsd/freebsd/pkgs/include/no-perms-BSD.include.dist.patch
similarity index 100%
rename from pkgs/os-specific/bsd/freebsd/no-perms-BSD.include.dist.patch
rename to pkgs/os-specific/bsd/freebsd/pkgs/include/no-perms-BSD.include.dist.patch
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/include/package.nix b/pkgs/os-specific/bsd/freebsd/pkgs/include/package.nix
new file mode 100644
index 000000000000..73fa887c5123
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/include/package.nix
@@ -0,0 +1,56 @@
+{ lib, mkDerivation
+, buildPackages
+, bsdSetupHook, freebsdSetupHook
+, makeMinimal
+, install
+, mandoc, groff, rsync /*, nbperf*/, rpcgen
+}:
+
+mkDerivation {
+ path = "include";
+
+ extraPaths = [
+ "contrib/libc-vis"
+ "etc/mtree/BSD.include.dist"
+ "sys"
+ ];
+
+ nativeBuildInputs = [
+ bsdSetupHook freebsdSetupHook
+ makeMinimal
+ install
+ mandoc groff rsync /*nbperf*/ rpcgen
+
+ # HACK use NetBSD's for now
+ buildPackages.netbsd.mtree
+ ];
+
+ patches = [
+ ./no-perms-BSD.include.dist.patch
+ ];
+
+ # The makefiles define INCSDIR per subdirectory, so we have to set
+ # something else on the command line so those definitions aren't
+ # overridden.
+ postPatch = ''
+ find "$BSDSRCDIR" -name Makefile -exec \
+ sed -i -E \
+ -e 's_/usr/include_''${INCSDIR0}_' \
+ {} \;
+ '';
+
+ makeFlags = [
+ "RPCGEN_CPP=${buildPackages.stdenv.cc.cc}/bin/cpp"
+ ];
+
+ # multiple header dirs, see above
+ postConfigure = ''
+ makeFlags=''${makeFlags/INCSDIR/INCSDIR0}
+ '';
+
+ headersOnly = true;
+
+ MK_HESIOD = "yes";
+
+ meta.platforms = lib.platforms.freebsd;
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/install.nix b/pkgs/os-specific/bsd/freebsd/pkgs/install.nix
new file mode 100644
index 000000000000..3db6cd3633d4
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/install.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, mkDerivation, writeShellScript
+, freebsd-lib
+, mtree
+, bsdSetupHook, freebsdSetupHook
+, makeMinimal, mandoc, groff
+, boot-install, install
+, compatIfNeeded, libmd, libnetbsd
+}:
+
+# HACK: to ensure parent directories exist. This emulates GNU
+# install’s -D option. No alternative seems to exist in BSD install.
+let
+ binstall = writeShellScript "binstall" (freebsd-lib.install-wrapper + ''
+
+ @out@/bin/xinstall "''${args[@]}"
+ '');
+in mkDerivation {
+ path = "usr.bin/xinstall";
+ extraPaths = [ mtree.path ];
+ nativeBuildInputs = [
+ bsdSetupHook freebsdSetupHook
+ makeMinimal mandoc groff
+ (if stdenv.hostPlatform == stdenv.buildPlatform
+ then boot-install
+ else install)
+ ];
+ skipIncludesPhase = true;
+ buildInputs = compatIfNeeded ++ [ libmd libnetbsd ];
+ makeFlags = [
+ "STRIP=-s" # flag to install, not command
+ "MK_WERROR=no"
+ "TESTSDIR=${builtins.placeholder "test"}"
+ ] ++ lib.optional (stdenv.hostPlatform == stdenv.buildPlatform) "INSTALL=boot-install";
+ postInstall = ''
+ install -D -m 0550 ${binstall} $out/bin/binstall
+ substituteInPlace $out/bin/binstall --subst-var out
+ mv $out/bin/install $out/bin/xinstall
+ ln -s ./binstall $out/bin/install
+ '';
+ outputs = [ "out" "man" "test" ];
+}
diff --git a/pkgs/os-specific/bsd/freebsd/libc-msun-arch-subdir.patch b/pkgs/os-specific/bsd/freebsd/pkgs/libc/libc-msun-arch-subdir.patch
similarity index 100%
rename from pkgs/os-specific/bsd/freebsd/libc-msun-arch-subdir.patch
rename to pkgs/os-specific/bsd/freebsd/pkgs/libc/libc-msun-arch-subdir.patch
diff --git a/pkgs/os-specific/bsd/freebsd/libc-no-force--lcompiler-rt.patch b/pkgs/os-specific/bsd/freebsd/pkgs/libc/libc-no-force--lcompiler-rt.patch
similarity index 100%
rename from pkgs/os-specific/bsd/freebsd/libc-no-force--lcompiler-rt.patch
rename to pkgs/os-specific/bsd/freebsd/pkgs/libc/libc-no-force--lcompiler-rt.patch
diff --git a/pkgs/os-specific/bsd/freebsd/librpcsvc-include-subdir.patch b/pkgs/os-specific/bsd/freebsd/pkgs/libc/librpcsvc-include-subdir.patch
similarity index 100%
rename from pkgs/os-specific/bsd/freebsd/librpcsvc-include-subdir.patch
rename to pkgs/os-specific/bsd/freebsd/pkgs/libc/librpcsvc-include-subdir.patch
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/libc/package.nix b/pkgs/os-specific/bsd/freebsd/pkgs/libc/package.nix
new file mode 100644
index 000000000000..0225d44be4c3
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/libc/package.nix
@@ -0,0 +1,139 @@
+{ lib, stdenv, mkDerivation
+
+, bsdSetupHook, freebsdSetupHook
+, makeMinimal
+, install
+, flex, byacc, gencat, rpcgen
+
+, csu, include
+}:
+
+mkDerivation rec {
+ pname = "libc";
+ path = "lib/libc";
+ extraPaths = [
+ "etc/group"
+ "etc/master.passwd"
+ "etc/shells"
+ "lib/libmd"
+ "lib/libutil"
+ "lib/msun"
+ "sys/kern"
+ "sys/libkern"
+ "sys/sys"
+ "sys/crypto/chacha20"
+ "include/rpcsvc"
+ "contrib/jemalloc"
+ "contrib/gdtoa"
+ "contrib/libc-pwcache"
+ "contrib/libc-vis"
+ "contrib/tzcode/stdtime"
+
+ # libthr
+ "lib/libthr"
+ "lib/libthread_db"
+ "libexec/rtld-elf"
+
+ # librpcsvc
+ "lib/librpcsvc"
+
+ # librt
+ "lib/librt"
+
+ # libcrypt
+ "lib/libcrypt"
+ "lib/libmd"
+ "sys/crypto/sha2"
+ ];
+
+ patches = [
+ # Hack around broken propogating MAKEFLAGS to submake, just inline logic
+ ./libc-msun-arch-subdir.patch
+
+ # Don't force -lcompiler-rt, we don't actually call it that
+ ./libc-no-force--lcompiler-rt.patch
+
+ # Fix extra include dir to get rpcsvc headers.
+ ./librpcsvc-include-subdir.patch
+ ];
+
+ postPatch = ''
+ substituteInPlace $COMPONENT_PATH/Makefile --replace '.include ' ""
+ '';
+
+ nativeBuildInputs = [
+ bsdSetupHook freebsdSetupHook
+ makeMinimal
+ install
+
+ flex byacc gencat rpcgen
+ ];
+ buildInputs = [ include csu ];
+ env.NIX_CFLAGS_COMPILE = "-B${csu}/lib";
+
+ # Suppress lld >= 16 undefined version errors
+ # https://github.com/freebsd/freebsd-src/commit/2ba84b4bcdd6012e8cfbf8a0d060a4438623a638
+ env.NIX_LDFLAGS = lib.optionalString (stdenv.targetPlatform.linker == "lld") "--undefined-version";
+
+ makeFlags = [
+ "STRIP=-s" # flag to install, not command
+ # lib/libc/gen/getgrent.c has sketchy cast from `void *` to enum
+ "MK_WERROR=no"
+ ];
+
+ MK_SYMVER = "yes";
+ MK_SSP = "yes";
+ MK_NLS = "yes";
+ MK_ICONV = "no"; # TODO make srctop
+ MK_NS_CACHING = "yes";
+ MK_INET6_SUPPORT = "yes";
+ MK_HESIOD = "yes";
+ MK_NIS = "yes";
+ MK_HYPERV = "yes";
+ MK_FP_LIBC = "yes";
+
+ MK_TCSH = "no";
+ MK_MALLOC_PRODUCTION = "yes";
+
+ MK_TESTS = "no";
+
+ postInstall = ''
+ pushd ${include}
+ find . -type d -exec mkdir -p $out/\{} \;
+ find . \( -type f -o -type l \) -exec cp -pr \{} $out/\{} \;
+ popd
+
+ pushd ${csu}
+ find . -type d -exec mkdir -p $out/\{} \;
+ find . \( -type f -o -type l \) -exec cp -pr \{} $out/\{} \;
+ popd
+
+ sed -i -e 's| [^ ]*/libc_nonshared.a||' $out/lib/libc.so
+
+ $CC -nodefaultlibs -lgcc -shared -o $out/lib/libgcc_s.so
+
+ NIX_CFLAGS_COMPILE+=" -B$out/lib"
+ NIX_CFLAGS_COMPILE+=" -I$out/include"
+ NIX_LDFLAGS+=" -L$out/lib"
+
+ make -C $BSDSRCDIR/lib/libthr $makeFlags
+ make -C $BSDSRCDIR/lib/libthr $makeFlags install
+
+ make -C $BSDSRCDIR/lib/msun $makeFlags
+ make -C $BSDSRCDIR/lib/msun $makeFlags install
+
+ make -C $BSDSRCDIR/lib/librpcsvc $makeFlags
+ make -C $BSDSRCDIR/lib/librpcsvc $makeFlags install
+
+ make -C $BSDSRCDIR/lib/libutil $makeFlags
+ make -C $BSDSRCDIR/lib/libutil $makeFlags install
+
+ make -C $BSDSRCDIR/lib/librt $makeFlags
+ make -C $BSDSRCDIR/lib/librt $makeFlags install
+
+ make -C $BSDSRCDIR/lib/libcrypt $makeFlags
+ make -C $BSDSRCDIR/lib/libcrypt $makeFlags install
+ '';
+
+ meta.platforms = lib.platforms.freebsd;
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/libdwarf.nix b/pkgs/os-specific/bsd/freebsd/pkgs/libdwarf.nix
new file mode 100644
index 000000000000..9fc8fc5f9a62
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/libdwarf.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, mkDerivation
+, bsdSetupHook, freebsdSetupHook
+, makeMinimal, install, mandoc, groff
+, m4
+, compatIfNeeded, libelf
+}:
+
+mkDerivation {
+ path = "lib/libdwarf";
+ extraPaths = [
+ "contrib/elftoolchain/libdwarf"
+ "contrib/elftoolchain/common"
+ "sys/sys/elf32.h"
+ "sys/sys/elf64.h"
+ "sys/sys/elf_common.h"
+ ];
+ nativeBuildInputs = [
+ bsdSetupHook freebsdSetupHook
+ makeMinimal install mandoc groff
+
+ m4
+ ];
+ buildInputs = compatIfNeeded ++ [
+ libelf
+ ];
+ MK_TESTS = "no";
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/libelf.nix b/pkgs/os-specific/bsd/freebsd/pkgs/libelf.nix
new file mode 100644
index 000000000000..a44ce1685e57
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/libelf.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, mkDerivation
+, bsdSetupHook, freebsdSetupHook
+, makeMinimal, install, mandoc, groff
+, m4
+}:
+
+mkDerivation {
+ path = "lib/libelf";
+ extraPaths = [
+ "contrib/elftoolchain/libelf"
+ "contrib/elftoolchain/common"
+ "sys/sys/elf32.h"
+ "sys/sys/elf64.h"
+ "sys/sys/elf_common.h"
+ ];
+ BOOTSTRAPPING = !stdenv.isFreeBSD;
+ nativeBuildInputs = [
+ bsdSetupHook freebsdSetupHook
+ makeMinimal install mandoc groff
+
+ m4
+ ];
+ MK_TESTS = "no";
+}
diff --git a/pkgs/os-specific/bsd/freebsd/libnetbsd-do-install.patch b/pkgs/os-specific/bsd/freebsd/pkgs/libnetbsd/libnetbsd-do-install.patch
similarity index 100%
rename from pkgs/os-specific/bsd/freebsd/libnetbsd-do-install.patch
rename to pkgs/os-specific/bsd/freebsd/pkgs/libnetbsd/libnetbsd-do-install.patch
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/libnetbsd/package.nix b/pkgs/os-specific/bsd/freebsd/pkgs/libnetbsd/package.nix
new file mode 100644
index 000000000000..4011e4d8a649
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/libnetbsd/package.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv
+, mkDerivation
+, bsdSetupHook, freebsdSetupHook, makeMinimal, mandoc, groff
+, boot-install, install
+, compatIfNeeded
+}:
+
+mkDerivation {
+ path = "lib/libnetbsd";
+ nativeBuildInputs = [
+ bsdSetupHook freebsdSetupHook
+ makeMinimal mandoc groff
+ (if stdenv.hostPlatform == stdenv.buildPlatform
+ then boot-install
+ else install)
+ ];
+ patches = lib.optionals (!stdenv.hostPlatform.isFreeBSD) [
+ ./libnetbsd-do-install.patch
+ #./libnetbsd-define-__va_list.patch
+ ];
+ makeFlags = [
+ "STRIP=-s" # flag to install, not command
+ "MK_WERROR=no"
+ ] ++ lib.optional (stdenv.hostPlatform == stdenv.buildPlatform) "INSTALL=boot-install";
+ buildInputs = compatIfNeeded;
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/libnv.nix b/pkgs/os-specific/bsd/freebsd/pkgs/libnv.nix
new file mode 100644
index 000000000000..6ce61e5a68c7
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/libnv.nix
@@ -0,0 +1,10 @@
+{ mkDerivation }:
+
+mkDerivation {
+ path = "lib/libnv";
+ extraPaths = [
+ "sys/contrib/libnv"
+ "sys/sys"
+ ];
+ MK_TESTS = "no";
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/libsbuf.nix b/pkgs/os-specific/bsd/freebsd/pkgs/libsbuf.nix
new file mode 100644
index 000000000000..719474dbb11a
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/libsbuf.nix
@@ -0,0 +1,9 @@
+{ mkDerivation }:
+
+mkDerivation {
+ path = "lib/libsbuf";
+ extraPaths = [
+ "sys/kern"
+ ];
+ MK_TESTS = "no";
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/libspl.nix b/pkgs/os-specific/bsd/freebsd/pkgs/libspl.nix
new file mode 100644
index 000000000000..da5445a09fcd
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/libspl.nix
@@ -0,0 +1,21 @@
+{ lib, mkDerivation }:
+
+mkDerivation {
+ path = "cddl/lib/libspl";
+ extraPaths = [
+ "sys/contrib/openzfs/lib/libspl"
+ "sys/contrib/openzfs/include"
+
+ "cddl/compat/opensolaris/include"
+ "sys/contrib/openzfs/module/icp/include"
+ "sys/modules/zfs"
+ ];
+ # nativeBuildInputs = [
+ # bsdSetupHook freebsdSetupHook
+ # makeMinimal install mandoc groff
+
+ # flex byacc file2c
+ # ];
+ # buildInputs = compatIfNeeded ++ [ libnv libsbuf ];
+ meta.license = lib.licenses.cddl;
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/libutil.nix b/pkgs/os-specific/bsd/freebsd/pkgs/libutil.nix
new file mode 100644
index 000000000000..c420d0daf852
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/libutil.nix
@@ -0,0 +1,7 @@
+{ mkDerivation, lib, stdenv }:
+mkDerivation {
+ path = "lib/libutil";
+ extraPaths = ["lib/libc/gen"];
+ clangFixup = true;
+ MK_TESTS = "no";
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/lorder.nix b/pkgs/os-specific/bsd/freebsd/pkgs/lorder.nix
new file mode 100644
index 000000000000..d1fd86ab5e46
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/lorder.nix
@@ -0,0 +1,20 @@
+{ mkDerivation
+, bsdSetupHook, freebsdSetupHook
+}:
+
+mkDerivation rec {
+ path = "usr.bin/lorder";
+ noCC = true;
+ dontBuild = true;
+ installPhase = ''
+ mkdir -p "$out/bin" "$man/share/man"
+ mv "lorder.sh" "$out/bin/lorder"
+ chmod +x "$out/bin/lorder"
+ mv "lorder.1" "$man/share/man"
+ '';
+ nativeBuildInputs = [
+ bsdSetupHook freebsdSetupHook
+ ];
+ buildInputs = [];
+ outputs = [ "out" "man" ];
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/make.nix b/pkgs/os-specific/bsd/freebsd/pkgs/make.nix
new file mode 100644
index 000000000000..fa1722cfec22
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/make.nix
@@ -0,0 +1,20 @@
+{ lib, mkDerivation, stdenv }:
+
+mkDerivation {
+ path = "contrib/bmake";
+ version = "9.2";
+ postPatch = ''
+ # make needs this to pick up our sys make files
+ export NIX_CFLAGS_COMPILE+=" -D_PATH_DEFSYSPATH=\"$out/share/mk\""
+
+ '' + lib.optionalString stdenv.isDarwin ''
+ substituteInPlace $BSDSRCDIR/share/mk/bsd.sys.mk \
+ --replace '-Wl,--fatal-warnings' "" \
+ --replace '-Wl,--warn-shared-textrel' ""
+ '';
+ postInstall = ''
+ make -C $BSDSRCDIR/share/mk FILESDIR=$out/share/mk install
+ '';
+ extraPaths = [ "share/mk" ]
+ ++ lib.optional (!stdenv.hostPlatform.isFreeBSD) "tools/build/mk";
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/makeMinimal.nix b/pkgs/os-specific/bsd/freebsd/pkgs/makeMinimal.nix
new file mode 100644
index 000000000000..e6a8e38a4ace
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/makeMinimal.nix
@@ -0,0 +1,61 @@
+{ lib, stdenv, mkDerivation
+, make
+, bsdSetupHook, freebsdSetupHook
+}:
+
+mkDerivation rec {
+ inherit (make) path;
+
+ buildInputs = [];
+ nativeBuildInputs = [
+ bsdSetupHook freebsdSetupHook
+ ];
+
+ skipIncludesPhase = true;
+
+ makeFlags = [];
+
+ postPatch = ''
+ patchShebangs configure
+ ${make.postPatch}
+ '';
+
+ buildPhase = ''
+ runHook preBuild
+
+ sh ./make-bootstrap.sh
+
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ install -D bmake "$out/bin/bmake"
+ ln -s "$out/bin/bmake" "$out/bin/make"
+ mkdir -p "$out/share"
+ cp -r "$BSDSRCDIR/share/mk" "$out/share/mk"
+ find "$out/share/mk" -type f -print0 |
+ while IFS= read -r -d "" f; do
+ substituteInPlace "$f" --replace 'usr/' ""
+ done
+ substituteInPlace "$out/share/mk/bsd.symver.mk" \
+ --replace '/share/mk' "$out/share/mk"
+
+ runHook postInstall
+ '';
+
+ postInstall = lib.optionalString (!stdenv.targetPlatform.isFreeBSD) ''
+ boot_mk="$BSDSRCDIR/tools/build/mk"
+ cp "$boot_mk"/Makefile.boot* "$out/share/mk"
+ replaced_mk="$out/share/mk.orig"
+ mkdir "$replaced_mk"
+ mv "$out"/share/mk/bsd.{lib,prog}.mk "$replaced_mk"
+ for m in bsd.{lib,prog}.mk; do
+ cp "$boot_mk/$m" "$out/share/mk"
+ substituteInPlace "$out/share/mk/$m" --replace '../../../share/mk' '../mk.orig'
+ done
+ '';
+
+ extraPaths = make.extraPaths;
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/mkDerivation.nix b/pkgs/os-specific/bsd/freebsd/pkgs/mkDerivation.nix
new file mode 100644
index 000000000000..79428626b8ec
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/mkDerivation.nix
@@ -0,0 +1,78 @@
+{ lib, stdenv, stdenvNoCC
+, compatIfNeeded
+, runCommand, rsync
+, freebsd-lib
+, source
+, bsdSetupHook, freebsdSetupHook
+, makeMinimal
+, install, tsort, lorder, mandoc, groff
+}:
+
+lib.makeOverridable (attrs: let
+ stdenv' = if attrs.noCC or false then stdenvNoCC else stdenv;
+in stdenv'.mkDerivation (rec {
+ pname = "${attrs.pname or (baseNameOf attrs.path)}-freebsd";
+ inherit (freebsd-lib) version;
+ src = runCommand "${pname}-filtered-src" {
+ nativeBuildInputs = [ rsync ];
+ } ''
+ for p in ${lib.concatStringsSep " " ([ attrs.path ] ++ attrs.extraPaths or [])}; do
+ set -x
+ path="$out/$p"
+ mkdir -p "$(dirname "$path")"
+ src_path="${source}/$p"
+ if [[ -d "$src_path" ]]; then src_path+=/; fi
+ rsync --chmod="+w" -r "$src_path" "$path"
+ set +x
+ done
+ '';
+
+ extraPaths = [ ];
+
+ nativeBuildInputs = [
+ bsdSetupHook freebsdSetupHook
+ makeMinimal
+ install tsort lorder mandoc groff #statHook
+ ];
+ buildInputs = compatIfNeeded;
+
+ HOST_SH = stdenv'.shell;
+
+ # Since STRIP below is the flag
+ STRIPBIN = "${stdenv.cc.bintools.targetPrefix}strip";
+
+ makeFlags = [
+ "STRIP=-s" # flag to install, not command
+ ] ++ lib.optional (!stdenv.hostPlatform.isFreeBSD) "MK_WERROR=no";
+
+ # amd64 not x86_64 for this on unlike NetBSD
+ MACHINE_ARCH = freebsd-lib.mkBsdArch stdenv';
+
+ MACHINE = freebsd-lib.mkBsdArch stdenv';
+
+ MACHINE_CPUARCH = MACHINE_ARCH;
+
+ COMPONENT_PATH = attrs.path or null;
+
+ strictDeps = true;
+
+ meta = with lib; {
+ maintainers = with maintainers; [ ericson2314 ];
+ platforms = platforms.unix;
+ license = licenses.bsd2;
+ };
+} // lib.optionalAttrs stdenv'.hasCC {
+ # TODO should CC wrapper set this?
+ CPP = "${stdenv'.cc.targetPrefix}cpp";
+} // lib.optionalAttrs stdenv'.isDarwin {
+ MKRELRO = "no";
+} // lib.optionalAttrs (stdenv'.cc.isClang or false) {
+ HAVE_LLVM = lib.versions.major (lib.getVersion stdenv'.cc.cc);
+} // lib.optionalAttrs (stdenv'.cc.isGNU or false) {
+ HAVE_GCC = lib.versions.major (lib.getVersion stdenv'.cc.cc);
+} // lib.optionalAttrs (stdenv'.isx86_32) {
+ USE_SSP = "no";
+} // lib.optionalAttrs (attrs.headersOnly or false) {
+ installPhase = "includesPhase";
+ dontBuild = true;
+} // attrs))
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/mknod.nix b/pkgs/os-specific/bsd/freebsd/pkgs/mknod.nix
new file mode 100644
index 000000000000..56dff7d606bd
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/mknod.nix
@@ -0,0 +1,5 @@
+{ mkDerivation }:
+
+mkDerivation {
+ path = "sbin/mknod";
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/mtree.nix b/pkgs/os-specific/bsd/freebsd/pkgs/mtree.nix
new file mode 100644
index 000000000000..23a4672069e6
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/mtree.nix
@@ -0,0 +1,6 @@
+{ mkDerivation, mknod }:
+
+mkDerivation {
+ path = "contrib/mtree";
+ extraPaths = [ mknod.path ];
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/rpcgen/package.nix b/pkgs/os-specific/bsd/freebsd/pkgs/rpcgen/package.nix
new file mode 100644
index 000000000000..56141255af5e
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/rpcgen/package.nix
@@ -0,0 +1,22 @@
+{ lib, mkDerivation, stdenv }:
+
+mkDerivation rec {
+ path = "usr.bin/rpcgen";
+ patches = lib.optionals (stdenv.hostPlatform.libc == "glibc") [
+ # `WUNTRACED` is defined privately `bits/waitflags.h` in glibc.
+ # But instead of having a regular header guard, it has some silly
+ # non-modular logic. `stdlib.h` will include it if `sys/wait.h`
+ # hasn't yet been included (for it would first), and vice versa.
+ #
+ # The problem is that with the FreeBSD compat headers, one of
+ # those headers ends up included other headers...which ends up
+ # including the other one, this means by the first time we reach
+ # `#include ``, both `_SYS_WAIT_H` and
+ # `_STDLIB_H` are already defined! Thus, we never ned up including
+ # `` and defining `WUNTRACED`.
+ #
+ # This hacks around this by manually including `WUNTRACED` until
+ # the problem is fixed properly in glibc.
+ ./rpcgen-glibc-hack.patch
+ ];
+}
diff --git a/pkgs/os-specific/bsd/freebsd/rpcgen-glibc-hack.patch b/pkgs/os-specific/bsd/freebsd/pkgs/rpcgen/rpcgen-glibc-hack.patch
similarity index 100%
rename from pkgs/os-specific/bsd/freebsd/rpcgen-glibc-hack.patch
rename to pkgs/os-specific/bsd/freebsd/pkgs/rpcgen/rpcgen-glibc-hack.patch
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/sed.nix b/pkgs/os-specific/bsd/freebsd/pkgs/sed.nix
new file mode 100644
index 000000000000..07b55afe133f
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/sed.nix
@@ -0,0 +1,7 @@
+{ mkDerivation, source }:
+
+mkDerivation {
+ path = "usr.bin/sed";
+ TESTSRC = "${source}/contrib/netbsd-tests";
+ MK_TESTS = "no";
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/source.nix b/pkgs/os-specific/bsd/freebsd/pkgs/source.nix
new file mode 100644
index 000000000000..5e31f900e821
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/source.nix
@@ -0,0 +1,11 @@
+{ fetchFromGitHub, sourceData }:
+
+# Using fetchFromGitHub from their mirror because it's a lot faster than their git server
+# If you want you could fetchgit from "https://git.FreeBSD.org/src.git" instead.
+# The update script still pulls directly from git.freebsd.org
+fetchFromGitHub {
+ name = "src"; # Want to rename this next rebuild
+ owner = "freebsd";
+ repo = "freebsd-src";
+ inherit (sourceData) rev hash;
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/stat.nix b/pkgs/os-specific/bsd/freebsd/pkgs/stat.nix
new file mode 100644
index 000000000000..c730f00869f8
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/stat.nix
@@ -0,0 +1,13 @@
+{ mkDerivation
+, bsdSetupHook, freebsdSetupHook
+, makeMinimal, install, mandoc, groff
+}:
+
+# Don't add this to nativeBuildInputs directly. Use statHook instead.
+mkDerivation {
+ path = "usr.bin/stat";
+ nativeBuildInputs = [
+ bsdSetupHook freebsdSetupHook
+ makeMinimal install mandoc groff
+ ];
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/statHook.nix b/pkgs/os-specific/bsd/freebsd/pkgs/statHook.nix
new file mode 100644
index 000000000000..07129938b095
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/statHook.nix
@@ -0,0 +1,12 @@
+{ makeSetupHook, writeText, stat }:
+
+# stat isn't in POSIX, and NetBSD stat supports a completely
+# different range of flags than GNU stat, so including it in PATH
+# breaks stdenv. Work around that with a hook that will point
+# NetBSD's build system and NetBSD stat without including it in
+# PATH.
+makeSetupHook {
+ name = "netbsd-stat-hook";
+} (writeText "netbsd-stat-hook-impl" ''
+ makeFlagsArray+=(TOOL_STAT=${stat}/bin/stat)
+'')
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/sys/package.nix b/pkgs/os-specific/bsd/freebsd/pkgs/sys/package.nix
new file mode 100644
index 000000000000..81cf4114e873
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/sys/package.nix
@@ -0,0 +1,67 @@
+{ lib, stdenv, mkDerivation, freebsd-lib
+, buildPackages
+, bsdSetupHook, freebsdSetupHook
+, makeMinimal, install, mandoc, groff
+, config, rpcgen, file2c, gawk, uudecode, xargs-j #, ctfconvert
+}:
+
+mkDerivation (let
+ cfg = "MINIMAL";
+in rec {
+ path = "sys";
+
+ nativeBuildInputs = [
+ bsdSetupHook freebsdSetupHook
+ makeMinimal install mandoc groff
+
+ config rpcgen file2c gawk uudecode xargs-j
+ #ctfconvert
+ ];
+
+ patches = [
+ ./sys-gnu-date.patch
+ ./sys-no-explicit-intrinsics-dep.patch
+ ];
+
+ # --dynamic-linker /red/herring is used when building the kernel.
+ NIX_ENFORCE_PURITY = 0;
+
+ AWK = "${buildPackages.gawk}/bin/awk";
+
+ CWARNEXTRA = "-Wno-error=shift-negative-value -Wno-address-of-packed-member";
+
+ MK_CTF = "no";
+
+ KODIR = "${builtins.placeholder "out"}/kernel";
+ KMODDIR = "${builtins.placeholder "out"}/kernel";
+ DTBDIR = "${builtins.placeholder"out"}/dbt";
+
+ KERN_DEBUGDIR = "${builtins.placeholder "out"}/debug";
+ KERN_DEBUGDIR_KODIR = "${KERN_DEBUGDIR}/kernel";
+ KERN_DEBUGDIR_KMODDIR = "${KERN_DEBUGDIR}/kernel";
+
+ skipIncludesPhase = true;
+
+ configurePhase = ''
+ runHook preConfigure
+
+ for f in conf/kmod.mk contrib/dev/acpica/acpica_prep.sh; do
+ substituteInPlace "$f" --replace 'xargs -J' 'xargs-j '
+ done
+
+ for f in conf/*.mk; do
+ substituteInPlace "$f" --replace 'KERN_DEBUGDIR}''${' 'KERN_DEBUGDIR_'
+ done
+
+ cd ${freebsd-lib.mkBsdArch stdenv}/conf
+ sed -i ${cfg} \
+ -e 's/WITH_CTF=1/WITH_CTF=0/' \
+ -e '/KDTRACE/d'
+ config ${cfg}
+
+ runHook postConfigure
+ '';
+ preBuild = ''
+ cd ../compile/${cfg}
+ '';
+})
diff --git a/pkgs/os-specific/bsd/freebsd/sys-gnu-date.patch b/pkgs/os-specific/bsd/freebsd/pkgs/sys/sys-gnu-date.patch
similarity index 100%
rename from pkgs/os-specific/bsd/freebsd/sys-gnu-date.patch
rename to pkgs/os-specific/bsd/freebsd/pkgs/sys/sys-gnu-date.patch
diff --git a/pkgs/os-specific/bsd/freebsd/sys-no-explicit-intrinsics-dep.patch b/pkgs/os-specific/bsd/freebsd/pkgs/sys/sys-no-explicit-intrinsics-dep.patch
similarity index 100%
rename from pkgs/os-specific/bsd/freebsd/sys-no-explicit-intrinsics-dep.patch
rename to pkgs/os-specific/bsd/freebsd/pkgs/sys/sys-no-explicit-intrinsics-dep.patch
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/tsort.nix b/pkgs/os-specific/bsd/freebsd/pkgs/tsort.nix
new file mode 100644
index 000000000000..cdc1b27ce8fe
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/tsort.nix
@@ -0,0 +1,12 @@
+{ mkDerivation
+, bsdSetupHook, freebsdSetupHook
+, makeMinimal, install, mandoc, groff
+}:
+
+mkDerivation {
+ path = "usr.bin/tsort";
+ nativeBuildInputs = [
+ bsdSetupHook freebsdSetupHook
+ makeMinimal install mandoc groff
+ ];
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/uudecode.nix b/pkgs/os-specific/bsd/freebsd/pkgs/uudecode.nix
new file mode 100644
index 000000000000..7e2341913dc0
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/uudecode.nix
@@ -0,0 +1,6 @@
+{ mkDerivation }:
+
+mkDerivation {
+ path = "usr.bin/uudecode";
+ MK_TESTS = "no";
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/xargs-j/package.nix b/pkgs/os-specific/bsd/freebsd/pkgs/xargs-j/package.nix
new file mode 100644
index 000000000000..3a6b0ff00428
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/xargs-j/package.nix
@@ -0,0 +1,9 @@
+{ substituteAll, runtimeShell }:
+
+substituteAll {
+ name = "xargs-j";
+ shell = runtimeShell;
+ src = ./xargs-j.sh;
+ dir = "bin";
+ isExecutable = true;
+}
diff --git a/pkgs/os-specific/bsd/xargs-j.sh b/pkgs/os-specific/bsd/freebsd/pkgs/xargs-j/xargs-j.sh
similarity index 100%
rename from pkgs/os-specific/bsd/xargs-j.sh
rename to pkgs/os-specific/bsd/freebsd/pkgs/xargs-j/xargs-j.sh
diff --git a/pkgs/os-specific/bsd/freebsd/update.py b/pkgs/os-specific/bsd/freebsd/update.py
new file mode 100755
index 000000000000..cd20f67148fa
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/update.py
@@ -0,0 +1,182 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i python3 -p git "python3.withPackages (ps: with ps; [ gitpython packaging beautifulsoup4 pandas lxml ])"
+
+import bs4
+import git
+import io
+import json
+import os
+import packaging.version
+import pandas
+import re
+import subprocess
+import sys
+import tempfile
+import typing
+import urllib.request
+
+_QUERY_VERSION_PATTERN = re.compile('^([A-Z]+)="(.+)"$')
+BASE_DIR = os.path.dirname(os.path.abspath(__file__))
+MIN_VERSION = packaging.version.Version("13.0.0")
+MAIN_BRANCH = "main"
+TAG_PATTERN = re.compile(
+ f"^release/({packaging.version.VERSION_PATTERN})$", re.IGNORECASE | re.VERBOSE
+)
+REMOTE = "origin"
+BRANCH_PATTERN = re.compile(
+ f"^{REMOTE}/((stable|releng)/({packaging.version.VERSION_PATTERN}))$",
+ re.IGNORECASE | re.VERBOSE,
+)
+
+
+def request_supported_refs() -> list[str]:
+ # Looks pretty shady but I think this should work with every version of the page in the last 20 years
+ r = re.compile("^h\d$", re.IGNORECASE)
+ soup = bs4.BeautifulSoup(
+ urllib.request.urlopen("https://www.freebsd.org/security"), features="lxml"
+ )
+ header = soup.find(
+ lambda tag: r.match(tag.name) is not None
+ and tag.text.lower() == "supported freebsd releases"
+ )
+ table = header.find_next("table")
+ df = pandas.read_html(io.StringIO(table.prettify()))[0]
+ return list(df["Branch"])
+
+
+def query_version(repo: git.Repo) -> dict[str, typing.Any]:
+ # This only works on FreeBSD 13 and later
+ text = (
+ subprocess.check_output(
+ ["bash", os.path.join(repo.working_dir, "sys", "conf", "newvers.sh"), "-v"]
+ )
+ .decode("utf-8")
+ .strip()
+ )
+ fields = dict()
+ for line in text.splitlines():
+ m = _QUERY_VERSION_PATTERN.match(line)
+ if m is None:
+ continue
+ fields[m[1].lower()] = m[2]
+
+ fields["major"] = packaging.version.parse(fields["revision"]).major
+ return fields
+
+
+def handle_commit(
+ repo: git.Repo,
+ rev: git.objects.commit.Commit,
+ ref_name: str,
+ ref_type: str,
+ supported_refs: list[str],
+ old_versions: dict[str, typing.Any],
+) -> dict[str, typing.Any]:
+ if old_versions.get(ref_name, {}).get("rev", None) == rev.hexsha:
+ print(f"{ref_name}: revision still {rev.hexsha}, skipping")
+ return old_versions[ref_name]
+
+ repo.git.checkout(rev)
+ print(f"{ref_name}: checked out {rev.hexsha}")
+
+ full_hash = (
+ subprocess.check_output(["nix", "hash", "path", "--sri", repo.working_dir])
+ .decode("utf-8")
+ .strip()
+ )
+ print(f"{ref_name}: hash is {full_hash}")
+
+ version = query_version(repo)
+ print(f"{ref_name}: version is {version['version']}")
+
+ return {
+ "rev": rev.hexsha,
+ "hash": full_hash,
+ "ref": ref_name,
+ "refType": ref_type,
+ "supported": ref_name in supported_refs,
+ "version": query_version(repo),
+ }
+
+
+def main() -> None:
+ # Normally uses /run/user/*, which is on a tmpfs and too small
+ temp_dir = tempfile.TemporaryDirectory(dir="/tmp")
+ print(f"Selected temporary directory {temp_dir.name}")
+
+ if len(sys.argv) >= 2:
+ orig_repo = git.Repo(sys.argv[1])
+ print(f"Fetching updates on {orig_repo.git_dir}")
+ orig_repo.remote("origin").fetch()
+ else:
+ print("Cloning source repo")
+ orig_repo = git.Repo.clone_from(
+ "https://git.FreeBSD.org/src.git", to_path=os.path.join(temp_dir.name, "orig")
+ )
+
+ supported_refs = request_supported_refs()
+ print(f"Supported refs are: {' '.join(supported_refs)}")
+
+ print("Doing git crimes, do not run `git worktree prune` until after script finishes!")
+ workdir = os.path.join(temp_dir.name, "work")
+ git.cmd.Git(orig_repo.git_dir).worktree("add", "--orphan", workdir)
+
+ # Have to create object before removing .git otherwise it will complain
+ repo = git.Repo(workdir)
+ repo.git.set_persistent_git_options(git_dir=repo.git_dir)
+ # Remove so that nix hash doesn't see the file
+ os.remove(os.path.join(workdir, ".git"))
+
+ print(f"Working in directory {repo.working_dir} with git directory {repo.git_dir}")
+
+
+ try:
+ with open(os.path.join(BASE_DIR, "versions.json"), "r") as f:
+ old_versions = json.load(f)
+ except FileNotFoundError:
+ old_versions = dict()
+
+ versions = dict()
+ for tag in repo.tags:
+ m = TAG_PATTERN.match(tag.name)
+ if m is None:
+ continue
+ version = packaging.version.parse(m[1])
+ if version < MIN_VERSION:
+ print(f"Skipping old tag {tag.name} ({version})")
+ continue
+
+ print(f"Trying tag {tag.name} ({version})")
+
+ result = handle_commit(
+ repo, tag.commit, tag.name, "tag", supported_refs, old_versions
+ )
+ versions[tag.name] = result
+
+ for branch in repo.remote("origin").refs:
+ m = BRANCH_PATTERN.match(branch.name)
+ if m is not None:
+ fullname = m[1]
+ version = packaging.version.parse(m[3])
+ if version < MIN_VERSION:
+ print(f"Skipping old branch {fullname} ({version})")
+ continue
+ print(f"Trying branch {fullname} ({version})")
+ elif branch.name == f"{REMOTE}/{MAIN_BRANCH}":
+ fullname = MAIN_BRANCH
+ print(f"Trying development branch {fullname}")
+ else:
+ continue
+
+ result = handle_commit(
+ repo, branch.commit, fullname, "branch", supported_refs, old_versions
+ )
+ versions[fullname] = result
+
+
+ with open(os.path.join(BASE_DIR, "versions.json"), "w") as out:
+ json.dump(versions, out, sort_keys=True, indent=2)
+ out.write("\n")
+
+if __name__ == '__main__':
+ main()
diff --git a/pkgs/os-specific/bsd/freebsd/versions.json b/pkgs/os-specific/bsd/freebsd/versions.json
new file mode 100644
index 000000000000..736c4c3a3e3c
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/versions.json
@@ -0,0 +1,210 @@
+{
+ "main": {
+ "hash": "sha256-C5ucT9BK/eK8a9HNSDDi8S1uhpPmiqV22XEooxAqbPw=",
+ "ref": "main",
+ "refType": "branch",
+ "rev": "125c4560bc70971b950d035cfcd2255b89984011",
+ "supported": false,
+ "version": {
+ "branch": "CURRENT",
+ "major": 15,
+ "reldate": "1500017",
+ "release": "15.0-CURRENT",
+ "revision": "15.0",
+ "type": "FreeBSD",
+ "version": "FreeBSD 15.0-CURRENT"
+ }
+ },
+ "release/13.0.0": {
+ "hash": "sha256-2WYk/taxWc74uh2KJf9TzWDxUPrtkvt2nhU/qUZMu+Q=",
+ "ref": "release/13.0.0",
+ "refType": "tag",
+ "rev": "ea31abc261ffc01b6ff5671bffb15cf910a07f4b",
+ "supported": false,
+ "version": {
+ "branch": "RELEASE",
+ "major": 13,
+ "reldate": "1300139",
+ "release": "13.0-RELEASE",
+ "revision": "13.0",
+ "type": "FreeBSD",
+ "version": "FreeBSD 13.0-RELEASE"
+ }
+ },
+ "release/13.1.0": {
+ "hash": "sha256-m2aR2bwJNxsBepJ5ybWiaJp4Nwm+l0bMcn0gTSeY0JI=",
+ "ref": "release/13.1.0",
+ "refType": "tag",
+ "rev": "fc952ac2212b121aa6eefc273f5960ec3e0a466d",
+ "supported": false,
+ "version": {
+ "branch": "RELEASE",
+ "major": 13,
+ "reldate": "1301000",
+ "release": "13.1-RELEASE",
+ "revision": "13.1",
+ "type": "FreeBSD",
+ "version": "FreeBSD 13.1-RELEASE"
+ }
+ },
+ "release/13.2.0": {
+ "hash": "sha256-VuktVknlKYkklST0I5CUiH7OsDn3DVTE1W9O/IhaCkE=",
+ "ref": "release/13.2.0",
+ "refType": "tag",
+ "rev": "525ecfdad597980ea4cd59238e24c8530dbcd31d",
+ "supported": false,
+ "version": {
+ "branch": "RELEASE",
+ "major": 13,
+ "reldate": "1302001",
+ "release": "13.2-RELEASE",
+ "revision": "13.2",
+ "type": "FreeBSD",
+ "version": "FreeBSD 13.2-RELEASE"
+ }
+ },
+ "release/13.3.0": {
+ "hash": "sha256-djqHlPnGlJCi9DGtX1kTULB2EEj8YUsjGTIUDQoHzAQ=",
+ "ref": "release/13.3.0",
+ "refType": "tag",
+ "rev": "80d2b634ddf0b459910b54a04bc09f5cbc7185a7",
+ "supported": false,
+ "version": {
+ "branch": "RELEASE",
+ "major": 13,
+ "reldate": "1303001",
+ "release": "13.3-RELEASE",
+ "revision": "13.3",
+ "type": "FreeBSD",
+ "version": "FreeBSD 13.3-RELEASE"
+ }
+ },
+ "release/14.0.0": {
+ "hash": "sha256-eBKwCYcOG9Lg7gBA2gZqxQFO/3uMMrcQGtgqi8se6zA=",
+ "ref": "release/14.0.0",
+ "refType": "tag",
+ "rev": "f9716eee8ab45ad906d9b5c5233ca20c10226ca7",
+ "supported": false,
+ "version": {
+ "branch": "RELEASE",
+ "major": 14,
+ "reldate": "1400097",
+ "release": "14.0-RELEASE",
+ "revision": "14.0",
+ "type": "FreeBSD",
+ "version": "FreeBSD 14.0-RELEASE"
+ }
+ },
+ "releng/13.0": {
+ "hash": "sha256-7PrqTb2o21IQgQ2N+zjavlzX/ju60Rw+MXjMRICmQi0=",
+ "ref": "releng/13.0",
+ "refType": "branch",
+ "rev": "5fe9c9de03ef3191d216964bc4d8e427d5ed5720",
+ "supported": false,
+ "version": {
+ "branch": "RELEASE-p13",
+ "major": 13,
+ "reldate": "1300139",
+ "release": "13.0-RELEASE-p13",
+ "revision": "13.0",
+ "type": "FreeBSD",
+ "version": "FreeBSD 13.0-RELEASE-p13"
+ }
+ },
+ "releng/13.1": {
+ "hash": "sha256-9fou2HVWlpNRKkc8XToe8/aSxwbNsIZIAKpteeSjLnc=",
+ "ref": "releng/13.1",
+ "refType": "branch",
+ "rev": "39b281c2996526288c0f2ae94abe6b164bcd5954",
+ "supported": false,
+ "version": {
+ "branch": "RELEASE-p9",
+ "major": 13,
+ "reldate": "1301000",
+ "release": "13.1-RELEASE-p9",
+ "revision": "13.1",
+ "type": "FreeBSD",
+ "version": "FreeBSD 13.1-RELEASE-p9"
+ }
+ },
+ "releng/13.2": {
+ "hash": "sha256-KN508aIe02Ue4TjlonO6TmAQ7DmiOOSOYrZfg5HP9AM=",
+ "ref": "releng/13.2",
+ "refType": "branch",
+ "rev": "f5ac4e174fdd3497749e351c27aafb34171c5730",
+ "supported": true,
+ "version": {
+ "branch": "RELEASE-p11",
+ "major": 13,
+ "reldate": "1302001",
+ "release": "13.2-RELEASE-p11",
+ "revision": "13.2",
+ "type": "FreeBSD",
+ "version": "FreeBSD 13.2-RELEASE-p11"
+ }
+ },
+ "releng/13.3": {
+ "hash": "sha256-huzUiMZHfyK/mgLD3hW+DaSGgAaTUIuM51xDp+IE3qE=",
+ "ref": "releng/13.3",
+ "refType": "branch",
+ "rev": "7a0d63c9093222938f26cd63ff742e555168de77",
+ "supported": true,
+ "version": {
+ "branch": "RELEASE-p1",
+ "major": 13,
+ "reldate": "1303001",
+ "release": "13.3-RELEASE-p1",
+ "revision": "13.3",
+ "type": "FreeBSD",
+ "version": "FreeBSD 13.3-RELEASE-p1"
+ }
+ },
+ "releng/14.0": {
+ "hash": "sha256-15B9Nglshniokju88dEKj3BIffZ6L28L+ZuhAC3UqOI=",
+ "ref": "releng/14.0",
+ "refType": "branch",
+ "rev": "d338712beb16ad7740bbd00bd93299a131a68045",
+ "supported": true,
+ "version": {
+ "branch": "RELEASE-p6",
+ "major": 14,
+ "reldate": "1400097",
+ "release": "14.0-RELEASE-p6",
+ "revision": "14.0",
+ "type": "FreeBSD",
+ "version": "FreeBSD 14.0-RELEASE-p6"
+ }
+ },
+ "stable/13": {
+ "hash": "sha256-XateLKKs2A/HCP9Lx/nBm1cybB3otrbeXQvyCL40S0M=",
+ "ref": "stable/13",
+ "refType": "branch",
+ "rev": "e0a58ef24a3baf5ed4cc09a798b9fe2d85408052",
+ "supported": true,
+ "version": {
+ "branch": "STABLE",
+ "major": 13,
+ "reldate": "1303502",
+ "release": "13.3-STABLE",
+ "revision": "13.3",
+ "type": "FreeBSD",
+ "version": "FreeBSD 13.3-STABLE"
+ }
+ },
+ "stable/14": {
+ "hash": "sha256-tIKnK/SYBDk9UnE5AfhjeDpqHnzspYbor0678ye/mrs=",
+ "ref": "stable/14",
+ "refType": "branch",
+ "rev": "ab872ab0bf195e872ed8d955aab3b2a537a230cd",
+ "supported": true,
+ "version": {
+ "branch": "STABLE",
+ "major": 14,
+ "reldate": "1400510",
+ "release": "14.0-STABLE",
+ "revision": "14.0",
+ "type": "FreeBSD",
+ "version": "FreeBSD 14.0-STABLE"
+ }
+ }
+}
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index 4cfc548f952d..7e47a07f9604 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -122,6 +122,10 @@ let
# Default SATA link power management to "medium with device initiated PM"
# for some extra power savings.
SATA_MOBILE_LPM_POLICY = whenAtLeast "5.18" (freeform "3");
+
+ # GPIO power management
+ POWER_RESET_GPIO = option yes;
+ POWER_RESET_GPIO_RESTART = option yes;
} // optionalAttrs (stdenv.hostPlatform.isx86) {
INTEL_IDLE = yes;
INTEL_RAPL = whenAtLeast "5.3" module;
diff --git a/pkgs/servers/invidious/versions.json b/pkgs/servers/invidious/versions.json
index 76eb88aa6b5f..93c5784c9c1b 100644
--- a/pkgs/servers/invidious/versions.json
+++ b/pkgs/servers/invidious/versions.json
@@ -1,8 +1,8 @@
{
"invidious": {
- "rev": "99a5e9cbc44daa4555f36b43bc4b7246aee454c9",
- "hash": "sha256-ep/umuNxTvdPXtJgI3KNt0h5xc1O38wQz1+OsVYOzfE=",
- "version": "0.20.1-unstable-2024-03-08"
+ "rev": "08390acd0c17875fddb84cabba54197a5b5740e4",
+ "hash": "sha256-75C/ImX/PYikVdSO4rZM/aYyEgx6pU90BHNeRFfcsDM=",
+ "version": "0.20.1-unstable-2024-03-31"
},
"videojs": {
"hash": "sha256-jED3zsDkPN8i6GhBBJwnsHujbuwlHdsVpVqa1/pzSH4="
diff --git a/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix b/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
index f27f82aeff6a..87bdddc690b2 100644
--- a/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
+++ b/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
@@ -1,13 +1,13 @@
{ lib, stdenv, fetchFromGitHub, autoconf, automake, sqlite, pkg-config, dovecot, libtool, xapian, icu64 }:
stdenv.mkDerivation rec {
pname = "dovecot-fts-xapian";
- version = "1.7.9";
+ version = "1.7.10";
src = fetchFromGitHub {
owner = "grosjo";
repo = "fts-xapian";
rev = version;
- sha256 = "sha256-8D2K0i6wJZfvhRIZKqGPS1tWzBOTPKzn1YMAhDIPkw0=";
+ sha256 = "sha256-Gzr0365lY9wAvmXeVungD2z44WHC+AI0a1xLWy3mCK4=";
};
buildInputs = [ dovecot xapian icu64 sqlite ];
diff --git a/pkgs/servers/openafs/1.8/module.nix b/pkgs/servers/openafs/1.8/module.nix
index bdb4286afa85..00de1015beeb 100644
--- a/pkgs/servers/openafs/1.8/module.nix
+++ b/pkgs/servers/openafs/1.8/module.nix
@@ -14,11 +14,9 @@
, fetchpatch
}:
-with (import ./srcs.nix {
- inherit fetchurl;
-});
-
let
+ inherit (import ./srcs.nix { inherit fetchurl; }) src version;
+
modDestDir = "$out/lib/modules/${kernel.modDirVersion}/extra/openafs";
kernelBuildDir = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
diff --git a/pkgs/servers/sickbeard/sickgear.nix b/pkgs/servers/sickbeard/sickgear.nix
index c240c5d7ffda..2f1949ad6430 100644
--- a/pkgs/servers/sickbeard/sickgear.nix
+++ b/pkgs/servers/sickbeard/sickgear.nix
@@ -4,13 +4,13 @@ let
pythonEnv = python3.withPackages(ps: with ps; [ cheetah3 lxml ]);
in stdenv.mkDerivation rec {
pname = "sickgear";
- version = "3.30.15";
+ version = "3.30.16";
src = fetchFromGitHub {
owner = "SickGear";
repo = "SickGear";
rev = "release_${version}";
- hash = "sha256-/6D4jehI94KwE5BFZiMWddcinwmU8Rb/83NifTEvudA=";
+ hash = "sha256-9DeHA7wBHz4gjqtRF3uaHKG9EEnjQmmEPvpqKaffJyg=";
};
patches = [
diff --git a/pkgs/tools/backup/kopia/default.nix b/pkgs/tools/backup/kopia/default.nix
index 2bd82bb44d6f..a0dac3e33c91 100644
--- a/pkgs/tools/backup/kopia/default.nix
+++ b/pkgs/tools/backup/kopia/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "kopia";
- version = "0.16.0";
+ version = "0.16.1";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
- hash = "sha256-GWOPGp9YUw2wjoTNdMooCgUUJwEoVIAlnLDh4Z6UQhk=";
+ hash = "sha256-q22iK467dCW9y0ephVA+V9L9drO2631l4cLlphhdwnQ=";
};
- vendorHash = "sha256-ht8YjrcWT2uWOrxMdtyCs6oTVziyPYfw3hVepkLMcks=";
+ vendorHash = "sha256-5lm3N9F1Pe/lSA63qk8/azo5FZzTvJE/Is2N9WKT+7k=";
doCheck = false;
diff --git a/pkgs/tools/graphics/vulkan-caps-viewer/default.nix b/pkgs/tools/graphics/vulkan-caps-viewer/default.nix
index 4ab820b512e3..239d8c5d652c 100644
--- a/pkgs/tools/graphics/vulkan-caps-viewer/default.nix
+++ b/pkgs/tools/graphics/vulkan-caps-viewer/default.nix
@@ -11,13 +11,13 @@
stdenv.mkDerivation rec {
pname = "vulkan-caps-viewer";
- version = "3.34";
+ version = "3.40";
src = fetchFromGitHub {
owner = "SaschaWillems";
repo = "VulkanCapsViewer";
rev = version;
- hash = "sha256-F1D/+Q/GXqQazTNgwdiHS9qqIHy0YGssmagw615E+xg=";
+ hash = "sha256-bFBwv7VmZlw/00ZP0sfrLZIvaGucXj8OqkFSWubD7O4=";
# Note: this derivation strictly requires vulkan-header to be the same it was developed against.
# To help us, they've put it in a git-submodule.
# The result will work with any vulkan-loader version.
diff --git a/pkgs/tools/misc/chezmoi/default.nix b/pkgs/tools/misc/chezmoi/default.nix
index 0533a0a4e81c..cc025806f738 100644
--- a/pkgs/tools/misc/chezmoi/default.nix
+++ b/pkgs/tools/misc/chezmoi/default.nix
@@ -6,16 +6,16 @@
buildGoModule rec {
pname = "chezmoi";
- version = "2.47.2";
+ version = "2.47.3";
src = fetchFromGitHub {
owner = "twpayne";
repo = "chezmoi";
rev = "v${version}";
- hash = "sha256-XjPeOTVoWcAWq8wb3RJCsIVMN4zF5ovAni+fWrR1P+I=";
+ hash = "sha256-Z9NXYtYaV4jhUK2JEpxleYVG6Vo/nKeD/qBqagzkmNE=";
};
- vendorHash = "sha256-ZtxX8BTX+7SfRxdxNWAy3wNTl8H7yoBNJr99dzCA+uk=";
+ vendorHash = "sha256-IbNEKj8wJpsQO9bXrsH4OJUIhez9merFSWydhSHbvRQ=";
doCheck = false;
diff --git a/pkgs/tools/misc/pandoc-include/default.nix b/pkgs/tools/misc/pandoc-include/default.nix
index d55821f92099..eafa1221a803 100644
--- a/pkgs/tools/misc/pandoc-include/default.nix
+++ b/pkgs/tools/misc/pandoc-include/default.nix
@@ -9,14 +9,14 @@
buildPythonApplication rec {
pname = "pandoc-include";
- version = "1.3.0";
+ version = "1.3.1";
pyproject = true;
src = fetchFromGitHub {
owner = "DCsunset";
repo = "pandoc-include";
rev = "refs/tags/v${version}";
- hash = "sha256-aqewWSPxl3BpUIise/rPgBQPsyCOxU6gBlzT1u2mHY0=";
+ hash = "sha256-8TIGw6p9c61oSH3ld14rmeG6wZY9u9JHALImxXM3c3Y=";
};
nativeBuildInputs = [
diff --git a/pkgs/tools/misc/polar/default.nix b/pkgs/tools/misc/polar/default.nix
index 022752bbc75d..2edf40ffb292 100644
--- a/pkgs/tools/misc/polar/default.nix
+++ b/pkgs/tools/misc/polar/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
'';
buildInputs = [ gems ruby ];
- # See: https://nixos.wiki/wiki/Packaging/Ruby
+ # See: https://wiki.nixos.org/wiki/Packaging/Ruby
#
# Put library content under lib/polar and the raw scripts under share/polar.
# Then, wrap the scripts so that they use the correct ruby environment and put
diff --git a/pkgs/tools/misc/smenu/default.nix b/pkgs/tools/misc/smenu/default.nix
index d2d893936f50..8521e549ecc6 100644
--- a/pkgs/tools/misc/smenu/default.nix
+++ b/pkgs/tools/misc/smenu/default.nix
@@ -1,14 +1,14 @@
{ lib, stdenv, fetchFromGitHub, ncurses }:
stdenv.mkDerivation rec {
- version = "1.3.0";
+ version = "1.4.0";
pname = "smenu";
src = fetchFromGitHub {
owner = "p-gen";
repo = "smenu";
rev = "v${version}";
- sha256 = "sha256-r2N+MmZI2KCuYarrFL2Xn5hu4FO3n5MqADRuTXMOtk0=";
+ sha256 = "sha256-pAbtTqDIdDWReeaRK7UHXh/PS5f44/PRWaICluH02ec=";
};
buildInputs = [ ncurses ];
diff --git a/pkgs/tools/misc/websocat/default.nix b/pkgs/tools/misc/websocat/default.nix
index baef5b264502..786062cfffb9 100644
--- a/pkgs/tools/misc/websocat/default.nix
+++ b/pkgs/tools/misc/websocat/default.nix
@@ -3,16 +3,16 @@
rustPlatform.buildRustPackage rec {
pname = "websocat";
- version = "1.12.0";
+ version = "1.13.0";
src = fetchFromGitHub {
owner = "vi";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-wyVys+1g2klgwFHlKHI0ztd2qSlWyNXJoFvFCd1PGjo=";
+ sha256 = "sha256-tQvI3wlNDa+S3KK4z0NFGuB/QLXlSsyipvzO0xIrBIo=";
};
- cargoHash = "sha256-fakXOPQOEaKEt+AeOYlhumULJyjRHHXFKz4o9AD7WE0=";
+ cargoHash = "sha256-hkfFhx0y2v122ozeWMm+tu+EHSxzu/bSbCpXKIm57rQ=";
nativeBuildInputs = [ pkg-config makeWrapper ];
buildInputs = [ openssl ]
diff --git a/pkgs/tools/networking/dropbear/default.nix b/pkgs/tools/networking/dropbear/default.nix
index 023639d3910d..f64e51555bdd 100644
--- a/pkgs/tools/networking/dropbear/default.nix
+++ b/pkgs/tools/networking/dropbear/default.nix
@@ -1,5 +1,4 @@
-{ lib, stdenv, fetchurl, glibc, zlib, libxcrypt
-, enableStatic ? stdenv.hostPlatform.isStatic
+{ lib, stdenv, fetchurl, zlib, libxcrypt
, enableSCP ? false
, sftpPath ? "/run/current-system/sw/libexec/sftp-server"
}:
@@ -23,9 +22,6 @@ stdenv.mkDerivation rec {
sha256 = "sha256-vFoSH/vJS1FxrV6+Ab5CdG1Qqnl8lUmkY5iUoWdJRDs=";
};
- dontDisableStatic = enableStatic;
- configureFlags = lib.optional enableStatic "LDFLAGS=-static";
-
CFLAGS = lib.pipe (lib.attrNames dflags) [
(builtins.map (name: "-D${name}=\\\"${dflags.${name}}\\\""))
(lib.concatStringsSep " ")
@@ -49,7 +45,7 @@ stdenv.mkDerivation rec {
./pass-path.patch
];
- buildInputs = [ zlib libxcrypt ] ++ lib.optionals enableStatic [ glibc.static zlib.static ];
+ buildInputs = [ zlib libxcrypt ];
meta = with lib; {
description = "A small footprint implementation of the SSH 2 protocol";
diff --git a/pkgs/tools/security/bash-supergenpass/default.nix b/pkgs/tools/security/bash-supergenpass/default.nix
index ae831bf86753..f2d2aee7146b 100644
--- a/pkgs/tools/security/bash-supergenpass/default.nix
+++ b/pkgs/tools/security/bash-supergenpass/default.nix
@@ -8,15 +8,15 @@
stdenv.mkDerivation {
pname = "bash-supergenpass";
- version = "unstable-2020-02-03";
+ version = "unstable-2024-03-24";
nativeBuildInputs = [ makeWrapper ];
src = fetchFromGitHub {
owner = "lanzz";
repo = "bash-supergenpass";
- rev = "e5d96599b65d65a37148996f00f9d057e522e4d8";
- sha256 = "1d8csp94l2p5y5ln53aza5qf246rwmd10043x0x1yrswqrrya40f";
+ rev = "03416ad4d753d825acd0443a01ac13d385d5e048";
+ sha256 = "Q+xmT72UFCc71K87mAzpyTmEIXjR9SqX0xzmQfi5P9k=";
};
installPhase = ''
diff --git a/pkgs/tools/security/bitwarden-directory-connector/default.nix b/pkgs/tools/security/bitwarden-directory-connector/default.nix
index 7bc4d9a1fe83..87b0ff8fd50b 100644
--- a/pkgs/tools/security/bitwarden-directory-connector/default.nix
+++ b/pkgs/tools/security/bitwarden-directory-connector/default.nix
@@ -13,14 +13,14 @@
let
common = { name, npmBuildScript, installPhase }: buildNpmPackage rec {
pname = name;
- version = "2024.3.1";
+ version = "2024.3.2";
nodejs = nodejs_18;
src = fetchFromGitHub {
owner = "bitwarden";
repo = "directory-connector";
rev = "v${version}";
- hash = "sha256-NbyjL6x/Ij5waYlIDNKrg7fDT+co/EcdCW4ZBJ6KV34=";
+ hash = "sha256-CB5HrT+p63zANg1SEoynk6hPPW5DcC9Qfo2+QDy2iwc=";
};
postPatch = ''
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 228cff8fde7a..d13da6315485 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -1040,6 +1040,7 @@ mapAliases ({
### R ###
radare2-cutter = cutter; # Added 2021-03-30
+ railway-travel = diebahn; # Added 2024-04-01
rambox-pro = rambox; # Added 2022-12-12
rarian = throw "rarian has been removed as unused"; # Added 2023-07-05
rccl = throw "'rccl' has been replaced with 'rocmPackages.rccl'"; # Added 2023-10-08
@@ -1318,6 +1319,7 @@ mapAliases ({
yacc = bison; # moved from top-level 2021-03-14
yafaray-core = libyafaray; # Added 2022-09-23
yarn2nix-moretea-openssl_1_1 = throw "'yarn2nix-moretea-openssl_1_1' has been removed."; # Added 2023-02-04
+ ytmdesktop = throw "ytmdesktop was removed because upstream vanished"; # added 2024-03-24
yubikey-manager4 = throw "yubikey-manager4 has been removed, since it is no longer required by yubikey-manager-qt. Please update to yubikey-manager."; # Added 2024-01-14
yuzu-ea = throw "yuzu-ea has been removed from nixpkgs, as it has been taken down upstream"; # Added 2024-03-04
yuzu-early-access = throw "yuzu-early-access has been removed from nixpkgs, as it has been taken down upstream"; # Added 2024-03-04
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index a910dd75a624..9ad5172cb93d 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -3831,8 +3831,6 @@ with pkgs;
github-copilot-intellij-agent = callPackage ../development/tools/github-copilot-intellij-agent { };
- github-desktop = callPackage ../applications/version-management/github-desktop { };
-
github-to-sqlite = with python3Packages; toPythonApplication github-to-sqlite;
gistyc = with python3Packages; toPythonApplication gistyc;
@@ -5179,7 +5177,7 @@ with pkgs;
element-desktop = callPackage ../applications/networking/instant-messengers/element/element-desktop.nix {
inherit (darwin.apple_sdk.frameworks) Security AppKit CoreServices;
- electron = electron_28;
+ electron = electron_29;
};
element-desktop-wayland = writeScriptBin "element-desktop" ''
#!/bin/sh
@@ -23145,8 +23143,6 @@ with pkgs;
libtorrent-rasterbar = libtorrent-rasterbar-2_0_x;
- libtoxcore = callPackage ../development/libraries/libtoxcore { };
-
libtpms = callPackage ../tools/security/libtpms { };
libtap = callPackage ../development/libraries/libtap { };
@@ -35265,8 +35261,6 @@ with pkgs;
toipe = callPackage ../applications/misc/toipe { };
- toxic = callPackage ../applications/networking/instant-messengers/toxic { };
-
toxiproxy = callPackage ../development/tools/toxiproxy { };
tqsl = callPackage ../applications/radio/tqsl { };
@@ -36234,8 +36228,6 @@ with pkgs;
ytcc = callPackage ../tools/networking/ytcc { };
- ytmdesktop = callPackage ../applications/audio/ytmdesktop { };
-
ytmdl = callPackage ../tools/misc/ytmdl { };
yuview = libsForQt5.yuview;