Merge staging-next into staging
This commit is contained in:
		
						commit
						9fb7ecfb57
					
				@ -1,5 +1,11 @@
 | 
			
		||||
# This file contains a list of commits that are not likely what you
 | 
			
		||||
# are looking for in a blame, such as mass reformatting or renaming.
 | 
			
		||||
#
 | 
			
		||||
# If a commit's line ends with `# !autorebase <command>`,
 | 
			
		||||
# where <command> is an idempotent bash command that reapplies the changes from the commit,
 | 
			
		||||
# the `maintainers/scripts/auto-rebase/run.sh` script can be used to rebase
 | 
			
		||||
# across that commit while automatically resolving merge conflicts caused by the commit.
 | 
			
		||||
#
 | 
			
		||||
# You can set this file as a default ignore file for blame by running
 | 
			
		||||
# the following command.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
@ -2792,6 +2792,12 @@
 | 
			
		||||
    githubId = 29384538;
 | 
			
		||||
    keys = [ { fingerprint = "D35E C9CE E631 638F F1D8  B401 6F0E 410D C3EE D02"; } ];
 | 
			
		||||
  };
 | 
			
		||||
  bengsparks = {
 | 
			
		||||
    email = "benjamin.sparks@protonmail.com";
 | 
			
		||||
    github = "bengsparks";
 | 
			
		||||
    githubId = 4313548;
 | 
			
		||||
    name = "Ben Sparks";
 | 
			
		||||
  };
 | 
			
		||||
  benhiemer = {
 | 
			
		||||
    name = "Benedikt Hiemer";
 | 
			
		||||
    email = "ben.email@posteo.de";
 | 
			
		||||
@ -5821,6 +5827,8 @@
 | 
			
		||||
  };
 | 
			
		||||
  DimitarNestorov = {
 | 
			
		||||
    name = "Dimitar Nestorov";
 | 
			
		||||
    email = "nix@dimitarnestorov.com";
 | 
			
		||||
    matrix = "@dimitarnestorov:matrix.org";
 | 
			
		||||
    github = "DimitarNestorov";
 | 
			
		||||
    githubId = 8790386;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										16
									
								
								maintainers/scripts/auto-rebase/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								maintainers/scripts/auto-rebase/README.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
			
		||||
# Auto rebase script
 | 
			
		||||
 | 
			
		||||
The [`./run.sh` script](./run.sh) in this directory rebases the current branch onto a target branch,
 | 
			
		||||
while automatically resolving merge conflicts caused by marked commits in [`.git-blame-ignore-revs`](../../../.git-blame-ignore-revs).
 | 
			
		||||
See the header comment of that file to understand how to mark commits.
 | 
			
		||||
 | 
			
		||||
This is convenient for resolving merge conflicts for pull requests after e.g. treewide reformats.
 | 
			
		||||
 | 
			
		||||
## Testing
 | 
			
		||||
 | 
			
		||||
To run the tests in the [test directory](./test):
 | 
			
		||||
```
 | 
			
		||||
$ cd test
 | 
			
		||||
$ nix-shell
 | 
			
		||||
nix-shell> ./run.sh
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										61
									
								
								maintainers/scripts/auto-rebase/run.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										61
									
								
								maintainers/scripts/auto-rebase/run.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,61 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
set -euo pipefail
 | 
			
		||||
 | 
			
		||||
if (( $# < 1 )); then
 | 
			
		||||
    echo "Usage: $0 TARGET_BRANCH"
 | 
			
		||||
    echo ""
 | 
			
		||||
    echo "TARGET_BRANCH: Branch to rebase the current branch onto, e.g. master or release-24.11"
 | 
			
		||||
    exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
targetBranch=$1
 | 
			
		||||
 | 
			
		||||
# Loop through all autorebase-able commits in .git-blame-ignore-revs on the base branch
 | 
			
		||||
readarray -t autoLines < <(
 | 
			
		||||
  git show "$targetBranch":.git-blame-ignore-revs \
 | 
			
		||||
      | sed -n 's/^\([0-9a-f]\+\).*!autorebase \(.*\)$/\1 \2/p'
 | 
			
		||||
)
 | 
			
		||||
for line in "${autoLines[@]}"; do
 | 
			
		||||
    read -r autoCommit autoCmd <<< "$line"
 | 
			
		||||
 | 
			
		||||
    if ! git cat-file -e "$autoCommit"; then
 | 
			
		||||
        echo "Not a valid commit: $autoCommit"
 | 
			
		||||
        exit 1
 | 
			
		||||
    elif git merge-base --is-ancestor "$autoCommit" HEAD; then
 | 
			
		||||
        # Skip commits that we have already
 | 
			
		||||
        continue
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    echo -e "\e[32mAuto-rebasing commit $autoCommit with command '$autoCmd'\e[0m"
 | 
			
		||||
 | 
			
		||||
    # The commit before the commit
 | 
			
		||||
    parent=$(git rev-parse "$autoCommit"~)
 | 
			
		||||
 | 
			
		||||
    echo "Rebasing on top of the previous commit, might need to manually resolve conflicts"
 | 
			
		||||
    if ! git rebase --onto "$parent" "$(git merge-base "$targetBranch" HEAD)"; then
 | 
			
		||||
      echo -e "\e[33m\e[1mRestart this script after resolving the merge conflict as described above\e[0m"
 | 
			
		||||
      exit 1
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    echo "Reapplying the commit on each commit of our branch"
 | 
			
		||||
    # This does two things:
 | 
			
		||||
    # - The parent filter inserts the auto commit between its parent and
 | 
			
		||||
    #   and our first commit. By itself, this causes our first commit to
 | 
			
		||||
    #   effectively "undo" the auto commit, since the tree of our first
 | 
			
		||||
    #   commit is unchanged. This is why the following is also necessary:
 | 
			
		||||
    # - The tree filter runs the command on each of our own commits,
 | 
			
		||||
    #   effectively reapplying it.
 | 
			
		||||
    FILTER_BRANCH_SQUELCH_WARNING=1 git filter-branch \
 | 
			
		||||
        --parent-filter "sed 's/$parent/$autoCommit/'" \
 | 
			
		||||
        --tree-filter "$autoCmd" \
 | 
			
		||||
        "$autoCommit"..HEAD
 | 
			
		||||
 | 
			
		||||
    # A tempting alternative is something along the lines of
 | 
			
		||||
    #   git rebase --strategy-option=theirs --onto "$rev" "$parent" \
 | 
			
		||||
    #     --exec '$autoCmd && git commit --all --amend --no-edit' \
 | 
			
		||||
    # but this causes problems because merges are not guaranteed to maintain the formatting.
 | 
			
		||||
    # The ./test.sh exercises such a case.
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
echo "Rebasing on top of the latest target branch commit"
 | 
			
		||||
git rebase --onto "$targetBranch" "$(git merge-base "$targetBranch" HEAD)"
 | 
			
		||||
							
								
								
									
										46
									
								
								maintainers/scripts/auto-rebase/test/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								maintainers/scripts/auto-rebase/test/default.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,46 @@
 | 
			
		||||
let
 | 
			
		||||
  pkgs = import ../../../.. {
 | 
			
		||||
    config = { };
 | 
			
		||||
    overlays = [ ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  inherit (pkgs)
 | 
			
		||||
    lib
 | 
			
		||||
    stdenvNoCC
 | 
			
		||||
    gitMinimal
 | 
			
		||||
    treefmt
 | 
			
		||||
    nixfmt-rfc-style
 | 
			
		||||
    ;
 | 
			
		||||
in
 | 
			
		||||
 | 
			
		||||
stdenvNoCC.mkDerivation {
 | 
			
		||||
  name = "test";
 | 
			
		||||
  src = lib.fileset.toSource {
 | 
			
		||||
    root = ./..;
 | 
			
		||||
    fileset = lib.fileset.unions [
 | 
			
		||||
      ../run.sh
 | 
			
		||||
      ./run.sh
 | 
			
		||||
      ./first.diff
 | 
			
		||||
      ./second.diff
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
  nativeBuildInputs = [
 | 
			
		||||
    gitMinimal
 | 
			
		||||
    treefmt
 | 
			
		||||
    nixfmt-rfc-style
 | 
			
		||||
  ];
 | 
			
		||||
  patchPhase = ''
 | 
			
		||||
    patchShebangs .
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  buildPhase = ''
 | 
			
		||||
    export HOME=$(mktemp -d)
 | 
			
		||||
    export PAGER=true
 | 
			
		||||
    git config --global user.email "Your Name"
 | 
			
		||||
    git config --global user.name "your.name@example.com"
 | 
			
		||||
    ./test/run.sh
 | 
			
		||||
  '';
 | 
			
		||||
  installPhase = ''
 | 
			
		||||
    touch $out
 | 
			
		||||
  '';
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										11
									
								
								maintainers/scripts/auto-rebase/test/first.diff
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								maintainers/scripts/auto-rebase/test/first.diff
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
			
		||||
diff --git a/b.nix b/b.nix
 | 
			
		||||
index 9d18f25..67b0466 100644
 | 
			
		||||
--- a/b.nix
 | 
			
		||||
+++ b/b.nix
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
 {
 | 
			
		||||
   this = "is";
 | 
			
		||||
 
 | 
			
		||||
-  some = "set";
 | 
			
		||||
+  some = "value";
 | 
			
		||||
 }
 | 
			
		||||
							
								
								
									
										112
									
								
								maintainers/scripts/auto-rebase/test/run.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										112
									
								
								maintainers/scripts/auto-rebase/test/run.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,112 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
set -euo pipefail
 | 
			
		||||
 | 
			
		||||
# https://stackoverflow.com/a/246128/6605742
 | 
			
		||||
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
 | 
			
		||||
 | 
			
		||||
# Allows using a local directory for temporary files,
 | 
			
		||||
# which can then be inspected after the run
 | 
			
		||||
if (( $# > 0 )); then
 | 
			
		||||
    tmp=$(realpath "$1/tmp")
 | 
			
		||||
    if [[ -e "$tmp" ]]; then
 | 
			
		||||
        rm -rf "$tmp"
 | 
			
		||||
    fi
 | 
			
		||||
    mkdir -p "$tmp"
 | 
			
		||||
else
 | 
			
		||||
    tmp=$(mktemp -d)
 | 
			
		||||
    trap 'rm -rf "$tmp"' exit
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Tests a scenario where two poorly formatted files were modified on both the
 | 
			
		||||
# main branch and the feature branch, while the main branch also did a treewide
 | 
			
		||||
# format.
 | 
			
		||||
 | 
			
		||||
git init "$tmp/repo"
 | 
			
		||||
cd "$tmp/repo" || exit
 | 
			
		||||
git branch -m main
 | 
			
		||||
 | 
			
		||||
# Some initial poorly-formatted files
 | 
			
		||||
cat > a.nix <<EOF
 | 
			
		||||
{ x
 | 
			
		||||
, y
 | 
			
		||||
 | 
			
		||||
, z
 | 
			
		||||
}:
 | 
			
		||||
null
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
cat > b.nix <<EOF
 | 
			
		||||
{
 | 
			
		||||
  this = "is";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  some="set" ;
 | 
			
		||||
 }
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
git add -A
 | 
			
		||||
git commit -m "init"
 | 
			
		||||
 | 
			
		||||
git switch -c feature
 | 
			
		||||
 | 
			
		||||
# Some changes
 | 
			
		||||
sed 's/set/value/' -i b.nix
 | 
			
		||||
git commit -a -m "change b"
 | 
			
		||||
sed '/, y/d' -i a.nix
 | 
			
		||||
git commit -a -m "change a"
 | 
			
		||||
 | 
			
		||||
git switch main
 | 
			
		||||
 | 
			
		||||
# A change to cause a merge conflict
 | 
			
		||||
sed 's/y/why/' -i a.nix
 | 
			
		||||
git commit -a -m "change a"
 | 
			
		||||
 | 
			
		||||
cat > treefmt.toml <<EOF
 | 
			
		||||
[formatter.nix]
 | 
			
		||||
command = "nixfmt"
 | 
			
		||||
includes = [ "*.nix" ]
 | 
			
		||||
EOF
 | 
			
		||||
git add -A
 | 
			
		||||
git commit -a -m "introduce treefmt"
 | 
			
		||||
 | 
			
		||||
# Treewide reformat
 | 
			
		||||
treefmt
 | 
			
		||||
git commit -a -m "format"
 | 
			
		||||
 | 
			
		||||
echo "$(git rev-parse HEAD) # !autorebase treefmt" > .git-blame-ignore-revs
 | 
			
		||||
git add -A
 | 
			
		||||
git commit -a -m "update ignored revs"
 | 
			
		||||
 | 
			
		||||
git switch feature
 | 
			
		||||
 | 
			
		||||
# Setup complete
 | 
			
		||||
 | 
			
		||||
git log --graph --oneline feature main
 | 
			
		||||
 | 
			
		||||
# This expectedly fails with a merge conflict that has to be manually resolved
 | 
			
		||||
"$SCRIPT_DIR"/../run.sh main && exit 1
 | 
			
		||||
sed '/<<</,/>>>/d' -i a.nix
 | 
			
		||||
git add a.nix
 | 
			
		||||
GIT_EDITOR=true git rebase --continue
 | 
			
		||||
 | 
			
		||||
"$SCRIPT_DIR"/../run.sh main
 | 
			
		||||
 | 
			
		||||
git log --graph --oneline feature main
 | 
			
		||||
 | 
			
		||||
checkDiff() {
 | 
			
		||||
    local ref=$1
 | 
			
		||||
    local file=$2
 | 
			
		||||
    expectedDiff=$(cat "$file")
 | 
			
		||||
    actualDiff=$(git diff "$ref"~ "$ref")
 | 
			
		||||
    if [[ "$expectedDiff" != "$actualDiff" ]]; then
 | 
			
		||||
        echo -e "Expected this diff:\n$expectedDiff"
 | 
			
		||||
        echo -e "But got this diff:\n$actualDiff"
 | 
			
		||||
        exit 1
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
checkDiff HEAD~ "$SCRIPT_DIR"/first.diff
 | 
			
		||||
checkDiff HEAD "$SCRIPT_DIR"/second.diff
 | 
			
		||||
 | 
			
		||||
echo "Success!"
 | 
			
		||||
							
								
								
									
										11
									
								
								maintainers/scripts/auto-rebase/test/second.diff
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								maintainers/scripts/auto-rebase/test/second.diff
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
			
		||||
diff --git a/a.nix b/a.nix
 | 
			
		||||
index 18ba7ce..bcf38bc 100644
 | 
			
		||||
--- a/a.nix
 | 
			
		||||
+++ b/a.nix
 | 
			
		||||
@@ -1,6 +1,5 @@
 | 
			
		||||
 {
 | 
			
		||||
   x,
 | 
			
		||||
-  why,
 | 
			
		||||
 
 | 
			
		||||
   z,
 | 
			
		||||
 }:
 | 
			
		||||
@ -303,6 +303,8 @@
 | 
			
		||||
 | 
			
		||||
- `matomo` now defaults to version 5 (previously available as `matomo_5`). Version 4 has been removed as it reached EOL on December 19, 2024.
 | 
			
		||||
 | 
			
		||||
- `matomo-beta` has been removed as the version of the `matomo` package can now be easily overriden through `overrideAttrs` (see [PR #374022](https://github.com/NixOS/nixpkgs/pull/374022))
 | 
			
		||||
 | 
			
		||||
- `docker_24` has been removed, as it was EOL with vulnerabilites since June 08, 2024.
 | 
			
		||||
 | 
			
		||||
- `containerd` has been updated to v2, which contains breaking changes. See the [containerd
 | 
			
		||||
 | 
			
		||||
@ -5,65 +5,80 @@
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
with lib;
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
  cfg = config.services.varnish;
 | 
			
		||||
 | 
			
		||||
  # Varnish has very strong opinions and very complicated code around handling
 | 
			
		||||
  # the stateDir. After a lot of back and forth, we decided that we a)
 | 
			
		||||
  # do not want a configurable option here, as most of the handling depends
 | 
			
		||||
  # on the version and the compile time options. Putting everything into
 | 
			
		||||
  # /var/run (RAM backed) is absolutely recommended by Varnish anyways.
 | 
			
		||||
  # We do need to pay attention to the version-dependend variations, though!
 | 
			
		||||
  stateDir =
 | 
			
		||||
    if
 | 
			
		||||
      (lib.versionOlder cfg.package.version "7")
 | 
			
		||||
    # Remove after Varnish 6.0 is gone. In 6.0 varnishadm always appends the
 | 
			
		||||
    # hostname (by default) and can't be nudged to not use any name. This has
 | 
			
		||||
    # long changed by 7.5 and can be used without the host name.
 | 
			
		||||
    then
 | 
			
		||||
      "/var/run/varnish/${config.networking.hostName}"
 | 
			
		||||
    # Newer varnish uses this:
 | 
			
		||||
    else
 | 
			
		||||
      "/var/run/varnishd";
 | 
			
		||||
 | 
			
		||||
  commandLine =
 | 
			
		||||
    "-f ${pkgs.writeText "default.vcl" cfg.config}"
 | 
			
		||||
    +
 | 
			
		||||
      optionalString (cfg.extraModules != [ ])
 | 
			
		||||
      lib.optionalString (cfg.extraModules != [ ])
 | 
			
		||||
        " -p vmod_path='${
 | 
			
		||||
           makeSearchPathOutput "lib" "lib/varnish/vmods" ([ cfg.package ] ++ cfg.extraModules)
 | 
			
		||||
           lib.makeSearchPathOutput "lib" "lib/varnish/vmods" ([ cfg.package ] ++ cfg.extraModules)
 | 
			
		||||
         }' -r vmod_path";
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    (lib.mkRemovedOptionModule [
 | 
			
		||||
      "services"
 | 
			
		||||
      "varnish"
 | 
			
		||||
      "stateDir"
 | 
			
		||||
    ] "The `stateDir` option never was functional or useful. varnish uses compile-time settings.")
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  options = {
 | 
			
		||||
    services.varnish = {
 | 
			
		||||
      enable = mkEnableOption "Varnish Server";
 | 
			
		||||
      enable = lib.mkEnableOption "Varnish Server";
 | 
			
		||||
 | 
			
		||||
      enableConfigCheck = mkEnableOption "checking the config during build time" // {
 | 
			
		||||
      enableConfigCheck = lib.mkEnableOption "checking the config during build time" // {
 | 
			
		||||
        default = true;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      package = mkPackageOption pkgs "varnish" { };
 | 
			
		||||
      package = lib.mkPackageOption pkgs "varnish" { };
 | 
			
		||||
 | 
			
		||||
      http_address = mkOption {
 | 
			
		||||
        type = types.str;
 | 
			
		||||
      http_address = lib.mkOption {
 | 
			
		||||
        type = lib.types.str;
 | 
			
		||||
        default = "*:6081";
 | 
			
		||||
        description = ''
 | 
			
		||||
          HTTP listen address and port.
 | 
			
		||||
        '';
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      config = mkOption {
 | 
			
		||||
        type = types.lines;
 | 
			
		||||
      config = lib.mkOption {
 | 
			
		||||
        type = lib.types.lines;
 | 
			
		||||
        description = ''
 | 
			
		||||
          Verbatim default.vcl configuration.
 | 
			
		||||
        '';
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      stateDir = mkOption {
 | 
			
		||||
        type = types.path;
 | 
			
		||||
        default = "/run/varnish/${config.networking.hostName}";
 | 
			
		||||
        defaultText = literalExpression ''"/run/varnish/''${config.networking.hostName}"'';
 | 
			
		||||
        description = ''
 | 
			
		||||
          Directory holding all state for Varnish to run. Note that this should be a tmpfs in order to avoid performance issues and crashes.
 | 
			
		||||
        '';
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      extraModules = mkOption {
 | 
			
		||||
        type = types.listOf types.package;
 | 
			
		||||
      extraModules = lib.mkOption {
 | 
			
		||||
        type = lib.types.listOf lib.types.package;
 | 
			
		||||
        default = [ ];
 | 
			
		||||
        example = literalExpression "[ pkgs.varnishPackages.geoip ]";
 | 
			
		||||
        example = lib.literalExpression "[ pkgs.varnishPackages.geoip ]";
 | 
			
		||||
        description = ''
 | 
			
		||||
          Varnish modules (except 'std').
 | 
			
		||||
        '';
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      extraCommandLine = mkOption {
 | 
			
		||||
        type = types.str;
 | 
			
		||||
      extraCommandLine = lib.mkOption {
 | 
			
		||||
        type = lib.types.str;
 | 
			
		||||
        default = "";
 | 
			
		||||
        example = "-s malloc,256M";
 | 
			
		||||
        description = ''
 | 
			
		||||
@ -74,30 +89,20 @@ in
 | 
			
		||||
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  config = mkIf cfg.enable {
 | 
			
		||||
 | 
			
		||||
  config = lib.mkIf cfg.enable {
 | 
			
		||||
    systemd.services.varnish = {
 | 
			
		||||
      description = "Varnish";
 | 
			
		||||
      wantedBy = [ "multi-user.target" ];
 | 
			
		||||
      after = [ "network.target" ];
 | 
			
		||||
      preStart = mkIf (!(lib.hasPrefix "/run/" cfg.stateDir)) ''
 | 
			
		||||
        mkdir -p ${cfg.stateDir}
 | 
			
		||||
        chown -R varnish:varnish ${cfg.stateDir}
 | 
			
		||||
      '';
 | 
			
		||||
      postStop = mkIf (!(lib.hasPrefix "/run/" cfg.stateDir)) ''
 | 
			
		||||
        rm -rf ${cfg.stateDir}
 | 
			
		||||
      '';
 | 
			
		||||
      serviceConfig = {
 | 
			
		||||
        Type = "simple";
 | 
			
		||||
        PermissionsStartOnly = true;
 | 
			
		||||
        ExecStart = "${cfg.package}/sbin/varnishd -a ${cfg.http_address} -n ${cfg.stateDir} -F ${cfg.extraCommandLine} ${commandLine}";
 | 
			
		||||
        ExecStart = "${cfg.package}/sbin/varnishd -a ${cfg.http_address} -n ${stateDir} -F ${cfg.extraCommandLine} ${commandLine}";
 | 
			
		||||
        Restart = "always";
 | 
			
		||||
        RestartSec = "5s";
 | 
			
		||||
        User = "varnish";
 | 
			
		||||
        Group = "varnish";
 | 
			
		||||
        RuntimeDirectory = mkIf (lib.hasPrefix "/run/" cfg.stateDir) (
 | 
			
		||||
          lib.removePrefix "/run/" cfg.stateDir
 | 
			
		||||
        );
 | 
			
		||||
        RuntimeDirectory = lib.removePrefix "/var/run/" stateDir;
 | 
			
		||||
        AmbientCapabilities = "cap_net_bind_service";
 | 
			
		||||
        NoNewPrivileges = true;
 | 
			
		||||
        LimitNOFILE = 131072;
 | 
			
		||||
@ -107,7 +112,7 @@ in
 | 
			
		||||
    environment.systemPackages = [ cfg.package ];
 | 
			
		||||
 | 
			
		||||
    # check .vcl syntax at compile time (e.g. before nixops deployment)
 | 
			
		||||
    system.checks = mkIf cfg.enableConfigCheck [
 | 
			
		||||
    system.checks = lib.mkIf cfg.enableConfigCheck [
 | 
			
		||||
      (pkgs.runCommand "check-varnish-syntax" { } ''
 | 
			
		||||
        ${cfg.package}/bin/varnishd -C ${commandLine} 2> $out || (cat $out; exit 1)
 | 
			
		||||
      '')
 | 
			
		||||
 | 
			
		||||
@ -587,7 +587,7 @@ in {
 | 
			
		||||
  mate = handleTest ./mate.nix {};
 | 
			
		||||
  mate-wayland = handleTest ./mate-wayland.nix {};
 | 
			
		||||
  matter-server = handleTest ./matter-server.nix {};
 | 
			
		||||
  matomo = handleTest ./matomo.nix {};
 | 
			
		||||
  matomo = runTest ./matomo.nix;
 | 
			
		||||
  matrix-appservice-irc = runTest ./matrix/appservice-irc.nix;
 | 
			
		||||
  matrix-conduit = handleTest ./matrix/conduit.nix {};
 | 
			
		||||
  matrix-synapse = handleTest ./matrix/synapse.nix {};
 | 
			
		||||
@ -1143,6 +1143,7 @@ in {
 | 
			
		||||
  v2ray = handleTest ./v2ray.nix {};
 | 
			
		||||
  varnish60 = handleTest ./varnish.nix { package = pkgs.varnish60; };
 | 
			
		||||
  varnish75 = handleTest ./varnish.nix { package = pkgs.varnish75; };
 | 
			
		||||
  varnish76 = handleTest ./varnish.nix { package = pkgs.varnish76; };
 | 
			
		||||
  vault = handleTest ./vault.nix {};
 | 
			
		||||
  vault-agent = handleTest ./vault-agent.nix {};
 | 
			
		||||
  vault-dev = handleTest ./vault-dev.nix {};
 | 
			
		||||
 | 
			
		||||
@ -1,84 +1,58 @@
 | 
			
		||||
{ lib, ... }:
 | 
			
		||||
{
 | 
			
		||||
  system ? builtins.currentSystem,
 | 
			
		||||
  config ? { },
 | 
			
		||||
  pkgs ? import ../.. { inherit system config; },
 | 
			
		||||
}:
 | 
			
		||||
  name = "matomo";
 | 
			
		||||
 | 
			
		||||
with import ../lib/testing-python.nix { inherit system pkgs; };
 | 
			
		||||
with pkgs.lib;
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
  matomoTest =
 | 
			
		||||
    package:
 | 
			
		||||
    makeTest {
 | 
			
		||||
      name = "matomo";
 | 
			
		||||
 | 
			
		||||
      nodes.machine =
 | 
			
		||||
        { config, pkgs, ... }:
 | 
			
		||||
        {
 | 
			
		||||
          services.matomo = {
 | 
			
		||||
            package = package;
 | 
			
		||||
            enable = true;
 | 
			
		||||
            nginx = {
 | 
			
		||||
              forceSSL = false;
 | 
			
		||||
              enableACME = false;
 | 
			
		||||
            };
 | 
			
		||||
          };
 | 
			
		||||
          services.mysql = {
 | 
			
		||||
            enable = true;
 | 
			
		||||
            package = pkgs.mariadb;
 | 
			
		||||
          };
 | 
			
		||||
          services.nginx.enable = true;
 | 
			
		||||
  nodes.machine =
 | 
			
		||||
    { config, pkgs, ... }:
 | 
			
		||||
    {
 | 
			
		||||
      services.matomo = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        nginx = {
 | 
			
		||||
          forceSSL = false;
 | 
			
		||||
          enableACME = false;
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
      testScript = ''
 | 
			
		||||
        start_all()
 | 
			
		||||
        machine.wait_for_unit("mysql.service")
 | 
			
		||||
        machine.wait_for_unit("phpfpm-matomo.service")
 | 
			
		||||
        machine.wait_for_unit("nginx.service")
 | 
			
		||||
 | 
			
		||||
        with subtest("matomo.js reachable via HTTP"):
 | 
			
		||||
          machine.succeed("curl -sSfk http://machine/matomo.js")
 | 
			
		||||
 | 
			
		||||
        with subtest("js/piwik.js reachable via HTTP"):
 | 
			
		||||
          machine.succeed("curl -sSfk http://machine/js/piwik.js")
 | 
			
		||||
 | 
			
		||||
        with subtest("matomo.php (API) reachable via HTTP"):
 | 
			
		||||
          machine.succeed("curl -sSfk http://machine/matomo.php")
 | 
			
		||||
 | 
			
		||||
        # without the grep the command does not produce valid utf-8 for some reason
 | 
			
		||||
        with subtest("welcome screen loads"):
 | 
			
		||||
            machine.succeed(
 | 
			
		||||
                "curl -sSfL http://localhost/ | grep '<title>Matomo[^<]*Installation'"
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
        with subtest("killing the phpfpm process should trigger an automatic restart"):
 | 
			
		||||
          machine.succeed("systemctl kill -s KILL phpfpm-matomo")
 | 
			
		||||
          machine.sleep(1)
 | 
			
		||||
          machine.wait_for_unit("phpfpm-matomo.service")
 | 
			
		||||
      '';
 | 
			
		||||
      };
 | 
			
		||||
      services.mysql = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        package = pkgs.mariadb;
 | 
			
		||||
      };
 | 
			
		||||
      services.nginx.enable = true;
 | 
			
		||||
    };
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  matomo = matomoTest pkgs.matomo // {
 | 
			
		||||
    name = "matomo";
 | 
			
		||||
    meta.maintainers =
 | 
			
		||||
      with maintainers;
 | 
			
		||||
      [
 | 
			
		||||
        florianjacob
 | 
			
		||||
        mmilata
 | 
			
		||||
        twey
 | 
			
		||||
        boozedog
 | 
			
		||||
      ]
 | 
			
		||||
      ++ lib.teams.flyingcircus.members;
 | 
			
		||||
  };
 | 
			
		||||
  matomo-beta = matomoTest pkgs.matomo-beta // {
 | 
			
		||||
    name = "matomo-beta";
 | 
			
		||||
    meta.maintainers = with maintainers; [
 | 
			
		||||
 | 
			
		||||
  testScript = ''
 | 
			
		||||
    start_all()
 | 
			
		||||
    machine.wait_for_unit("mysql.service")
 | 
			
		||||
    machine.wait_for_unit("phpfpm-matomo.service")
 | 
			
		||||
    machine.wait_for_unit("nginx.service")
 | 
			
		||||
 | 
			
		||||
    with subtest("matomo.js reachable via HTTP"):
 | 
			
		||||
      machine.succeed("curl -sSfk http://machine/matomo.js")
 | 
			
		||||
 | 
			
		||||
    with subtest("js/piwik.js reachable via HTTP"):
 | 
			
		||||
      machine.succeed("curl -sSfk http://machine/js/piwik.js")
 | 
			
		||||
 | 
			
		||||
    with subtest("matomo.php (API) reachable via HTTP"):
 | 
			
		||||
      machine.succeed("curl -sSfk http://machine/matomo.php")
 | 
			
		||||
 | 
			
		||||
    # without the grep the command does not produce valid utf-8 for some reason
 | 
			
		||||
    with subtest("welcome screen loads"):
 | 
			
		||||
      machine.succeed(
 | 
			
		||||
        "curl -sSfL http://localhost/ | grep '<title>Matomo[^<]*Installation'"
 | 
			
		||||
      )
 | 
			
		||||
 | 
			
		||||
    with subtest("killing the phpfpm process should trigger an automatic restart"):
 | 
			
		||||
      machine.succeed("systemctl kill -s KILL phpfpm-matomo")
 | 
			
		||||
      machine.sleep(1)
 | 
			
		||||
      machine.wait_for_unit("phpfpm-matomo.service")
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  meta.maintainers =
 | 
			
		||||
    with lib.maintainers;
 | 
			
		||||
    [
 | 
			
		||||
      florianjacob
 | 
			
		||||
      mmilata
 | 
			
		||||
      twey
 | 
			
		||||
      boozedog
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
    ]
 | 
			
		||||
    ++ lib.teams.flyingcircus.members;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -56,8 +56,12 @@ import ./make-test-python.nix (
 | 
			
		||||
 | 
			
		||||
      client.wait_until_succeeds("curl -f http://varnish/nix-cache-info");
 | 
			
		||||
 | 
			
		||||
      client.wait_until_succeeds("nix-store -r ${testPath}");
 | 
			
		||||
      client.succeed("${testPath}/bin/hello");
 | 
			
		||||
      client.wait_until_succeeds("nix-store -r ${testPath}")
 | 
			
		||||
      client.succeed("${testPath}/bin/hello")
 | 
			
		||||
 | 
			
		||||
      output = varnish.succeed("varnishadm status")
 | 
			
		||||
      print(output)
 | 
			
		||||
      assert "Child in state running" in output, "Unexpected varnishadm response"
 | 
			
		||||
    '';
 | 
			
		||||
  }
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@ -20,17 +20,18 @@
 | 
			
		||||
  pulseaudioSupport ? false,
 | 
			
		||||
  libpulseaudio,
 | 
			
		||||
  nixosTests,
 | 
			
		||||
  openssl,
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
stdenv.mkDerivation rec {
 | 
			
		||||
  pname = "snapcast";
 | 
			
		||||
  version = "0.29.0";
 | 
			
		||||
  version = "0.30.0";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "badaix";
 | 
			
		||||
    repo = "snapcast";
 | 
			
		||||
    rev = "v${version}";
 | 
			
		||||
    hash = "sha256-FWOGBXYWLHHZhvC5/BpkDd70ZupzALZ3ks3qTcrtwKQ=";
 | 
			
		||||
    hash = "sha256-EJgpZz4PnXfge0rkVH1F7cah+i9AvDJVSUVqL7qChDM=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [
 | 
			
		||||
@ -51,6 +52,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
      aixlog
 | 
			
		||||
      popl
 | 
			
		||||
      soxr
 | 
			
		||||
      openssl
 | 
			
		||||
    ]
 | 
			
		||||
    ++ lib.optional pulseaudioSupport libpulseaudio
 | 
			
		||||
    ++ lib.optional stdenv.hostPlatform.isLinux alsa-lib
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										29
									
								
								pkgs/applications/emulators/libretro/cores/vice.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								pkgs/applications/emulators/libretro/cores/vice.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,29 @@
 | 
			
		||||
{
 | 
			
		||||
  lib,
 | 
			
		||||
  fetchFromGitHub,
 | 
			
		||||
  mkLibretroCore,
 | 
			
		||||
  type ? "x64",
 | 
			
		||||
}:
 | 
			
		||||
mkLibretroCore {
 | 
			
		||||
  core = "vice-${type}";
 | 
			
		||||
  version = "0-unstable-2025-01-11";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "libretro";
 | 
			
		||||
    repo = "vice-libretro";
 | 
			
		||||
    rev = "5afa33f347306f168ff0b4c54a7825895dd07b50";
 | 
			
		||||
    hash = "sha256-D0DSKgqZV8EluRry2qSm7qnWnvwwDWz91G66W4nF2Kk=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  makefile = "Makefile";
 | 
			
		||||
 | 
			
		||||
  env = {
 | 
			
		||||
      EMUTYPE = "${type}";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  meta = {
 | 
			
		||||
    description = "Port of vice to libretro";
 | 
			
		||||
    homepage = "https://github.com/libretro/vice-libretro";
 | 
			
		||||
    license = lib.licenses.gpl2;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
@ -189,6 +189,26 @@ lib.makeScope newScope (self: {
 | 
			
		||||
 | 
			
		||||
  vecx = self.callPackage ./cores/vecx.nix { };
 | 
			
		||||
 | 
			
		||||
  vice-x64 = self.callPackage ./cores/vice.nix { type = "x64"; };
 | 
			
		||||
 | 
			
		||||
  vice-x128 = self.callPackage ./cores/vice.nix { type = "x128"; };
 | 
			
		||||
 | 
			
		||||
  vice-x64dtv = self.callPackage ./cores/vice.nix { type = "x64dtv"; };
 | 
			
		||||
 | 
			
		||||
  vice-x64sc = self.callPackage ./cores/vice.nix { type = "x64sc"; };
 | 
			
		||||
 | 
			
		||||
  vice-xcbm2 = self.callPackage ./cores/vice.nix { type = "xcbm2"; };
 | 
			
		||||
 | 
			
		||||
  vice-xcbm5x0 = self.callPackage ./cores/vice.nix { type = "xcbm5x0"; };
 | 
			
		||||
 | 
			
		||||
  vice-xpet = self.callPackage ./cores/vice.nix { type = "xpet"; };
 | 
			
		||||
 | 
			
		||||
  vice-xplus4 = self.callPackage ./cores/vice.nix { type = "xplus4"; };
 | 
			
		||||
 | 
			
		||||
  vice-xscpu64 = self.callPackage ./cores/vice.nix { type = "xscpu64"; };
 | 
			
		||||
 | 
			
		||||
  vice-xvic = self.callPackage ./cores/vice.nix { type = "xvic"; };
 | 
			
		||||
 | 
			
		||||
  virtualjaguar = self.callPackage ./cores/virtualjaguar.nix { };
 | 
			
		||||
 | 
			
		||||
  yabause = self.callPackage ./cores/yabause.nix { };
 | 
			
		||||
 | 
			
		||||
@ -15,6 +15,7 @@
 | 
			
		||||
  libmicrohttpd,
 | 
			
		||||
  perl,
 | 
			
		||||
  python3,
 | 
			
		||||
  fetchpatch,
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
stdenv.mkDerivation rec {
 | 
			
		||||
@ -27,7 +28,13 @@ stdenv.mkDerivation rec {
 | 
			
		||||
    tag = version;
 | 
			
		||||
    hash = "sha256-8w8ZT3D/+8Pxl9z2KTXeydVxE5xiPjxZevgmMFgrblU=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  patches = [
 | 
			
		||||
    # Fix build error with GCC 14 due to stricter C++20 compliance (template-id in constructors)
 | 
			
		||||
    (fetchpatch {
 | 
			
		||||
      url = "https://github.com/OpenLightingProject/ola/commit/d9b9c78645c578adb7c07b692842e841c48310be.patch";
 | 
			
		||||
      hash = "sha256-BplSqQv8ztWMpiX/M3/3wvf6LsPTBglh48gHlUoM6rw=";
 | 
			
		||||
    })
 | 
			
		||||
  ];
 | 
			
		||||
  nativeBuildInputs = [
 | 
			
		||||
    autoreconfHook
 | 
			
		||||
    bison
 | 
			
		||||
 | 
			
		||||
@ -1,12 +1,12 @@
 | 
			
		||||
{ lib, fetchFromGitHub }:
 | 
			
		||||
rec {
 | 
			
		||||
  version = "1.5.27";
 | 
			
		||||
  version = "1.5.29";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "TandoorRecipes";
 | 
			
		||||
    repo = "recipes";
 | 
			
		||||
    rev = version;
 | 
			
		||||
    hash = "sha256-HP4gVk127hvvL337Cb4Wbvvf55RWY7u5RF/FKDCottw=";
 | 
			
		||||
    hash = "sha256-NfU071BLZ/NtpbZe475oNl8LGiVzVix9iekEoCGtcdk=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  yarnHash = "sha256-lU8QrTkI32XOHefIkj/0fa2UKhuZpQIT1wyweQnzXmQ=";
 | 
			
		||||
 | 
			
		||||
@ -1427,13 +1427,13 @@
 | 
			
		||||
    "vendorHash": "sha256-kjS1YYMoE5IBeKWXnxzO3nFp6NpBEwUCaTzO0VSBDLA="
 | 
			
		||||
  },
 | 
			
		||||
  "vultr": {
 | 
			
		||||
    "hash": "sha256-gQwLGnYmB9bwpGrLNdbw+zY0MlPPrY/37rJPtindT1Q=",
 | 
			
		||||
    "hash": "sha256-vgeTK5fGHYzHCBdxq1JN9agK6+jYGkCkFnAWrkIz/gM=",
 | 
			
		||||
    "homepage": "https://registry.terraform.io/providers/vultr/vultr",
 | 
			
		||||
    "owner": "vultr",
 | 
			
		||||
    "repo": "terraform-provider-vultr",
 | 
			
		||||
    "rev": "v2.21.0",
 | 
			
		||||
    "rev": "v2.23.1",
 | 
			
		||||
    "spdx": "MPL-2.0",
 | 
			
		||||
    "vendorHash": null
 | 
			
		||||
    "vendorHash": "sha256-UW9/XEG+yTgMEttWFRMeneni0i/ZEcsrniT5vbhtRf8="
 | 
			
		||||
  },
 | 
			
		||||
  "wavefront": {
 | 
			
		||||
    "hash": "sha256-yNNtOkodzwxKvHQq9GZlUicezGW6u2ih6ry/cOtJQGM=",
 | 
			
		||||
 | 
			
		||||
@ -2,13 +2,13 @@
 | 
			
		||||
 | 
			
		||||
buildGoModule rec {
 | 
			
		||||
  pname = "docker-compose";
 | 
			
		||||
  version = "2.32.2";
 | 
			
		||||
  version = "2.32.4";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "docker";
 | 
			
		||||
    repo = "compose";
 | 
			
		||||
    rev = "v${version}";
 | 
			
		||||
    hash = "sha256-i4wpM7Rc4pFUUzPFvoPxUlifIvk4GJzBhCLpUndFnjE=";
 | 
			
		||||
    hash = "sha256-t2XW75PuoZAZ0Nw2CMnP73BwJSpt5BtzGJLAM5zqbrI=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  postPatch = ''
 | 
			
		||||
 | 
			
		||||
@ -3,6 +3,8 @@
 | 
			
		||||
  lib,
 | 
			
		||||
  fetchFromGitLab,
 | 
			
		||||
  cmake,
 | 
			
		||||
  gettext,
 | 
			
		||||
  glib,
 | 
			
		||||
  pkg-config,
 | 
			
		||||
  libdrm,
 | 
			
		||||
  libGL,
 | 
			
		||||
@ -28,6 +30,8 @@ stdenv.mkDerivation rec {
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [
 | 
			
		||||
    cmake
 | 
			
		||||
    gettext # msgfmt
 | 
			
		||||
    glib # glib-compile-resources
 | 
			
		||||
    pkg-config
 | 
			
		||||
  ];
 | 
			
		||||
  buildInputs = [
 | 
			
		||||
@ -41,6 +45,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
    pciutils
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # tries to download googletest
 | 
			
		||||
  cmakeFlags = [ "-DENABLE_UNIT_TESTS=off" ];
 | 
			
		||||
 | 
			
		||||
  postInstall = ''
 | 
			
		||||
 | 
			
		||||
@ -7,16 +7,16 @@
 | 
			
		||||
 | 
			
		||||
buildNpmPackage rec {
 | 
			
		||||
  pname = "ariang";
 | 
			
		||||
  version = "1.3.8";
 | 
			
		||||
  version = "1.3.9";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "mayswind";
 | 
			
		||||
    repo = "AriaNg";
 | 
			
		||||
    rev = version;
 | 
			
		||||
    hash = "sha256-B7gyBVryRn1SwUIqzxc1MYDS8l/mxMfJtE1/ZrBjC1E=";
 | 
			
		||||
    hash = "sha256-c3+iyw8LgdB29552jJQr4q5P2ZW80jC0aN+eaenEYFo=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  npmDepsHash = "sha256-DmACToIdXfAqiXe13vevWrpWDY1YgRWVaTfdlk5uhPg=";
 | 
			
		||||
  npmDepsHash = "sha256-N7ZK6wthBYAt8tU8sJE0QChAYxWfJ1HG5P+AjXZfIiw=";
 | 
			
		||||
 | 
			
		||||
  makeCacheWritable = true;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -5,16 +5,16 @@
 | 
			
		||||
 | 
			
		||||
buildGoModule rec {
 | 
			
		||||
  pname = "auth0-cli";
 | 
			
		||||
  version = "1.7.2";
 | 
			
		||||
  version = "1.8.0";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "auth0";
 | 
			
		||||
    repo = "auth0-cli";
 | 
			
		||||
    tag = "v${version}";
 | 
			
		||||
    hash = "sha256-9/Jjsg6E8+gkN5eGZsxmTBwVoD/eO7euidY6ds7skpA=";
 | 
			
		||||
    hash = "sha256-D982lmu44JFrxGcn0G1BssGkE3juUoB6qbCHWCTg9kw=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  vendorHash = "sha256-XXCmIASYQD21h1h8HOcAl8HK5QUvgfqRpauq93tUNZ8=";
 | 
			
		||||
  vendorHash = "sha256-OEHJTMcoaB4BZ06GjXIFPbCyoMGeumjTzWWFmgqLML8=";
 | 
			
		||||
 | 
			
		||||
  ldflags = [
 | 
			
		||||
    "-s"
 | 
			
		||||
 | 
			
		||||
@ -4,15 +4,18 @@
 | 
			
		||||
  fetchurl,
 | 
			
		||||
  undmg,
 | 
			
		||||
  nix-update-script,
 | 
			
		||||
  versionCheckHook,
 | 
			
		||||
  writeShellScript,
 | 
			
		||||
  xcbuild,
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
stdenvNoCC.mkDerivation (finalAttrs: {
 | 
			
		||||
  pname = "betterdisplay";
 | 
			
		||||
  version = "3.2.1";
 | 
			
		||||
  version = "3.3.0";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "https://github.com/waydabber/BetterDisplay/releases/download/v${finalAttrs.version}/BetterDisplay-v${finalAttrs.version}.dmg";
 | 
			
		||||
    hash = "sha256-UQLVRCeUznTqT6qDR6sZRZ5xMVgs0Th2iRRpnF0pqVI=";
 | 
			
		||||
    hash = "sha256-A0kh3XNdl5kJ32Kxwb0PAgxfGJR+EZEoaP+gspRJEcU=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  dontPatch = true;
 | 
			
		||||
@ -32,6 +35,15 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 | 
			
		||||
    runHook postInstall
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  nativeInstallCheckInputs = [ versionCheckHook ];
 | 
			
		||||
  versionCheckProgram = writeShellScript "version-check" ''
 | 
			
		||||
    ${xcbuild}/bin/PlistBuddy -c "Print :CFBundleShortVersionString" "$1"
 | 
			
		||||
  '';
 | 
			
		||||
  versionCheckProgramArg = [
 | 
			
		||||
    "${placeholder "out"}/Applications/BetterDisplay.app/Contents/Info.plist"
 | 
			
		||||
  ];
 | 
			
		||||
  doInstallCheck = true;
 | 
			
		||||
 | 
			
		||||
  passthru.updateScript = nix-update-script { };
 | 
			
		||||
 | 
			
		||||
  meta = {
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@
 | 
			
		||||
}:
 | 
			
		||||
buildGoModule rec {
 | 
			
		||||
  pname = "buildkite-agent-metrics";
 | 
			
		||||
  version = "5.9.12";
 | 
			
		||||
  version = "5.9.13";
 | 
			
		||||
 | 
			
		||||
  outputs = [
 | 
			
		||||
    "out"
 | 
			
		||||
@ -16,10 +16,10 @@ buildGoModule rec {
 | 
			
		||||
    owner = "buildkite";
 | 
			
		||||
    repo = "buildkite-agent-metrics";
 | 
			
		||||
    rev = "v${version}";
 | 
			
		||||
    hash = "sha256-5k7njo8J96hb/RUdIRcP4KfwEH5Z2S4AyDyazcFlN0s=";
 | 
			
		||||
    hash = "sha256-AVFQ3GP4YDQ6d9NSeol3Eobxzmoa9bRyCAKTsDbyZyQ=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  vendorHash = "sha256-zb+z1neus1mnJWeuI5DSc73cXMGWme0mz/PU2Z/Zam8=";
 | 
			
		||||
  vendorHash = "sha256-RQmxYxTcQn5VEy8Z96EtArYBnODmde1RlV4CA6fhbZA=";
 | 
			
		||||
 | 
			
		||||
  postInstall = ''
 | 
			
		||||
    mkdir -p $lambda/bin
 | 
			
		||||
 | 
			
		||||
@ -6,16 +6,16 @@
 | 
			
		||||
 | 
			
		||||
buildGoModule rec {
 | 
			
		||||
  pname = "buildkite-cli";
 | 
			
		||||
  version = "3.4.2";
 | 
			
		||||
  version = "3.5.0";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "buildkite";
 | 
			
		||||
    repo = "cli";
 | 
			
		||||
    rev = "v${version}";
 | 
			
		||||
    sha256 = "sha256-Tb9Hyhyf+ib/tLUHc+gUccZ7TuXltxxjaIpCfvnoVkA=";
 | 
			
		||||
    sha256 = "sha256-UKpvqjHnkDv6HDpDmXe3ZoFSMGmPE/KLc7TuJKjNJXw=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  vendorHash = "sha256-1QXcRykXoNGYCR8+6ut1eU8TVNtx8b2O2MIjmL8rfQk=";
 | 
			
		||||
  vendorHash = "sha256-FV35NCwntmIWakcNH9nu1MTwZArERCc8hN57PmunkX4=";
 | 
			
		||||
 | 
			
		||||
  doCheck = false;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,16 +6,16 @@
 | 
			
		||||
 | 
			
		||||
rustPlatform.buildRustPackage rec {
 | 
			
		||||
  pname = "cargo-bundle-licenses";
 | 
			
		||||
  version = "2.1.1";
 | 
			
		||||
  version = "2.3.0";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "sstadick";
 | 
			
		||||
    repo = "cargo-bundle-licenses";
 | 
			
		||||
    rev = "v${version}";
 | 
			
		||||
    hash = "sha256-oyb5uWIKXhPSMpb1t6C/IYKK8FMSANIQXs2XdJ/bD2A=";
 | 
			
		||||
    hash = "sha256-Rw5uwfUPTkIbiOQDohBRoAm0momljJRSYP+VmEOOw/k=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  cargoHash = "sha256-HxFRHgb0nBF6YGaiynv95fNwej70IAwP4jhVcGvdFok=";
 | 
			
		||||
  cargoHash = "sha256-SfTt49J6D7RESo6iO3b/l0+Vu1dEW+PG0M2RIko2OJ4=";
 | 
			
		||||
 | 
			
		||||
  meta = with lib; {
 | 
			
		||||
    description = "Generate a THIRDPARTY file with all licenses in a cargo project";
 | 
			
		||||
 | 
			
		||||
@ -11,17 +11,17 @@
 | 
			
		||||
 | 
			
		||||
rustPlatform.buildRustPackage rec {
 | 
			
		||||
  pname = "cargo-shuttle";
 | 
			
		||||
  version = "0.50.0";
 | 
			
		||||
  version = "0.51.0";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "shuttle-hq";
 | 
			
		||||
    repo = "shuttle";
 | 
			
		||||
    rev = "v${version}";
 | 
			
		||||
    hash = "sha256-D3o4GdGD/lP4bchjpyj684G1CDWMhnZHke131GAI1es=";
 | 
			
		||||
    hash = "sha256-oKFL/tnMsXz/qic65DgLmnmeyBsrklacs+XeVM6RGSs=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  useFetchCargoVendor = true;
 | 
			
		||||
  cargoHash = "sha256-hlYcDQi4wv43UBYSvnWUMunAKVCFVFA7hvxjaeGA2pA=";
 | 
			
		||||
  cargoHash = "sha256-ocTkpIqXTf8k+onUroaCt/jMnslctzCt7g9wNtkI82g=";
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [ pkg-config ];
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -13,14 +13,14 @@
 | 
			
		||||
 | 
			
		||||
python3Packages.buildPythonApplication rec {
 | 
			
		||||
  pname = "cobang";
 | 
			
		||||
  version = "0.14.1";
 | 
			
		||||
  version = "0.15.0";
 | 
			
		||||
  pyproject = true;
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "hongquan";
 | 
			
		||||
    repo = "CoBang";
 | 
			
		||||
    tag = "v${version}";
 | 
			
		||||
    hash = "sha256-/8JtDoXFQGlM7tlwKd+WRIKpnKCD6OnMmbvElg7LbzU=";
 | 
			
		||||
    hash = "sha256-ozHmGpRx+Ts6yrDXwm4OHXTArunQbJOlA/7zJvRNQio=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  postPatch = ''
 | 
			
		||||
 | 
			
		||||
@ -6,16 +6,16 @@
 | 
			
		||||
 | 
			
		||||
rustPlatform.buildRustPackage rec {
 | 
			
		||||
  pname = "comrak";
 | 
			
		||||
  version = "0.33.0";
 | 
			
		||||
  version = "0.34.0";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "kivikakk";
 | 
			
		||||
    repo = pname;
 | 
			
		||||
    rev = "v${version}";
 | 
			
		||||
    sha256 = "sha256-VN8f5r25kfUqekt9q28oMmkzQUE+Ko8DYhRZjpbbDfM=";
 | 
			
		||||
    sha256 = "sha256-8LBMyCmt4HTYgprChfPSFZm6uQ7yFmJ0+srAUz785MA=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  cargoHash = "sha256-Hdjit5dpZXT7ENamUX0ygTy+XAyCkcqq94wAJUPd8DY=";
 | 
			
		||||
  cargoHash = "sha256-Z2LNFlHWS3IdjXlwdIizkjNFaPqTbMf0i6Y6jigKCzg=";
 | 
			
		||||
 | 
			
		||||
  meta = with lib; {
 | 
			
		||||
    description = "CommonMark-compatible GitHub Flavored Markdown parser and formatter";
 | 
			
		||||
 | 
			
		||||
@ -1,23 +1,43 @@
 | 
			
		||||
{
 | 
			
		||||
  lib,
 | 
			
		||||
  stdenvNoCC,
 | 
			
		||||
  fetchzip,
 | 
			
		||||
  fetchFromGitHub,
 | 
			
		||||
  python3,
 | 
			
		||||
  ttfautohint,
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
stdenvNoCC.mkDerivation rec {
 | 
			
		||||
  pname = "eb-garamond";
 | 
			
		||||
  version = "0.016";
 | 
			
		||||
 | 
			
		||||
  src = fetchzip {
 | 
			
		||||
    url = "https://bitbucket.org/georgd/eb-garamond/downloads/EBGaramond-${version}.zip";
 | 
			
		||||
    hash = "sha256-P2VCLcqcMBBoTDJyRLP9vlHI+jE0EqPjPziN2MJbgEg=";
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "georgd";
 | 
			
		||||
    repo = "EB-Garamond";
 | 
			
		||||
    tag = "v${version}";
 | 
			
		||||
    hash = "sha256-ajieKhTeH6yv2qiE2xqnHFoMS65//4ZKiccAlC2PXGQ=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [
 | 
			
		||||
    (python3.withPackages (p: [ p.fontforge ]))
 | 
			
		||||
    ttfautohint
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  postPatch = ''
 | 
			
		||||
    substituteInPlace Makefile \
 | 
			
		||||
      --replace-fail "@\$(SFNTTOOL) -w \$< \$@"   "@fontforge -lang=ff -c 'Open(\$\$1); Generate(\$\$2)' \$< \$@"
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  buildPhase = ''
 | 
			
		||||
    runHook preBuild
 | 
			
		||||
    make WEB=build EOT="" all
 | 
			
		||||
    runHook postBuild
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  installPhase = ''
 | 
			
		||||
    runHook preInstall
 | 
			
		||||
 | 
			
		||||
    install -Dm644 otf/*.otf                                 -t $out/share/fonts/opentype
 | 
			
		||||
    install -Dm644 Changes README.markdown README.xelualatex -t $out/share/doc/${pname}-${version}
 | 
			
		||||
    install -Dm644 build/*.ttf  -t $out/share/fonts/truetype
 | 
			
		||||
    install -Dm644 build/*.otf  -t $out/share/fonts/opentype
 | 
			
		||||
    install -Dm644 build/*.woff -t $out/share/fonts/woff
 | 
			
		||||
 | 
			
		||||
    runHook postInstall
 | 
			
		||||
  '';
 | 
			
		||||
@ -26,6 +46,7 @@ stdenvNoCC.mkDerivation rec {
 | 
			
		||||
    homepage = "http://www.georgduffner.at/ebgaramond/";
 | 
			
		||||
    description = "Digitization of the Garamond shown on the Egenolff-Berner specimen";
 | 
			
		||||
    maintainers = with maintainers; [
 | 
			
		||||
      bengsparks
 | 
			
		||||
      relrod
 | 
			
		||||
      rycee
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
@ -8,16 +8,16 @@
 | 
			
		||||
 | 
			
		||||
buildGoModule rec {
 | 
			
		||||
  pname = "ejsonkms";
 | 
			
		||||
  version = "0.2.3";
 | 
			
		||||
  version = "0.2.4";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "envato";
 | 
			
		||||
    repo = "ejsonkms";
 | 
			
		||||
    rev = "v${version}";
 | 
			
		||||
    hash = "sha256-GrereV1IFRTaQEK+wjRHnXSydaKQgQeuxYgSAxEuok0=";
 | 
			
		||||
    hash = "sha256-kk/+EOZ1g6SiIajcKXf6lVnll/NRWgwbFO2j07HERBI=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  vendorHash = "sha256-bfR2jz4M5C60Nket9UW2C9GTK8jkbm6FZUar+wwDnbc=";
 | 
			
		||||
  vendorHash = "sha256-ZSoxG532eicpR1pS2oLYnJxtJrsHZZRbjncxU4uyT3c=";
 | 
			
		||||
 | 
			
		||||
  ldflags = [
 | 
			
		||||
    "-X main.version=v${version}"
 | 
			
		||||
 | 
			
		||||
@ -7,14 +7,14 @@
 | 
			
		||||
}:
 | 
			
		||||
python3Packages.buildPythonApplication rec {
 | 
			
		||||
  pname = "exo";
 | 
			
		||||
  version = "0.0.9-alpha";
 | 
			
		||||
  version = "0.0.10-alpha";
 | 
			
		||||
  pyproject = true;
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "exo-explore";
 | 
			
		||||
    repo = "exo";
 | 
			
		||||
    tag = "v${version}";
 | 
			
		||||
    hash = "sha256-H3Jxq0GS3Ha9cDsIHCsTupD0/Mp80Mxf2NvAyZytTb0=";
 | 
			
		||||
    hash = "sha256-JJGjr9RLiJ23mPpSsx6exs8hXx/ZkL5rl8i6Xg1vFhY=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  build-system = with python3Packages; [ setuptools ];
 | 
			
		||||
 | 
			
		||||
@ -9,12 +9,12 @@
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
stdenv.mkDerivation rec {
 | 
			
		||||
  version = "1.6.14";
 | 
			
		||||
  version = "1.6.15";
 | 
			
		||||
  pname = "freeipmi";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "mirror://gnu/freeipmi/${pname}-${version}.tar.gz";
 | 
			
		||||
    sha256 = "sha256-Gj2sXHa3zMTU+GqhK475shK673SJvwXombiau34U7bU=";
 | 
			
		||||
    sha256 = "sha256-1pKcNUY59c51tbGJfos2brY2JcI+XEWQp66gNP4rjK8=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  depsBuildBuild = [ buildPackages.stdenv.cc ];
 | 
			
		||||
 | 
			
		||||
@ -57,24 +57,24 @@
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
  pname = "gitkraken";
 | 
			
		||||
  version = "10.6.1";
 | 
			
		||||
  version = "10.6.2";
 | 
			
		||||
 | 
			
		||||
  throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
 | 
			
		||||
 | 
			
		||||
  srcs = {
 | 
			
		||||
    x86_64-linux = fetchzip {
 | 
			
		||||
      url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
 | 
			
		||||
      hash = "sha256-OzVBimAi9vAi6YhSRV0a51MWSmdHmHvvXbimeaNFpBU=";
 | 
			
		||||
      hash = "sha256-E/9BR4PE5QF075+NgJZTtgDoShHEqeRcoICnMLt3RuY=";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    x86_64-darwin = fetchzip {
 | 
			
		||||
      url = "https://release.axocdn.com/darwin/GitKraken-v${version}.zip";
 | 
			
		||||
      hash = "sha256-MF6H3tNUw4P4BAzScMsolyB9Qage/7aZwe84gCBjyV4=";
 | 
			
		||||
      hash = "sha256-gCiZN+ivXEF5KLas7eZn9iWfXcDGwf1gXK1ejY2C4xs=";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    aarch64-darwin = fetchzip {
 | 
			
		||||
      url = "https://release.axocdn.com/darwin-arm64/GitKraken-v${version}.zip";
 | 
			
		||||
      hash = "sha256-Akn8LSSYEj/dUU8iNWm5wO239wKGBmQp9RfzbCjI5Wo=";
 | 
			
		||||
      hash = "sha256-1zd57Kqi5iKHw/dNqLQ7jVAkNFvkFeqQbZPN32kF9IU=";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -7,18 +7,18 @@
 | 
			
		||||
 | 
			
		||||
buildGoModule rec {
 | 
			
		||||
  pname = "google-cloud-sql-proxy";
 | 
			
		||||
  version = "2.14.2";
 | 
			
		||||
  version = "2.14.3";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "GoogleCloudPlatform";
 | 
			
		||||
    repo = "cloud-sql-proxy";
 | 
			
		||||
    rev = "v${version}";
 | 
			
		||||
    hash = "sha256-jnecQkfZzg7psWOamJTpUnxjkW0tJkuGw06GGBNbub0=";
 | 
			
		||||
    hash = "sha256-zY4V5QNoesvwJxW9htTkmMk6KPCxKvLg1FVn+xmlw14=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  subPackages = [ "." ];
 | 
			
		||||
 | 
			
		||||
  vendorHash = "sha256-7jMDSW32MoHCN51yqLliUBfcjsE5l0mPvGXair5KLxA=";
 | 
			
		||||
  vendorHash = "sha256-ZwCe8gJ1Sowvt0X+inFoiYpJjhl/sdQUqrkXte2gV2I=";
 | 
			
		||||
 | 
			
		||||
  checkFlags = [
 | 
			
		||||
    "-short"
 | 
			
		||||
 | 
			
		||||
@ -2,16 +2,16 @@
 | 
			
		||||
 | 
			
		||||
buildGoModule rec {
 | 
			
		||||
  pname = "grpc-gateway";
 | 
			
		||||
  version = "2.25.1";
 | 
			
		||||
  version = "2.26.0";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "grpc-ecosystem";
 | 
			
		||||
    repo = "grpc-gateway";
 | 
			
		||||
    tag = "v${version}";
 | 
			
		||||
    sha256 = "sha256-1bNYTzfBSwEEi5tjDjUI9i+0Xh+T0SQNE+8GgDwexx0=";
 | 
			
		||||
    sha256 = "sha256-Vg47U57gHau7t5a1TEQuTKRUtn90gbrTETO+ngd8Bzc=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  vendorHash = "sha256-zWWJxvwOZTAk5f6AMrhCBo3n5/Np6hucx6AM+Ucq6ec=";
 | 
			
		||||
  vendorHash = "sha256-8YxAPvTP9o7ns4Gjs1WdqFColyZg7LoYolGQmNdCvTs=";
 | 
			
		||||
 | 
			
		||||
  ldflags = [
 | 
			
		||||
    "-X=main.version=${version}"
 | 
			
		||||
 | 
			
		||||
@ -10,16 +10,16 @@
 | 
			
		||||
 | 
			
		||||
rustPlatform.buildRustPackage rec {
 | 
			
		||||
  pname = "hexpatch";
 | 
			
		||||
  version = "1.9.4";
 | 
			
		||||
  version = "1.9.5";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "Etto48";
 | 
			
		||||
    repo = "HexPatch";
 | 
			
		||||
    tag = "v${version}";
 | 
			
		||||
    hash = "sha256-tVJp8ZFHaHM6Yhty0n5W4ZDKG/L5+8ZcbbTnw2yLEOI=";
 | 
			
		||||
    hash = "sha256-DRuknqj4E+G4ChN5CH5N4Zrl3btSo1HdqiRPfLC5YTE=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  cargoHash = "sha256-oKZjLS4+blGMt3K6in4i7JLqKZ8uWAv/uBFU9VT0Ha8=";
 | 
			
		||||
  cargoHash = "sha256-5yZ+eJUjUUNCmJtFYRSzvdjZ7tnyjCO+lgwdDHluSGg=";
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [
 | 
			
		||||
    cmake
 | 
			
		||||
@ -37,7 +37,7 @@ rustPlatform.buildRustPackage rec {
 | 
			
		||||
  doInstallCheck = true;
 | 
			
		||||
 | 
			
		||||
  passthru = {
 | 
			
		||||
    upateScript = nix-update-script { };
 | 
			
		||||
    updateScript = nix-update-script { };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  meta = {
 | 
			
		||||
 | 
			
		||||
@ -7,16 +7,16 @@
 | 
			
		||||
 | 
			
		||||
rustPlatform.buildRustPackage rec {
 | 
			
		||||
  pname = "httm";
 | 
			
		||||
  version = "0.44.1";
 | 
			
		||||
  version = "0.45.0";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "kimono-koans";
 | 
			
		||||
    repo = pname;
 | 
			
		||||
    rev = version;
 | 
			
		||||
    hash = "sha256-vf5wIXYMBB7I6enmCYByoAE+2MWA/iUoq3UY86yRsEU=";
 | 
			
		||||
    hash = "sha256-g+UUiFgOTuSNymg3OcIsoTqWA/OOZzwFCUQ7YxW1AzE=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  cargoHash = "sha256-o9Ctt5a96vBhh0eB0z9N9qR3txVWdeq2qH9dYaxqtoA=";
 | 
			
		||||
  cargoHash = "sha256-+ygXGSnhs9N7oHGqVA7Bo3JIgR8TZpY9y4tkBd4vZy8=";
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [ installShellFiles ];
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -9,13 +9,13 @@
 | 
			
		||||
 | 
			
		||||
buildGoModule rec {
 | 
			
		||||
  pname = "k3sup";
 | 
			
		||||
  version = "0.13.7";
 | 
			
		||||
  version = "0.13.8";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "alexellis";
 | 
			
		||||
    repo = "k3sup";
 | 
			
		||||
    rev = version;
 | 
			
		||||
    sha256 = "sha256-B9Mo0+dqF15LuhCytMBax2gKjHl9mBkxLXCdb9f0Big=";
 | 
			
		||||
    sha256 = "sha256-WmvCmG/wk63VnfJTFk3HhiaLzCe9O6kdUc7GpYNAwP4=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [ makeWrapper installShellFiles ];
 | 
			
		||||
 | 
			
		||||
@ -6,13 +6,13 @@
 | 
			
		||||
 | 
			
		||||
buildGoModule rec {
 | 
			
		||||
  pname = "ktor-cli";
 | 
			
		||||
  version = "0.3.1";
 | 
			
		||||
  version = "0.4.0";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "ktorio";
 | 
			
		||||
    repo = "ktor-cli";
 | 
			
		||||
    tag = version;
 | 
			
		||||
    hash = "sha256-UOO6hoUZazlrP+OJ6WCdY358wnRnAiQHEXrOpN7ZIvU=";
 | 
			
		||||
    hash = "sha256-TGwkGm1Rsg82f6FJeTnhyvfS2MRMe5+DTdxTsOwwb1Q=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  subPackages = "cmd/ktor";
 | 
			
		||||
 | 
			
		||||
@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
    hash = "sha256-QNJlxZ9uNwNgFWm9qRJdPfusx7dXHZajjFH7wDhpgcs=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  preConfigure = "./autogen.sh";
 | 
			
		||||
  configureScript = "./autogen.sh";
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [
 | 
			
		||||
    automake
 | 
			
		||||
 | 
			
		||||
@ -8,7 +8,7 @@
 | 
			
		||||
 | 
			
		||||
buildGoModule rec {
 | 
			
		||||
  pname = "litmusctl";
 | 
			
		||||
  version = "1.13.0";
 | 
			
		||||
  version = "1.14.0";
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [
 | 
			
		||||
    installShellFiles
 | 
			
		||||
@ -22,7 +22,7 @@ buildGoModule rec {
 | 
			
		||||
    owner = "litmuschaos";
 | 
			
		||||
    repo = "litmusctl";
 | 
			
		||||
    rev = "${version}";
 | 
			
		||||
    hash = "sha256-lPdejdnBefhYgv52I7BOm1VTgqHSp8u1lgJJxK5GWSA=";
 | 
			
		||||
    hash = "sha256-Saj5sx5YkcKsnMrnIzPcLok+mgEZSh9p8rnfQbJhAeU=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  vendorHash = "sha256-7FYOQ89aUFPX+5NCPYKg+YGCXstQ6j9DK4V2mCgklu0=";
 | 
			
		||||
 | 
			
		||||
@ -14,7 +14,7 @@
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
  version = "3.6.0";
 | 
			
		||||
  tag = lib.replaceStrings [ "." ] [ "-" ] version;
 | 
			
		||||
  tag = "V" + lib.replaceStrings [ "." ] [ "-" ] version;
 | 
			
		||||
in
 | 
			
		||||
 | 
			
		||||
stdenv.mkDerivation {
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										123
									
								
								pkgs/by-name/ma/matomo/package.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										123
									
								
								pkgs/by-name/ma/matomo/package.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,123 @@
 | 
			
		||||
{
 | 
			
		||||
  lib,
 | 
			
		||||
  stdenv,
 | 
			
		||||
  fetchurl,
 | 
			
		||||
  makeWrapper,
 | 
			
		||||
  php,
 | 
			
		||||
  nixosTests,
 | 
			
		||||
  nix-update-script,
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
stdenv.mkDerivation (finalAttrs: {
 | 
			
		||||
  pname = "matomo";
 | 
			
		||||
  version = "5.2.1";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "https://builds.matomo.org/matomo-${finalAttrs.version}.tar.gz";
 | 
			
		||||
    hash = "sha256-5glMwwIG0Uo8bu904u40FUa+yaUlrQe1nUCkv9/ATks=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [ makeWrapper ];
 | 
			
		||||
 | 
			
		||||
  patches = [
 | 
			
		||||
    # This changes the default value of the database server field
 | 
			
		||||
    # from 127.0.0.1 to localhost.
 | 
			
		||||
    # unix socket authentication only works with localhost,
 | 
			
		||||
    # but password-based SQL authentication works with both.
 | 
			
		||||
    # TODO: is upstream interested in this?
 | 
			
		||||
    # -> discussion at https://github.com/matomo-org/matomo/issues/12646
 | 
			
		||||
    ./make-localhost-default-database-host.patch
 | 
			
		||||
    # This changes the default config for path.geoip2 so that it doesn't point
 | 
			
		||||
    # to the nix store.
 | 
			
		||||
    ./change-path-geoip2-5.x.patch
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # this bootstrap.php adds support for getting PIWIK_USER_PATH
 | 
			
		||||
  # from an environment variable. Point it to a mutable location
 | 
			
		||||
  # to be able to use matomo read-only from the nix store
 | 
			
		||||
  postPatch = ''
 | 
			
		||||
    cp ${./bootstrap.php} bootstrap.php
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  # TODO: future versions might rename the PIWIK_… variables to MATOMO_…
 | 
			
		||||
  # TODO: Move more unnecessary files from share/, especially using PIWIK_INCLUDE_PATH.
 | 
			
		||||
  #       See https://forum.matomo.org/t/bootstrap-php/5926/10 and
 | 
			
		||||
  #       https://github.com/matomo-org/matomo/issues/11654#issuecomment-297730843
 | 
			
		||||
  installPhase = ''
 | 
			
		||||
    runHook preInstall
 | 
			
		||||
 | 
			
		||||
    # copy everything to share/, used as webroot folder, and then remove what's known to be not needed
 | 
			
		||||
    mkdir -p $out/share
 | 
			
		||||
    cp -ra * $out/share/
 | 
			
		||||
    # tmp/ is created by matomo in PIWIK_USER_PATH
 | 
			
		||||
    rmdir $out/share/tmp
 | 
			
		||||
    # config/ needs to be accessed by PIWIK_USER_PATH anyway
 | 
			
		||||
    ln -s $out/share/config $out/
 | 
			
		||||
 | 
			
		||||
    makeWrapper ${php}/bin/php $out/bin/matomo-console \
 | 
			
		||||
      --add-flags "$out/share/console"
 | 
			
		||||
 | 
			
		||||
    runHook postInstall
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  filesToFix = [
 | 
			
		||||
    "misc/composer/build-xhprof.sh"
 | 
			
		||||
    "misc/composer/clean-xhprof.sh"
 | 
			
		||||
    "misc/cron/archive.sh"
 | 
			
		||||
    "plugins/GeoIp2/config/config.php"
 | 
			
		||||
    "plugins/Installation/FormDatabaseSetup.php"
 | 
			
		||||
    "vendor/pear/archive_tar/sync-php4"
 | 
			
		||||
    "vendor/szymach/c-pchart/coverage.sh"
 | 
			
		||||
    "vendor/matomo/matomo-php-tracker/run_tests.sh"
 | 
			
		||||
    "vendor/twig/twig/drupal_test.sh"
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # This fixes the consistency check in the admin interface
 | 
			
		||||
  #
 | 
			
		||||
  # The filesToFix list may contain files that are exclusive to only one of the versions we build
 | 
			
		||||
  # make sure to test for existence to avoid erroring on an incompatible version and failing
 | 
			
		||||
  postFixup = ''
 | 
			
		||||
    pushd $out/share > /dev/null
 | 
			
		||||
    for f in $filesToFix; do
 | 
			
		||||
      if [ -f "$f" ]; then
 | 
			
		||||
        length="$(wc -c "$f" | cut -d' ' -f1)"
 | 
			
		||||
        hash="$(md5sum "$f" | cut -d' ' -f1)"
 | 
			
		||||
        sed -i "s:\\(\"$f\"[^(]*(\\).*:\\1\"$length\", \"$hash\"),:g" config/manifest.inc.php
 | 
			
		||||
      else
 | 
			
		||||
        echo "INFO(files-to-fix): $f does not exist in this version"
 | 
			
		||||
      fi
 | 
			
		||||
    done
 | 
			
		||||
    popd > /dev/null
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  passthru = {
 | 
			
		||||
    updateScript = nix-update-script {
 | 
			
		||||
      extraArgs = [
 | 
			
		||||
        "--url"
 | 
			
		||||
        "https://github.com/matomo-org/matomo"
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
    tests = lib.optionalAttrs stdenv.hostPlatform.isLinux {
 | 
			
		||||
      inherit (nixosTests) matomo;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  meta = {
 | 
			
		||||
    description = "Real-time web analytics application";
 | 
			
		||||
    mainProgram = "matomo-console";
 | 
			
		||||
    license = lib.licenses.gpl3Plus;
 | 
			
		||||
    homepage = "https://matomo.org/";
 | 
			
		||||
    changelog = "https://github.com/matomo-org/matomo/releases/tag/${finalAttrs.version}";
 | 
			
		||||
    platforms = lib.platforms.all;
 | 
			
		||||
    maintainers =
 | 
			
		||||
      with lib.maintainers;
 | 
			
		||||
      [
 | 
			
		||||
        florianjacob
 | 
			
		||||
        sebbel
 | 
			
		||||
        twey
 | 
			
		||||
        boozedog
 | 
			
		||||
        niklaskorz
 | 
			
		||||
      ]
 | 
			
		||||
      ++ lib.teams.flyingcircus.members;
 | 
			
		||||
  };
 | 
			
		||||
})
 | 
			
		||||
@ -2,13 +2,13 @@
 | 
			
		||||
 | 
			
		||||
buildGoModule rec {
 | 
			
		||||
  pname = "moar";
 | 
			
		||||
  version = "1.31.0";
 | 
			
		||||
  version = "1.31.2";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "walles";
 | 
			
		||||
    repo = pname;
 | 
			
		||||
    rev = "v${version}";
 | 
			
		||||
    hash = "sha256-0HDFK2wPQtwIAVup/pVSjrdt1zpbfLV08HxeVPWC8dE=";
 | 
			
		||||
    hash = "sha256-0B3XouAxQ6b9cWoov+Ofhlt+zgGh6AP1gy46LoiumoE=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  vendorHash = "sha256-J9u7LxzXk4npRyymmMKyN2ZTmhT4WwKjy0X5ITcHtoE=";
 | 
			
		||||
 | 
			
		||||
@ -19,13 +19,13 @@
 | 
			
		||||
 | 
			
		||||
stdenv.mkDerivation rec {
 | 
			
		||||
  pname = "pgbackrest";
 | 
			
		||||
  version = "2.54.1";
 | 
			
		||||
  version = "2.54.2";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "pgbackrest";
 | 
			
		||||
    repo = "pgbackrest";
 | 
			
		||||
    rev = "release/${version}";
 | 
			
		||||
    sha256 = "sha256-kzFTWKzBQ0Jfew8oV+iaNAEx4lQncySyAI2VAgNu42s=";
 | 
			
		||||
    sha256 = "sha256-Q0WZLbtn+qJLs2jop5S92NFC6QBtCQnU3AEEcm6MSVI=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  strictDeps = true;
 | 
			
		||||
 | 
			
		||||
@ -6,16 +6,16 @@
 | 
			
		||||
 | 
			
		||||
buildGoModule rec {
 | 
			
		||||
  pname = "pulumictl";
 | 
			
		||||
  version = "0.0.47";
 | 
			
		||||
  version = "0.0.48";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "pulumi";
 | 
			
		||||
    repo = "pulumictl";
 | 
			
		||||
    rev = "v${version}";
 | 
			
		||||
    sha256 = "sha256-bZ7Di1DcvGECfOzW72QnfWRn76U+agsNsdsprBjx5Rw=";
 | 
			
		||||
    sha256 = "sha256-rFVxfWeESWmqH0BhKY6BO5AxSPXVW8tOPGyUXB5Kc/E=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  vendorHash = "sha256-QYQk36e7NLZnl00fRW4i4UMy7jFVaGHlXcxXt/wqw3M=";
 | 
			
		||||
  vendorHash = "sha256-x5CBSzwOfX0BwwbAOuW1ibrLnnkVSNjqG0Sj2EcmRbM=";
 | 
			
		||||
 | 
			
		||||
  ldflags = [
 | 
			
		||||
    "-s"
 | 
			
		||||
 | 
			
		||||
@ -87,7 +87,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  disallowedReferences = lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) stdenv.shellPackage;
 | 
			
		||||
 | 
			
		||||
  meta = with lib; {
 | 
			
		||||
    homepage = "https://github.com/shadow-maint";
 | 
			
		||||
    homepage = "https://github.com/shadow-maint/shadow";
 | 
			
		||||
    description = "Suite containing authentication-related tools such as passwd and su";
 | 
			
		||||
    license = licenses.bsd3;
 | 
			
		||||
    platforms = platforms.linux;
 | 
			
		||||
 | 
			
		||||
@ -37,13 +37,13 @@
 | 
			
		||||
 | 
			
		||||
stdenv.mkDerivation (finalAttrs: {
 | 
			
		||||
  pname = "shadps4";
 | 
			
		||||
  version = "0.5.0-unstable-2025-01-02";
 | 
			
		||||
  version = "0.5.0-unstable-2025-01-20";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "shadps4-emu";
 | 
			
		||||
    repo = "shadPS4";
 | 
			
		||||
    rev = "596f4cdf0e66a97c9d2d4272091d8c0167a5b8e1";
 | 
			
		||||
    hash = "sha256-apwAl8TCzSKchqYGHV0UsMSGErF4GgiwhlwmOPWpeLs=";
 | 
			
		||||
    rev = "95a30b2b3e1aa4e20c3db632955cc67bbded0fb1";
 | 
			
		||||
    hash = "sha256-52BhGKSUv+9asACNkppxiNm3Gja7r3LcXOIwhQR5ALs=";
 | 
			
		||||
    fetchSubmodules = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -9,13 +9,13 @@
 | 
			
		||||
 | 
			
		||||
stdenvNoCC.mkDerivation (finalAttrs: {
 | 
			
		||||
  pname = "sketchybar-app-font";
 | 
			
		||||
  version = "2.0.29";
 | 
			
		||||
  version = "2.0.30";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "kvndrsslr";
 | 
			
		||||
    repo = "sketchybar-app-font";
 | 
			
		||||
    rev = "v2.0.29";
 | 
			
		||||
    hash = "sha256-8SWN22pjHnXWM+RUEYNux0ZWhRUVMib3M7r2SlI33tQ=";
 | 
			
		||||
    rev = "v2.0.30";
 | 
			
		||||
    hash = "sha256-Kx7Uazrmyn7yQedqnY1YJXSY2QFe0nCEIFLFUZwS9Tk=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  pnpmDeps = pnpm_9.fetchDeps {
 | 
			
		||||
 | 
			
		||||
@ -33,13 +33,13 @@ let
 | 
			
		||||
in
 | 
			
		||||
perlPackages.buildPerlPackage rec {
 | 
			
		||||
  pname = "slimserver";
 | 
			
		||||
  version = "9.0.0";
 | 
			
		||||
  version = "9.0.1";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "LMS-Community";
 | 
			
		||||
    repo = "slimserver";
 | 
			
		||||
    rev = version;
 | 
			
		||||
    hash = "sha256-Sd39J8YOywOOtVHxO3OPABULwRI5VGovS33tAj4TFkw=";
 | 
			
		||||
    hash = "sha256-BIWTsF9SVGBkFaZF/QYFsgATglaORhnFT/2/qRe4emg=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [ makeWrapper ];
 | 
			
		||||
@ -51,6 +51,7 @@ perlPackages.buildPerlPackage rec {
 | 
			
		||||
      ArchiveZip
 | 
			
		||||
      AsyncUtil
 | 
			
		||||
      AudioScan
 | 
			
		||||
      CarpAssert
 | 
			
		||||
      CarpClan
 | 
			
		||||
      CGI
 | 
			
		||||
      ClassAccessor
 | 
			
		||||
 | 
			
		||||
@ -9,16 +9,16 @@
 | 
			
		||||
 | 
			
		||||
buildGoModule rec {
 | 
			
		||||
  pname = "spacectl";
 | 
			
		||||
  version = "1.8.0";
 | 
			
		||||
  version = "1.9.0";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "spacelift-io";
 | 
			
		||||
    repo = "spacectl";
 | 
			
		||||
    rev = "v${version}";
 | 
			
		||||
    hash = "sha256-IkGkySGvRFvIxx9c2jkFJ0vJ6iqdp+pQYgOuZgHZjIw=";
 | 
			
		||||
    hash = "sha256-24aw5ooN6ru9p+/21M64VlZdzcep0S76XA27wtZ0xyA=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  vendorHash = "sha256-SYfXG6YM0Q2rCnoTM2tYvE17uBCD8yQiW/5DTCxMPWo=";
 | 
			
		||||
  vendorHash = "sha256-VfhbwbKQOmXzLjS/O8BDdYHtZT2kBuxRcAPpHMlenUc=";
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [ installShellFiles ];
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,13 +6,13 @@
 | 
			
		||||
}:
 | 
			
		||||
stdenvNoCC.mkDerivation (finalAttrs: {
 | 
			
		||||
  pname = "stevenblack-blocklist";
 | 
			
		||||
  version = "3.15.8";
 | 
			
		||||
  version = "3.15.10";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "StevenBlack";
 | 
			
		||||
    repo = "hosts";
 | 
			
		||||
    tag = finalAttrs.version;
 | 
			
		||||
    hash = "sha256-WdqYgQB4MN1H3SH/Wn8yJIDXJToAcy49D3Rqd8/zj64=";
 | 
			
		||||
    hash = "sha256-f5SH4qQzRWYKwIjpzOuhI9mPwlyNcBWjr2mrCKLgml4=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  outputs = [
 | 
			
		||||
 | 
			
		||||
@ -12,13 +12,13 @@
 | 
			
		||||
 | 
			
		||||
swift.stdenv.mkDerivation rec {
 | 
			
		||||
  pname = "swiftformat";
 | 
			
		||||
  version = "0.55.4";
 | 
			
		||||
  version = "0.55.5";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "nicklockwood";
 | 
			
		||||
    repo = "SwiftFormat";
 | 
			
		||||
    rev = version;
 | 
			
		||||
    sha256 = "sha256-0Dk2SgfPozgbdhyQa74NZkd/kA6JleSfpHDn4NuQdEo=";
 | 
			
		||||
    sha256 = "sha256-AZAQSwmGNHN6ykh9ufeQLC1dEXvTt32X24MPTDh6bI8=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [
 | 
			
		||||
 | 
			
		||||
@ -55,7 +55,7 @@ let
 | 
			
		||||
  ];
 | 
			
		||||
  buildInputs = glLibs ++ libs;
 | 
			
		||||
  runpathPackages = glLibs ++ [ stdenv.cc.cc stdenv.cc.libc ];
 | 
			
		||||
  version = "1.0.20";
 | 
			
		||||
  version = "1.0.21";
 | 
			
		||||
in
 | 
			
		||||
stdenv.mkDerivation {
 | 
			
		||||
  pname = "tana";
 | 
			
		||||
@ -63,7 +63,7 @@ stdenv.mkDerivation {
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "https://github.com/tanainc/tana-desktop-releases/releases/download/v${version}/tana_${version}_amd64.deb";
 | 
			
		||||
    hash = "sha256-fJiAqPppPoIN4gT54YMgbf/Fe9eVgRYHU6q6Yopl46I=";
 | 
			
		||||
    hash = "sha256-NjBJz1zHLnWLWTxgSZwnmuZr2FbHuYLxynRG8jGMP+0=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [
 | 
			
		||||
 | 
			
		||||
@ -12,11 +12,11 @@
 | 
			
		||||
}:
 | 
			
		||||
stdenvNoCC.mkDerivation (finalAttrs: {
 | 
			
		||||
  pname = "tart";
 | 
			
		||||
  version = "2.20.2";
 | 
			
		||||
  version = "2.24.0";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "https://github.com/cirruslabs/tart/releases/download/${finalAttrs.version}/tart-arm64.tar.gz";
 | 
			
		||||
    hash = "sha256-caHuBTRpbmFbmTlDRnxZyGM6F95iKjMhKbPTez5Hecc=";
 | 
			
		||||
    url = "https://github.com/cirruslabs/tart/releases/download/${finalAttrs.version}/tart.tar.gz";
 | 
			
		||||
    hash = "sha256-5GBn5jWT3d/PidVvmWgfxGTuk72an6WbtRtR/5XHOzk=";
 | 
			
		||||
  };
 | 
			
		||||
  sourceRoot = ".";
 | 
			
		||||
 | 
			
		||||
@ -46,7 +46,10 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 | 
			
		||||
      aduh95
 | 
			
		||||
    ];
 | 
			
		||||
    mainProgram = finalAttrs.pname;
 | 
			
		||||
    platforms = [ "aarch64-darwin" ];
 | 
			
		||||
    platforms = [
 | 
			
		||||
      "aarch64-darwin"
 | 
			
		||||
      "x86_64-darwin"
 | 
			
		||||
    ];
 | 
			
		||||
    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
 | 
			
		||||
  };
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
@ -3,21 +3,19 @@
 | 
			
		||||
  stdenvNoCC,
 | 
			
		||||
  fetchFromGitHub,
 | 
			
		||||
  pkgsBuildBuild,
 | 
			
		||||
  jq,
 | 
			
		||||
  moreutils,
 | 
			
		||||
  dbip-country-lite,
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
  generator = pkgsBuildBuild.buildGoModule rec {
 | 
			
		||||
    pname = "v2ray-geoip";
 | 
			
		||||
    version = "202501160051";
 | 
			
		||||
    version = "202501190004";
 | 
			
		||||
 | 
			
		||||
    src = fetchFromGitHub {
 | 
			
		||||
      owner = "v2fly";
 | 
			
		||||
      repo = "geoip";
 | 
			
		||||
      tag = version;
 | 
			
		||||
      hash = "sha256-WSi7xsjKqQT37lzkOY1WZwvx5RXNKO3aMwnMiMBwMdA=";
 | 
			
		||||
      hash = "sha256-l5gz3w/80o2UwexzcJ1ALhQMcwqor9m/0RG3WOBeVAc=";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    vendorHash = "sha256-nvJsifXF6u3eWqd9X0kGZxASEs/LX2dQraZAwgnw060=";
 | 
			
		||||
@ -29,32 +27,20 @@ let
 | 
			
		||||
      maintainers = with lib.maintainers; [ nickcao ];
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
  input = {
 | 
			
		||||
    type = "maxmindMMDB";
 | 
			
		||||
    action = "add";
 | 
			
		||||
    args = {
 | 
			
		||||
      uri = dbip-country-lite.mmdb;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
in
 | 
			
		||||
 | 
			
		||||
stdenvNoCC.mkDerivation {
 | 
			
		||||
  inherit (generator) pname src;
 | 
			
		||||
  inherit (dbip-country-lite) version;
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [
 | 
			
		||||
    jq
 | 
			
		||||
    moreutils
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  postPatch = ''
 | 
			
		||||
    jq '.input[0] |= ${builtins.toJSON input}' config.json | sponge config.json
 | 
			
		||||
  '';
 | 
			
		||||
  nativeBuildInputs = [ generator ];
 | 
			
		||||
 | 
			
		||||
  buildPhase = ''
 | 
			
		||||
    runHook preBuild
 | 
			
		||||
 | 
			
		||||
    ${generator}/bin/geoip
 | 
			
		||||
    mkdir -p db-ip
 | 
			
		||||
    ln -s ${dbip-country-lite.mmdb} ./db-ip/dbip-country-lite.mmdb
 | 
			
		||||
    geoip
 | 
			
		||||
 | 
			
		||||
    runHook postBuild
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
@ -6,16 +6,16 @@
 | 
			
		||||
 | 
			
		||||
buildGoModule rec {
 | 
			
		||||
  pname = "whoami";
 | 
			
		||||
  version = "1.10.3";
 | 
			
		||||
  version = "1.10.4";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "traefik";
 | 
			
		||||
    repo = "whoami";
 | 
			
		||||
    rev = "v${version}";
 | 
			
		||||
    hash = "sha256-wzxgmysqn4aWAZEaMjMwHdHLe4UZ4nwdNFJw5X7fuKQ=";
 | 
			
		||||
    hash = "sha256-T5oUIJ6ELfPNd8JW5hUXV6bRUGVRD0IgHJ34ioR4sMs=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  vendorHash = "sha256-qDfkYIAymkFUtbKka9OLoYjT+S9KhOra2UtOvhoz5Mw=";
 | 
			
		||||
  vendorHash = "sha256-0Qxw+MUYVgzgWB8vi3HBYtVXSq/btfh4ZfV/m1chNrA=";
 | 
			
		||||
 | 
			
		||||
  ldflags = [ "-s" ];
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -7,13 +7,13 @@
 | 
			
		||||
 | 
			
		||||
python3Packages.buildPythonApplication rec {
 | 
			
		||||
  pname = "whoogle-search";
 | 
			
		||||
  version = "0.9.1";
 | 
			
		||||
  version = "0.9.2";
 | 
			
		||||
  pyproject = true;
 | 
			
		||||
 | 
			
		||||
  src = fetchPypi {
 | 
			
		||||
    pname = "whoogle_search";
 | 
			
		||||
    inherit version;
 | 
			
		||||
    hash = "sha256-4i/p18tu5q4yRBKQHRAyXaxYcPORbU9KyIzF2yW9VCk=";
 | 
			
		||||
    hash = "sha256-Vp59n8o6hq4q15nuQguLGvQhYWrXpR6ZjDnaBCV4I4M=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  build-system = with python3Packages; [ setuptools ];
 | 
			
		||||
 | 
			
		||||
@ -95,7 +95,7 @@ let
 | 
			
		||||
in
 | 
			
		||||
rustPlatform.buildRustPackage rec {
 | 
			
		||||
  pname = "zed-editor";
 | 
			
		||||
  version = "0.169.2";
 | 
			
		||||
  version = "0.169.3";
 | 
			
		||||
 | 
			
		||||
  outputs = [ "out" ] ++ lib.optional buildRemoteServer "remote_server";
 | 
			
		||||
 | 
			
		||||
@ -103,7 +103,7 @@ rustPlatform.buildRustPackage rec {
 | 
			
		||||
    owner = "zed-industries";
 | 
			
		||||
    repo = "zed";
 | 
			
		||||
    tag = "v${version}";
 | 
			
		||||
    hash = "sha256-IdJVWsHWMzE0AZxFy6jOmquc2jFeozNDdAhbB3fFMwk=";
 | 
			
		||||
    hash = "sha256-F7R3GDjz5I82CqupVcTvhR+wvANAcxjIDDJ8azVTtfY=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  patches = [
 | 
			
		||||
@ -123,7 +123,7 @@ rustPlatform.buildRustPackage rec {
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  useFetchCargoVendor = true;
 | 
			
		||||
  cargoHash = "sha256-0zH5J3nvBpqD22nFzX98MBoTtNDpWS4NSSMcT1DB2SM=";
 | 
			
		||||
  cargoHash = "sha256-yuf2NNnclaMKXJnbg+SC7xqcgkf4JT36GqWXNBNZUCI=";
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs =
 | 
			
		||||
    [
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,57 @@
 | 
			
		||||
From dbd44fbdc580a83ce7fb67fe8d2c87acee087cb0 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: OPNA2608 <opna2608@protonmail.com>
 | 
			
		||||
Date: Mon, 20 Jan 2025 19:25:00 +0100
 | 
			
		||||
Subject: [PATCH] treewide: Switch to glog CMake module
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 CMakeLists.txt     | 5 ++---
 | 
			
		||||
 src/CMakeLists.txt | 2 +-
 | 
			
		||||
 2 files changed, 3 insertions(+), 4 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
 | 
			
		||||
index 6f03c1c..b58d8ab 100644
 | 
			
		||||
--- a/CMakeLists.txt
 | 
			
		||||
+++ b/CMakeLists.txt
 | 
			
		||||
@@ -38,8 +38,9 @@ IF(CMAKE_BUILD_TYPE MATCHES [cC][oO][vV][eE][rR][aA][gG][eE])
 | 
			
		||||
   SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -ftest-coverage -fprofile-arcs" )
 | 
			
		||||
 ENDIF(CMAKE_BUILD_TYPE MATCHES [cC][oO][vV][eE][rR][aA][gG][eE])
 | 
			
		||||
 
 | 
			
		||||
-find_package(PkgConfig)
 | 
			
		||||
+find_package(PkgConfig REQUIRED)
 | 
			
		||||
 find_package(Boost COMPONENTS filesystem program_options system REQUIRED)
 | 
			
		||||
+find_package(glog REQUIRED)
 | 
			
		||||
 
 | 
			
		||||
 add_subdirectory(3rd_party/xdg)
 | 
			
		||||
 
 | 
			
		||||
@@ -56,7 +57,6 @@ if (TRUST_STORE_MIR_AGENT_ENABLED)
 | 
			
		||||
   )
 | 
			
		||||
 endif()
 | 
			
		||||
 
 | 
			
		||||
-pkg_check_modules(GLOG libglog REQUIRED)
 | 
			
		||||
 pkg_check_modules(PROCESS_CPP process-cpp REQUIRED)
 | 
			
		||||
 
 | 
			
		||||
 include(CTest)
 | 
			
		||||
@@ -66,7 +66,6 @@ include_directories(
 | 
			
		||||
   3rd_party/xdg
 | 
			
		||||
 
 | 
			
		||||
   ${GFLAGS_INCLUDE_DIRS}
 | 
			
		||||
-  ${GLOG_INCLUDE_DIRS}
 | 
			
		||||
   ${PROCESS_CPP_INCLUDE_DIRS}
 | 
			
		||||
 )
 | 
			
		||||
 
 | 
			
		||||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
 | 
			
		||||
index ac87e7f..416549c 100644
 | 
			
		||||
--- a/src/CMakeLists.txt
 | 
			
		||||
+++ b/src/CMakeLists.txt
 | 
			
		||||
@@ -211,7 +211,7 @@ target_link_libraries(
 | 
			
		||||
   ${Boost_LIBRARIES}
 | 
			
		||||
   ${DBUS_LIBRARIES}
 | 
			
		||||
   ${GFLAGS_LDFLAGS}
 | 
			
		||||
-  ${GLOG_LDFLAGS}
 | 
			
		||||
+  glog::glog
 | 
			
		||||
   ${GLIB_LDFLAGS}
 | 
			
		||||
   ${GOBJECT_LDFLAGS}
 | 
			
		||||
   ${LIBAPPARMOR_LDFLAGS}
 | 
			
		||||
-- 
 | 
			
		||||
2.47.1
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,9 @@
 | 
			
		||||
  fetchpatch,
 | 
			
		||||
  gitUpdater,
 | 
			
		||||
  testers,
 | 
			
		||||
  boost,
 | 
			
		||||
  # dbus-cpp not compatible with Boost 1.87
 | 
			
		||||
  # https://gitlab.com/ubports/development/core/lib-cpp/dbus-cpp/-/issues/8
 | 
			
		||||
  boost186,
 | 
			
		||||
  cmake,
 | 
			
		||||
  cmake-extras,
 | 
			
		||||
  dbus,
 | 
			
		||||
@ -50,6 +52,10 @@ stdenv.mkDerivation (finalAttrs: {
 | 
			
		||||
      url = "https://gitlab.com/ubports/development/core/trust-store/-/commit/569f6b35d8bcdb2ae5ff84549cd92cfc0899675b.patch";
 | 
			
		||||
      hash = "sha256-3lrdVIzscXGiLKwftC5oECICVv3sBoS4UedfRHx7uOs=";
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    # Fix compatibility with glog 0.7.x
 | 
			
		||||
    # Remove when https://gitlab.com/ubports/development/core/trust-store/-/merge_requests/18 merged & in release
 | 
			
		||||
    ./1001-treewide-Switch-to-glog-CMake-module.patch
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  postPatch =
 | 
			
		||||
@ -79,7 +85,7 @@ stdenv.mkDerivation (finalAttrs: {
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  buildInputs = [
 | 
			
		||||
    boost
 | 
			
		||||
    boost186
 | 
			
		||||
    cmake-extras
 | 
			
		||||
    dbus-cpp
 | 
			
		||||
    glog
 | 
			
		||||
 | 
			
		||||
@ -61,5 +61,6 @@ stdenv.mkDerivation rec {
 | 
			
		||||
    maintainers = lib.teams.lisp.members;
 | 
			
		||||
    license = licenses.gpl2;
 | 
			
		||||
    platforms = platforms.linux;
 | 
			
		||||
    broken = true; # 2025-01-21; to check after 2.7.0 is tagged
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -317,20 +317,6 @@ let
 | 
			
		||||
      };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  lldbPlugins = lib.makeExtensible (
 | 
			
		||||
    lldbPlugins:
 | 
			
		||||
    let
 | 
			
		||||
      callPackage = newScope (
 | 
			
		||||
        lldbPlugins
 | 
			
		||||
        // {
 | 
			
		||||
          inherit stdenv;
 | 
			
		||||
          inherit (tools) lldb;
 | 
			
		||||
        }
 | 
			
		||||
      );
 | 
			
		||||
    in
 | 
			
		||||
    lib.recurseIntoAttrs { llef = callPackage ./lldb-plugins/llef.nix { }; }
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
  tools = lib.makeExtensible (
 | 
			
		||||
    tools:
 | 
			
		||||
    let
 | 
			
		||||
@ -671,6 +657,14 @@ let
 | 
			
		||||
          );
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      lldbPlugins = lib.makeExtensible (
 | 
			
		||||
        lldbPlugins:
 | 
			
		||||
        let
 | 
			
		||||
          callPackage = newScope ( lldbPlugins // tools // args // metadata );
 | 
			
		||||
        in
 | 
			
		||||
        lib.recurseIntoAttrs { llef = callPackage ./lldb-plugins/llef.nix { }; }
 | 
			
		||||
      );
 | 
			
		||||
 | 
			
		||||
      lldb = callPackage ./lldb.nix (
 | 
			
		||||
        {
 | 
			
		||||
          patches =
 | 
			
		||||
@ -1222,7 +1216,7 @@ let
 | 
			
		||||
  noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ];
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  inherit tools libraries lldbPlugins;
 | 
			
		||||
  inherit tools libraries;
 | 
			
		||||
  inherit (metadata) release_version;
 | 
			
		||||
}
 | 
			
		||||
// (noExtend libraries)
 | 
			
		||||
 | 
			
		||||
@ -15,11 +15,11 @@
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
stdenv.mkDerivation rec {
 | 
			
		||||
  version = "1.6.0";
 | 
			
		||||
  version = "1.7.0";
 | 
			
		||||
  pname = "opencsg";
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://www.opencsg.org/OpenCSG-${version}.tar.gz";
 | 
			
		||||
    hash = "sha256-v4+4Dj4M4R2H3XjdFaDehy27iXLYf1+Jz/xGHvrUe+g=";
 | 
			
		||||
    hash = "sha256-uJLezIGp5nwsTSXFOZ1XbY93w7DAUmBgZ0MkPIZTnfg=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [ qmake ] ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
 | 
			
		||||
 | 
			
		||||
@ -16,13 +16,13 @@
 | 
			
		||||
 | 
			
		||||
stdenvNoCC.mkDerivation (finalAttrs: {
 | 
			
		||||
  pname = "composer";
 | 
			
		||||
  version = "2.8.4";
 | 
			
		||||
  version = "2.8.5";
 | 
			
		||||
 | 
			
		||||
  # Hash used by ../../../build-support/php/pkgs/composer-phar.nix to
 | 
			
		||||
  # use together with the version from this package to keep the
 | 
			
		||||
  # bootstrap phar file up-to-date together with the end user composer
 | 
			
		||||
  # package.
 | 
			
		||||
  passthru.pharHash = "sha256-xMTi4b6rDqBOC9BCpdu6n+2h+/XtoNNiA5WO3TQ8Coo=";
 | 
			
		||||
  passthru.pharHash = "sha256-nO8YIS4iI1GutHa4HeeypTg/d1M2R0Rnv1x8z+hKsMw=";
 | 
			
		||||
 | 
			
		||||
  composer = callPackage ../../../build-support/php/pkgs/composer-phar.nix {
 | 
			
		||||
    inherit (finalAttrs) version;
 | 
			
		||||
@ -33,19 +33,9 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 | 
			
		||||
    owner = "composer";
 | 
			
		||||
    repo = "composer";
 | 
			
		||||
    tag = finalAttrs.version;
 | 
			
		||||
    hash = "sha256-m4CfWWbrmMN0j27XaMx/KRbFjpW5iMMNUlAtzlrorJc=";
 | 
			
		||||
    hash = "sha256-/E/fXh+jefPwzsADpmGyrJ+xqW5CSPNok0DVLD1KZDY=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  patches = [
 | 
			
		||||
    # Fix an issue preventing reproducible builds
 | 
			
		||||
    # This patch should be removed at the next release (2.8.5)
 | 
			
		||||
    # More information at https://github.com/composer/composer/pull/12090
 | 
			
		||||
    (fetchpatch {
 | 
			
		||||
      url = "https://github.com/composer/composer/commit/7b1e983ce9a0b30a6369cda11a7d61cca9c1ce46.patch";
 | 
			
		||||
      hash = "sha256-veBdfZxzgL/R3P87GpvxQc+es3AdpaKSzCX0DCzH63U=";
 | 
			
		||||
    })
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [ makeBinaryWrapper ];
 | 
			
		||||
 | 
			
		||||
  buildInputs = [ php ];
 | 
			
		||||
@ -53,7 +43,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 | 
			
		||||
  vendor = stdenvNoCC.mkDerivation {
 | 
			
		||||
    pname = "${finalAttrs.pname}-vendor";
 | 
			
		||||
 | 
			
		||||
    inherit (finalAttrs) src version patches;
 | 
			
		||||
    inherit (finalAttrs) src version;
 | 
			
		||||
 | 
			
		||||
    nativeBuildInputs = [
 | 
			
		||||
      cacert
 | 
			
		||||
@ -97,7 +87,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 | 
			
		||||
 | 
			
		||||
    outputHashMode = "recursive";
 | 
			
		||||
    outputHashAlgo = "sha256";
 | 
			
		||||
    outputHash = "sha256-0VbIaOuXeBNRd41q4Ogde8/B4hApueb5FeZ8cGHwB7s=";
 | 
			
		||||
    outputHash = "sha256-UcMB0leKqD8cXeExXpjDgPvF8pfhGXnCR0EN4FVWouw=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  installPhase = ''
 | 
			
		||||
 | 
			
		||||
@ -26,7 +26,7 @@
 | 
			
		||||
 | 
			
		||||
buildPythonPackage rec {
 | 
			
		||||
  pname = "aioesphomeapi";
 | 
			
		||||
  version = "28.0.0";
 | 
			
		||||
  version = "28.0.1";
 | 
			
		||||
  pyproject = true;
 | 
			
		||||
 | 
			
		||||
  disabled = pythonOlder "3.9";
 | 
			
		||||
@ -35,7 +35,7 @@ buildPythonPackage rec {
 | 
			
		||||
    owner = "esphome";
 | 
			
		||||
    repo = "aioesphomeapi";
 | 
			
		||||
    tag = "v${version}";
 | 
			
		||||
    hash = "sha256-vMqDxg2BV9/g5FquejnT/Rsvwjhdh01K2LxiT355p1U=";
 | 
			
		||||
    hash = "sha256-MAlgr+DaJWQnO4Y8KesP/d9aCRbSjUb9ciuvR5DHz+w=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  build-system = [
 | 
			
		||||
 | 
			
		||||
@ -14,7 +14,7 @@
 | 
			
		||||
 | 
			
		||||
buildPythonPackage rec {
 | 
			
		||||
  pname = "holidays";
 | 
			
		||||
  version = "0.64";
 | 
			
		||||
  version = "0.65";
 | 
			
		||||
  pyproject = true;
 | 
			
		||||
 | 
			
		||||
  disabled = pythonOlder "3.8";
 | 
			
		||||
@ -23,7 +23,7 @@ buildPythonPackage rec {
 | 
			
		||||
    owner = "vacanza";
 | 
			
		||||
    repo = "python-holidays";
 | 
			
		||||
    tag = "v${version}";
 | 
			
		||||
    hash = "sha256-rPQr7nyouBepTi4tW0+wrbROYyWo92KkZUI6ff5jl7I=";
 | 
			
		||||
    hash = "sha256-ykfcIWTRwYntp0cgrtNdgOH9y8P4TxayFPKRbo+5cI8=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  build-system = [
 | 
			
		||||
 | 
			
		||||
@ -2,26 +2,26 @@
 | 
			
		||||
  lib,
 | 
			
		||||
  buildPythonPackage,
 | 
			
		||||
  fetchFromGitHub,
 | 
			
		||||
  poetry-core,
 | 
			
		||||
  pytest-xdist,
 | 
			
		||||
  pytestCheckHook,
 | 
			
		||||
  pythonOlder,
 | 
			
		||||
 | 
			
		||||
  cairo,
 | 
			
		||||
  ffmpeg,
 | 
			
		||||
  texliveInfraOnly,
 | 
			
		||||
 | 
			
		||||
  # build-system
 | 
			
		||||
  poetry-core,
 | 
			
		||||
 | 
			
		||||
  # buildInputs
 | 
			
		||||
  cairo,
 | 
			
		||||
 | 
			
		||||
  # dependencies
 | 
			
		||||
  av,
 | 
			
		||||
  beautifulsoup4,
 | 
			
		||||
  click,
 | 
			
		||||
  cloup,
 | 
			
		||||
  decorator,
 | 
			
		||||
  isosurfaces,
 | 
			
		||||
  jupyterlab,
 | 
			
		||||
  manimpango,
 | 
			
		||||
  mapbox-earcut,
 | 
			
		||||
  moderngl,
 | 
			
		||||
  moderngl-window,
 | 
			
		||||
  networkx,
 | 
			
		||||
  notebook,
 | 
			
		||||
  numpy,
 | 
			
		||||
  pillow,
 | 
			
		||||
  pycairo,
 | 
			
		||||
@ -36,6 +36,17 @@
 | 
			
		||||
  tqdm,
 | 
			
		||||
  typing-extensions,
 | 
			
		||||
  watchdog,
 | 
			
		||||
 | 
			
		||||
  # optional-dependencies
 | 
			
		||||
  jupyterlab,
 | 
			
		||||
  notebook,
 | 
			
		||||
 | 
			
		||||
  # tests
 | 
			
		||||
  ffmpeg,
 | 
			
		||||
  pytest-cov-stub,
 | 
			
		||||
  pytest-xdist,
 | 
			
		||||
  pytestCheckHook,
 | 
			
		||||
  versionCheckHook,
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
@ -175,41 +186,26 @@ in
 | 
			
		||||
buildPythonPackage rec {
 | 
			
		||||
  pname = "manim";
 | 
			
		||||
  pyproject = true;
 | 
			
		||||
  version = "0.18.1";
 | 
			
		||||
  disabled = pythonOlder "3.9";
 | 
			
		||||
  version = "0.19.0";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "ManimCommunity";
 | 
			
		||||
    repo = "manim";
 | 
			
		||||
    tag = "v${version}";
 | 
			
		||||
    hash = "sha256-o+Wl3NMK6yopcsRVFtZuUE9c1GABa5d8rbQNHDJ4OiQ=";
 | 
			
		||||
    hash = "sha256-eQgp/GwKsfQA1ZgqfB3HF2ThEgH3Fbn9uAtcko9pkjs=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  build-system = [
 | 
			
		||||
    poetry-core
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  pythonRelaxDeps = [
 | 
			
		||||
    "cloup"
 | 
			
		||||
    "isosurfaces"
 | 
			
		||||
    "pillow"
 | 
			
		||||
    "skia-pathops"
 | 
			
		||||
    "watchdog"
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  patches = [ ./pytest-report-header.patch ];
 | 
			
		||||
 | 
			
		||||
  postPatch = ''
 | 
			
		||||
    substituteInPlace pyproject.toml \
 | 
			
		||||
      --replace "--no-cov-on-fail --cov=manim --cov-report xml --cov-report term" ""
 | 
			
		||||
 | 
			
		||||
    substituteInPlace manim/_config/default.cfg \
 | 
			
		||||
      --replace "ffmpeg_executable = ffmpeg" "ffmpeg_executable = ${lib.getExe ffmpeg}"
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  buildInputs = [ cairo ];
 | 
			
		||||
 | 
			
		||||
  dependencies = [
 | 
			
		||||
    av
 | 
			
		||||
    beautifulsoup4
 | 
			
		||||
    click
 | 
			
		||||
    cloup
 | 
			
		||||
    decorator
 | 
			
		||||
@ -257,16 +253,19 @@ buildPythonPackage rec {
 | 
			
		||||
  nativeCheckInputs = [
 | 
			
		||||
    ffmpeg
 | 
			
		||||
    manim-tinytex
 | 
			
		||||
    pytest-cov-stub
 | 
			
		||||
    pytest-xdist
 | 
			
		||||
    pytestCheckHook
 | 
			
		||||
    versionCheckHook
 | 
			
		||||
  ];
 | 
			
		||||
  versionCheckProgramArg = [ "--version" ];
 | 
			
		||||
 | 
			
		||||
  # about 55 of ~600 tests failing mostly due to demand for display
 | 
			
		||||
  disabledTests = import ./failing_tests.nix;
 | 
			
		||||
 | 
			
		||||
  pythonImportsCheck = [ "manim" ];
 | 
			
		||||
 | 
			
		||||
  meta = with lib; {
 | 
			
		||||
  meta = {
 | 
			
		||||
    description = "Animation engine for explanatory math videos - Community version";
 | 
			
		||||
    longDescription = ''
 | 
			
		||||
      Manim is an animation engine for explanatory math videos. It's used to
 | 
			
		||||
@ -274,8 +273,9 @@ buildPythonPackage rec {
 | 
			
		||||
      3Blue1Brown on YouTube. This is the community maintained version of
 | 
			
		||||
      manim.
 | 
			
		||||
    '';
 | 
			
		||||
    changelog = "https://docs.manim.community/en/latest/changelog/${version}-changelog.html";
 | 
			
		||||
    homepage = "https://github.com/ManimCommunity/manim";
 | 
			
		||||
    license = licenses.mit;
 | 
			
		||||
    license = lib.licenses.mit;
 | 
			
		||||
    maintainers = [ ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,17 +1,26 @@
 | 
			
		||||
diff --git a/conftest.py b/conftest.py
 | 
			
		||||
index dacb730a..149c6702 100644
 | 
			
		||||
--- a/conftest.py
 | 
			
		||||
+++ b/conftest.py
 | 
			
		||||
@@ -33,17 +33,3 @@ def temp_media_dir(tmpdir, monkeypatch, request):
 | 
			
		||||
         with tempconfig({"media_dir": str(tmpdir)}):
 | 
			
		||||
             assert config.media_dir == str(tmpdir)
 | 
			
		||||
             yield tmpdir
 | 
			
		||||
-
 | 
			
		||||
-
 | 
			
		||||
diff --git a/tests/conftest.py b/tests/conftest.py
 | 
			
		||||
index 4de34bbb..07b4bea6 100644
 | 
			
		||||
--- a/tests/conftest.py
 | 
			
		||||
+++ b/tests/conftest.py
 | 
			
		||||
@@ -4,31 +4,11 @@ import logging
 | 
			
		||||
 import sys
 | 
			
		||||
 from pathlib import Path
 | 
			
		||||
 
 | 
			
		||||
-import cairo
 | 
			
		||||
-import moderngl
 | 
			
		||||
 import pytest
 | 
			
		||||
 
 | 
			
		||||
 import manim
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
-def pytest_report_header(config):
 | 
			
		||||
-    ctx = moderngl.create_standalone_context()
 | 
			
		||||
-    info = ctx.info
 | 
			
		||||
-    ctx.release()
 | 
			
		||||
-    try:
 | 
			
		||||
-        ctx = moderngl.create_standalone_context()
 | 
			
		||||
-        info = ctx.info
 | 
			
		||||
-        ctx.release()
 | 
			
		||||
-    except Exception as e:
 | 
			
		||||
-        raise Exception("Error while creating moderngl context") from e
 | 
			
		||||
-
 | 
			
		||||
-    return (
 | 
			
		||||
-        f"\nCairo Version: {cairo.cairo_version()}",
 | 
			
		||||
-        "\nOpenGL information",
 | 
			
		||||
@ -20,3 +29,8 @@ index dacb730a..149c6702 100644
 | 
			
		||||
-        f"renderer: {info['GL_RENDERER'].strip()}",
 | 
			
		||||
-        f"version: {info['GL_VERSION'].strip()}\n",
 | 
			
		||||
-    )
 | 
			
		||||
-
 | 
			
		||||
-
 | 
			
		||||
 def pytest_addoption(parser):
 | 
			
		||||
     parser.addoption(
 | 
			
		||||
         "--skip_slow",
 | 
			
		||||
 | 
			
		||||
@ -11,14 +11,14 @@
 | 
			
		||||
 | 
			
		||||
buildPythonPackage rec {
 | 
			
		||||
  pname = "publicsuffixlist";
 | 
			
		||||
  version = "1.0.2.20250117";
 | 
			
		||||
  version = "1.0.2.20250121";
 | 
			
		||||
  pyproject = true;
 | 
			
		||||
 | 
			
		||||
  disabled = pythonOlder "3.7";
 | 
			
		||||
 | 
			
		||||
  src = fetchPypi {
 | 
			
		||||
    inherit pname version;
 | 
			
		||||
    hash = "sha256-7jkUrZDmx9umNrUlzzXDdJWsDtfHKg/u8dfDNtVgiCU=";
 | 
			
		||||
    hash = "sha256-LVbIYZ0rkGmZKbtnenZF5elK9wnr3A+b24NZXX3pxUM=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  build-system = [ setuptools ];
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,7 @@
 | 
			
		||||
 | 
			
		||||
buildPythonPackage rec {
 | 
			
		||||
  pname = "recurring-ical-events";
 | 
			
		||||
  version = "3.4.0";
 | 
			
		||||
  version = "3.4.1";
 | 
			
		||||
 | 
			
		||||
  disabled = pythonOlder "3.8";
 | 
			
		||||
 | 
			
		||||
@ -26,7 +26,7 @@ buildPythonPackage rec {
 | 
			
		||||
    owner = "niccokunzmann";
 | 
			
		||||
    repo = "python-recurring-ical-events";
 | 
			
		||||
    tag = "v${version}";
 | 
			
		||||
    hash = "sha256-+spbfeJ1hMMQqLj9IIu2xj4J6y1r2f94b4NK8vcDF5M=";
 | 
			
		||||
    hash = "sha256-JhGKowFtRJwLj/5J1lNpgMTl1d+oWsmV4wI3hfOW5io=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  build-system = [ setuptools ];
 | 
			
		||||
 | 
			
		||||
@ -40,14 +40,14 @@
 | 
			
		||||
 | 
			
		||||
buildPythonPackage rec {
 | 
			
		||||
  pname = "sagemaker";
 | 
			
		||||
  version = "2.237.2";
 | 
			
		||||
  version = "2.237.3";
 | 
			
		||||
  pyproject = true;
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "aws";
 | 
			
		||||
    repo = "sagemaker-python-sdk";
 | 
			
		||||
    tag = "v${version}";
 | 
			
		||||
    hash = "sha256-cNBPuXoViHy03ZMBrF3+xeMSUpovi1lloXizBvgNJmw=";
 | 
			
		||||
    hash = "sha256-eQ+5WFEobJUHdIK317A94/ro2H1xU738j3b7Z6iddlk=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  build-system = [
 | 
			
		||||
 | 
			
		||||
@ -16,14 +16,14 @@
 | 
			
		||||
 | 
			
		||||
buildPythonPackage rec {
 | 
			
		||||
  pname = "testcontainers";
 | 
			
		||||
  version = "4.9.0";
 | 
			
		||||
  version = "4.9.1";
 | 
			
		||||
  pyproject = true;
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "testcontainers";
 | 
			
		||||
    repo = "testcontainers-python";
 | 
			
		||||
    tag = "testcontainers-v${version}";
 | 
			
		||||
    hash = "sha256-E0g0A3RJY2l/0N6t+/OSXB+Xm2O/9y7FkscXfGm/nKw=";
 | 
			
		||||
    hash = "sha256-qbOtsENvPl+l2ODGyuxmiAoJwU4EIACu1GW5GPP207c=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  postPatch = ''
 | 
			
		||||
 | 
			
		||||
@ -58,14 +58,14 @@
 | 
			
		||||
 | 
			
		||||
buildPythonPackage rec {
 | 
			
		||||
  pname = "transformers";
 | 
			
		||||
  version = "4.48.0";
 | 
			
		||||
  version = "4.48.1";
 | 
			
		||||
  pyproject = true;
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "huggingface";
 | 
			
		||||
    repo = "transformers";
 | 
			
		||||
    tag = "v${version}";
 | 
			
		||||
    hash = "sha256-jh2bMmvTC0G0kLJl7xXpsvXvBmlbZEDA88AfosoE9sA=";
 | 
			
		||||
    hash = "sha256-doYvjwajwXqqaKZ363p2SE//9eupfkwrG66j0iUAnU0=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  build-system = [ setuptools ];
 | 
			
		||||
 | 
			
		||||
@ -18,6 +18,6 @@ buildGoModule {
 | 
			
		||||
 | 
			
		||||
  meta = common.meta // {
 | 
			
		||||
    description = "Command line client for the Woodpecker Continuous Integration server";
 | 
			
		||||
    mainProgram = "woodpecker";
 | 
			
		||||
    mainProgram = "woodpecker-cli";
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
{ lib, fetchzip }:
 | 
			
		||||
let
 | 
			
		||||
  version = "2.8.3";
 | 
			
		||||
  srcHash = "sha256-/Ozzibz2BhVSxQeH9tg3cC5uVl0gEA/Hw2AMOELW/I8=";
 | 
			
		||||
  version = "3.0.1";
 | 
			
		||||
  srcHash = "sha256-BJHvZhi/jjVH/NZKqGwL2ZiYGxM72EtJ0KTO21IigAY=";
 | 
			
		||||
  # The tarball contains vendored dependencies
 | 
			
		||||
  vendorHash = null;
 | 
			
		||||
in
 | 
			
		||||
@ -18,18 +18,16 @@ in
 | 
			
		||||
    cd $out/bin
 | 
			
		||||
    for f in *; do
 | 
			
		||||
      if [ "$f" = cli ]; then
 | 
			
		||||
        mv -- "$f" "woodpecker"
 | 
			
		||||
        # Issue a warning to the user if they call the deprecated executable
 | 
			
		||||
        cat >woodpecker-cli << EOF
 | 
			
		||||
        cat >woodpecker << EOF
 | 
			
		||||
    #!/bin/sh
 | 
			
		||||
    echo 'WARNING: calling \`woodpecker-cli\` is deprecated, use \`woodpecker\` instead.' >&2
 | 
			
		||||
    $out/bin/woodpecker "\$@"
 | 
			
		||||
    echo 'WARNING: calling \`woodpecker\` is deprecated, use \`woodpecker-cli\` instead.' >&2
 | 
			
		||||
    $out/bin/woodpecker-cli "\$@"
 | 
			
		||||
    EOF
 | 
			
		||||
        chmod +x woodpecker-cli
 | 
			
		||||
        patchShebangs woodpecker-cli
 | 
			
		||||
      else
 | 
			
		||||
        mv -- "$f" "woodpecker-$f"
 | 
			
		||||
        chmod +x woodpecker
 | 
			
		||||
        patchShebangs woodpecker
 | 
			
		||||
      fi
 | 
			
		||||
        mv -- "$f" "woodpecker-$f"
 | 
			
		||||
    done
 | 
			
		||||
    cd -
 | 
			
		||||
  '';
 | 
			
		||||
@ -37,7 +35,7 @@ in
 | 
			
		||||
  ldflags = [
 | 
			
		||||
    "-s"
 | 
			
		||||
    "-w"
 | 
			
		||||
    "-X go.woodpecker-ci.org/woodpecker/v2/version.Version=${version}"
 | 
			
		||||
    "-X go.woodpecker-ci.org/woodpecker/v3/version.Version=${version}"
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  meta = with lib; {
 | 
			
		||||
 | 
			
		||||
@ -64,24 +64,24 @@ def update_file(relpath, variant, version, suffix, sha256):
 | 
			
		||||
        for line in f:
 | 
			
		||||
            result = line
 | 
			
		||||
            result = re.sub(
 | 
			
		||||
                fr'^      version = ".+"; #{variant}',
 | 
			
		||||
                f'      version = "{version}"; #{variant}',
 | 
			
		||||
                fr'^      version = ".+"; # {variant}',
 | 
			
		||||
                f'      version = "{version}"; # {variant}',
 | 
			
		||||
                result)
 | 
			
		||||
            result = re.sub(
 | 
			
		||||
                fr'^      suffix = ".+"; #{variant}',
 | 
			
		||||
                f'      suffix = "{suffix}"; #{variant}',
 | 
			
		||||
                fr'^      suffix = ".+"; # {variant}',
 | 
			
		||||
                f'      suffix = "{suffix}"; # {variant}',
 | 
			
		||||
                result)
 | 
			
		||||
            result = re.sub(
 | 
			
		||||
                fr'^      sha256 = ".+"; #{variant}',
 | 
			
		||||
                f'      sha256 = "{sha256}"; #{variant}',
 | 
			
		||||
                fr'^      sha256 = ".+"; # {variant}',
 | 
			
		||||
                f'      sha256 = "{sha256}"; # {variant}',
 | 
			
		||||
                result)
 | 
			
		||||
            print(result, end='')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def read_file(relpath, variant):
 | 
			
		||||
    file_path = os.path.join(DIR, relpath)
 | 
			
		||||
    re_version = re.compile(fr'^\s*version = "(.+)"; #{variant}')
 | 
			
		||||
    re_suffix = re.compile(fr'^\s*suffix = "(.+)"; #{variant}')
 | 
			
		||||
    re_version = re.compile(fr'^\s*version = "(.+)"; # {variant}')
 | 
			
		||||
    re_suffix = re.compile(fr'^\s*suffix = "(.+)"; # {variant}')
 | 
			
		||||
    version = None
 | 
			
		||||
    suffix = None
 | 
			
		||||
    with fileinput.FileInput(file_path, mode='r') as f:
 | 
			
		||||
 | 
			
		||||
@ -12,16 +12,16 @@ let
 | 
			
		||||
  variants = {
 | 
			
		||||
    # ./update-zen.py zen
 | 
			
		||||
    zen = {
 | 
			
		||||
      version = "6.12.2"; # zen
 | 
			
		||||
      version = "6.12.10"; # zen
 | 
			
		||||
      suffix = "zen1"; # zen
 | 
			
		||||
      sha256 = "0a6anmfm6495j6lwlywr62ghpwdvbdn54bl5baya5jz7vfqc1ghj"; # zen
 | 
			
		||||
      sha256 = "1kd3bcnhlarnrpl87mrdb5r9k2jdq7m8607ai847dkmncw7q2d1q"; # zen
 | 
			
		||||
      isLqx = false;
 | 
			
		||||
    };
 | 
			
		||||
    # ./update-zen.py lqx
 | 
			
		||||
    lqx = {
 | 
			
		||||
      version = "6.12.2"; # lqx
 | 
			
		||||
      suffix = "lqx3"; # lqx
 | 
			
		||||
      sha256 = "18ibc0dz70vxb61mzdhbhbjg0kfxgcsrl3zdki0cqlhcvfxwk19h"; # lqx
 | 
			
		||||
      version = "6.12.10"; # lqx
 | 
			
		||||
      suffix = "lqx1"; # lqx
 | 
			
		||||
      sha256 = "0sg905xdyy9wmjqv6d8p5jr307j767wgk27gzxhq8dnb2dz2yg5v"; # lqx
 | 
			
		||||
      isLqx = true;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
@ -7,14 +7,14 @@
 | 
			
		||||
 | 
			
		||||
buildGoModule rec {
 | 
			
		||||
  pname = "artifactory_exporter";
 | 
			
		||||
  version = "1.14.0";
 | 
			
		||||
  version = "1.15.0";
 | 
			
		||||
  rev = "v${version}";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "peimanja";
 | 
			
		||||
    repo = pname;
 | 
			
		||||
    rev = rev;
 | 
			
		||||
    hash = "sha256-+CCUSI7Rh9fENzsg7rpI01Cm++kafd1nGgpyFRt20Ug=";
 | 
			
		||||
    hash = "sha256-5aE+ga8tK7EpkcH1exmIdROCnZ49Fz/GGkk993uYcGY=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  vendorHash = "sha256-CQ7JvXcutj63UzaYk/jbmd9G2whN48Xv1PCllaI9Nuo=";
 | 
			
		||||
 | 
			
		||||
@ -9,13 +9,13 @@
 | 
			
		||||
 | 
			
		||||
buildGoModule rec {
 | 
			
		||||
  pname = "sql_exporter";
 | 
			
		||||
  version = "0.5.8";
 | 
			
		||||
  version = "0.5.9";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "justwatchcom";
 | 
			
		||||
    repo = pname;
 | 
			
		||||
    rev = "v${version}";
 | 
			
		||||
    sha256 = "sha256-Uf5Itclc43E8tsgS8rR8F2Dq9gNVIagoB5KfEqqd7MI=";
 | 
			
		||||
    sha256 = "sha256-KygxnNbElzRtVwjKmlbgdCxO3oEYssfFl5UAk5+F50c=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  vendorHash = null;
 | 
			
		||||
 | 
			
		||||
@ -54,7 +54,7 @@ let
 | 
			
		||||
        ++ lib.optional stdenv.hostPlatform.isDarwin libunwind
 | 
			
		||||
        ++ lib.optional stdenv.hostPlatform.isLinux jemalloc;
 | 
			
		||||
 | 
			
		||||
      buildFlags = [ "localstatedir=/var/spool" ];
 | 
			
		||||
      buildFlags = [ "localstatedir=/var/run" ];
 | 
			
		||||
 | 
			
		||||
      postPatch = ''
 | 
			
		||||
        substituteInPlace bin/varnishtest/vtc_main.c --replace /bin/rm "${coreutils}/bin/rm"
 | 
			
		||||
@ -83,7 +83,7 @@ let
 | 
			
		||||
        description = "Web application accelerator also known as a caching HTTP reverse proxy";
 | 
			
		||||
        homepage = "https://www.varnish-cache.org";
 | 
			
		||||
        license = licenses.bsd2;
 | 
			
		||||
        maintainers = [ ];
 | 
			
		||||
        maintainers = lib.teams.flyingcircus.members;
 | 
			
		||||
        platforms = platforms.unix;
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
@ -99,4 +99,9 @@ in
 | 
			
		||||
    version = "7.5.0";
 | 
			
		||||
    hash = "sha256-/KYbmDE54arGHEVG0SoaOrmAfbsdgxRXHjFIyT/3K10=";
 | 
			
		||||
  };
 | 
			
		||||
  # EOL 2025-09-15
 | 
			
		||||
  varnish76 = common {
 | 
			
		||||
    version = "7.6.1";
 | 
			
		||||
    hash = "sha256-Wpu1oUn/J4Z7VKZs4W0qS5Pt/6VHPLh8nHH3aZz4Rbo=";
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -59,4 +59,8 @@ in
 | 
			
		||||
    version = "0.24.0";
 | 
			
		||||
    hash = "sha256-2MfcrhhkBz9GyQxEWzjipdn1CBEqnCvC3t1G2YSauak=";
 | 
			
		||||
  };
 | 
			
		||||
  modules25 = common {
 | 
			
		||||
    version = "0.25.0";
 | 
			
		||||
    hash = "sha256-m/7moizVyvoP8xnpircAFVUqCmCfTGkgVyRc6zkdVsk=";
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -3,6 +3,7 @@
 | 
			
		||||
  callPackage,
 | 
			
		||||
  varnish60,
 | 
			
		||||
  varnish75,
 | 
			
		||||
  varnish76,
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  varnish60Packages = rec {
 | 
			
		||||
@ -23,4 +24,8 @@
 | 
			
		||||
    varnish = varnish75;
 | 
			
		||||
    modules = (callPackages ./modules.nix { inherit varnish; }).modules24;
 | 
			
		||||
  };
 | 
			
		||||
  varnish76Packages = rec {
 | 
			
		||||
    varnish = varnish76;
 | 
			
		||||
    modules = (callPackages ./modules.nix { inherit varnish; }).modules25;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,135 +0,0 @@
 | 
			
		||||
{
 | 
			
		||||
  lib,
 | 
			
		||||
  stdenv,
 | 
			
		||||
  fetchurl,
 | 
			
		||||
  makeWrapper,
 | 
			
		||||
  php,
 | 
			
		||||
  nixosTests,
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
  versions = {
 | 
			
		||||
    matomo = {
 | 
			
		||||
      version = "5.2.1";
 | 
			
		||||
      hash = "sha256-5glMwwIG0Uo8bu904u40FUa+yaUlrQe1nUCkv9/ATks=";
 | 
			
		||||
    };
 | 
			
		||||
    matomo-beta = {
 | 
			
		||||
      version = "5.2.1";
 | 
			
		||||
      # `beta` examples: "b1", "rc1", null
 | 
			
		||||
      # when updating: use null if stable version is >= latest beta or release candidate
 | 
			
		||||
      beta = null;
 | 
			
		||||
      hash = "sha256-5glMwwIG0Uo8bu904u40FUa+yaUlrQe1nUCkv9/ATks=";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
  common =
 | 
			
		||||
    pname:
 | 
			
		||||
    {
 | 
			
		||||
      version,
 | 
			
		||||
      hash,
 | 
			
		||||
      beta ? null,
 | 
			
		||||
    }:
 | 
			
		||||
    stdenv.mkDerivation (finalAttrs: {
 | 
			
		||||
      name = "${pname}-${finalAttrs.version}";
 | 
			
		||||
      version = version + lib.optionalString (beta != null) "-${toString beta}";
 | 
			
		||||
 | 
			
		||||
      src = fetchurl {
 | 
			
		||||
        url = "https://builds.matomo.org/matomo-${finalAttrs.version}.tar.gz";
 | 
			
		||||
        inherit hash;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      nativeBuildInputs = [ makeWrapper ];
 | 
			
		||||
 | 
			
		||||
      patches = [
 | 
			
		||||
        # This changes the default value of the database server field
 | 
			
		||||
        # from 127.0.0.1 to localhost.
 | 
			
		||||
        # unix socket authentication only works with localhost,
 | 
			
		||||
        # but password-based SQL authentication works with both.
 | 
			
		||||
        # TODO: is upstream interested in this?
 | 
			
		||||
        # -> discussion at https://github.com/matomo-org/matomo/issues/12646
 | 
			
		||||
        ./make-localhost-default-database-host.patch
 | 
			
		||||
        # This changes the default config for path.geoip2 so that it doesn't point
 | 
			
		||||
        # to the nix store.
 | 
			
		||||
        ./change-path-geoip2-5.x.patch
 | 
			
		||||
      ];
 | 
			
		||||
 | 
			
		||||
      # this bootstrap.php adds support for getting PIWIK_USER_PATH
 | 
			
		||||
      # from an environment variable. Point it to a mutable location
 | 
			
		||||
      # to be able to use matomo read-only from the nix store
 | 
			
		||||
      postPatch = ''
 | 
			
		||||
        cp ${./bootstrap.php} bootstrap.php
 | 
			
		||||
      '';
 | 
			
		||||
 | 
			
		||||
      # TODO: future versions might rename the PIWIK_… variables to MATOMO_…
 | 
			
		||||
      # TODO: Move more unnecessary files from share/, especially using PIWIK_INCLUDE_PATH.
 | 
			
		||||
      #       See https://forum.matomo.org/t/bootstrap-php/5926/10 and
 | 
			
		||||
      #       https://github.com/matomo-org/matomo/issues/11654#issuecomment-297730843
 | 
			
		||||
      installPhase = ''
 | 
			
		||||
        runHook preInstall
 | 
			
		||||
 | 
			
		||||
        # copy everything to share/, used as webroot folder, and then remove what's known to be not needed
 | 
			
		||||
        mkdir -p $out/share
 | 
			
		||||
        cp -ra * $out/share/
 | 
			
		||||
        # tmp/ is created by matomo in PIWIK_USER_PATH
 | 
			
		||||
        rmdir $out/share/tmp
 | 
			
		||||
        # config/ needs to be accessed by PIWIK_USER_PATH anyway
 | 
			
		||||
        ln -s $out/share/config $out/
 | 
			
		||||
 | 
			
		||||
        makeWrapper ${php}/bin/php $out/bin/matomo-console \
 | 
			
		||||
          --add-flags "$out/share/console"
 | 
			
		||||
 | 
			
		||||
        runHook postInstall
 | 
			
		||||
      '';
 | 
			
		||||
 | 
			
		||||
      filesToFix = [
 | 
			
		||||
        "misc/composer/build-xhprof.sh"
 | 
			
		||||
        "misc/composer/clean-xhprof.sh"
 | 
			
		||||
        "misc/cron/archive.sh"
 | 
			
		||||
        "plugins/GeoIp2/config/config.php"
 | 
			
		||||
        "plugins/Installation/FormDatabaseSetup.php"
 | 
			
		||||
        "vendor/pear/archive_tar/sync-php4"
 | 
			
		||||
        "vendor/szymach/c-pchart/coverage.sh"
 | 
			
		||||
        "vendor/matomo/matomo-php-tracker/run_tests.sh"
 | 
			
		||||
        "vendor/twig/twig/drupal_test.sh"
 | 
			
		||||
      ];
 | 
			
		||||
 | 
			
		||||
      # This fixes the consistency check in the admin interface
 | 
			
		||||
      #
 | 
			
		||||
      # The filesToFix list may contain files that are exclusive to only one of the versions we build
 | 
			
		||||
      # make sure to test for existence to avoid erroring on an incompatible version and failing
 | 
			
		||||
      postFixup = ''
 | 
			
		||||
        pushd $out/share > /dev/null
 | 
			
		||||
        for f in $filesToFix; do
 | 
			
		||||
          if [ -f "$f" ]; then
 | 
			
		||||
            length="$(wc -c "$f" | cut -d' ' -f1)"
 | 
			
		||||
            hash="$(md5sum "$f" | cut -d' ' -f1)"
 | 
			
		||||
            sed -i "s:\\(\"$f\"[^(]*(\\).*:\\1\"$length\", \"$hash\"),:g" config/manifest.inc.php
 | 
			
		||||
          else
 | 
			
		||||
            echo "INFO(files-to-fix): $f does not exist in this version"
 | 
			
		||||
          fi
 | 
			
		||||
        done
 | 
			
		||||
        popd > /dev/null
 | 
			
		||||
      '';
 | 
			
		||||
 | 
			
		||||
      passthru = {
 | 
			
		||||
        tests = nixosTests.matomo."${pname}";
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      meta = with lib; {
 | 
			
		||||
        description = "Real-time web analytics application";
 | 
			
		||||
        mainProgram = "matomo-console";
 | 
			
		||||
        license = licenses.gpl3Plus;
 | 
			
		||||
        homepage = "https://matomo.org/";
 | 
			
		||||
        platforms = platforms.all;
 | 
			
		||||
        maintainers =
 | 
			
		||||
          with maintainers;
 | 
			
		||||
          [
 | 
			
		||||
            florianjacob
 | 
			
		||||
            sebbel
 | 
			
		||||
            twey
 | 
			
		||||
            boozedog
 | 
			
		||||
          ]
 | 
			
		||||
          ++ teams.flyingcircus.members;
 | 
			
		||||
      };
 | 
			
		||||
    });
 | 
			
		||||
in
 | 
			
		||||
lib.mapAttrs common versions
 | 
			
		||||
@ -11,7 +11,7 @@ let
 | 
			
		||||
  inherit (testers) testEqualContents testBuildFailure;
 | 
			
		||||
 | 
			
		||||
  mkTests =
 | 
			
		||||
    callReplaceVars:
 | 
			
		||||
    callReplaceVars: mkExpectation:
 | 
			
		||||
    lib.recurseIntoAttrs {
 | 
			
		||||
      succeeds = testEqualContents {
 | 
			
		||||
        assertion = "replaceVars-succeeds";
 | 
			
		||||
@ -21,13 +21,15 @@ let
 | 
			
		||||
          brotherhood = "shared humanity";
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        expected = builtins.toFile "expected" ''
 | 
			
		||||
          All human beings are born free and are the same in dignity and rights.
 | 
			
		||||
          They are endowed with reason and conscience and should act towards
 | 
			
		||||
          one another in a spirit of shared humanity.
 | 
			
		||||
        expected = mkExpectation (
 | 
			
		||||
          builtins.toFile "source.txt" ''
 | 
			
		||||
            All human beings are born free and are the same in dignity and rights.
 | 
			
		||||
            They are endowed with reason and conscience and should act towards
 | 
			
		||||
            one another in a spirit of shared humanity.
 | 
			
		||||
 | 
			
		||||
            -- eroosevelt@humanrights.un.org
 | 
			
		||||
        '';
 | 
			
		||||
              -- eroosevelt@humanrights.un.org
 | 
			
		||||
          ''
 | 
			
		||||
        );
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      # There might eventually be a usecase for this, but it's not supported at the moment.
 | 
			
		||||
@ -83,13 +85,15 @@ let
 | 
			
		||||
          brotherhood = null;
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        expected = builtins.toFile "expected" ''
 | 
			
		||||
          All human beings are born free and are the same in dignity and rights.
 | 
			
		||||
          They are endowed with reason and conscience and should act towards
 | 
			
		||||
          one another in a spirit of @brotherhood@.
 | 
			
		||||
        expected = mkExpectation (
 | 
			
		||||
          builtins.toFile "source.txt" ''
 | 
			
		||||
            All human beings are born free and are the same in dignity and rights.
 | 
			
		||||
            They are endowed with reason and conscience and should act towards
 | 
			
		||||
            one another in a spirit of @brotherhood@.
 | 
			
		||||
 | 
			
		||||
            -- eroosevelt@humanrights.un.org
 | 
			
		||||
        '';
 | 
			
		||||
              -- eroosevelt@humanrights.un.org
 | 
			
		||||
          ''
 | 
			
		||||
        );
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      fails-in-check-phase-with-exemption =
 | 
			
		||||
@ -120,13 +124,21 @@ let
 | 
			
		||||
    };
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  replaceVars = mkTests replaceVars;
 | 
			
		||||
  replaceVarsWith = mkTests (
 | 
			
		||||
    src: replacements:
 | 
			
		||||
    replaceVarsWith {
 | 
			
		||||
      inherit src replacements;
 | 
			
		||||
      dir = "bin";
 | 
			
		||||
      isExecutable = true;
 | 
			
		||||
    }
 | 
			
		||||
  );
 | 
			
		||||
  replaceVars = mkTests replaceVars lib.id;
 | 
			
		||||
  replaceVarsWith =
 | 
			
		||||
    mkTests
 | 
			
		||||
      (
 | 
			
		||||
        src: replacements:
 | 
			
		||||
        replaceVarsWith {
 | 
			
		||||
          inherit src replacements;
 | 
			
		||||
          dir = "bin";
 | 
			
		||||
          isExecutable = true;
 | 
			
		||||
        }
 | 
			
		||||
      )
 | 
			
		||||
      (
 | 
			
		||||
        file:
 | 
			
		||||
        runCommand "expected" { inherit file; } ''
 | 
			
		||||
          install -Dm755 "$file" "$out/bin/$(stripHash "$file")"
 | 
			
		||||
        ''
 | 
			
		||||
      );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -39,12 +39,13 @@ buildPythonApplication rec {
 | 
			
		||||
  postPatch = ''
 | 
			
		||||
    patchShebangs shell_scripts
 | 
			
		||||
    substituteInPlace shell_scripts/{awsume,awsume.fish} --replace-fail "awsumepy" "$out/bin/awsumepy"
 | 
			
		||||
    substituteInPlace awsume/configure/autocomplete.py --replace-fail "awsume-autocomplete" "$out/bin/awsume-autocomplete"
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  postInstall = ''
 | 
			
		||||
    installShellCompletion --cmd awsume \
 | 
			
		||||
      --bash <(PYTHONPATH=./awsume/configure ${python3}/bin/python3 -c"import autocomplete; print(autocomplete.SCRIPTS['bash'])") \
 | 
			
		||||
      --zsh <(PYTHONPATH=./awsume/configure ${python3}/bin/python3 -c"import autocomplete; print(autocomplete.SCRIPTS['zsh'])") \
 | 
			
		||||
      --zsh <(PYTHONPATH=./awsume/configure ${python3}/bin/python3 -c"import autocomplete; print(autocomplete.ZSH_AUTOCOMPLETE_FUNCTION)") \
 | 
			
		||||
      --fish <(PYTHONPATH=./awsume/configure ${python3}/bin/python3 -c"import autocomplete; print(autocomplete.SCRIPTS['fish'])") \
 | 
			
		||||
 | 
			
		||||
    rm -f $out/bin/awsume.bat
 | 
			
		||||
 | 
			
		||||
@ -34,6 +34,9 @@ let
 | 
			
		||||
      extraBuildInputs ? [ ],
 | 
			
		||||
      doCheck ? true,
 | 
			
		||||
      patches ? [ ],
 | 
			
		||||
      extraPostPatch ? "",
 | 
			
		||||
      env ? { },
 | 
			
		||||
      broken ? null,
 | 
			
		||||
    }:
 | 
			
		||||
    let
 | 
			
		||||
      is_extension = gawkextlib != null;
 | 
			
		||||
@ -50,9 +53,11 @@ let
 | 
			
		||||
 | 
			
		||||
      inherit patches;
 | 
			
		||||
 | 
			
		||||
      postPatch = ''
 | 
			
		||||
        cd ${name}
 | 
			
		||||
      '';
 | 
			
		||||
      postPatch =
 | 
			
		||||
        ''
 | 
			
		||||
          cd ${name}
 | 
			
		||||
        ''
 | 
			
		||||
        + extraPostPatch;
 | 
			
		||||
 | 
			
		||||
      nativeBuildInputs = [
 | 
			
		||||
        autoconf
 | 
			
		||||
@ -70,10 +75,12 @@ let
 | 
			
		||||
      setupHook = if is_extension then ./setup-hook.sh else null;
 | 
			
		||||
      inherit gawk;
 | 
			
		||||
 | 
			
		||||
      inherit env;
 | 
			
		||||
 | 
			
		||||
      inherit doCheck;
 | 
			
		||||
      nativeCheckInputs = [ more ];
 | 
			
		||||
 | 
			
		||||
      meta = with lib; {
 | 
			
		||||
      meta = {
 | 
			
		||||
        homepage = "https://sourceforge.net/projects/gawkextlib/";
 | 
			
		||||
        description = "Dynamically loaded extension libraries for GNU AWK";
 | 
			
		||||
        mainProgram = "xmlgawk";
 | 
			
		||||
@ -85,10 +92,10 @@ let
 | 
			
		||||
          database, use the GD graphics library, and perform unlimited
 | 
			
		||||
          precision MPFR calculations.
 | 
			
		||||
        '';
 | 
			
		||||
        license = licenses.gpl3Plus;
 | 
			
		||||
        platforms = platforms.unix;
 | 
			
		||||
        maintainers = with maintainers; [ tomberek ];
 | 
			
		||||
      };
 | 
			
		||||
        license = lib.licenses.gpl3Plus;
 | 
			
		||||
        platforms = lib.platforms.unix;
 | 
			
		||||
        maintainers = with lib.maintainers; [ tomberek ];
 | 
			
		||||
      } // lib.optionalAttrs (broken != null) { inherit broken; };
 | 
			
		||||
    }
 | 
			
		||||
  );
 | 
			
		||||
  gawkextlib = buildExtension {
 | 
			
		||||
@ -112,11 +119,16 @@ let
 | 
			
		||||
    errno = buildExtension {
 | 
			
		||||
      inherit gawkextlib;
 | 
			
		||||
      name = "errno";
 | 
			
		||||
      extraPostPatch = ''
 | 
			
		||||
        substituteInPlace Makefile.am --replace-fail 'cpp -M' '${stdenv.cc.targetPrefix}cpp -M'
 | 
			
		||||
      '';
 | 
			
		||||
    };
 | 
			
		||||
    gd = buildExtension {
 | 
			
		||||
      inherit gawkextlib;
 | 
			
		||||
      name = "gd";
 | 
			
		||||
      extraBuildInputs = [ gd ];
 | 
			
		||||
      # GCC 14 makes this an error by default, remove when fixed upstream
 | 
			
		||||
      env.NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types";
 | 
			
		||||
    };
 | 
			
		||||
    haru = buildExtension {
 | 
			
		||||
      inherit gawkextlib;
 | 
			
		||||
@ -127,6 +139,8 @@ let
 | 
			
		||||
        # https://github.com/libharu/libharu/commit/88271b73c68c521a49a15e3555ef00395aa40810
 | 
			
		||||
        ./fix-typos-corrected-in-libharu-2.4.4.patch
 | 
			
		||||
      ];
 | 
			
		||||
      # GCC 14 makes this an error by default, remove when fixed upstream
 | 
			
		||||
      env.NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types";
 | 
			
		||||
    };
 | 
			
		||||
    json = buildExtension {
 | 
			
		||||
      inherit gawkextlib;
 | 
			
		||||
@ -136,6 +150,9 @@ let
 | 
			
		||||
    lmdb = buildExtension {
 | 
			
		||||
      inherit gawkextlib;
 | 
			
		||||
      name = "lmdb";
 | 
			
		||||
      extraPostPatch = ''
 | 
			
		||||
        substituteInPlace Makefile.am --replace-fail 'cpp -M' '${stdenv.cc.targetPrefix}cpp -M'
 | 
			
		||||
      '';
 | 
			
		||||
      extraBuildInputs = [ lmdb ];
 | 
			
		||||
      #  mdb_env_open(env, /dev/null)
 | 
			
		||||
      #! No such device
 | 
			
		||||
@ -175,6 +192,9 @@ let
 | 
			
		||||
    select = buildExtension {
 | 
			
		||||
      inherit gawkextlib;
 | 
			
		||||
      name = "select";
 | 
			
		||||
      extraPostPatch = ''
 | 
			
		||||
        substituteInPlace Makefile.am --replace-fail 'cpp -M' '${stdenv.cc.targetPrefix}cpp -M'
 | 
			
		||||
      '';
 | 
			
		||||
    };
 | 
			
		||||
    timex = buildExtension {
 | 
			
		||||
      inherit gawkextlib;
 | 
			
		||||
@ -187,6 +207,8 @@ let
 | 
			
		||||
        expat
 | 
			
		||||
        libiconv
 | 
			
		||||
      ];
 | 
			
		||||
      # gawk: xmlbase:14: fatal: load_ext: cannot open library `../.libs/xml.so`
 | 
			
		||||
      broken = !stdenv.buildPlatform.canExecute stdenv.hostPlatform;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
in
 | 
			
		||||
 | 
			
		||||
@ -839,6 +839,7 @@ mapAliases {
 | 
			
		||||
  mathematica10 = throw "mathematica10 has been removed as it was obsolete, broken, and depended on OpenCV 2"; # Added 2024-08-20
 | 
			
		||||
  mathematica11 = throw "mathematica11 has been removed as it was obsolete, broken, and depended on OpenCV 2"; # Added 2024-08-20
 | 
			
		||||
  matomo_5 = matomo; # Added 2024-12-12
 | 
			
		||||
  matomo-beta = throw "matomo-beta has been removed as it mostly just pointed to the latest matomo release, use `matomo.overrideAttrs` to access a specific beta version instead"; # Added 2025-01-15
 | 
			
		||||
  matrique = throw "'matrique' has been renamed to/replaced by 'spectral'"; # Converted to throw 2024-10-17
 | 
			
		||||
  matrix-sliding-sync = throw "matrix-sliding-sync has been removed as matrix-synapse 114.0 and later covers its functionality"; # Added 2024-10-20
 | 
			
		||||
  maui-nota = libsForQt5.mauiPackages.nota; # added 2022-05-17
 | 
			
		||||
 | 
			
		||||
@ -5474,9 +5474,9 @@ with pkgs;
 | 
			
		||||
  unzipNLS = lowPrio (unzip.override { enableNLS = true; });
 | 
			
		||||
 | 
			
		||||
  inherit (callPackages ../servers/varnish { })
 | 
			
		||||
    varnish60 varnish75;
 | 
			
		||||
    varnish60 varnish75 varnish76;
 | 
			
		||||
  inherit (callPackages ../servers/varnish/packages.nix { })
 | 
			
		||||
    varnish60Packages varnish75Packages;
 | 
			
		||||
    varnish60Packages varnish75Packages varnish76Packages;
 | 
			
		||||
 | 
			
		||||
  varnishPackages = varnish75Packages;
 | 
			
		||||
  varnish = varnishPackages.varnish;
 | 
			
		||||
@ -11875,9 +11875,6 @@ with pkgs;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  tt-rss = callPackage ../servers/tt-rss { };
 | 
			
		||||
  inherit (callPackages ../servers/web-apps/matomo {})
 | 
			
		||||
    matomo
 | 
			
		||||
    matomo-beta;
 | 
			
		||||
 | 
			
		||||
  unpackerr = callPackage ../servers/unpackerr {
 | 
			
		||||
    inherit (darwin.apple_sdk.frameworks) Cocoa WebKit;
 | 
			
		||||
 | 
			
		||||
@ -22795,8 +22795,12 @@ with self; {
 | 
			
		||||
      hash = "sha256-RokV+joE3PZXT8lX7/SVkV4kVpQ0lwyR7o5OFFn8kRQ=";
 | 
			
		||||
    };
 | 
			
		||||
    setOutputFlags = false;
 | 
			
		||||
    buildInputs = [ pkgs.which ];
 | 
			
		||||
    nativeBuildInputs = [ pkgs.which ];
 | 
			
		||||
    patches = [ ../development/perl-modules/Socket6-sv_undef.patch ];
 | 
			
		||||
    preConfigure = lib.optionalString (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
 | 
			
		||||
      substituteInPlace configure \
 | 
			
		||||
        --replace-fail 'cross_compiling=no' 'cross_compiling=yes;ipv6_cv_can_inet_ntop=yes'
 | 
			
		||||
    '';
 | 
			
		||||
    meta = {
 | 
			
		||||
      description = "IPv6 related part of the C socket.h defines and structure manipulators";
 | 
			
		||||
      license = with lib.licenses; [ bsd3 ];
 | 
			
		||||
@ -27714,7 +27718,21 @@ with self; {
 | 
			
		||||
      # in an error with clang 16.
 | 
			
		||||
      ../development/perl-modules/tk-configure-implicit-int-fix.patch
 | 
			
		||||
    ];
 | 
			
		||||
    makeMakerFlags = [ "X11INC=${pkgs.xorg.libX11.dev}/include" "X11LIB=${pkgs.xorg.libX11.out}/lib" ];
 | 
			
		||||
    postPatch = ''
 | 
			
		||||
      substituteInPlace pTk/mTk/additions/imgWindow.c \
 | 
			
		||||
        --replace-fail '"X11/Xproto.h"' "<X11/Xproto.h>"
 | 
			
		||||
      substituteInPlace PNG/zlib/Makefile.in \
 | 
			
		||||
        --replace-fail '$(AR) $@' '$(AR) rc $@'
 | 
			
		||||
      substituteInPlace PNG/libpng/scripts/makefile.gcc \
 | 
			
		||||
        --replace-fail 'AR_RC = ar rcs' 'AR_RC = ${pkgs.stdenv.cc.targetPrefix}ar rcs'
 | 
			
		||||
      substituteInPlace JPEG/jpeg/makefile.cfg \
 | 
			
		||||
        --replace-fail 'AR= ar rc' 'AR= ${pkgs.stdenv.cc.targetPrefix}ar rc'
 | 
			
		||||
    '';
 | 
			
		||||
    makeMakerFlags = [
 | 
			
		||||
      "AR=${pkgs.stdenv.cc.targetPrefix}ar"
 | 
			
		||||
      "X11INC=${pkgs.xorg.libX11.dev}/include"
 | 
			
		||||
      "X11LIB=${pkgs.xorg.libX11.out}/lib"
 | 
			
		||||
    ];
 | 
			
		||||
    buildInputs = [ pkgs.xorg.libX11 pkgs.libpng ];
 | 
			
		||||
    env = lib.optionalAttrs stdenv.cc.isGNU {
 | 
			
		||||
      NIX_CFLAGS_COMPILE = toString [
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user