Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2024-07-18 18:01:57 +00:00 committed by GitHub
commit 401d4660b3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
59 changed files with 1627 additions and 915 deletions

View File

@ -18113,6 +18113,12 @@
githubId = 15379000;
name = "schneefux";
};
schnow265 = {
email = "thesnowbox@icloud.com";
github = "schnow265";
githubId = 57457177;
name = "Luca Scalet";
};
schnusch = {
github = "schnusch";
githubId = 5104601;

View File

@ -13,6 +13,9 @@
- `authelia` has been upgraded to version 4.38. This version brings several features and improvements which are detailed in the [release blog post](https://www.authelia.com/blog/4.38-release-notes/).
This release also deprecates some configuration keys, which are likely to be removed in future version 5.0, but they are still supported and expected to be working in the current version.
- `hardware.display` is a new module implementing workarounds for misbehaving monitors
through setting up custom EDID files and forcing kernel/framebuffer modes.
## New Services {#sec-release-24.11-new-services}
- [Open-WebUI](https://github.com/open-webui/open-webui), a user-friendly WebUI

View File

@ -567,6 +567,7 @@
./services/hardware/bolt.nix
./services/hardware/brltty.nix
./services/hardware/ddccontrol.nix
./services/hardware/display.nix
./services/hardware/fancontrol.nix
./services/hardware/freefall.nix
./services/hardware/fwupd.nix

View File

@ -0,0 +1,130 @@
# Customizing display configuration {#module-hardware-display}
This section describes how to customize display configuration using:
- kernel modes
- EDID files
Example situations it can help you with:
- display controllers (external hardware) not advertising EDID at all,
- misbehaving graphics drivers,
- loading custom display configuration before the Display Manager is running,
## Forcing display modes {#module-hardware-display-modes}
In case of very wrong monitor controller and/or video driver combination you can
[force the display to be enabled](https://mjmwired.net/kernel/Documentation/fb/modedb.txt#41)
and skip some driver-side checks by adding `video=<OUTPUT>:e` to `boot.kernelParams`.
This is exactly the case with [`amdgpu` drivers](https://gitlab.freedesktop.org/drm/amd/-/issues/615#note_1987392)
```nix
{
# force enabled output to skip `amdgpu` checks
hardware.display.outputs."DP-1".mode = "e";
# completely disable output no matter what is connected to it
hardware.display.outputs."VGA-2".mode = "d";
/* equals
boot.kernelParams = [ "video=DP-1:e" "video=VGA-2:d" ];
*/
}
```
## Crafting custom EDID files {#module-hardware-display-edid-custom}
To make custom EDID binaries discoverable you should first create a derivation storing them at
`$out/lib/firmware/edid/` and secondly add that derivation to `hardware.display.edid.packages` NixOS option:
```nix
{
hardware.display.edid.packages = [
(pkgs.runCommand "edid-custom" {} ''
mkdir -p $out/lib/firmware/edid
base64 -d > "$out/lib/firmware/edid/custom1.bin" <<'EOF'
<insert your base64 encoded EDID file here `base64 < /sys/class/drm/card0-.../edid`>
EOF
base64 -d > "$out/lib/firmware/edid/custom2.bin" <<'EOF'
<insert your base64 encoded EDID file here `base64 < /sys/class/drm/card1-.../edid`>
EOF
'')
];
}
```
There are 2 options significantly easing preparation of EDID files:
- `hardware.display.edid.linuxhw`
- `hardware.display.edid.modelines`
## Assigning EDID files to displays {#module-hardware-display-edid-assign}
To assign available custom EDID binaries to your monitor (video output) use `hardware.display.outputs."<NAME>".edid` option.
Under the hood it adds `drm.edid_firmware` entry to `boot.kernelParams` NixOS option for each configured output:
```nix
{
hardware.display.outputs."VGA-1".edid = "custom1.bin";
hardware.display.outputs."VGA-2".edid = "custom2.bin";
/* equals:
boot.kernelParams = [ "drm.edid_firmware=VGA-1:edid/custom1.bin,VGA-2:edid/custom2.bin" ];
*/
}
```
## Pulling files from linuxhw/EDID database {#module-hardware-display-edid-linuxhw}
`hardware.display.edid.linuxhw` utilizes `pkgs.linuxhw-edid-fetcher` to extract EDID files
from https://github.com/linuxhw/EDID based on simple string/regexp search identifying exact entries:
```nix
{
hardware.display.edid.linuxhw."PG278Q_2014" = [ "PG278Q" "2014" ];
/* equals:
hardware.display.edid.packages = [
(pkgs.linuxhw-edid-fetcher.override {
displays = {
"PG278Q_2014" = [ "PG278Q" "2014" ];
};
})
];
*/
}
```
## Using XFree86 Modeline definitions {#module-hardware-display-edid-modelines}
`hardware.display.edid.modelines` utilizes `pkgs.edid-generator` package allowing you to
conveniently use [`XFree86 Modeline`](https://en.wikipedia.org/wiki/XFree86_Modeline) entries as EDID binaries:
```nix
{
hardware.display.edid.modelines."PG278Q_60" = " 241.50 2560 2608 2640 2720 1440 1443 1448 1481 -hsync +vsync";
hardware.display.edid.modelines."PG278Q_120" = " 497.75 2560 2608 2640 2720 1440 1443 1448 1525 +hsync -vsync";
/* equals:
hardware.display.edid.packages = [
(pkgs.edid-generator.overrideAttrs {
clean = true;
modelines = ''
Modeline "PG278Q_60" 241.50 2560 2608 2640 2720 1440 1443 1448 1481 -hsync +vsync
Modeline "PG278Q_120" 497.75 2560 2608 2640 2720 1440 1443 1448 1525 +hsync -vsync
'';
})
];
*/
}
```
## Complete example for Asus PG278Q {#module-hardware-display-pg278q}
And finally this is a complete working example for a 2014 (first) batch of [Asus PG278Q monitor with `amdgpu` drivers](https://gitlab.freedesktop.org/drm/amd/-/issues/615#note_1987392):
```nix
{
hardware.display.edid.modelines."PG278Q_60" = " 241.50 2560 2608 2640 2720 1440 1443 1448 1481 -hsync +vsync";
hardware.display.edid.modelines."PG278Q_120" = " 497.75 2560 2608 2640 2720 1440 1443 1448 1525 +hsync -vsync";
hardware.display.outputs."DP-1".edid = "PG278Q_60.bin";
hardware.display.outputs."DP-1".mode = "e";
}
```

View File

@ -0,0 +1,193 @@
{ config, lib, pkgs, ... }:
let
cfg = config.hardware.display;
in
{
meta.doc = ./display.md;
meta.maintainers = with lib.maintainers; [
nazarewk
];
options = {
hardware.display.edid.enable = lib.mkOption {
type = with lib.types; bool;
default = cfg.edid.packages != null;
defaultText = lib.literalExpression "config.hardware.display.edid.packages != null";
description = ''
Enables handling of EDID files
'';
};
hardware.display.edid.packages = lib.mkOption {
type = with lib.types; listOf package;
default = [ ];
description = ''
List of packages containing EDID binary files at `$out/lib/firmware/edid`.
Such files will be available for use in `drm.edid_firmware` kernel
parameter as `edid/<filename>`.
You can craft one directly here or use sibling options `linuxhw` and `modelines`.
'';
example = lib.literalExpression ''
[
(pkgs.runCommand "edid-custom" {} '''
mkdir -p "$out/lib/firmware/edid"
base64 -d > "$out/lib/firmware/edid/custom1.bin" <<'EOF'
<insert your base64 encoded EDID file here `base64 < /sys/class/drm/card0-.../edid`>
EOF
''')
]
'';
apply = list:
if list == [ ] then null else
(pkgs.buildEnv {
name = "firmware-edid";
paths = list;
pathsToLink = [ "/lib/firmware/edid" ];
ignoreCollisions = true;
}) // {
compressFirmware = false;
};
};
hardware.display.edid.linuxhw = lib.mkOption {
type = with lib.types; attrsOf (listOf str);
default = { };
description = ''
Exposes EDID files from users-sourced database at https://github.com/linuxhw/EDID
Attribute names will be mapped to EDID filenames `<NAME>.bin`.
Attribute values are lists of `awk` regexp patterns that (together) must match
exactly one line in either of:
- [AnalogDisplay.md](https://raw.githubusercontent.com/linuxhw/EDID/master/AnalogDisplay.md)
- [DigitalDisplay.md](https://raw.githubusercontent.com/linuxhw/EDID/master/DigitalDisplay.md)
There is no universal way of locating your device config, but here are some practical tips:
1. locate your device:
- find your model number (second column)
- locate manufacturer (first column) and go through the list manually
2. narrow down results using other columns until there is only one left:
- `Name` column
- production date (`Made` column)
- resolution `Res`
- screen diagonal (`Inch` column)
- as a last resort use `ID` from the last column
'';
example = lib.literalExpression ''
{
PG278Q_2014 = [ "PG278Q" "2014" ];
}
'';
apply = displays:
if displays == { } then null else
pkgs.linuxhw-edid-fetcher.override { inherit displays; };
};
hardware.display.edid.modelines = lib.mkOption {
type = with lib.types; attrsOf str;
default = { };
description = ''
Attribute set of XFree86 Modelines automatically converted
and exposed as `edid/<name>.bin` files in initrd.
See for more information:
- https://en.wikipedia.org/wiki/XFree86_Modeline
'';
example = lib.literalExpression ''
{
"PG278Q_60" = " 241.50 2560 2608 2640 2720 1440 1443 1448 1481 -hsync +vsync";
"PG278Q_120" = " 497.75 2560 2608 2640 2720 1440 1443 1448 1525 +hsync -vsync";
"U2711_60" = " 241.50 2560 2600 2632 2720 1440 1443 1448 1481 -hsync +vsync";
}
'';
apply = modelines:
if modelines == { } then null else
pkgs.edid-generator.overrideAttrs {
clean = true;
passthru.config = modelines;
modelines = lib.trivial.pipe modelines [
(lib.mapAttrsToList (name: value:
lib.throwIfNot (builtins.stringLength name <= 12) "Modeline name must be 12 characters or less"
''Modeline "${name}" ${value}''
))
(builtins.map (line: "${line}\n"))
(lib.strings.concatStringsSep "")
];
};
};
hardware.display.outputs = lib.mkOption {
type = lib.types.attrsOf (lib.types.submodule ({
options = {
edid = lib.mkOption {
type = with lib.types; nullOr str;
default = null;
description = ''
An EDID filename to be used for configured display, as in `edid/<filename>`.
See for more information:
- `hardware.display.edid.packages`
- https://wiki.archlinux.org/title/Kernel_mode_setting#Forcing_modes_and_EDID
'';
};
mode = lib.mkOption {
type = with lib.types; nullOr str;
default = null;
description = ''
A `video` kernel parameter (framebuffer mode) configuration for the specific output:
<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]
See for more information:
- https://docs.kernel.org/fb/modedb.html
- https://wiki.archlinux.org/title/Kernel_mode_setting#Forcing_modes
'';
example = lib.literalExpression ''
"e"
'';
};
};
}));
description = ''
Hardware/kernel-level configuration of specific outputs.
'';
default = { };
example = lib.literalExpression ''
{
edid.modelines."PG278Q_60" = "241.50 2560 2608 2640 2720 1440 1443 1448 1481 -hsync +vsync";
outputs."DP-1".edid = "PG278Q_60.bin";
outputs."DP-1".mode = "e";
}
'';
};
};
config = lib.mkMerge [
{
hardware.display.edid.packages =
lib.optional (cfg.edid.modelines != null) cfg.edid.modelines
++ lib.optional (cfg.edid.linuxhw != null) cfg.edid.linuxhw;
boot.kernelParams =
# forcing video modes
lib.trivial.pipe cfg.outputs [
(lib.attrsets.filterAttrs (_: spec: spec.mode != null))
(lib.mapAttrsToList (output: spec: "video=${output}:${spec.mode}"))
]
++
# selecting EDID for displays
lib.trivial.pipe cfg.outputs [
(lib.attrsets.filterAttrs (_: spec: spec.edid != null))
(lib.mapAttrsToList (output: spec: "${output}:edid/${spec.edid}"))
(builtins.concatStringsSep ",")
(p: lib.optional (p != "") "drm.edid_firmware=${p}")
]
;
}
(lib.mkIf (cfg.edid.packages != null) {
# services.udev implements hardware.firmware option
services.udev.enable = true;
hardware.firmware = [ cfg.edid.packages ];
})
];
}

View File

@ -393,7 +393,7 @@ in
The path (inside the VM) to the device containing the EFI System Partition (ESP).
If you are *not* booting from a UEFI firmware, this value is, by
default, `null`. The ESP is mounted under `/boot`.
default, `null`. The ESP is mounted to `boot.loader.efi.efiSysMountpoint`.
'';
};
@ -1054,38 +1054,6 @@ in
boot.loader.supportsInitrdSecrets = mkIf (!cfg.useBootLoader) (mkVMOverride false);
boot.initrd.postMountCommands = lib.mkIf (!config.boot.initrd.systemd.enable)
''
# Mark this as a NixOS machine.
mkdir -p $targetRoot/etc
echo -n > $targetRoot/etc/NIXOS
# Fix the permissions on /tmp.
chmod 1777 $targetRoot/tmp
mkdir -p $targetRoot/boot
${optionalString cfg.writableStore ''
echo "mounting overlay filesystem on /nix/store..."
mkdir -p -m 0755 $targetRoot/nix/.rw-store/store $targetRoot/nix/.rw-store/work $targetRoot/nix/store
mount -t overlay overlay $targetRoot/nix/store \
-o lowerdir=$targetRoot/nix/.ro-store,upperdir=$targetRoot/nix/.rw-store/store,workdir=$targetRoot/nix/.rw-store/work || fail
''}
'';
systemd.tmpfiles.settings."10-qemu-vm" = lib.mkIf config.boot.initrd.systemd.enable {
"/etc/NIXOS".f = {
mode = "0644";
user = "root";
group = "root";
};
"${config.boot.loader.efi.efiSysMountPoint}".d = {
mode = "0644";
user = "root";
group = "root";
};
};
# After booting, register the closure of the paths in
# `virtualisation.additionalPaths' in the Nix database in the VM. This
# allows Nix operations to work in the VM. The path to the
@ -1101,8 +1069,7 @@ in
'';
boot.initrd.availableKernelModules =
optional cfg.writableStore "overlay"
++ optional (cfg.qemu.diskInterface == "scsi") "sym53c8xx"
optional (cfg.qemu.diskInterface == "scsi") "sym53c8xx"
++ optional (cfg.tpm.enable) "tpm_tis";
virtualisation.additionalPaths = [ config.system.build.toplevel ];
@ -1110,7 +1077,9 @@ in
virtualisation.sharedDirectories = {
nix-store = mkIf cfg.mountHostNixStore {
source = builtins.storeDir;
target = "/nix/store";
# Always mount this to /nix/.ro-store because we never want to actually
# write to the host Nix Store.
target = "/nix/.ro-store";
securityModel = "none";
};
xchg = {
@ -1220,10 +1189,7 @@ in
virtualisation.fileSystems = let
mkSharedDir = tag: share:
{
name =
if tag == "nix-store" && cfg.writableStore
then "/nix/.ro-store"
else share.target;
name = share.target;
value.device = tag;
value.fsType = "9p";
value.neededForBoot = true;
@ -1248,7 +1214,17 @@ in
# Sync with systemd's tmp.mount;
options = [ "mode=1777" "strictatime" "nosuid" "nodev" "size=${toString config.boot.tmp.tmpfsSize}" ];
};
"/nix/${if cfg.writableStore then ".ro-store" else "store"}" = lib.mkIf cfg.useNixStoreImage {
"/nix/store" = lib.mkIf (cfg.useNixStoreImage || cfg.mountHostNixStore) (if cfg.writableStore then {
overlay = {
lowerdir = [ "/nix/.ro-store" ];
upperdir = "/nix/.rw-store/upper";
workdir = "/nix/.rw-store/work";
};
} else {
device = "/nix/.ro-store";
options = [ "bind" ];
});
"/nix/.ro-store" = lib.mkIf cfg.useNixStoreImage {
device = "/dev/disk/by-label/${nixStoreFilesystemLabel}";
neededForBoot = true;
options = [ "ro" ];
@ -1258,40 +1234,13 @@ in
options = [ "mode=0755" ];
neededForBoot = true;
};
"/boot" = lib.mkIf (cfg.useBootLoader && cfg.bootPartition != null) {
"${config.boot.loader.efi.efiSysMountPoint}" = lib.mkIf (cfg.useBootLoader && cfg.bootPartition != null) {
device = cfg.bootPartition;
fsType = "vfat";
noCheck = true; # fsck fails on a r/o filesystem
};
}
];
boot.initrd.systemd = lib.mkIf (config.boot.initrd.systemd.enable && cfg.writableStore) {
mounts = [{
where = "/sysroot/nix/store";
what = "overlay";
type = "overlay";
options = "lowerdir=/sysroot/nix/.ro-store,upperdir=/sysroot/nix/.rw-store/store,workdir=/sysroot/nix/.rw-store/work";
wantedBy = ["initrd-fs.target"];
before = ["initrd-fs.target"];
requires = ["rw-store.service"];
after = ["rw-store.service"];
unitConfig.RequiresMountsFor = "/sysroot/nix/.ro-store";
}];
services.rw-store = {
before = [ "shutdown.target" ];
conflicts = [ "shutdown.target" ];
unitConfig = {
DefaultDependencies = false;
RequiresMountsFor = "/sysroot/nix/.rw-store";
};
serviceConfig = {
Type = "oneshot";
ExecStart = "/bin/mkdir -p -m 0755 /sysroot/nix/.rw-store/store /sysroot/nix/.rw-store/work /sysroot/nix/store";
};
};
};
swapDevices = (if cfg.useDefaultFilesystems then mkVMOverride else mkDefault) [ ];
boot.initrd.luks.devices = (if cfg.useDefaultFilesystems then mkVMOverride else mkDefault) {};

View File

@ -804,6 +804,7 @@ in {
qemu-vm-restrictnetwork = handleTest ./qemu-vm-restrictnetwork.nix {};
qemu-vm-volatile-root = runTest ./qemu-vm-volatile-root.nix;
qemu-vm-external-disk-image = runTest ./qemu-vm-external-disk-image.nix;
qemu-vm-store = runTest ./qemu-vm-store.nix;
qgis = handleTest ./qgis.nix { qgisPackage = pkgs.qgis; };
qgis-ltr = handleTest ./qgis.nix { qgisPackage = pkgs.qgis-ltr; };
qownnotes = handleTest ./qownnotes.nix {};

View File

@ -0,0 +1,71 @@
{ lib, ... }: {
name = "qemu-vm-store";
meta.maintainers = with lib.maintainers; [ nikstur ];
nodes = {
sharedWritable = {
virtualisation.writableStore = true;
};
sharedReadOnly = {
virtualisation.writableStore = false;
};
imageWritable = {
virtualisation.useNixStoreImage = true;
virtualisation.writableStore = true;
};
imageReadOnly = {
virtualisation.useNixStoreImage = true;
virtualisation.writableStore = false;
};
fullDisk = {
virtualisation.useBootLoader = true;
};
};
testScript = ''
build_derivation = """
nix-build --option substitute false -E 'derivation {
name = "t";
builder = "/bin/sh";
args = ["-c" "echo something > $out"];
system = builtins.currentSystem;
preferLocalBuild = true;
}'
"""
start_all()
with subtest("Nix Store is writable"):
sharedWritable.succeed(build_derivation)
imageWritable.succeed(build_derivation)
fullDisk.succeed(build_derivation)
with subtest("Nix Store is read only"):
sharedReadOnly.fail(build_derivation)
imageReadOnly.fail(build_derivation)
# Checking whether the fs type is 9P is just a proxy to test whether the
# Nix Store is shared. If we switch to a different technology (e.g.
# virtiofs) for sharing, we need to adjust these tests.
with subtest("Nix store is shared from the host via 9P"):
sharedWritable.succeed("findmnt --kernel --type 9P /nix/.ro-store")
sharedReadOnly.succeed("findmnt --kernel --type 9P /nix/.ro-store")
with subtest("Nix store is not shared via 9P"):
imageWritable.fail("findmnt --kernel --type 9P /nix/.ro-store")
imageReadOnly.fail("findmnt --kernel --type 9P /nix/.ro-store")
with subtest("Nix store is not mounted separately"):
rootDevice = fullDisk.succeed("stat -c %d /")
nixStoreDevice = fullDisk.succeed("stat -c %d /nix/store")
assert rootDevice == nixStoreDevice, "Nix store is mounted separately from the root fs"
'';
}

View File

@ -12,7 +12,7 @@
"new": "vim-fern"
},
"gina-vim": {
"date": "2024-07-14",
"date": "2024-07-18",
"new": "vim-gina"
},
"gist-vim": {
@ -60,7 +60,7 @@
"new": "vim-suda"
},
"vim-fsharp": {
"date": "2024-07-14",
"date": "2024-07-18",
"new": "zarchive-vim-fsharp"
},
"vim-jade": {

File diff suppressed because it is too large Load Diff

View File

@ -27,12 +27,12 @@
};
angular = buildGrammar {
language = "angular";
version = "0.0.0+rev=5c9b47c";
version = "0.0.0+rev=b96a0d1";
src = fetchFromGitHub {
owner = "dlvandenberg";
repo = "tree-sitter-angular";
rev = "5c9b47c6a978072808b356065fe8f223cdc8fc07";
hash = "sha256-nln4A2zIaFvfvWMplMDV3XMlXLEFfqx68GiNoFSR2/c=";
rev = "b96a0d1605da3492f6474245098b6f0c503e596d";
hash = "sha256-M2eDOlxHb0bjm3SfjE84M9ByVevApMqfoauKYdDG6s4=";
};
meta.homepage = "https://github.com/dlvandenberg/tree-sitter-angular";
};
@ -503,12 +503,12 @@
};
earthfile = buildGrammar {
language = "earthfile";
version = "0.0.0+rev=5a86415";
version = "0.0.0+rev=b0a9bc5";
src = fetchFromGitHub {
owner = "glehmann";
repo = "tree-sitter-earthfile";
rev = "5a864159ff728b6d4f7d0aab3723f85a467d180f";
hash = "sha256-w36h/4xGtGZpJu+ueZiO6K4Eln0DkNUw6a626urMbz4=";
rev = "b0a9bc5737340a9b80b489fe9ae93d7b2fe78cd7";
hash = "sha256-dIpoLqfIb+vsxe2DszOAKztL+YTDAVGlNccYhYe170U=";
};
meta.homepage = "https://github.com/glehmann/tree-sitter-earthfile";
};
@ -625,12 +625,12 @@
};
facility = buildGrammar {
language = "facility";
version = "0.0.0+rev=a525796";
version = "0.0.0+rev=2d037f2";
src = fetchFromGitHub {
owner = "FacilityApi";
repo = "tree-sitter-facility";
rev = "a52579670e2b14ec03d410c3c980fafaf6d659c4";
hash = "sha256-YHtKuR3AysJXV1JDEBmPCSPOpUxJSnxkbX3/y/tX8ws=";
rev = "2d037f2f2bf668737f72e6be6eda4b7918b68d86";
hash = "sha256-NyYymlCPqbi4GA+FI/M5MiQUr6tkJTNPO8Pvcy02lqI=";
};
meta.homepage = "https://github.com/FacilityApi/tree-sitter-facility";
};
@ -1198,12 +1198,12 @@
};
idl = buildGrammar {
language = "idl";
version = "0.0.0+rev=1a495f4";
version = "0.0.0+rev=556f287";
src = fetchFromGitHub {
owner = "cathaysia";
repo = "tree-sitter-idl";
rev = "1a495f4520fdd85ae4c9286fb69d9d92fb623343";
hash = "sha256-tV1Y+XvCV4KLhGeTdXZr1Lm7XQkxSMz/9EhIr7gsgpU=";
rev = "556f2878db1c26da33a921df8226f3268fadef75";
hash = "sha256-WXF+Opb5GrMqRErJvmPgzTrVnHfstfZKZ+4tWbULLGo=";
};
meta.homepage = "https://github.com/cathaysia/tree-sitter-idl";
};
@ -1673,6 +1673,17 @@
};
meta.homepage = "https://github.com/naclsn/tree-sitter-nasm";
};
nginx = buildGrammar {
language = "nginx";
version = "0.0.0+rev=281d184";
src = fetchFromGitHub {
owner = "opa-oz";
repo = "tree-sitter-nginx";
rev = "281d184b8240b2b22670b8907b57b6d6842db6f3";
hash = "sha256-OsUCCtkaCwiKWKBduk9Ktc65LP1udKcKRmU4TAy8ayE=";
};
meta.homepage = "https://github.com/opa-oz/tree-sitter-nginx";
};
nickel = buildGrammar {
language = "nickel";
version = "0.0.0+rev=3039ad9";
@ -1774,24 +1785,24 @@
};
ocaml = buildGrammar {
language = "ocaml";
version = "0.0.0+rev=cd95a67";
version = "0.0.0+rev=036226e";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-ocaml";
rev = "cd95a67cea8c839d62fc5206ed1f5c66ff9ca255";
hash = "sha256-2yuMHJtG1xHiHzMCrr72UpTjKHZP9Mxbnq77g67qouo=";
rev = "036226e5edb410aec004cc7ac0f4b2014dd04a0e";
hash = "sha256-p8e4xfcGXDzpgheAWG+fSUKCpqEsSrHw9waoTRNnrnI=";
};
location = "grammars/ocaml";
meta.homepage = "https://github.com/tree-sitter/tree-sitter-ocaml";
};
ocaml_interface = buildGrammar {
language = "ocaml_interface";
version = "0.0.0+rev=cd95a67";
version = "0.0.0+rev=036226e";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-ocaml";
rev = "cd95a67cea8c839d62fc5206ed1f5c66ff9ca255";
hash = "sha256-2yuMHJtG1xHiHzMCrr72UpTjKHZP9Mxbnq77g67qouo=";
rev = "036226e5edb410aec004cc7ac0f4b2014dd04a0e";
hash = "sha256-p8e4xfcGXDzpgheAWG+fSUKCpqEsSrHw9waoTRNnrnI=";
};
location = "grammars/interface";
meta.homepage = "https://github.com/tree-sitter/tree-sitter-ocaml";
@ -2112,12 +2123,12 @@
};
python = buildGrammar {
language = "python";
version = "0.0.0+rev=ccc2408";
version = "0.0.0+rev=0dee05e";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-python";
rev = "ccc2408e558029ad82b0dea63ff55ada495965da";
hash = "sha256-h6vz8Dpr+uqjN5UHxJ58GSQVAyRjxsnObIr6UKBBmps=";
rev = "0dee05ef958ba2eae88d1e65f24b33cad70d4367";
hash = "sha256-H6t98tuXJW2VD5Ay+rOfnp9p5ZljyPxvtIy60PycMUQ=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-python";
};
@ -2621,12 +2632,12 @@
};
swift = buildGrammar {
language = "swift";
version = "0.0.0+rev=6248145";
version = "0.0.0+rev=9653f29";
src = fetchFromGitHub {
owner = "alex-pinkus";
repo = "tree-sitter-swift";
rev = "6248145bd1c221f75feb3460e59de57f81fda58f";
hash = "sha256-/l9CMB5ypA2C9yvYPDkDXutJIrSdSwbJuh4Pb4i2Sjc=";
rev = "9653f291ab2179185dc3703672d9fbbd29e80cfb";
hash = "sha256-apboik9JCxFFvPu6wjZnwm2K21KLvmhm8iesDMbsBl4=";
};
generate = true;
meta.homepage = "https://github.com/alex-pinkus/tree-sitter-swift";
@ -2722,12 +2733,12 @@
};
templ = buildGrammar {
language = "templ";
version = "0.0.0+rev=a4f14aa";
version = "0.0.0+rev=de0d0ee";
src = fetchFromGitHub {
owner = "vrischmann";
repo = "tree-sitter-templ";
rev = "a4f14aa248b84df73cc1c00bf06edac8d7c96acd";
hash = "sha256-O5eKY9twQJp0qHjIs6juEY0VtOYXAdnlzlomh9YNndI=";
rev = "de0d0ee129cf643872e8e0d5c4a6589b5a3aae23";
hash = "sha256-eH2QXynJLM2dBtW4UPXsk+RYFUp+z2SFWaN7KO5cpE0=";
};
meta.homepage = "https://github.com/vrischmann/tree-sitter-templ";
};

View File

@ -10,7 +10,6 @@ rec {
extraConfigureFlags = [
"--with-app-name=librewolf"
"--with-app-basename=LibreWolf"
"--with-unsigned-addon-scopes=app,system"
];

View File

@ -1,31 +1,60 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch, perl, flex, bison, python3, autoconf,
which, cmake, ccache, help2man, makeWrapper, glibcLocales,
systemc, git, numactl }:
{
lib,
stdenv,
fetchFromGitHub,
perl,
flex,
bison,
python3,
autoconf,
which,
cmake,
ccache,
help2man,
makeWrapper,
glibcLocales,
systemc,
git,
numactl,
coreutils,
}:
stdenv.mkDerivation rec {
pname = "verilator";
version = "5.022";
version = "5.026";
# Verilator gets the version from this environment variable
# if it can't do git describe while building.
VERILATOR_SRC_VERSION = "v${version}";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
hash = "sha256-Ya3lqK8BfvMVLZUrD2Et6OmptteWXp5VmZb2x2G/V/E=";
hash = "sha256-Ds6w95tqlKjIFnkq2kKyslprKCwMOtBOoy7LuTon3KM=";
};
patches = [
(fetchpatch {
# Fix try-lock spuriously fail in V3ThreadPool destructor
# https://github.com/verilator/verilator/pull/4938
url = "https://github.com/verilator/verilator/commit/4b9cce4369c78423779238e585ed693c456d464e.patch";
hash = "sha256-sGrk/pxqZqUcmJdzQoPlzXMmYqHCOmd9Y2n6ieVNg1U=";
})
];
enableParallelBuilding = true;
buildInputs = [ perl python3 systemc ]; # ccache
nativeBuildInputs = [ makeWrapper flex bison autoconf help2man git ];
nativeCheckInputs = [ which numactl ]; # cmake
buildInputs = [
perl
python3
systemc
# ccache
];
nativeBuildInputs = [
makeWrapper
flex
bison
autoconf
help2man
git
];
nativeCheckInputs = [
which
numactl
coreutils
# cmake
];
doCheck = stdenv.isLinux; # darwin tests are broken for now...
checkTarget = "test";
@ -36,16 +65,12 @@ stdenv.mkDerivation rec {
patchShebangs bin/* src/* nodist/* docs/bin/* examples/xml_py/* \
test_regress/{driver.pl,t/*.{pl,pf}} \
ci/* ci/docker/run/* ci/docker/run/hooks/* ci/docker/buildenv/build.sh
# verilator --gdbbt uses /bin/echo to test if gdb works.
sed -i 's|/bin/echo|${coreutils}\/bin\/echo|' bin/verilator
'';
# grep '^#!/' -R . | grep -v /nix/store | less
# (in nix-shell after patchPhase)
postInstall = lib.optionalString stdenv.isLinux ''
for x in $(ls $out/bin/verilator*); do
wrapProgram "$x" --set LOCALE_ARCHIVE "${glibcLocales}/lib/locale/locale-archive"
done
'';
env = {
SYSTEMC_INCLUDE = "${lib.getDev systemc}/include";
SYSTEMC_LIBDIR = "${lib.getLib systemc}/lib";
@ -53,9 +78,15 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Fast and robust (System)Verilog simulator/compiler and linter";
homepage = "https://www.veripool.org/verilator";
license = with licenses; [ lgpl3Only artistic2 ];
platforms = platforms.unix;
maintainers = with maintainers; [ thoughtpolice amiloradovsky ];
homepage = "https://www.veripool.org/verilator";
license = with licenses; [
lgpl3Only
artistic2
];
platforms = platforms.unix;
maintainers = with maintainers; [
thoughtpolice
amiloradovsky
];
};
}

View File

@ -89,6 +89,14 @@ for module in $(< ~-/closure); do
done || :
done
if test -e lib/firmware/edid ; then
echo "lib/firmware/edid found, copying."
mkdir -p "$out/lib/firmware"
cp -v --no-preserve=mode --recursive --dereference --no-target-directory lib/firmware/edid "$out/lib/firmware/edid"
else
echo "lib/firmware/edid not found, skipping."
fi
# copy module ordering hints for depmod
cp $kernel/lib/modules/"$version"/modules.order $out/lib/modules/"$version"/.
cp $kernel/lib/modules/"$version"/modules.builtin $out/lib/modules/"$version"/.

View File

@ -1,12 +1,12 @@
{ pkgs, pkgsLinux, buildPackages, lib, callPackage, runCommand, stdenv, substituteAll, testers }:
# Documentation is in doc/builders/testers.chapter.md
# Documentation is in doc/build-helpers/testers.chapter.md
{
# See https://nixos.org/manual/nixpkgs/unstable/#tester-lycheeLinkCheck
# or doc/builders/testers.chapter.md
# or doc/build-helpers/testers.chapter.md
inherit (callPackage ./lychee.nix {}) lycheeLinkCheck;
# See https://nixos.org/manual/nixpkgs/unstable/#tester-testBuildFailure
# or doc/builders/testers.chapter.md
# or doc/build-helpers/testers.chapter.md
testBuildFailure = drv: drv.overrideAttrs (orig: {
builder = buildPackages.bash;
args = [
@ -16,11 +16,11 @@
});
# See https://nixos.org/manual/nixpkgs/unstable/#tester-testEqualDerivation
# or doc/builders/testers.chapter.md
# or doc/build-helpers/testers.chapter.md
testEqualDerivation = callPackage ./test-equal-derivation.nix { };
# See https://nixos.org/manual/nixpkgs/unstable/#tester-testEqualContents
# or doc/builders/testers.chapter.md
# or doc/build-helpers/testers.chapter.md
testEqualContents = {
assertion,
actual,
@ -58,7 +58,7 @@
'';
# See https://nixos.org/manual/nixpkgs/unstable/#tester-testVersion
# or doc/builders/testers.chapter.md
# or doc/build-helpers/testers.chapter.md
testVersion =
{ package,
command ? "${package.meta.mainProgram or package.pname or package.name} --version",
@ -81,8 +81,8 @@
fi
'';
# See doc/builders/testers.chapter.md or
# https://nixos.org/manual/nixpkgs/unstable/#tester-invalidateFetcherByDrvHash
# See https://nixos.org/manual/nixpkgs/unstable/#tester-invalidateFetcherByDrvHash
# or doc/build-helpers/testers.chapter.md
invalidateFetcherByDrvHash = f: args:
let
drvPath = (f args).drvPath;
@ -98,8 +98,8 @@
else salted;
in checked;
# See doc/builders/testers.chapter.md or
# https://nixos.org/manual/nixpkgs/unstable/#tester-runNixOSTest
# See https://nixos.org/manual/nixpkgs/unstable/#tester-runNixOSTest
# or doc/build-helpers/testers.chapter.md
runNixOSTest =
let nixos = import ../../../nixos/lib {
inherit lib;
@ -114,8 +114,8 @@
node.pkgs = pkgsLinux;
};
# See doc/builders/testers.chapter.md or
# https://nixos.org/manual/nixpkgs/unstable/#tester-invalidateFetcherByDrvHash
# See https://nixos.org/manual/nixpkgs/unstable/#tester-invalidateFetcherByDrvHash
# or doc/build-helpers/testers.chapter.md
nixosTest =
let
/* The nixos/lib/testing-python.nix module, preapplied with arguments that

View File

@ -19,7 +19,7 @@ let
'';
# See https://nixos.org/manual/nixpkgs/unstable/#tester-lycheeLinkCheck
# or doc/builders/testers.chapter.md
# or doc/build-helpers/testers.chapter.md
lycheeLinkCheck = {
site,
remap ? { },

View File

@ -592,7 +592,7 @@ rec {
'';
# Docs in doc/builders/special/makesetuphook.section.md
# Docs in doc/build-helpers/special/makesetuphook.section.md
# See https://nixos.org/manual/nixpkgs/unstable/#sec-pkgs.makeSetupHook
makeSetupHook =
{ name ? lib.warn "calling makeSetupHook without passing a name is deprecated." "hook"

View File

@ -1,5 +1,6 @@
{ lib
, pkgs
, customQemu ? null
, kernel ? pkgs.linux
, img ? pkgs.stdenv.hostPlatform.linux-kernel.target
, storeDir ? builtins.storeDir
@ -218,7 +219,7 @@ rec {
qemuCommandLinux = ''
${qemu-common.qemuBinary qemu} \
${if (customQemu != null) then customQemu else (qemu-common.qemuBinary qemu)} \
-nographic -no-reboot \
-device virtio-rng-pci \
-virtfs local,path=${storeDir},security_model=none,mount_tag=store \

View File

@ -47,13 +47,13 @@ stdenv.mkDerivation (finalAttrs: {
})
];
cmakeFlags = with lib; [
(cmakeBool "USE_LIBFTDI" useLibFTDI)
(cmakeBool "USE_OPENMP" useOpenMP)
(cmakeBool "BUILD_OYMOTION_SDK" false) # Needs a "GFORCE_SDK"
(cmakeBool "BUILD_BLUETOOTH" buildBluetooth)
(cmakeBool "BUILD_BLE" buildBluetoothLowEnergy)
(cmakeBool "BUILD_ONNX" buildONNX)
cmakeFlags = [
(lib.cmakeBool "USE_LIBFTDI" useLibFTDI)
(lib.cmakeBool "USE_OPENMP" useOpenMP)
(lib.cmakeBool "BUILD_OYMOTION_SDK" false) # Needs a "GFORCE_SDK"
(lib.cmakeBool "BUILD_BLUETOOTH" buildBluetooth)
(lib.cmakeBool "BUILD_BLE" buildBluetoothLowEnergy)
(lib.cmakeBool "BUILD_ONNX" buildONNX)
];
buildInputs =

View File

@ -0,0 +1,39 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "commitizen-go";
version = "1.0.3";
# we can't obtain the commit hash when using fetchFromGithub
commit_revision = "unspecified (nix build)";
src = fetchFromGitHub {
owner = "lintingzhen";
repo = "commitizen-go";
rev = "v${version}";
hash = "sha256-pAWdIQ3icXEv79s+sUVhQclsNcZg+PTZZ6I6JPo7pNg=";
};
vendorHash = "sha256-TbrgKE7P3c0gkqJPDkbchWTPkOuTaTAWd8wDcpffcCc=";
subPackages = [ "." ];
CGO_ENABLED = 0;
ldflags = [
"-X 'github.com/lintingzhen/commitizen-go/cmd.revision=${commit_revision}'"
"-X 'github.com/lintingzhen/commitizen-go/cmd.version=${version}'"
];
meta = with lib; {
description = "Command line utility to standardize git commit messages, golang version";
homepage = "https://github.com/lintingzhen/commitizen-go";
license = licenses.mit;
maintainers = with maintainers; [ seanrmurphy ];
mainProgram = "commitizen-go";
};
}

176
pkgs/by-name/ed/edido/edido.sh Executable file
View File

@ -0,0 +1,176 @@
#!/usr/bin/env bash
set -eEuo pipefail
test -z "${DEBUG:-}" || set -x
set -eEuo pipefail
FIRMWARE_PATH="${EDID_PATH:-"/run/current-system/firmware"}"
mapfile -t edid_paths <<<"${FIRMWARE_PATH//":"/$'\n'}"
err() {
LOGGER="ERROR" log "$@"
return 1
}
log() {
# shellcheck disable=SC2059
printf "[${LOGGER:-"INFO"}] $1\n" "${@:2}" >&2
}
find_path() {
local filePath="$1"
mapfile -t candidates < <(
set -x
find -L "${@:2}" -path "*/${filePath}"
)
if test "${#candidates[@]}" -eq 0; then
log "'%s' path not found" "${filePath}"
return 1
fi
log "'%s' path found at %s" "${filePath}" "${candidates[0]}"
echo -n "${candidates[0]}"
}
wait_for_file() {
local filePath="$1"
until find_path "${filePath}" "${@:2}"; do
backoff "${filePath}"
done
}
backoff() {
local what="$1" sleepFor
backoff_start="${backoff_start:-"5"}"
backoff_current="${backoff_current:-"${backoff_start}"}"
backoff_jitter_multiplier="${backoff_jitter_multiplier:-"0.3"}"
backoff_multiplier="${backoff_multiplier:-1.5}"
sleepFor="$(bc <<<"${backoff_current} + ${RANDOM} % (${backoff_current} * ${backoff_jitter_multiplier})")"
log "still waiting for '%s', retry in %s sec..." "${what}" "${sleepFor}"
sleep "${sleepFor}"
backoff_current="$(bc <<<"scale=2; ${backoff_current} * ${backoff_multiplier}")"
}
force_mode() {
local connPath="$1" newMode="$2" currentMode
currentMode="$(cat "$connPath/force")"
if test "${currentMode}" == "${newMode}"; then
log "video mode is already '%s'" "${currentMode}"
return
fi
log "changing video mode from '%s' to '%s'" "${currentMode}" "${newMode}"
echo "${newMode}" >"$connPath/force"
CHANGED=1
}
force_edid() {
local connPath="$1" edidPath="$2"
}
apply_mode() {
local connPath="$1" mode="$2"
test -n "$mode" || return
log "setting up fb mode..."
# see https://github.com/torvalds/linux/blob/8cd26fd90c1ad7acdcfb9f69ca99d13aa7b24561/drivers/gpu/drm/drm_sysfs.c#L202-L207
# see https://docs.kernel.org/fb/modedb.html
case "${mode}" in
*d) force_mode "$connPath" off ;;
*e) force_mode "$connPath" on ;;
*D) force_mode "$connPath" on-digital ;;
esac
}
apply_edid() {
local connPath="$1" edidFilename="$2" edidPath
test -n "${edidFilename}" || return
log "loading EDID override..."
edidPath="$(find_path "${edidFilename}" "${edid_paths[@]/%/"/"}" -maxdepth 2)"
force_edid "${connPath}" "$edidPath"
cat "$edidPath" >"${connPath}/edid_override"
if cmp "${connPath}/edid_override" "${edidPath}" &>/dev/null; then
log "EDID is already up to date with '%s'" "${edidPath}"
else
log "applying EDID override from ${edidPath}"
cat "$edidPath" >"${connPath}/edid_override"
CHANGED=1
fi
}
load() {
local conn="$1" edidFilename="$2" mode="$3"
export LOGGER="$conn:${edidFilename}:$mode"
CHANGED="${CHANGED:-0}"
log "starting configuration"
local connPath
connPath="$(wait_for_file "$conn" /sys/kernel/debug/dri/ -maxdepth 2 -type d)"
apply_edid "${connPath}" "${edidFilename}"
apply_mode "${connPath}" "$mode"
if test "${CHANGED}" != 0; then
log "changes detected, triggering hotplug"
echo 1 >"${connPath}/trigger_hotplug"
else
log "no changes detected, skipping hotplug trigger"
fi
}
main() {
if [[ $EUID -ne 0 ]]; then
err "must be run as root"
fi
if test "$#" == 0; then
log "loading kernel parameters from /proc/cmdline"
# replace script arguments with kernel parameters
mapfile -t args < <(xargs -n1 </proc/cmdline)
else
log "loading kernel parameters compatible arguments from commandline"
args=("$@")
fi
local -A edids modes connectors
local -a entries
local key value
for arg in "${args[@]}"; do
key="${arg%%=*}"
value=""
test "${key}" == "${arg}" || value="${arg#*=}"
case "${key}" in
video)
# one argument per connector:
# video=DP-4:e video=DP-1:e
connector="${value%:*}"
mode="${value#*:}"
connectors["${connector}"]=""
modes["$connector"]="$mode"
;;
drm.edid_firmware)
# single argument for all connectors:
# drm.edid_firmware=DP-4:edid/one.bin,DP-1:edid/two.bin
mapfile -t entries <<<"${value//","/$'\n'}"
for entry in "${entries[@]}"; do
connector="${entry%:*}"
edidFilename="${entry#*:}"
connectors["${connector}"]=""
edids["${connector}"]="${edidFilename}"
done
;;
esac
done
for connector in "${!connectors[@]}"; do
# spawn in a subshell to easily adjust and runtime modify global variables
(load "${connector}" "${edids["${connector}"]:-""}" "${modes["${connector}"]:-""}") &
done
wait
}
main "$@"

View File

@ -0,0 +1,19 @@
{ lib
, writeShellApplication
, bc
, diffutils
, findutils
, coreutils
, firmwarePaths ? [
"/run/current-system/firmware"
]
}:
writeShellApplication {
name = "edido";
meta.description = "A tool to apply display configuration from `boot.kernelParams`.";
runtimeInputs = [ diffutils findutils coreutils bc ];
text = ''
FIRMWARE_PATH="''${FIRMWARE_PATH:-"${builtins.concatStringsSep ":" firmwarePaths}"}"
${builtins.readFile ./edido.sh}
'';
}

View File

@ -0,0 +1,26 @@
{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "goread";
version = "1.6.5";
src = fetchFromGitHub {
owner = "TypicalAM";
repo = "goread";
rev = "v${version}";
hash = "sha256-SRVXcdgtRpWqvO28CnUcx40nFJnG+Hd94Ezgaj5xK6A=";
};
vendorHash = "sha256-/kxEnw8l9S7WNMcPh1x7xqiQ3L61DSn6DCIvJlyrip0=";
env.TEST_OFFLINE_ONLY = 1;
meta = {
description = "Beautiful program to read your RSS/Atom feeds right in the terminal";
homepage = "https://github.com/TypicalAM/goread";
changelog = "https://github.com/TypicalAM/goread/releases/tag/v${version}";
license = lib.licenses.gpl3Plus;
mainProgram = "goread";
maintainers = with lib.maintainers; [ schnow265 ];
};
}

View File

@ -0,0 +1,96 @@
#!/usr/bin/env bash
set -eEuo pipefail
test -z "${DEBUG:-}" || set -x
# based on instructions provided in https://github.com/linuxhw/EDID/blob/98bc7d6e2c0eaad61346a8bf877b562fee16efc3/README.md
usage() {
cat <<EOF >&2
Usage:
${BASH_SOURCE[0]} PG278Q 2014 >edid.bin
repo=/path/to/linuxhw/EDID ${BASH_SOURCE[0]} PG278Q 2014 >edid.bin
verify the generated file:
edid-decode <edid.bin
parse-edid <edid.bin
load the generated file:
cat edid.bin >/sys/kernel/debug/dri/0/DP-1/edid_override
EOF
}
log() {
# shellcheck disable=SC2059
printf "${1}\n" "${@:2}" >&2
}
find_displays() {
local script=("BEGIN { IGNORECASE=1 } /${1}/")
for pattern in "${@:2}"; do
script+=('&&' "/${pattern}/")
done
cat "${repo}"/{Analog,Digital}Display.md | awk "${script[*]}"
}
to_edid() {
if ! test -e "$1"; then
log "EDID specification file $1 does not exist,"
log "it is most likely an error with https://github.com/linuxhw/EDID"
return 1
fi
log "Extracting $1..."
# https://github.com/linuxhw/EDID/blob/228fea5d89782402dd7f84a459df7f5248573b10/README.md#L42-L42
grep -E '^([a-f0-9]{32}|[a-f0-9 ]{47})$' <"$1" | tr -d '[:space:]' | xxd -r -p
}
extract_link() {
awk '{ gsub(/^.+]\(</, ""); gsub(/>).+/, ""); print }'
}
check_repo() {
test -d "$1" && test -f "$1/AnalogDisplay.md" && test -f "$1/DigitalDisplay.md"
}
main() {
if [[ $# == 0 ]]; then
usage
exit 1
fi
: "${repo:="$PWD"}"
if ! check_repo "$repo"; then
repo="${TMPDIR:-/tmp}/edid"
log "Not running inside 'https://github.com/linuxhw/EDID', downloading content to ${repo}"
if ! check_repo "$repo"; then
curl -L https://github.com/linuxhw/EDID/tarball/HEAD | tar -zx -C "${repo}" --strip-components=1
fi
fi
log "Using repository at ${repo}"
readarray -t lines < <(find_displays "${@}")
case "${#lines[@]}" in
0)
log "No matches, try broader patterns?"
exit 1
;;
1)
log "Matched entries:"
log "> %s" "${lines[@]}"
log "Found exactly one pattern, continuing..."
;;
*)
log "Matched entries:"
log "> %s" "${lines[@]}"
log "More than one match, make patterns more specific until there is only one left"
exit 2
;;
esac
to_edid "${repo}/$(extract_link <<<"${lines[0]}")"
}
main "$@"

View File

@ -0,0 +1,66 @@
{ lib
, coreutils
, curl
, fetchFromGitHub
, gawk
, gnutar
, stdenv
, unixtools
, writeShellApplication
, nix-update-script
, displays ? { }
}:
# Usage:
# let
# edids = linuxhw-edid-fetcher.override {
# displays.PG278Q_2014 = [ "PG278Q" "2560x1440" "2014" ];
# };
# in
# "${edids}/lib/firmware/edid/PG278Q_2014.bin";
stdenv.mkDerivation rec {
pname = "linuxhw-edid-fetcher";
version = "unstable-2023-05-08";
src = fetchFromGitHub {
owner = "linuxhw";
repo = "EDID";
rev = "98bc7d6e2c0eaad61346a8bf877b562fee16efc3";
hash = "sha256-+Vz5GU2gGv4QlKO4A6BlKSETxE5GAcehKZL7SEbglGE=";
};
fetch = lib.getExe (writeShellApplication {
name = "linuxhw-edid-fetch";
runtimeInputs = [ gawk coreutils unixtools.xxd curl gnutar ];
text = ''
repo="''${repo:-"${src}"}"
${builtins.readFile ./linuxhw-edid-fetch.sh}
'';
});
configurePhase = lib.pipe displays [
(lib.mapAttrsToList (name: patterns: ''
"$fetch" ${lib.escapeShellArgs patterns} > "${name}.bin"
''))
(builtins.concatStringsSep "\n")
];
installPhase = ''
mkdir -p "$out/bin"
ln -s "$fetch" "$out/bin/"
${lib.optionalString (displays != { }) ''
install -D --mode=444 --target-directory="$out/lib/firmware/edid" *.bin
''}
'';
passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch=master" ]; };
meta = {
description = "Fetcher for EDID binaries from Linux Hardware Project's EDID repository";
homepage = "https://github.com/linuxhw/EDID";
license = lib.licenses.cc-by-40;
maintainers = with lib.maintainers; [ nazarewk ];
platforms = lib.platforms.all;
mainProgram = "linuxhw-edid-fetch";
};
}

View File

@ -7,16 +7,16 @@
}:
let
pname = "matrix-media-repo";
version = "1.3.4";
version = "1.3.6";
src = fetchFromGitHub {
owner = "t2bot";
repo = "matrix-media-repo";
rev = "v${version}";
hash = "sha256-wC69OiB3HjRs/i46+E1YS+M4zKmvH5vENHyfgU7nt1I=";
hash = "sha256-Yrw+6WKHm9Y31YvW5iXnUDhIg0TcSctaouIGhAN4iBo=";
};
vendorHash = "sha256-STzpKqn47qS0iogVYhFl4QBfKUtnqgxobqv1WaW6UtQ=";
vendorHash = "sha256-fKDdL7C3L33caoXxlutzoND2izB5GH+5qTeojTskIUg=";
asset-compiler = buildGoModule {
pname = "${pname}-compile_assets";
@ -31,10 +31,6 @@ in
buildGoModule {
inherit pname version src vendorHash;
patches = [
./synapse-import-u+x.patch
];
nativeBuildInputs = [
pkg-config
asset-compiler

View File

@ -1,22 +0,0 @@
diff --git a/cmd/homeserver_offline_exporters/import_to_synapse/main.go b/cmd/homeserver_offline_exporters/import_to_synapse/main.go
index 3c7db1e..c6cba4f 100644
--- a/cmd/homeserver_offline_exporters/import_to_synapse/main.go
+++ b/cmd/homeserver_offline_exporters/import_to_synapse/main.go
@@ -78,7 +78,7 @@ func main() {
ctx.Log.Infof("Copying %s", mxc)
directories := path.Join(cfg.ExportPath, "local_content", record.MediaId[0:2], record.MediaId[2:4])
- err = os.MkdirAll(directories, 0655)
+ err = os.MkdirAll(directories, 0755)
if err != nil {
return err
}
@@ -134,7 +134,7 @@ func main() {
dirLock.Lock()
defer dirLock.Unlock()
thumbDir := path.Join(cfg.ExportPath, "local_thumbnails", record.MediaId[0:2], record.MediaId[2:4], record.MediaId[4:])
- err = os.MkdirAll(thumbDir, 0655)
+ err = os.MkdirAll(thumbDir, 0755)
if err != nil {
ctx.Log.Warn("Error creating thumbnail directories. ", s, err)
return

View File

@ -1,4 +1,4 @@
{ lib, fetchFromGitHub, python3Packages }:
{ lib, fetchFromGitHub, python3Packages, gobject-introspection, wrapGAppsNoGuiHook }:
python3Packages.buildPythonPackage rec {
pname = "open-fprintd";
@ -11,6 +11,8 @@ python3Packages.buildPythonPackage rec {
sha256 = "sha256-uVFuwtsmR/9epoqot3lJ/5v5OuJjuRjL7FJF7oXNDzU=";
};
nativeBuildInputs = [ wrapGAppsNoGuiHook gobject-introspection ];
propagatedBuildInputs = with python3Packages; [ dbus-python pygobject3 ];
checkInputs = with python3Packages; [ dbus-python ];
@ -30,6 +32,9 @@ python3Packages.buildPythonPackage rec {
--replace /usr/lib/open-fprintd "$out/lib/open-fprintd"
'';
dontWrapGApps = true;
makeWrapperArgs = [ "\${gappsWrapperArgs[@]}" ];
postFixup = ''
wrapPythonProgramsIn "$out/lib/open-fprintd" "$out $pythonPath"
'';

View File

@ -1,3 +1,3 @@
# switch-to-configuration-ng
This program is a reimplementation of [switch-to-configuration](nixos/modules/system/activation/switch-to-configuration.pl) in Rust. The goal is to be compatible in as many ways as possible to the original implementation, at least as long as the original is still in nixpkgs. Any behavioral modifications to this program should also be implemented in the original, and vice versa.
This program is a reimplementation of [switch-to-configuration](/nixos/modules/system/activation/switch-to-configuration.pl) in Rust. The goal is to be compatible in as many ways as possible to the original implementation, at least as long as the original is still in nixpkgs. Any behavioral modifications to this program should also be implemented in the original, and vice versa.

View File

@ -66,6 +66,8 @@
wireplumberSupport ? true,
withMediaPlayer ? mprisSupport && false,
nix-update-script,
testers,
waybar,
}:
let
@ -79,18 +81,18 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "waybar";
version = "0.10.3";
version = "0.10.4";
src = fetchFromGitHub {
owner = "Alexays";
repo = "Waybar";
rev = finalAttrs.version;
hash = "sha256-LUageV0xC42MldMmYY1njkm95icBsqID1tEGy3wwrRM=";
hash = "sha256-/JW3WnRLpfz8j+9Zc9YkK63i8DjHrKwv9PWKIMz3MVI=";
};
postUnpack = lib.optional cavaSupport ''
pushd "$sourceRoot"
cp -R --no-preserve=mode,ownership ${libcava.src} subprojects/cava-0.10.1
cp -R --no-preserve=mode,ownership ${libcava.src} subprojects/cava-0.10.2
patchShebangs .
popd
'';
@ -183,7 +185,13 @@ stdenv.mkDerivation (finalAttrs: {
--prefix PYTHONPATH : "$PYTHONPATH:$out/${python3.sitePackages}"
'';
passthru.updateScript = nix-update-script { };
passthru = {
updateScript = nix-update-script { };
tests.version = testers.testVersion {
package = waybar;
version = "v${finalAttrs.version}";
};
};
meta = {
homepage = "https://github.com/alexays/waybar";

View File

@ -3,9 +3,10 @@
, fetchFromGitHub
, fetchpatch
, cmake
, testers
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "lerc";
version = "4.0.0";
@ -14,7 +15,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "esri";
repo = "lerc";
rev = "v${version}";
rev = "v${finalAttrs.version}";
hash = "sha256-IHY9QtNYsxPz/ksxRMZGHleT+/bawfTYNVRSTAuYQ7Y=";
};
@ -31,10 +32,15 @@ stdenv.mkDerivation rec {
cmake
];
passthru.tests.pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
};
meta = {
description = "C++ library for Limited Error Raster Compression";
homepage = "https://github.com/esri/lerc";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ dotlambda ];
pkgConfigModules = [ "Lerc" ];
};
}
})

View File

@ -5,6 +5,6 @@
# Example: nix-shell ./maintainers/scripts/update.nix --argstr package cacert
import ./generic.nix {
version = "3.101.1";
hash = "sha256-KcRiOUbdFnH618MFM6uxmRn+/Jn4QMHtv1BELXrCAX4=";
version = "3.102";
hash = "sha256-Dl04bPMH7/IFyKktD6Ql9XZZRCnIoq7P+30Qo8j0eBQ=";
}

View File

@ -2,7 +2,6 @@
lib,
fetchPypi,
buildPythonPackage,
pythonAtLeast,
# build-system
setuptools,
@ -14,12 +13,12 @@
buildPythonPackage rec {
pname = "makefun";
version = "1.15.2";
version = "1.15.4";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-FvKis02e4MK1eMlgoYCMl04oIs959um5xFWqzhCILUU=";
hash = "sha256-n5uZBOfDl3WTdKiPTFd4H7qypFjex430s+5ics2fsBA=";
};
postPatch = ''
@ -34,11 +33,6 @@ buildPythonPackage rec {
nativeCheckInputs = [ pytestCheckHook ];
disabledTests = lib.optionals (pythonAtLeast "3.12") [
# https://github.com/smarie/python-makefun/issues/102
"test_args_order_and_kind"
];
pythonImportsCheck = [ "makefun" ];
meta = with lib; {

View File

@ -1,7 +1,7 @@
{
lib,
buildPythonPackage,
fetchPypi,
fetchFromGitHub,
# build-system
setuptools,
@ -20,15 +20,20 @@
buildPythonPackage rec {
pname = "pyindego";
version = "3.1.1";
version = "3.2.1";
pyproject = true;
src = fetchPypi {
pname = "pyIndego";
inherit version;
hash = "sha256-lRDi6qYMaPI8SiSNe0vzlKb92axujt44aei8opNPDug=";
src = fetchFromGitHub {
owner = "jm-73";
repo = "pyIndego";
rev = "refs/tags/${version}";
hash = "sha256-wPQocacWwWjEH4boMZ33aW/NPvdD6LSmMTFXGwBwwq8=";
};
postPatch = ''
sed -i "/addopts/d" pytest.ini
'';
build-system = [ setuptools ];
dependencies = [

View File

@ -17,23 +17,21 @@
buildPythonPackage rec {
pname = "pysilero-vad";
version = "1.0.0";
version = "2.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "rhasspy";
repo = "pysilero-vad";
rev = "fc1e3f74e6282249c1fd67ab0f65832ad1ce9cc5";
hash = "sha256-5jS2xZEtvzXO/ffZzseTTUHfE528W9FvKB0AKG6T62k=";
rev = "refs/tags/v${version}";
hash = "sha256-p0pPhQo/raZhlHettmoc7FwnlZH9n2NI4tYHvikJ8i4=";
};
nativeBuildInputs = [
setuptools
];
build-system = [ setuptools ];
pythonRelaxDeps = [ "numpy" ];
propagatedBuildInputs = [
dependencies = [
numpy
onnxruntime
];

View File

@ -30,7 +30,7 @@ let
});
in
buildPythonPackage rec {
version = "1.16";
version = "1.18";
pname = "python-rapidjson";
disabled = pythonOlder "3.8";
@ -40,7 +40,7 @@ buildPythonPackage rec {
owner = "python-rapidjson";
repo = "python-rapidjson";
rev = "refs/tags/v${version}";
hash = "sha256-4Z8cNu6tK5/yAu6b9Vb/EdXQj+fQgeT0QIszTEUurVM=";
hash = "sha256-4gJm6EnT6YNg+EkkBPiPQ4TBGG/u+FZTK4bKWyqw1pM=";
};
patches = [
@ -50,7 +50,7 @@ buildPythonPackage rec {
})
];
nativeBuildInputs = [ setuptools ];
build-system = [ setuptools ];
nativeCheckInputs = [
pytestCheckHook

View File

@ -11,12 +11,11 @@
pytestCheckHook,
pythonOlder,
simplejson,
twisted,
}:
buildPythonPackage rec {
pname = "structlog";
version = "24.1.0";
version = "24.4.0";
pyproject = true;
disabled = pythonOlder "3.8";
@ -25,10 +24,10 @@ buildPythonPackage rec {
owner = "hynek";
repo = "structlog";
rev = "refs/tags/${version}";
hash = "sha256-0Yc28UEeozK2+IqILFTqHoTiM5L2SA4t6jld4qTBSzQ=";
hash = "sha256-z3ecgsep/BQJ+Fv78rV4XiFU4+1aaUEfNEtIqy44KV4=";
};
nativeBuildInputs = [
build-system = [
hatch-fancy-pypi-readme
hatch-vcs
hatchling
@ -40,7 +39,6 @@ buildPythonPackage rec {
pytest-asyncio
pytestCheckHook
simplejson
twisted
];
pythonImportsCheck = [ "structlog" ];

View File

@ -15,7 +15,7 @@
buildPythonPackage rec {
pname = "trio-asyncio";
version = "0.14.1";
version = "0.15.0";
pyproject = true;
disabled = pythonOlder "3.8";
@ -24,7 +24,7 @@ buildPythonPackage rec {
owner = "python-trio";
repo = "trio-asyncio";
rev = "refs/tags/v${version}";
hash = "sha256-634fcYAn5J1WW71J/USAMkJaZI8JmKoQneQEhz2gYFc=";
hash = "sha256-6c+4sGEpCVC8wxBg+dYgkOwRAUOi/DTITrDx3M2koyE=";
};
postPatch = ''

View File

@ -9,14 +9,14 @@
}:
let
pname = "tuya-device-sharing-sdk";
version = "0.2.0";
version = "0.1.9";
in
buildPythonPackage {
inherit pname version;
src = fetchPypi {
inherit pname version;
hash = "sha256-fu8zh59wlnxtstNbNL8mIm10tiXy22oPbi6oUy5x8c8=";
hash = "sha256-mBKR+ttBo0VF33pEmYdjbyM4bGgyDiYexIIsf8mXZW4=";
};
# workaround needed, upstream issue: https://github.com/tuya/tuya-device-sharing-sdk/issues/10

View File

@ -5,7 +5,7 @@
fetchFromGitHub,
cryptography,
ifaddr,
pytest-asyncio_0_21,
pytest-asyncio,
pytestCheckHook,
pythonOlder,
setuptools,
@ -35,7 +35,7 @@ buildPythonPackage rec {
] ++ lib.optionals (pythonOlder "3.11") [ async-timeout ];
nativeCheckInputs = [
pytest-asyncio_0_21
pytest-asyncio
pytestCheckHook
];

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "delve";
version = "1.22.1";
version = "1.23.0";
src = fetchFromGitHub {
owner = "go-delve";
repo = "delve";
rev = "v${version}";
hash = "sha256-rR84muba8nMrPZAhH+8xXOOxBvKIsU8Xju8tG7BjqBo=";
hash = "sha256-LtrPcYyuobHq6O3/vBKLTOMZfpYL7P3mtGfVqCMV9iM=";
};
vendorHash = null;

View File

@ -1157,6 +1157,8 @@ let
# For systemd-binfmt
BINFMT_MISC = option yes;
# Required for EDID overriding
FW_LOADER = yes;
# Disable the firmware helper fallback, udev doesn't implement it any more
FW_LOADER_USER_HELPER_FALLBACK = option no;

View File

@ -219,7 +219,7 @@ let
config = {
CONFIG_MODULES = "y";
CONFIG_FW_LOADER = "m";
CONFIG_FW_LOADER = "y";
CONFIG_RUST = if withRust then "y" else "n";
};
});

View File

@ -4,36 +4,36 @@
"hash": "sha256:0i29ga9lzqd4zcsbr4bbb122i8nyfhcalihnq3bgsg04dwb36s19"
},
"6.1": {
"version": "6.1.99",
"hash": "sha256:1lsdwdx7i7xw1rzq88k3bz8sar77gb4rnmjx11pbmvmiwaffx1n0"
"version": "6.1.100",
"hash": "sha256:1fd8cmdni1lgjzgn74i5dih5kx3b1axqyhiddxn4s8qgl30nxamr"
},
"5.15": {
"version": "5.15.162",
"hash": "sha256:0z0s5gk8akcbpb99jp08px78fhr8r6kkb7dpl01b3rrc2pmc1gwi"
"version": "5.15.163",
"hash": "sha256:00mkipkhz0i5xld7kyaxcj8cj8faw4gmjl5fribg832nn7ccfpq2"
},
"5.10": {
"version": "5.10.221",
"hash": "sha256:09975sby114mwfb8x2rlpaps6vb60dvs8f20cmb7hkxcxdzx87fs"
"version": "5.10.222",
"hash": "sha256:1jshn64g165rdshyjvq38ni6pkbskp50048pbz407fss7f00cbbv"
},
"5.4": {
"version": "5.4.279",
"hash": "sha256:0pja69n66hsl1r5jbzqww1hwsmqdlxmq6qv9rqx5qnrr4rml765j"
"version": "5.4.280",
"hash": "sha256:0hix0dywf2ybvzxkijjsjmkrj7sx61hwq6mg1wqsq317p1zccxm9"
},
"4.19": {
"version": "4.19.317",
"hash": "sha256:109mk4zscm8611xs3bchnr94gasvw3vxsi6zhp3f2y132g670aq6"
"version": "4.19.318",
"hash": "sha256:14vl0288apl76rvxa9yxfggrc4600bjsn4gw097m4gy5ldiaapqd"
},
"6.6": {
"version": "6.6.40",
"hash": "sha256:0f7mmw5pzd174376m7r928xbi9mdcla0vy6plq0xdf2mq01kqfjw"
"version": "6.6.41",
"hash": "sha256:1vrjw0yhzmmnbrxyzjrfyz1s8bixciv1ly9pkgcqbasqh5brrjcy"
},
"6.8": {
"version": "6.8.12",
"hash": "sha256:0fb0m0fv4521g63gq04d7lm6hy8169s1rykiav5bkd99s9b1kcqr"
},
"6.9": {
"version": "6.9.9",
"hash": "sha256:1f8y88rif3z5lp1bq00g66fd0xs1227qlqkxd2zs6fdjgr45pq1b"
"version": "6.9.10",
"hash": "sha256:18adcli0pazz7x62ws4hrj64prs6fmxln3p3xaii6zd6bwrjxlgg"
},
"6.10": {
"version": "6.10",

View File

@ -1,8 +1,8 @@
{ stdenv, lib, fetchsvn, linux
, scripts ? fetchsvn {
url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/";
rev = "19607";
sha256 = "1kf1hm553g8sh7wyh0jw7nl2nmrzg74b62z1q17bznq5a7qf87pn";
rev = "19611";
sha256 = "1a6h99b5i5ypr7wrfpdi6xppaf4501xw5r3qq2r9zf5qa76yjbn1";
}
, ...
}:

View File

@ -6,7 +6,7 @@
, ... } @ args:
let
version = "6.1.96-rt35"; # updated by ./update-rt.sh
version = "6.1.99-rt36"; # updated by ./update-rt.sh
branch = lib.versions.majorMinor version;
kversion = builtins.elemAt (lib.splitString "-" version) 0;
in buildLinux (args // {
@ -19,14 +19,14 @@ in buildLinux (args // {
src = fetchurl {
url = "mirror://kernel/linux/kernel/v6.x/linux-${kversion}.tar.xz";
sha256 = "1ab290vm6h8vj1qi1qhxzh9kc6dbgpkwybcwzw1aprz5kl3cjxry";
sha256 = "1lsdwdx7i7xw1rzq88k3bz8sar77gb4rnmjx11pbmvmiwaffx1n0";
};
kernelPatches = let rt-patch = {
name = "rt";
patch = fetchurl {
url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
sha256 = "1adjwxzx37w70h11ig6wcii8xb4dggw5x6si15zlsnr61dalys2d";
sha256 = "17a468lar9kf0q6n3vmknrbasrwp6pmq2gg39n1sp1bmmpr43qsf";
};
}; in [ rt-patch ] ++ kernelPatches;

View File

@ -6,7 +6,7 @@
, ... } @ args:
let
version = "6.6.36-rt35"; # updated by ./update-rt.sh
version = "6.6.40-rt36"; # updated by ./update-rt.sh
branch = lib.versions.majorMinor version;
kversion = builtins.elemAt (lib.splitString "-" version) 0;
in buildLinux (args // {
@ -19,14 +19,14 @@ in buildLinux (args // {
src = fetchurl {
url = "mirror://kernel/linux/kernel/v6.x/linux-${kversion}.tar.xz";
sha256 = "1mfdw2prjb54r19y22sm37q8spnk6lyk162ima7gps1pnwl6hrxr";
sha256 = "0f7mmw5pzd174376m7r928xbi9mdcla0vy6plq0xdf2mq01kqfjw";
};
kernelPatches = let rt-patch = {
name = "rt";
patch = fetchurl {
url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
sha256 = "154wfx6aa9yxkavf05vka8spvx99pa4svq02b6kb1zfrq6r93bq6";
sha256 = "011ajsiqhd7i1b2pzn6gaihh483n3rzyg219qz6d17a069mv5lj2";
};
}; in [ rt-patch ] ++ kernelPatches;

View File

@ -5,17 +5,21 @@ import os
import sys
import importlib_metadata
from packaging.requirements import Requirement
from packaging.requirements import InvalidRequirement, Requirement
def error(msg: str) -> None:
def error(msg: str, ret: bool = False) -> None:
print(f" - {msg}", file=sys.stderr)
return False
return ret
def check_requirement(req: str):
# https://packaging.pypa.io/en/stable/requirements.html
requirement = Requirement(req)
try:
requirement = Requirement(req)
except InvalidRequirement:
return error(f"{req} could not be parsed", ret=True)
try:
version = importlib_metadata.distribution(requirement.name).version
except importlib_metadata.PackageNotFoundError:

View File

@ -8,13 +8,13 @@
buildHomeAssistantComponent rec {
owner = "jm-73";
domain = "indego";
version = "5.5.0";
version = "5.7.2";
src = fetchFromGitHub {
owner = "jm-73";
repo = "Indego";
rev = "refs/tags/${version}";
hash = "sha256-ur6KOqU6KAseABL0ibpGJ6109wSSZq9HWSVbMIrRSqc=";
hash = "sha256-9q8aHbAMIA2xKhZl/CDXWSV1ylDCEVkpL8OUlELoG0Q=";
};
dependencies = [ pyindego ];
@ -23,8 +23,7 @@ buildHomeAssistantComponent rec {
description = "Bosch Indego lawn mower component";
changelog = "https://github.com/jm-73/Indego/releases/tag/${version}";
homepage = "https://github.com/jm-73/Indego";
# https://github.com/jm-73/pyIndego/issues/125
license = licenses.unfree;
license = licenses.asl20;
maintainers = with maintainers; [ hexa ];
};
}

View File

@ -16,16 +16,16 @@
buildGoModule rec {
pname = "evcc";
version = "0.128.1";
version = "0.128.2";
src = fetchFromGitHub {
owner = "evcc-io";
repo = "evcc";
rev = version;
hash = "sha256-xoLQcCbqzeNUyVPkcrPhmNi8PUzzeGshFVvmMCudQU8=";
hash = "sha256-V/cFLvJ9SDOBkZF5hZkRMWEj5Ow2rCcNlwDUlFUJnbA=";
};
vendorHash = "sha256-O8chNEtNEbzNiFzDD1j16V6eS3GKpUWB4PMuBiRNsyU=";
vendorHash = "sha256-kjbFu82XnukB5b7ZNygtnZ3/3XFgEMao2FtwGHOTSOI=";
npmDeps = fetchNpmDeps {
inherit src;

View File

@ -1,332 +1,240 @@
{
"bookmarks": {
"sha256": "1vpha2lxq199ckssnw7fc23dnk4pn1r0ipdwdqv102adpiqrfiy1",
"hash": "sha256-wUeXcbxNCRA2brzdCHKwl0zbhmDucKv1ZCkF3KlQ8O4=",
"url": "https://github.com/nextcloud/bookmarks/releases/download/v14.2.2/bookmarks-14.2.2.tar.gz",
"version": "14.2.2",
"description": "- 📂 Sort bookmarks into folders\n- 🏷 Add tags and personal notes\n- ☠ Find broken links and duplicates\n- 📲 Synchronize with all your browsers and devices\n- 📔 Store archived versions of your links in case they are depublished\n- 🔍 Full-text search on site contents\n- 👪 Share bookmarks with other users and via public links\n- ⚛ Generate RSS feeds of your collections\n- 📈 Stats on how often you access which links\n- 🔒 Automatic backups of your bookmarks collection\n- 💼 Built-in Dashboard widgets for frequent and recent links\n\nRequirements:\n - PHP extensions:\n - intl: *\n - mbstring: *\n - when using MySQL, use at least v8.0",
"homepage": "https://github.com/nextcloud/bookmarks",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/bookmarks"
},
"calendar": {
"sha256": "09rsp5anpaqzwmrixza5qh12vmq9hd3an045064vm3rnynz537qc",
"url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.7.6/calendar-v4.7.6.tar.gz",
"version": "4.7.6",
"hash": "sha256-ZJJmL7BgXNOZKWxG1lhruDmsLOmUQOTO0KlcS8liYfs=",
"url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.7.9/calendar-v4.7.9.tar.gz",
"version": "4.7.9",
"description": "The Calendar app is a user interface for Nextcloud's CalDAV server. Easily sync events from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Contacts - more to come.\n* 🌐 **WebCal Support!** Want to see your favorite teams matchdays in your calendar? No problem!\n* 🙋 **Attendees!** Invite people to your events\n* ⌚️ **Free/Busy!** See when your attendees are available to meet\n* ⏰ **Reminders!** Get alarms for events inside your browser and via email\n* 🔍 Search! Find your events at ease\n* ☑️ Tasks! See tasks with a due date directly in the calendar\n* 🙈 **Were not reinventing the wheel!** Based on the great [c-dav library](https://github.com/nextcloud/cdav-library), [ical.js](https://github.com/mozilla-comm/ical.js) and [fullcalendar](https://github.com/fullcalendar/fullcalendar) libraries.",
"homepage": "https://github.com/nextcloud/calendar/",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/calendar/"
},
"contacts": {
"sha256": "0xyrkr5p7xa8cn33kgx1hyblpbsdzaakpfm5bk6w9sm71a42688w",
"hash": "sha256-HCEjiAqn6sTNXKW6O5X6Ta9Ll4ehvzmGZUj1c0ue2Xc=",
"url": "https://github.com/nextcloud-releases/contacts/releases/download/v5.5.3/contacts-v5.5.3.tar.gz",
"version": "5.5.3",
"description": "The Nextcloud contacts app is a user interface for Nextcloud's CardDAV server. Easily sync contacts from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Mail and Calendar more to come.\n* 🎉 **Never forget a birthday!** You can sync birthdays and other recurring events with your Nextcloud Calendar.\n* 👥 **Sharing of Adressbooks!** You want to share your contacts with your friends or coworkers? No problem!\n* 🙈 **Were not reinventing the wheel!** Based on the great and open SabreDAV library.",
"homepage": "https://github.com/nextcloud/contacts#readme",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/contacts#readme"
},
"cookbook": {
"sha256": "0wd4vwfp4i8hfrlqfzac517iqfhzxy1sv0ryb96489q9fvbcvlnp",
"url": "https://github.com/christianlupus-nextcloud/cookbook-releases/releases/download/v0.11.0/cookbook-0.11.0.tar.gz",
"version": "0.11.0",
"hash": "sha256-qHYOGHRnPTgT5/FZWWIwBNuwxrkpk96i0cKpCLe48Y0=",
"url": "https://github.com/christianlupus-nextcloud/cookbook-releases/releases/download/v0.11.1-rc1/cookbook-0.11.1-rc1.tar.gz",
"version": "0.11.1-rc1",
"description": "A library for all your recipes. It uses JSON files following the schema.org recipe format. To add a recipe to the collection, you can paste in the URL of the recipe, and the provided web page will be parsed and downloaded to whichever folder you specify in the app settings.",
"homepage": "https://github.com/nextcloud/cookbook/",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/cookbook/"
},
"cospend": {
"sha256": "04cpsd638p8midpznbz0nhdmcm5zfgq9n6yh1xifnvmfkd5k2wj0",
"hash": "sha256-QHIxS5uubutiD9Abm/Bzv1RWG7TgL/tvixVdNEzTlxE=",
"url": "https://github.com/julien-nc/cospend-nc/releases/download/v1.6.1/cospend-1.6.1.tar.gz",
"version": "1.6.1",
"description": "# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)",
"homepage": "https://github.com/julien-nc/cospend-nc",
"licenses": [
"agpl"
]
"homepage": "https://github.com/julien-nc/cospend-nc"
},
"deck": {
"sha256": "0s8zhmqj3h4ajiwvki5bdxrbzckq9l8pr04hz6vs7jx3hpanj22g",
"url": "https://github.com/nextcloud-releases/deck/releases/download/v1.12.2/deck-v1.12.2.tar.gz",
"version": "1.12.2",
"hash": "sha256-VqO2pouipo2rGptiJRuj8ia3wSnHJ1hIeJ9xGE5QI5A=",
"url": "https://github.com/nextcloud-releases/deck/releases/download/v1.12.4/deck-v1.12.4.tar.gz",
"version": "1.12.4",
"description": "Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized",
"homepage": "https://github.com/nextcloud/deck",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/deck"
},
"end_to_end_encryption": {
"sha256": "04b2hj96gpb4sf1w5r1sxa4fmxrk36vr3pia8i5w2pfi6fbhd9mc",
"hash": "sha256-rKYGlzPRXcFLRCrekbcZM/fqiOo65MKD02TdZ5KEYhE=",
"url": "https://github.com/nextcloud-releases/end_to_end_encryption/releases/download/v1.14.5/end_to_end_encryption-v1.14.5.tar.gz",
"version": "1.14.5",
"description": "Provides the necessary endpoint to enable end-to-end encryption.\n\n**Notice:** E2EE is currently not compatible to be used together with server-side encryption",
"homepage": "https://github.com/nextcloud/end_to_end_encryption",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/end_to_end_encryption"
},
"forms": {
"sha256": "1hwc7ra12nsr79xp8lkv3ip46bxxbjpaglb0a4k06ikfnzjaddny",
"hash": "sha256-3ram5LduRgMmUWDRp65cvS9Dbhx7UnR7OllbEVQ+jMM=",
"url": "https://github.com/nextcloud-releases/forms/releases/download/v4.2.4/forms-v4.2.4.tar.gz",
"version": "4.2.4",
"description": "**Simple surveys and questionnaires, self-hosted!**\n\n- **📝 Simple design:** No mass of options, only the essentials. Works well on mobile of course.\n- **📊 View & export results:** Results are visualized and can also be exported as CSV in the same format used by Google Forms.\n- **🔒 Data under your control!** Unlike in Google Forms, Typeform, Doodle and others, the survey info and responses are kept private on your instance.\n- **🧑‍💻 Connect to your software:** Easily integrate Forms into your service with our full-fledged [REST-API](https://github.com/nextcloud/forms/blob/main/docs/API.md).\n- **🙋 Get involved!** We have lots of stuff planned like more question types, collaboration on forms, [and much more](https://github.com/nextcloud/forms/milestones)!",
"homepage": "https://github.com/nextcloud/forms",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/forms"
},
"gpoddersync": {
"sha256": "1hk052864mb49crmsy2m9alv22rk7ns6m6q7l372j7py9gr8rf60",
"hash": "sha256-wLiM8kv+HinOoAebarQ9MwuxqUpVeF0zS2RVYpAoYMI=",
"url": "https://github.com/thrillfall/nextcloud-gpodder/releases/download/3.9.0/gpoddersync.tar.gz",
"version": "3.9.0",
"description": "Expose GPodder API to sync podcast consumer apps like AntennaPod",
"homepage": "https://github.com/thrillfall/nextcloud-gpodder",
"licenses": [
"agpl"
]
"homepage": "https://github.com/thrillfall/nextcloud-gpodder"
},
"groupfolders": {
"sha256": "17lhmj4ndxp7h0fxmxk3f3dwhs44mplxpyfb6nb5ia2dm8i858w1",
"hash": "sha256-gaOCIqpNqFiWNcv52+mthGjI23Bj9todgOf2ZomskJ4=",
"url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v16.0.7/groupfolders-v16.0.7.tar.gz",
"version": "16.0.7",
"description": "Admin configured folders shared with everyone in a group.\n\nFolders can be configured from *Group folders* in the admin settings.\n\nAfter a folder is created, the admin can give access to the folder to one or more groups, control their write/sharing permissions and assign a quota for the folder.\n\nNote: Encrypting the contents of group folders is currently not supported.",
"homepage": "https://github.com/nextcloud/groupfolders",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/groupfolders"
},
"impersonate": {
"sha256": "0l1wmsiycwnn5py1mdc87paqlciclndrk72yf0ff7k11vidgb7mp",
"hash": "sha256-t571WtwhzOMccF6cmZulLDKK1T2ItRr8LdZy5qOuPFA=",
"url": "https://github.com/nextcloud-releases/impersonate/releases/download/v1.15.0/impersonate-v1.15.0.tar.gz",
"version": "1.15.0",
"description": "By installing the impersonate app of your Nextcloud you enable administrators to impersonate other users on the Nextcloud server. This is especially useful for debugging issues reported by users.\n\nTo impersonate a user an administrator has to simply follow the following four steps:\n\n1. Login as administrator to Nextcloud.\n2. Open users administration interface.\n3. Select the impersonate button on the affected user.\n4. Confirm the impersonation.\n\nThe administrator is then logged-in as the user, to switch back to the regular user account they simply have to press the logout button.\n\n**Note:**\n\n- This app is not compatible with instances that have encryption enabled.\n- While impersonate actions are logged note that actions performed impersonated will be logged as the impersonated user.\n- Impersonating a user is only possible after their first login.\n- You can limit which users/groups can use impersonation in Administration settings > Additional settings.",
"homepage": "https://github.com/nextcloud/impersonate",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/impersonate"
},
"integration_openai": {
"sha256": "0q5fs57n644mad4qvr7pb46dljmdnl4c9wkh2kdhaqnmjsa7zs8j",
"url": "https://github.com/nextcloud-releases/integration_openai/releases/download/v2.0.1/integration_openai-v2.0.1.tar.gz",
"version": "2.0.1",
"hash": "sha256-JsdhEQMSUpnpBFQyDPAVGjT6mAgR826FD3EBOFhsr4c=",
"url": "https://github.com/nextcloud-releases/integration_openai/releases/download/v2.0.3/integration_openai-v2.0.3.tar.gz",
"version": "2.0.3",
"description": "⚠️ The smart pickers have been removed from this app\nas they are now included in the [Assistant app](https://apps.nextcloud.com/apps/assistant).\n\nThis app implements:\n\n* Text generation providers: Free prompt, Summarize, Headline and Reformulate (using any available large language model)\n* A Translation provider (using any available language model)\n* A SpeechToText provider (using Whisper)\n* An image generation provider\n\nInstead of connecting to the OpenAI API for these, you can also connect to a self-hosted [LocalAI](https://localai.io) instance\nor to any service that implements an API similar to the OpenAI one, for example: [Plusserver](https://www.plusserver.com/en/ai-platform/) or [MistralAI](https://mistral.ai).\n\n## Ethical AI Rating\n### Rating for Text generation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n\n### Rating for Translation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n### Rating for Image generation using DALL·E via OpenAI API: 🔴\n\nNegative:\n* the software for training and inferencing of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be ran on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the models performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via OpenAI API: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* The trained model is freely available, and thus can run on-premise\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the models performance and CO2 usage.\n\n### Rating for Text generation via LocalAI: 🟢\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n* the training data is freely available, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n\n### Rating for Image generation using Stable Diffusion via LocalAI : 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the models performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via LocalAI: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the models performance and CO2 usage.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
"homepage": "https://github.com/nextcloud/integration_openai",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/integration_openai"
},
"integration_paperless": {
"sha256": "08rgdlinxpcwyq0f97ibv022qhj8smk94dvlf927xq46220w9pfx",
"hash": "sha256-3d3EgRCG4H5EcnQ3kmbVSEIsBNgrnuQA9pzdbiNtLyM=",
"url": "https://github.com/nextcloud-releases/integration_paperless/releases/download/v1.0.3/integration_paperless-v1.0.3.tar.gz",
"version": "1.0.3",
"description": "Integration with the [Paperless](https://docs.paperless-ngx.com) Document Management System.\nIt adds a file action menu item that can be used to upload a file from your Nextcloud Files to Paperless.",
"homepage": "",
"licenses": [
"agpl"
]
"homepage": ""
},
"mail": {
"sha256": "0bxbzibzsdqmd751759lg3vwhw9nyy5n37snijd083s1498sfqs5",
"hash": "sha256-RWOnUSJBDwSajFafYYv3NnHI93g0lRPKaRU3/Vf8qy8=",
"url": "https://github.com/nextcloud-releases/mail/releases/download/v3.7.2/mail-v3.7.2.tar.gz",
"version": "3.7.2",
"description": "**💌 A mail app for Nextcloud**\n\n- **🚀 Integration with other Nextcloud apps!** Currently Contacts, Calendar & Files more to come.\n- **📥 Multiple mail accounts!** Personal and company account? No problem, and a nice unified inbox. Connect any IMAP account.\n- **🔒 Send & receive encrypted mails!** Using the great [Mailvelope](https://mailvelope.com) browser extension.\n- **🙈 Were not reinventing the wheel!** Based on the great [Horde](https://horde.org) libraries.\n- **📬 Want to host your own mail server?** We do not have to reimplement this as you could set up [Mail-in-a-Box](https://mailinabox.email)!\n\n## Ethical AI Rating\n\n### Priority Inbox\n\nPositive:\n* The software for training and inferencing of this model is open source.\n* The model is created and trained on-premises based on the user's own data.\n* The training data is accessible to the user, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n### Thread Summaries (opt-in)\n\n**Rating:** 🟢/🟡/🟠/🔴\n\nThe rating depends on the installed text processing backend. See [the rating overview](https://docs.nextcloud.com/server/latest/admin_manual/ai/index.html) for details.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
"homepage": "https://github.com/nextcloud/mail#readme",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/mail#readme"
},
"maps": {
"sha256": "1gqms3rrdpjmpb1h5d72b4lwbvsl8p10zwnkhgnsmvfcf93h3r1c",
"hash": "sha256-LOQBR3LM7artg9PyD8JFVO/FKVnitALDulXelvPQFb8=",
"url": "https://github.com/nextcloud/maps/releases/download/v1.4.0/maps-1.4.0.tar.gz",
"version": "1.4.0",
"description": "**The whole world fits inside your cloud!**\n\n- **🗺 Beautiful map:** Using [OpenStreetMap](https://www.openstreetmap.org) and [Leaflet](https://leafletjs.com), you can choose between standard map, satellite, topographical, dark mode or even watercolor! 🎨\n- **⭐ Favorites:** Save your favorite places, privately! Sync with [GNOME Maps](https://github.com/nextcloud/maps/issues/30) and mobile apps is planned.\n- **🧭 Routing:** Possible using either [OSRM](http://project-osrm.org), [GraphHopper](https://www.graphhopper.com) or [Mapbox](https://www.mapbox.com).\n- **🖼 Photos on the map:** No more boring slideshows, just show directly where you were!\n- **🙋 Contacts on the map:** See where your friends live and plan your next visit.\n- **📱 Devices:** Lost your phone? Check the map!\n- **〰 Tracks:** Load GPS tracks or past trips. Recording with [PhoneTrack](https://f-droid.org/en/packages/net.eneiluj.nextcloud.phonetrack/) or [OwnTracks](https://owntracks.org) is planned.",
"homepage": "https://github.com/nextcloud/maps",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/maps"
},
"memories": {
"sha256": "1wahnkc253bgm0bqciyhfh1iyl8girbj8mzdd29l0k1bks8fr4qc",
"url": "https://github.com/pulsejet/memories/releases/download/v7.3.1/memories.tar.gz",
"version": "7.3.1",
"description": "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos.",
"homepage": "https://memories.gallery",
"licenses": [
"agpl"
]
"hash": "sha256-YGDyzBjeSAHI/+OdUnJNhRODv+6c3XZjKyJX/7xNo5Q=",
"url": "https://github.com/pulsejet/memories/releases/download/v7.3.1-rc.3/memories.tar.gz",
"version": "7.3.1-rc.3",
"description": "# Memories: Photo Management for Nextcloud\r\n\r\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\r\n\r\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\r\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\r\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\r\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\r\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\r\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\r\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\r\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\r\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\r\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\r\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\r\n- **⚡️ Performance**: Do all this very fast.\r\n\r\n## 🚀 Installation\r\n\r\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\r\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\r\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\r\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos.",
"homepage": "https://memories.gallery"
},
"music": {
"sha256": "17anhb0zcky4fwmbj1czm536d7k8n03iwsn3dqnyq1b9c4bqyj4m",
"hash": "sha256-lUiPF2FpBewtbsNqHgewaJ5mRqmfBbkqd8RP9sGCVp0=",
"url": "https://github.com/owncloud/music/releases/download/v2.0.0/music_2.0.0_for_nextcloud.tar.gz",
"version": "2.0.0",
"description": "A stand-alone music player app and a \"lite\" player for the Files app\n\n- On modern browsers, supports audio types .mp3, .ogg, .m4a, .m4b, .flac, .wav, and more\n- Playlist support with import from m3u, m3u8, and pls files\n- Browse by artists, albums, genres, or folders\n- Gapless play\n- Filter the shown content with the search function\n- Play internet radio and podcast channels\n- Setup Last.fm connection to see background information on artists, albums, and songs\n- Control with media control keys on the keyboard or OS\n- The app can handle libraries consisting of thousands of albums and tens of thousands of songs\n- Includes a server backend compatible with the Subsonic and Ampache protocols, allowing playback and browsing of your library on various external apps e.g. on Android or iPhone",
"homepage": "https://github.com/owncloud/music",
"licenses": [
"agpl"
]
"homepage": "https://github.com/owncloud/music"
},
"news": {
"hash": "sha256-AhTZGQCLeNgsRBF5w3+Lf9JtNN4D1QncB5t+odU+XUc=",
"url": "https://github.com/nextcloud/news/releases/download/25.0.0-alpha8/news.tar.gz",
"version": "25.0.0-alpha8",
"description": "📰 A RSS/Atom Feed reader App for Nextcloud\n\n- 📲 Synchronize your feeds with multiple mobile or desktop [clients](https://nextcloud.github.io/news/clients/)\n- 🔄 Automatic updates of your news feeds\n- 🆓 Free and open source under AGPLv3, no ads or premium functions\n\n**System Cron is currently required for this app to work**\n\nRequirements can be found [here](https://nextcloud.github.io/news/install/#dependencies)\n\nThe Changelog is available [here](https://github.com/nextcloud/news/blob/master/CHANGELOG.md)\n\nCreate a [bug report](https://github.com/nextcloud/news/issues/new/choose)\n\nCreate a [feature request](https://github.com/nextcloud/news/discussions/new)\n\nReport a [feed issue](https://github.com/nextcloud/news/discussions/new)",
"homepage": "https://github.com/nextcloud/news"
},
"notes": {
"sha256": "0j9bwbfvwwdaabyc79i514sp36cm4i9z02l8bkxlqr9fvim73nn9",
"url": "https://github.com/nextcloud-releases/notes/releases/download/v4.10.0/notes.tar.gz",
"version": "4.10.0",
"hash": "sha256-I2LsDjZdfFP5okBEIJRJcUMS8V5O9zq0ppMLA0SMI8Y=",
"url": "https://github.com/nextcloud-releases/notes/releases/download/v4.9.4/notes-v4.9.4.tar.gz",
"version": "4.9.4",
"description": "The Notes app is a distraction free notes taking app for [Nextcloud](https://www.nextcloud.com/). It provides categories for better organization and supports formatting using [Markdown](https://en.wikipedia.org/wiki/Markdown) syntax. Notes are saved as files in your Nextcloud, so you can view and edit them with every Nextcloud client. Furthermore, a separate [REST API](https://github.com/nextcloud/notes/blob/master/docs/api/README.md) allows for an easy integration into third-party apps (currently, there are notes apps for [Android](https://github.com/nextcloud/notes-android), [iOS](https://github.com/nextcloud/notes-ios) and the [console](https://git.danielmoch.com/nncli/about) which allow convenient access to your Nextcloud notes). Further features include marking notes as favorites.",
"homepage": "https://github.com/nextcloud/notes",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/notes"
},
"notify_push": {
"sha256": "14s8g3dqwrxjz1zww64n1lhwdb8374wr1b5v76xhawypmfz2a68h",
"url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.12/notify_push-v0.6.12.tar.gz",
"version": "0.6.12",
"hash": "sha256-j/Tj8F124rq1vmXJyUE+MT6m4/IvO5gkudF612Ya2MY=",
"url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.9/notify_push-v0.6.9.tar.gz",
"version": "0.6.9",
"description": "Push update support for desktop app.\n\nOnce the app is installed, the push binary needs to be setup. You can either use the setup wizard with `occ notify_push:setup` or see the [README](http://github.com/nextcloud/notify_push) for detailed setup instructions",
"homepage": "",
"licenses": [
"agpl"
]
"homepage": ""
},
"onlyoffice": {
"sha256": "1vflj70q8d0hrfck9c5l1k4qa38gpdh3zjgx4aqamnlbvkfssk7h",
"url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v9.2.2/onlyoffice.tar.gz",
"version": "9.2.2",
"hash": "sha256-9H/ASllarwmSEWCpPGmm6qy7NgSt3NXzJgBxz5v0Db8=",
"url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v9.3.0/onlyoffice.tar.gz",
"version": "9.3.0",
"description": "ONLYOFFICE connector allows you to view, edit and collaborate on text documents, spreadsheets and presentations within Nextcloud using ONLYOFFICE Docs. This will create a new Edit in ONLYOFFICE action within the document library for Office documents. This allows multiple users to co-author documents in real time from the familiar web interface and save the changes back to your file storage.",
"homepage": "https://www.onlyoffice.com",
"licenses": [
"agpl"
]
"homepage": "https://www.onlyoffice.com"
},
"phonetrack": {
"sha256": "1i28xgzp85yb44ay2l2zw18fk00yd6fh6yddj92gdrljb3w9zpap",
"hash": "sha256-V92f+FiS5vZEkq15A51pHoDpUOBfUOEVIcsXdP/rSMQ=",
"url": "https://github.com/julien-nc/phonetrack/releases/download/v0.8.1/phonetrack-0.8.1.tar.gz",
"version": "0.8.1",
"description": "# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile device's locations.\n\n🗺 It receives information from mobile phone's logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n* Create a tracking session.\n* Give the logging link\\* to the mobile devices. Choose the [logging method](https://gitlab.com/eneiluj/phonetrack-oc/wikis/userdoc#logging-methods) you prefer.\n* Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name. Setting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n* 📍 Display location history\n* ⛛ Filter points\n* ✎ Manually edit/add/delete points\n* ✎ Edit devices (rename, change colour/shape, move to another session)\n* ⛶ Define geofencing zones for devices\n* ⚇ Define proximity alerts for device pairs\n* 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n* 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n* 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n* 🗠 Display sessions statistics\n* 🔒 [Reserve a device name](https://gitlab.com/eneiluj/phonetrack-oc/wikis/userdoc#device-name-reservation) to make sure only authorised user can log with this name\n* 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n* ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is tested on Nextcloud 17 with Firefox 57+ and Chromium.\n\nThis app is compatible with theming colours and accessibility themes !\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n* PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)",
"homepage": "https://github.com/julien-nc/phonetrack",
"licenses": [
"agpl"
]
"homepage": "https://github.com/julien-nc/phonetrack"
},
"polls": {
"sha256": "1s8ym7msl4cax69kr2piphgapllsva1vjh2xb7g03yb7z1hglhjs",
"url": "https://github.com/nextcloud/polls/releases/download/v7.1.2/polls.tar.gz",
"version": "7.1.2",
"hash": "sha256-0K8I86calcBC4BXmuTpVENkUePDsPQxJoxWcgG8vlL4=",
"url": "https://github.com/nextcloud/polls/releases/download/v7.1.3/polls.tar.gz",
"version": "7.1.3",
"description": "A polls app, similar to Doodle/Dudle with the possibility to restrict access (members, certain groups/users, hidden and public).",
"homepage": "https://github.com/nextcloud/polls",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/polls"
},
"previewgenerator": {
"sha256": "0505kg4pxa6dqylniwa5ip6h5bama8cp0ng2y7prhb93mnhgr051",
"hash": "sha256-oYD8oK0jLZjv8eJZcBlSVa0CzY1F8Wipx82ofsmbBRQ=",
"url": "https://github.com/nextcloud-releases/previewgenerator/releases/download/v5.5.0/previewgenerator-v5.5.0.tar.gz",
"version": "5.5.0",
"description": "The Preview Generator app allows admins to pre-generate previews. The app listens to edit events and stores this information. Once a cron job is triggered it will generate start preview generation. This means that you can better utilize your system by pre-generating previews when your system is normally idle and thus putting less load on your machine when the requests are actually served.\n\nThe app does not replace on demand preview generation so if a preview is requested before it is pre-generated it will still be shown.\nThe first time you install this app, before using a cron job, you properly want to generate all previews via:\n**./occ preview:generate-all -vvv**\n\n**Important**: To enable pre-generation of previews you must add **php /var/www/nextcloud/occ preview:pre-generate** to a system cron job that runs at times of your choosing.",
"homepage": "https://github.com/nextcloud/previewgenerator",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/previewgenerator"
},
"qownnotesapi": {
"sha256": "0y4cv4hagmax4nkdfzysd5fg2h2xak4m87waf3b0ci5f1bwdxdxx",
"hash": "sha256-vbfe+AquRAbWcIofVMlUXUDxXGnaf9emJV3VpyDZjHg=",
"url": "https://github.com/pbek/qownnotesapi/releases/download/v24.4.0/qownnotesapi-nc.tar.gz",
"version": "24.4.0",
"description": "QOwnNotesAPI is the Nextcloud/ownCloud API for [QOwnNotes](http://www.qownnotes.org), the open source notepad for Linux, macOS and Windows, that works together with the notes application of Nextcloud/ownCloud.\n\nThe only purpose of this App is to provide API access to your Nextcloud/ownCloud server for your QOwnNotes desktop installation, you cannot use this App for anything else, if you don't have QOwnNotes installed on your desktop computer!",
"homepage": "https://github.com/pbek/qownnotesapi",
"licenses": [
"agpl"
]
"homepage": "https://github.com/pbek/qownnotesapi"
},
"registration": {
"sha256": "1ih7nfswskzpgbqfjsn4lym4cwyq4kbjv9m9cmy4g4nx44gr0dkl",
"hash": "sha256-dDaQHyHdkkd8ZammLdck2HNGqqfEaunwevdPzbWzB8Y=",
"url": "https://github.com/nextcloud-releases/registration/releases/download/v2.4.0/registration-v2.4.0.tar.gz",
"version": "2.4.0",
"description": "User registration\n\nThis app allows users to register a new account.\n\n# Features\n\n- Add users to a given group\n- Allow-list with email domains (including wildcard) to register with\n- Administrator will be notified via email for new user creation or require approval\n- Supports Nextcloud's Client Login Flow v1 and v2 - allowing registration in the mobile Apps and Desktop clients\n\n# Web form registration flow\n\n1. User enters their email address\n2. Verification link is sent to the email address\n3. User clicks on the verification link\n4. User is lead to a form where they can choose their username and password\n5. New account is created and is logged in automatically",
"homepage": "https://github.com/nextcloud/registration",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/registration"
},
"richdocuments": {
"sha256": "0lxbdyvmwsrj9qsb3w3f6si6sydddb4p96rvhrsardq96pam3xwz",
"hash": "sha256-n/dR1TUJt6x0hjubdMlqrXltojZu8LE0TjJrXrdvq1M=",
"url": "https://github.com/nextcloud-releases/richdocuments/releases/download/v8.3.8/richdocuments-v8.3.8.tar.gz",
"version": "8.3.8",
"description": "This application can connect to a Collabora Online (or other) server (WOPI-like Client). Nextcloud is the WOPI Host. Please read the documentation to learn more about that.\n\nYou can also edit your documents off-line with the Collabora Office app from the **[Android](https://play.google.com/store/apps/details?id=com.collabora.libreoffice)** and **[iOS](https://apps.apple.com/us/app/collabora-office/id1440482071)** store.",
"homepage": "https://collaboraoffice.com/",
"licenses": [
"agpl"
]
"homepage": "https://collaboraoffice.com/"
},
"spreed": {
"sha256": "0mz6cb2janafday60dw7ga42c67lpqzjpw0gli6jj90pzcc4by72",
"url": "https://github.com/nextcloud-releases/spreed/releases/download/v18.0.8/spreed-v18.0.8.tar.gz",
"version": "18.0.8",
"hash": "sha256-FjcPXBCR+DkJObOl92wRn0UXGjmzHy0GqaXBDt2VZMs=",
"url": "https://github.com/nextcloud-releases/spreed/releases/download/v18.0.9/spreed-v18.0.9.tar.gz",
"version": "18.0.9",
"description": "Chat, video & audio-conferencing using WebRTC\n\n* 💬 **Chat** Nextcloud Talk comes with a simple text chat, allowing you to share or upload files from your Nextcloud Files app or local device and mention other participants.\n* 👥 **Private, group, public and password protected calls!** Invite someone, a whole group or send a public link to invite to a call.\n* 🌐 **Federated chats** Chat with other Nextcloud users on their servers\n* 💻 **Screen sharing!** Share your screen with the participants of your call.\n* 🚀 **Integration with other Nextcloud apps** like Files, Calendar, User status, Dashboard, Flow, Maps, Smart picker, Contacts, Deck, and many more.\n* 🌉 **Sync with other chat solutions** With [Matterbridge](https://github.com/42wim/matterbridge/) being integrated in Talk, you can easily sync a lot of other chat solutions to Nextcloud Talk and vice-versa.",
"homepage": "https://github.com/nextcloud/spreed",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/spreed"
},
"tasks": {
"sha256": "1g2wqsm9kjm7dri75ghix2hb5vby3vy3ibcvmwfdwsab3a12xbrg",
"hash": "sha256-L68ughpLad4cr5utOPwefu2yoOgRvnJibqfKmarGXLw=",
"url": "https://github.com/nextcloud/tasks/releases/download/v0.16.0/tasks.tar.gz",
"version": "0.16.0",
"description": "Once enabled, a new Tasks menu will appear in your Nextcloud apps menu. From there you can add and delete tasks, edit their title, description, start and due dates and mark them as important. Tasks can be shared between users. Tasks can be synchronized using CalDav (each task list is linked to an Nextcloud calendar, to sync it to your local client: Thunderbird, Evolution, KDE Kontact, iCal … - just add the calendar as a remote calendar in your client). You can download your tasks as ICS files using the download button for each calendar.",
"homepage": "https://github.com/nextcloud/tasks/",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/tasks/"
},
"twofactor_nextcloud_notification": {
"sha256": "0qpg6i6iw6ldnryf0p56kd7fgs5vyckw9m6yjcf8r4j3mwfka273",
"hash": "sha256-4wg1Ha9Dkowck97UxCfzu+jnTpumXOB8to0aHk0072I=",
"url": "https://github.com/nextcloud-releases/twofactor_nextcloud_notification/releases/download/v3.9.0/twofactor_nextcloud_notification-v3.9.0.tar.gz",
"version": "3.9.0",
"description": "Allows using any of your logged in devices as second factor",
"homepage": "https://github.com/nextcloud/twofactor_nextcloud_notification",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/twofactor_nextcloud_notification"
},
"twofactor_webauthn": {
"sha256": "0llxakzcdcy9hscyzw3na5zp1p57h03w5fmm0gs9g62k1b88k6kw",
"url": "https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v1.4.0/twofactor_webauthn-v1.4.0.tar.gz",
"version": "1.4.0",
"hash": "sha256-+hG5eJUMMKJUmfBnU4BhEf+6QnTAw4TXi4Ij18z3Ru8=",
"url": "https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v1.4.0-rc.1/twofactor_webauthn-v1.4.0-rc.1.tar.gz",
"version": "1.4.0-rc.1",
"description": "A two-factor provider for WebAuthn devices",
"homepage": "https://github.com/nextcloud/twofactor_webauthn#readme",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/twofactor_webauthn#readme"
},
"unroundedcorners": {
"sha256": "16h8zg7k18r01yx2a72bn22nmvbafrs3ksyy23fbrnirzgwcaaqf",
"hash": "sha256-DivF+Ps52rzcEN7rOXR2au1qhbBLHCW6DyCjMM/7CJo=",
"url": "https://github.com/OliverParoczai/nextcloud-unroundedcorners/releases/download/v1.1.3/unroundedcorners-v1.1.3.tar.gz",
"version": "1.1.3",
"description": "# Unrounded Corners\nA Nextcloud app that restores the corners of buttons and widgets to their original looks by unrounding them.",
"homepage": "https://github.com/OliverParoczai/nextcloud-unroundedcorners",
"licenses": [
"agpl"
]
"homepage": "https://github.com/OliverParoczai/nextcloud-unroundedcorners"
},
"user_oidc": {
"sha256": "1qarpmwk66mz6mvif0cc4jb7wi4yv76flzwhyvmzxk0ahafpi8x1",
"hash": "sha256-oaN4nYIKzP7r9pB/6szZnkR+liSMARd3Nb8aM3m9WeE=",
"url": "https://github.com/nextcloud-releases/user_oidc/releases/download/v5.0.3/user_oidc-v5.0.3.tar.gz",
"version": "5.0.3",
"description": "Allows flexible configuration of an OIDC server as Nextcloud login user backend.",
"homepage": "https://github.com/nextcloud/user_oidc",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/user_oidc"
},
"user_saml": {
"sha256": "1dw5mwzzlhfwarnnpsij3l6153psl83qkjmgm0bnipy4v8wkkqvj",
"hash": "sha256-cuM5OdrE32gXqK/KiQei+o4SDB0y6mttVtxB+j+vhbc=",
"url": "https://github.com/nextcloud-releases/user_saml/releases/download/v6.1.3/user_saml-v6.1.3.tar.gz",
"version": "6.1.3",
"description": "Using the SSO & SAML app of your Nextcloud you can make it easily possible to integrate your existing Single-Sign-On solution with Nextcloud. In addition, you can use the Nextcloud LDAP user provider to keep the convenience for users. (e.g. when sharing)\nThe following providers are supported and tested at the moment:\n\n* **SAML 2.0**\n\t* OneLogin\n\t* Shibboleth\n\t* Active Directory Federation Services (ADFS)\n\n* **Authentication via Environment Variable**\n\t* Kerberos (mod_auth_kerb)\n\t* Any other provider that authenticates using the environment variable\n\nWhile theoretically any other authentication provider implementing either one of those standards is compatible, we like to note that they are not part of any internal test matrix.",
"homepage": "https://github.com/nextcloud/user_saml",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/user_saml"
}
}

View File

@ -1,332 +1,240 @@
{
"bookmarks": {
"sha256": "1vpha2lxq199ckssnw7fc23dnk4pn1r0ipdwdqv102adpiqrfiy1",
"hash": "sha256-wUeXcbxNCRA2brzdCHKwl0zbhmDucKv1ZCkF3KlQ8O4=",
"url": "https://github.com/nextcloud/bookmarks/releases/download/v14.2.2/bookmarks-14.2.2.tar.gz",
"version": "14.2.2",
"description": "- 📂 Sort bookmarks into folders\n- 🏷 Add tags and personal notes\n- ☠ Find broken links and duplicates\n- 📲 Synchronize with all your browsers and devices\n- 📔 Store archived versions of your links in case they are depublished\n- 🔍 Full-text search on site contents\n- 👪 Share bookmarks with other users and via public links\n- ⚛ Generate RSS feeds of your collections\n- 📈 Stats on how often you access which links\n- 🔒 Automatic backups of your bookmarks collection\n- 💼 Built-in Dashboard widgets for frequent and recent links\n\nRequirements:\n - PHP extensions:\n - intl: *\n - mbstring: *\n - when using MySQL, use at least v8.0",
"homepage": "https://github.com/nextcloud/bookmarks",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/bookmarks"
},
"calendar": {
"sha256": "09rsp5anpaqzwmrixza5qh12vmq9hd3an045064vm3rnynz537qc",
"url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.7.6/calendar-v4.7.6.tar.gz",
"version": "4.7.6",
"hash": "sha256-ZJJmL7BgXNOZKWxG1lhruDmsLOmUQOTO0KlcS8liYfs=",
"url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.7.9/calendar-v4.7.9.tar.gz",
"version": "4.7.9",
"description": "The Calendar app is a user interface for Nextcloud's CalDAV server. Easily sync events from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Contacts - more to come.\n* 🌐 **WebCal Support!** Want to see your favorite teams matchdays in your calendar? No problem!\n* 🙋 **Attendees!** Invite people to your events\n* ⌚️ **Free/Busy!** See when your attendees are available to meet\n* ⏰ **Reminders!** Get alarms for events inside your browser and via email\n* 🔍 Search! Find your events at ease\n* ☑️ Tasks! See tasks with a due date directly in the calendar\n* 🙈 **Were not reinventing the wheel!** Based on the great [c-dav library](https://github.com/nextcloud/cdav-library), [ical.js](https://github.com/mozilla-comm/ical.js) and [fullcalendar](https://github.com/fullcalendar/fullcalendar) libraries.",
"homepage": "https://github.com/nextcloud/calendar/",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/calendar/"
},
"contacts": {
"sha256": "0yxp3477fx4mrds8wchhzavrxwm88dvz7s58zp59q1v7qr9i7whr",
"url": "https://github.com/nextcloud-releases/contacts/releases/download/v6.0.0/contacts-v6.0.0.tar.gz",
"version": "6.0.0",
"hash": "sha256-BXMTI4Izk2iKTCbfjNKMYM/sm1bX+pn4D/FZcFyDm0k=",
"url": "https://github.com/nextcloud-releases/contacts/releases/download/v6.0.0-rc1/contacts-v6.0.0-rc1.tar.gz",
"version": "6.0.0-rc.1",
"description": "The Nextcloud contacts app is a user interface for Nextcloud's CardDAV server. Easily sync contacts from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Mail and Calendar more to come.\n* 🎉 **Never forget a birthday!** You can sync birthdays and other recurring events with your Nextcloud Calendar.\n* 👥 **Sharing of Adressbooks!** You want to share your contacts with your friends or coworkers? No problem!\n* 🙈 **Were not reinventing the wheel!** Based on the great and open SabreDAV library.",
"homepage": "https://github.com/nextcloud/contacts#readme",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/contacts#readme"
},
"cookbook": {
"sha256": "0wd4vwfp4i8hfrlqfzac517iqfhzxy1sv0ryb96489q9fvbcvlnp",
"url": "https://github.com/christianlupus-nextcloud/cookbook-releases/releases/download/v0.11.0/cookbook-0.11.0.tar.gz",
"version": "0.11.0",
"hash": "sha256-qHYOGHRnPTgT5/FZWWIwBNuwxrkpk96i0cKpCLe48Y0=",
"url": "https://github.com/christianlupus-nextcloud/cookbook-releases/releases/download/v0.11.1-rc1/cookbook-0.11.1-rc1.tar.gz",
"version": "0.11.1-rc1",
"description": "A library for all your recipes. It uses JSON files following the schema.org recipe format. To add a recipe to the collection, you can paste in the URL of the recipe, and the provided web page will be parsed and downloaded to whichever folder you specify in the app settings.",
"homepage": "https://github.com/nextcloud/cookbook/",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/cookbook/"
},
"cospend": {
"sha256": "04cpsd638p8midpznbz0nhdmcm5zfgq9n6yh1xifnvmfkd5k2wj0",
"hash": "sha256-QHIxS5uubutiD9Abm/Bzv1RWG7TgL/tvixVdNEzTlxE=",
"url": "https://github.com/julien-nc/cospend-nc/releases/download/v1.6.1/cospend-1.6.1.tar.gz",
"version": "1.6.1",
"description": "# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)",
"homepage": "https://github.com/julien-nc/cospend-nc",
"licenses": [
"agpl"
]
"homepage": "https://github.com/julien-nc/cospend-nc"
},
"deck": {
"sha256": "00cip1c0h7jhqrmj2vrbac5cajk8dql6pky2iw77g0dkjssqlgza",
"url": "https://github.com/nextcloud-releases/deck/releases/download/v1.13.0/deck-v1.13.0.tar.gz",
"version": "1.13.0",
"hash": "sha256-AQV2JeSrQcPSh2J2oG/Kbrh2Qo/nj1+orYJymDsQLDQ=",
"url": "https://github.com/nextcloud-releases/deck/releases/download/v1.13.1/deck-v1.13.1.tar.gz",
"version": "1.13.1",
"description": "Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized",
"homepage": "https://github.com/nextcloud/deck",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/deck"
},
"end_to_end_encryption": {
"sha256": "0hjq7qmp9psvq1vbak473wwfjdymay0l2d2h3vnssjqqw2kqf5dw",
"hash": "sha256-vBWHp+AYS63tHlA0QYFX1TfpOB+HTLV2wFvfdCs+WEI=",
"url": "https://github.com/nextcloud-releases/end_to_end_encryption/releases/download/v1.15.2/end_to_end_encryption-v1.15.2.tar.gz",
"version": "1.15.2",
"description": "Provides the necessary endpoint to enable end-to-end encryption.\n\n**Notice:** E2EE is currently not compatible to be used together with server-side encryption",
"homepage": "https://github.com/nextcloud/end_to_end_encryption",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/end_to_end_encryption"
},
"forms": {
"sha256": "1hwc7ra12nsr79xp8lkv3ip46bxxbjpaglb0a4k06ikfnzjaddny",
"hash": "sha256-3ram5LduRgMmUWDRp65cvS9Dbhx7UnR7OllbEVQ+jMM=",
"url": "https://github.com/nextcloud-releases/forms/releases/download/v4.2.4/forms-v4.2.4.tar.gz",
"version": "4.2.4",
"description": "**Simple surveys and questionnaires, self-hosted!**\n\n- **📝 Simple design:** No mass of options, only the essentials. Works well on mobile of course.\n- **📊 View & export results:** Results are visualized and can also be exported as CSV in the same format used by Google Forms.\n- **🔒 Data under your control!** Unlike in Google Forms, Typeform, Doodle and others, the survey info and responses are kept private on your instance.\n- **🧑‍💻 Connect to your software:** Easily integrate Forms into your service with our full-fledged [REST-API](https://github.com/nextcloud/forms/blob/main/docs/API.md).\n- **🙋 Get involved!** We have lots of stuff planned like more question types, collaboration on forms, [and much more](https://github.com/nextcloud/forms/milestones)!",
"homepage": "https://github.com/nextcloud/forms",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/forms"
},
"gpoddersync": {
"sha256": "1hk052864mb49crmsy2m9alv22rk7ns6m6q7l372j7py9gr8rf60",
"hash": "sha256-wLiM8kv+HinOoAebarQ9MwuxqUpVeF0zS2RVYpAoYMI=",
"url": "https://github.com/thrillfall/nextcloud-gpodder/releases/download/3.9.0/gpoddersync.tar.gz",
"version": "3.9.0",
"description": "Expose GPodder API to sync podcast consumer apps like AntennaPod",
"homepage": "https://github.com/thrillfall/nextcloud-gpodder",
"licenses": [
"agpl"
]
"homepage": "https://github.com/thrillfall/nextcloud-gpodder"
},
"groupfolders": {
"sha256": "0s0bsidghrj5k38vbw6xbp7jr57sqb3pn9n2gq24sdklhy81k882",
"hash": "sha256-AqEZkId0Nk0EfsIme8fC+pQsz13d8LXRmEVm+FrUC2g=",
"url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v17.0.1/groupfolders-v17.0.1.tar.gz",
"version": "17.0.1",
"description": "Admin configured folders shared with everyone in a group.\n\nFolders can be configured from *Group folders* in the admin settings.\n\nAfter a folder is created, the admin can give access to the folder to one or more groups, control their write/sharing permissions and assign a quota for the folder.\n\nNote: Encrypting the contents of group folders is currently not supported.",
"homepage": "https://github.com/nextcloud/groupfolders",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/groupfolders"
},
"impersonate": {
"sha256": "01cm643l5d3mrv6f3g1psl94974hichy9vj0hmj3zl0za2zf7mmb",
"hash": "sha256-q9bjvlAf0D9khUDu5CGLkJxEEtU3vOHMznW0QgcxlQU=",
"url": "https://github.com/nextcloud-releases/impersonate/releases/download/v1.16.0/impersonate-v1.16.0.tar.gz",
"version": "1.16.0",
"description": "By installing the impersonate app of your Nextcloud you enable administrators to impersonate other users on the Nextcloud server. This is especially useful for debugging issues reported by users.\n\nTo impersonate a user an administrator has to simply follow the following four steps:\n\n1. Login as administrator to Nextcloud.\n2. Open users administration interface.\n3. Select the impersonate button on the affected user.\n4. Confirm the impersonation.\n\nThe administrator is then logged-in as the user, to switch back to the regular user account they simply have to press the logout button.\n\n**Note:**\n\n- This app is not compatible with instances that have encryption enabled.\n- While impersonate actions are logged note that actions performed impersonated will be logged as the impersonated user.\n- Impersonating a user is only possible after their first login.\n- You can limit which users/groups can use impersonation in Administration settings > Additional settings.",
"homepage": "https://github.com/nextcloud/impersonate",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/impersonate"
},
"integration_openai": {
"sha256": "0q5fs57n644mad4qvr7pb46dljmdnl4c9wkh2kdhaqnmjsa7zs8j",
"url": "https://github.com/nextcloud-releases/integration_openai/releases/download/v2.0.1/integration_openai-v2.0.1.tar.gz",
"version": "2.0.1",
"hash": "sha256-JsdhEQMSUpnpBFQyDPAVGjT6mAgR826FD3EBOFhsr4c=",
"url": "https://github.com/nextcloud-releases/integration_openai/releases/download/v2.0.3/integration_openai-v2.0.3.tar.gz",
"version": "2.0.3",
"description": "⚠️ The smart pickers have been removed from this app\nas they are now included in the [Assistant app](https://apps.nextcloud.com/apps/assistant).\n\nThis app implements:\n\n* Text generation providers: Free prompt, Summarize, Headline and Reformulate (using any available large language model)\n* A Translation provider (using any available language model)\n* A SpeechToText provider (using Whisper)\n* An image generation provider\n\nInstead of connecting to the OpenAI API for these, you can also connect to a self-hosted [LocalAI](https://localai.io) instance\nor to any service that implements an API similar to the OpenAI one, for example: [Plusserver](https://www.plusserver.com/en/ai-platform/) or [MistralAI](https://mistral.ai).\n\n## Ethical AI Rating\n### Rating for Text generation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n\n### Rating for Translation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n### Rating for Image generation using DALL·E via OpenAI API: 🔴\n\nNegative:\n* the software for training and inferencing of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be ran on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the models performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via OpenAI API: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* The trained model is freely available, and thus can run on-premise\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the models performance and CO2 usage.\n\n### Rating for Text generation via LocalAI: 🟢\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n* the training data is freely available, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n\n### Rating for Image generation using Stable Diffusion via LocalAI : 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the models performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via LocalAI: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the models performance and CO2 usage.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
"homepage": "https://github.com/nextcloud/integration_openai",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/integration_openai"
},
"integration_paperless": {
"sha256": "08rgdlinxpcwyq0f97ibv022qhj8smk94dvlf927xq46220w9pfx",
"hash": "sha256-3d3EgRCG4H5EcnQ3kmbVSEIsBNgrnuQA9pzdbiNtLyM=",
"url": "https://github.com/nextcloud-releases/integration_paperless/releases/download/v1.0.3/integration_paperless-v1.0.3.tar.gz",
"version": "1.0.3",
"description": "Integration with the [Paperless](https://docs.paperless-ngx.com) Document Management System.\nIt adds a file action menu item that can be used to upload a file from your Nextcloud Files to Paperless.",
"homepage": "",
"licenses": [
"agpl"
]
"homepage": ""
},
"mail": {
"sha256": "0bxbzibzsdqmd751759lg3vwhw9nyy5n37snijd083s1498sfqs5",
"hash": "sha256-RWOnUSJBDwSajFafYYv3NnHI93g0lRPKaRU3/Vf8qy8=",
"url": "https://github.com/nextcloud-releases/mail/releases/download/v3.7.2/mail-v3.7.2.tar.gz",
"version": "3.7.2",
"description": "**💌 A mail app for Nextcloud**\n\n- **🚀 Integration with other Nextcloud apps!** Currently Contacts, Calendar & Files more to come.\n- **📥 Multiple mail accounts!** Personal and company account? No problem, and a nice unified inbox. Connect any IMAP account.\n- **🔒 Send & receive encrypted mails!** Using the great [Mailvelope](https://mailvelope.com) browser extension.\n- **🙈 Were not reinventing the wheel!** Based on the great [Horde](https://horde.org) libraries.\n- **📬 Want to host your own mail server?** We do not have to reimplement this as you could set up [Mail-in-a-Box](https://mailinabox.email)!\n\n## Ethical AI Rating\n\n### Priority Inbox\n\nPositive:\n* The software for training and inferencing of this model is open source.\n* The model is created and trained on-premises based on the user's own data.\n* The training data is accessible to the user, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n### Thread Summaries (opt-in)\n\n**Rating:** 🟢/🟡/🟠/🔴\n\nThe rating depends on the installed text processing backend. See [the rating overview](https://docs.nextcloud.com/server/latest/admin_manual/ai/index.html) for details.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
"homepage": "https://github.com/nextcloud/mail#readme",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/mail#readme"
},
"maps": {
"sha256": "1gqms3rrdpjmpb1h5d72b4lwbvsl8p10zwnkhgnsmvfcf93h3r1c",
"url": "https://github.com/nextcloud/maps/releases/download/v1.4.0/maps-1.4.0.tar.gz",
"hash": "sha256-Qkx4TqZf0ygVNLl6NtyOBiW0DrUlxQlStk/SBw2w9KE=",
"url": "https://github.com/nextcloud/maps/releases/download/v1.4.0-1-nightly/maps-1.4.0-1-nightly.tar.gz",
"version": "1.4.0",
"description": "**The whole world fits inside your cloud!**\n\n- **🗺 Beautiful map:** Using [OpenStreetMap](https://www.openstreetmap.org) and [Leaflet](https://leafletjs.com), you can choose between standard map, satellite, topographical, dark mode or even watercolor! 🎨\n- **⭐ Favorites:** Save your favorite places, privately! Sync with [GNOME Maps](https://github.com/nextcloud/maps/issues/30) and mobile apps is planned.\n- **🧭 Routing:** Possible using either [OSRM](http://project-osrm.org), [GraphHopper](https://www.graphhopper.com) or [Mapbox](https://www.mapbox.com).\n- **🖼 Photos on the map:** No more boring slideshows, just show directly where you were!\n- **🙋 Contacts on the map:** See where your friends live and plan your next visit.\n- **📱 Devices:** Lost your phone? Check the map!\n- **〰 Tracks:** Load GPS tracks or past trips. Recording with [PhoneTrack](https://f-droid.org/en/packages/net.eneiluj.nextcloud.phonetrack/) or [OwnTracks](https://owntracks.org) is planned.",
"homepage": "https://github.com/nextcloud/maps",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/maps"
},
"memories": {
"sha256": "1wahnkc253bgm0bqciyhfh1iyl8girbj8mzdd29l0k1bks8fr4qc",
"url": "https://github.com/pulsejet/memories/releases/download/v7.3.1/memories.tar.gz",
"version": "7.3.1",
"description": "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos.",
"homepage": "https://memories.gallery",
"licenses": [
"agpl"
]
"hash": "sha256-YGDyzBjeSAHI/+OdUnJNhRODv+6c3XZjKyJX/7xNo5Q=",
"url": "https://github.com/pulsejet/memories/releases/download/v7.3.1-rc.3/memories.tar.gz",
"version": "7.3.1-rc.3",
"description": "# Memories: Photo Management for Nextcloud\r\n\r\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\r\n\r\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\r\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\r\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\r\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\r\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\r\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\r\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\r\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\r\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\r\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\r\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\r\n- **⚡️ Performance**: Do all this very fast.\r\n\r\n## 🚀 Installation\r\n\r\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\r\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\r\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\r\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos.",
"homepage": "https://memories.gallery"
},
"music": {
"sha256": "17anhb0zcky4fwmbj1czm536d7k8n03iwsn3dqnyq1b9c4bqyj4m",
"hash": "sha256-lUiPF2FpBewtbsNqHgewaJ5mRqmfBbkqd8RP9sGCVp0=",
"url": "https://github.com/owncloud/music/releases/download/v2.0.0/music_2.0.0_for_nextcloud.tar.gz",
"version": "2.0.0",
"description": "A stand-alone music player app and a \"lite\" player for the Files app\n\n- On modern browsers, supports audio types .mp3, .ogg, .m4a, .m4b, .flac, .wav, and more\n- Playlist support with import from m3u, m3u8, and pls files\n- Browse by artists, albums, genres, or folders\n- Gapless play\n- Filter the shown content with the search function\n- Play internet radio and podcast channels\n- Setup Last.fm connection to see background information on artists, albums, and songs\n- Control with media control keys on the keyboard or OS\n- The app can handle libraries consisting of thousands of albums and tens of thousands of songs\n- Includes a server backend compatible with the Subsonic and Ampache protocols, allowing playback and browsing of your library on various external apps e.g. on Android or iPhone",
"homepage": "https://github.com/owncloud/music",
"licenses": [
"agpl"
]
"homepage": "https://github.com/owncloud/music"
},
"news": {
"hash": "sha256-AhTZGQCLeNgsRBF5w3+Lf9JtNN4D1QncB5t+odU+XUc=",
"url": "https://github.com/nextcloud/news/releases/download/25.0.0-alpha8/news.tar.gz",
"version": "25.0.0-alpha8",
"description": "📰 A RSS/Atom Feed reader App for Nextcloud\n\n- 📲 Synchronize your feeds with multiple mobile or desktop [clients](https://nextcloud.github.io/news/clients/)\n- 🔄 Automatic updates of your news feeds\n- 🆓 Free and open source under AGPLv3, no ads or premium functions\n\n**System Cron is currently required for this app to work**\n\nRequirements can be found [here](https://nextcloud.github.io/news/install/#dependencies)\n\nThe Changelog is available [here](https://github.com/nextcloud/news/blob/master/CHANGELOG.md)\n\nCreate a [bug report](https://github.com/nextcloud/news/issues/new/choose)\n\nCreate a [feature request](https://github.com/nextcloud/news/discussions/new)\n\nReport a [feed issue](https://github.com/nextcloud/news/discussions/new)",
"homepage": "https://github.com/nextcloud/news"
},
"notes": {
"sha256": "0j9bwbfvwwdaabyc79i514sp36cm4i9z02l8bkxlqr9fvim73nn9",
"url": "https://github.com/nextcloud-releases/notes/releases/download/v4.10.0/notes.tar.gz",
"version": "4.10.0",
"hash": "sha256-I2LsDjZdfFP5okBEIJRJcUMS8V5O9zq0ppMLA0SMI8Y=",
"url": "https://github.com/nextcloud-releases/notes/releases/download/v4.9.4/notes-v4.9.4.tar.gz",
"version": "4.9.4",
"description": "The Notes app is a distraction free notes taking app for [Nextcloud](https://www.nextcloud.com/). It provides categories for better organization and supports formatting using [Markdown](https://en.wikipedia.org/wiki/Markdown) syntax. Notes are saved as files in your Nextcloud, so you can view and edit them with every Nextcloud client. Furthermore, a separate [REST API](https://github.com/nextcloud/notes/blob/master/docs/api/README.md) allows for an easy integration into third-party apps (currently, there are notes apps for [Android](https://github.com/nextcloud/notes-android), [iOS](https://github.com/nextcloud/notes-ios) and the [console](https://git.danielmoch.com/nncli/about) which allow convenient access to your Nextcloud notes). Further features include marking notes as favorites.",
"homepage": "https://github.com/nextcloud/notes",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/notes"
},
"notify_push": {
"sha256": "14s8g3dqwrxjz1zww64n1lhwdb8374wr1b5v76xhawypmfz2a68h",
"hash": "sha256-EBklvqvXcwW7ObuskDk5A63GIQ2WGM5/+LJnjtt4SJM=",
"url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.12/notify_push-v0.6.12.tar.gz",
"version": "0.6.12",
"description": "Push update support for desktop app.\n\nOnce the app is installed, the push binary needs to be setup. You can either use the setup wizard with `occ notify_push:setup` or see the [README](http://github.com/nextcloud/notify_push) for detailed setup instructions",
"homepage": "",
"licenses": [
"agpl"
]
"homepage": ""
},
"onlyoffice": {
"sha256": "1vflj70q8d0hrfck9c5l1k4qa38gpdh3zjgx4aqamnlbvkfssk7h",
"url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v9.2.2/onlyoffice.tar.gz",
"version": "9.2.2",
"hash": "sha256-9H/ASllarwmSEWCpPGmm6qy7NgSt3NXzJgBxz5v0Db8=",
"url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v9.3.0/onlyoffice.tar.gz",
"version": "9.3.0",
"description": "ONLYOFFICE connector allows you to view, edit and collaborate on text documents, spreadsheets and presentations within Nextcloud using ONLYOFFICE Docs. This will create a new Edit in ONLYOFFICE action within the document library for Office documents. This allows multiple users to co-author documents in real time from the familiar web interface and save the changes back to your file storage.",
"homepage": "https://www.onlyoffice.com",
"licenses": [
"agpl"
]
"homepage": "https://www.onlyoffice.com"
},
"phonetrack": {
"sha256": "1i28xgzp85yb44ay2l2zw18fk00yd6fh6yddj92gdrljb3w9zpap",
"hash": "sha256-V92f+FiS5vZEkq15A51pHoDpUOBfUOEVIcsXdP/rSMQ=",
"url": "https://github.com/julien-nc/phonetrack/releases/download/v0.8.1/phonetrack-0.8.1.tar.gz",
"version": "0.8.1",
"description": "# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile device's locations.\n\n🗺 It receives information from mobile phone's logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n* Create a tracking session.\n* Give the logging link\\* to the mobile devices. Choose the [logging method](https://gitlab.com/eneiluj/phonetrack-oc/wikis/userdoc#logging-methods) you prefer.\n* Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name. Setting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n* 📍 Display location history\n* ⛛ Filter points\n* ✎ Manually edit/add/delete points\n* ✎ Edit devices (rename, change colour/shape, move to another session)\n* ⛶ Define geofencing zones for devices\n* ⚇ Define proximity alerts for device pairs\n* 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n* 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n* 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n* 🗠 Display sessions statistics\n* 🔒 [Reserve a device name](https://gitlab.com/eneiluj/phonetrack-oc/wikis/userdoc#device-name-reservation) to make sure only authorised user can log with this name\n* 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n* ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is tested on Nextcloud 17 with Firefox 57+ and Chromium.\n\nThis app is compatible with theming colours and accessibility themes !\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n* PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)",
"homepage": "https://github.com/julien-nc/phonetrack",
"licenses": [
"agpl"
]
"homepage": "https://github.com/julien-nc/phonetrack"
},
"polls": {
"sha256": "1s8ym7msl4cax69kr2piphgapllsva1vjh2xb7g03yb7z1hglhjs",
"url": "https://github.com/nextcloud/polls/releases/download/v7.1.2/polls.tar.gz",
"version": "7.1.2",
"hash": "sha256-0K8I86calcBC4BXmuTpVENkUePDsPQxJoxWcgG8vlL4=",
"url": "https://github.com/nextcloud/polls/releases/download/v7.1.3/polls.tar.gz",
"version": "7.1.3",
"description": "A polls app, similar to Doodle/Dudle with the possibility to restrict access (members, certain groups/users, hidden and public).",
"homepage": "https://github.com/nextcloud/polls",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/polls"
},
"previewgenerator": {
"sha256": "0505kg4pxa6dqylniwa5ip6h5bama8cp0ng2y7prhb93mnhgr051",
"hash": "sha256-oYD8oK0jLZjv8eJZcBlSVa0CzY1F8Wipx82ofsmbBRQ=",
"url": "https://github.com/nextcloud-releases/previewgenerator/releases/download/v5.5.0/previewgenerator-v5.5.0.tar.gz",
"version": "5.5.0",
"description": "The Preview Generator app allows admins to pre-generate previews. The app listens to edit events and stores this information. Once a cron job is triggered it will generate start preview generation. This means that you can better utilize your system by pre-generating previews when your system is normally idle and thus putting less load on your machine when the requests are actually served.\n\nThe app does not replace on demand preview generation so if a preview is requested before it is pre-generated it will still be shown.\nThe first time you install this app, before using a cron job, you properly want to generate all previews via:\n**./occ preview:generate-all -vvv**\n\n**Important**: To enable pre-generation of previews you must add **php /var/www/nextcloud/occ preview:pre-generate** to a system cron job that runs at times of your choosing.",
"homepage": "https://github.com/nextcloud/previewgenerator",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/previewgenerator"
},
"qownnotesapi": {
"sha256": "0y4cv4hagmax4nkdfzysd5fg2h2xak4m87waf3b0ci5f1bwdxdxx",
"hash": "sha256-vbfe+AquRAbWcIofVMlUXUDxXGnaf9emJV3VpyDZjHg=",
"url": "https://github.com/pbek/qownnotesapi/releases/download/v24.4.0/qownnotesapi-nc.tar.gz",
"version": "24.4.0",
"description": "QOwnNotesAPI is the Nextcloud/ownCloud API for [QOwnNotes](http://www.qownnotes.org), the open source notepad for Linux, macOS and Windows, that works together with the notes application of Nextcloud/ownCloud.\n\nThe only purpose of this App is to provide API access to your Nextcloud/ownCloud server for your QOwnNotes desktop installation, you cannot use this App for anything else, if you don't have QOwnNotes installed on your desktop computer!",
"homepage": "https://github.com/pbek/qownnotesapi",
"licenses": [
"agpl"
]
"homepage": "https://github.com/pbek/qownnotesapi"
},
"registration": {
"sha256": "1ih7nfswskzpgbqfjsn4lym4cwyq4kbjv9m9cmy4g4nx44gr0dkl",
"hash": "sha256-dDaQHyHdkkd8ZammLdck2HNGqqfEaunwevdPzbWzB8Y=",
"url": "https://github.com/nextcloud-releases/registration/releases/download/v2.4.0/registration-v2.4.0.tar.gz",
"version": "2.4.0",
"description": "User registration\n\nThis app allows users to register a new account.\n\n# Features\n\n- Add users to a given group\n- Allow-list with email domains (including wildcard) to register with\n- Administrator will be notified via email for new user creation or require approval\n- Supports Nextcloud's Client Login Flow v1 and v2 - allowing registration in the mobile Apps and Desktop clients\n\n# Web form registration flow\n\n1. User enters their email address\n2. Verification link is sent to the email address\n3. User clicks on the verification link\n4. User is lead to a form where they can choose their username and password\n5. New account is created and is logged in automatically",
"homepage": "https://github.com/nextcloud/registration",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/registration"
},
"richdocuments": {
"sha256": "0x1x4x21sknih87gzqzmhxnvi1s1h4j70i4wsn7hnpdvc9j830vs",
"hash": "sha256-eoOBZGK7XQuP1ZxEcCSBQYe4bYf14/8OgtFOHUQnPXQ=",
"url": "https://github.com/nextcloud-releases/richdocuments/releases/download/v8.4.3/richdocuments-v8.4.3.tar.gz",
"version": "8.4.3",
"description": "This application can connect to a Collabora Online (or other) server (WOPI-like Client). Nextcloud is the WOPI Host. Please read the documentation to learn more about that.\n\nYou can also edit your documents off-line with the Collabora Office app from the **[Android](https://play.google.com/store/apps/details?id=com.collabora.libreoffice)** and **[iOS](https://apps.apple.com/us/app/collabora-office/id1440482071)** store.",
"homepage": "https://collaboraoffice.com/",
"licenses": [
"agpl"
]
"homepage": "https://collaboraoffice.com/"
},
"spreed": {
"sha256": "1ydd156cjhjydbjmzjm0bq0garxfgbppgd7q6bfz04y10yjyjkah",
"url": "https://github.com/nextcloud-releases/spreed/releases/download/v19.0.3/spreed-v19.0.3.tar.gz",
"version": "19.0.3",
"hash": "sha256-UGVhg1YYtKLOF/2Yt3SLFZbt0RxKpfIhDV0mzgm8mFY=",
"url": "https://github.com/nextcloud-releases/spreed/releases/download/v19.0.6/spreed-v19.0.6.tar.gz",
"version": "19.0.6",
"description": "Chat, video & audio-conferencing using WebRTC\n\n* 💬 **Chat** Nextcloud Talk comes with a simple text chat, allowing you to share or upload files from your Nextcloud Files app or local device and mention other participants.\n* 👥 **Private, group, public and password protected calls!** Invite someone, a whole group or send a public link to invite to a call.\n* 🌐 **Federated chats** Chat with other Nextcloud users on their servers\n* 💻 **Screen sharing!** Share your screen with the participants of your call.\n* 🚀 **Integration with other Nextcloud apps** like Files, Calendar, User status, Dashboard, Flow, Maps, Smart picker, Contacts, Deck, and many more.\n* 🌉 **Sync with other chat solutions** With [Matterbridge](https://github.com/42wim/matterbridge/) being integrated in Talk, you can easily sync a lot of other chat solutions to Nextcloud Talk and vice-versa.",
"homepage": "https://github.com/nextcloud/spreed",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/spreed"
},
"tasks": {
"sha256": "1g2wqsm9kjm7dri75ghix2hb5vby3vy3ibcvmwfdwsab3a12xbrg",
"hash": "sha256-L68ughpLad4cr5utOPwefu2yoOgRvnJibqfKmarGXLw=",
"url": "https://github.com/nextcloud/tasks/releases/download/v0.16.0/tasks.tar.gz",
"version": "0.16.0",
"description": "Once enabled, a new Tasks menu will appear in your Nextcloud apps menu. From there you can add and delete tasks, edit their title, description, start and due dates and mark them as important. Tasks can be shared between users. Tasks can be synchronized using CalDav (each task list is linked to an Nextcloud calendar, to sync it to your local client: Thunderbird, Evolution, KDE Kontact, iCal … - just add the calendar as a remote calendar in your client). You can download your tasks as ICS files using the download button for each calendar.",
"homepage": "https://github.com/nextcloud/tasks/",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/tasks/"
},
"twofactor_nextcloud_notification": {
"sha256": "0qpg6i6iw6ldnryf0p56kd7fgs5vyckw9m6yjcf8r4j3mwfka273",
"hash": "sha256-4wg1Ha9Dkowck97UxCfzu+jnTpumXOB8to0aHk0072I=",
"url": "https://github.com/nextcloud-releases/twofactor_nextcloud_notification/releases/download/v3.9.0/twofactor_nextcloud_notification-v3.9.0.tar.gz",
"version": "3.9.0",
"description": "Allows using any of your logged in devices as second factor",
"homepage": "https://github.com/nextcloud/twofactor_nextcloud_notification",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/twofactor_nextcloud_notification"
},
"twofactor_webauthn": {
"sha256": "0llxakzcdcy9hscyzw3na5zp1p57h03w5fmm0gs9g62k1b88k6kw",
"url": "https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v1.4.0/twofactor_webauthn-v1.4.0.tar.gz",
"version": "1.4.0",
"hash": "sha256-+hG5eJUMMKJUmfBnU4BhEf+6QnTAw4TXi4Ij18z3Ru8=",
"url": "https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v1.4.0-rc.1/twofactor_webauthn-v1.4.0-rc.1.tar.gz",
"version": "1.4.0-rc.1",
"description": "A two-factor provider for WebAuthn devices",
"homepage": "https://github.com/nextcloud/twofactor_webauthn#readme",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/twofactor_webauthn#readme"
},
"unroundedcorners": {
"sha256": "16h8zg7k18r01yx2a72bn22nmvbafrs3ksyy23fbrnirzgwcaaqf",
"hash": "sha256-DivF+Ps52rzcEN7rOXR2au1qhbBLHCW6DyCjMM/7CJo=",
"url": "https://github.com/OliverParoczai/nextcloud-unroundedcorners/releases/download/v1.1.3/unroundedcorners-v1.1.3.tar.gz",
"version": "1.1.3",
"description": "# Unrounded Corners\nA Nextcloud app that restores the corners of buttons and widgets to their original looks by unrounding them.",
"homepage": "https://github.com/OliverParoczai/nextcloud-unroundedcorners",
"licenses": [
"agpl"
]
"homepage": "https://github.com/OliverParoczai/nextcloud-unroundedcorners"
},
"user_oidc": {
"sha256": "1qarpmwk66mz6mvif0cc4jb7wi4yv76flzwhyvmzxk0ahafpi8x1",
"hash": "sha256-oaN4nYIKzP7r9pB/6szZnkR+liSMARd3Nb8aM3m9WeE=",
"url": "https://github.com/nextcloud-releases/user_oidc/releases/download/v5.0.3/user_oidc-v5.0.3.tar.gz",
"version": "5.0.3",
"description": "Allows flexible configuration of an OIDC server as Nextcloud login user backend.",
"homepage": "https://github.com/nextcloud/user_oidc",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/user_oidc"
},
"user_saml": {
"sha256": "1dw5mwzzlhfwarnnpsij3l6153psl83qkjmgm0bnipy4v8wkkqvj",
"hash": "sha256-cuM5OdrE32gXqK/KiQei+o4SDB0y6mttVtxB+j+vhbc=",
"url": "https://github.com/nextcloud-releases/user_saml/releases/download/v6.1.3/user_saml-v6.1.3.tar.gz",
"version": "6.1.3",
"description": "Using the SSO & SAML app of your Nextcloud you can make it easily possible to integrate your existing Single-Sign-On solution with Nextcloud. In addition, you can use the Nextcloud LDAP user provider to keep the convenience for users. (e.g. when sharing)\nThe following providers are supported and tested at the moment:\n\n* **SAML 2.0**\n\t* OneLogin\n\t* Shibboleth\n\t* Active Directory Federation Services (ADFS)\n\n* **Authentication via Environment Variable**\n\t* Kerberos (mod_auth_kerb)\n\t* Any other provider that authenticates using the environment variable\n\nWhile theoretically any other authentication provider implementing either one of those standards is compatible, we like to note that they are not part of any internal test matrix.",
"homepage": "https://github.com/nextcloud/user_saml",
"licenses": [
"agpl"
]
"homepage": "https://github.com/nextcloud/user_saml"
}
}

View File

@ -19,7 +19,7 @@ let packages = self:
appName = pname;
appVersion = data.version;
license = appBaseDefs.${pname};
inherit (data) url sha256 description homepage;
inherit (data) url hash description homepage;
}) {};
} // lib.mapAttrs (type: pkgs:

View File

@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell
#! nix-shell -I nixpkgs=../../../.. -i bash -p nc4nix jq
#! nix-shell -I nixpkgs=../../../.. -i bash -p jq gnused curl
set -e
set -u
@ -8,7 +8,55 @@ set -x
export NEXTCLOUD_VERSIONS=$(nix-instantiate --eval -E 'import ./nc-versions.nix {}' -A e)
APPS=`cat nextcloud-apps.json | jq -r 'keys|.[]' | sed -z 's/\n/,/g;s/,$/\n/'`
APPS=$(jq -r 'keys|.[]' nextcloud-apps.json | sed -z 's/\n/,/g;s/,$/\n/')
nc4nix -apps $APPS
rm *.log
for v in ${NEXTCLOUD_VERSIONS//,/ }; do
# Get major version and back up previous major version apps file
v=$(sed -e 's/^"//' -e 's/"$//' <<<"$v")
MAJOR=${v%.*.*}
MAJOR_FILE="$MAJOR".json
mv "$MAJOR_FILE" "$MAJOR_FILE".bak
# Download current apps file from Nextcloud's official servers
APPS_PER_VERSION=${v}.json
curl "https://apps.nextcloud.com/api/v1/platform/${v}/apps.json" -o "$APPS_PER_VERSION"
# Add a starting bracket to the apps file for this version
echo '{' >"$MAJOR_FILE".tmp
for a in ${APPS//,/ }; do
echo "Fetching $a"
# Ensure the app exists in the file
if [ "$(jq -r ".[] | select(.id == \"${a}\")" "$APPS_PER_VERSION")" != "" ]; then
# Get all of our variables
VERSION=$(jq -r ".[] | select(.id == \"${a}\") | .releases[0].version" "$APPS_PER_VERSION")
URL=$(jq -r ".[] | select(.id == \"${a}\") | .releases[0].download" "$APPS_PER_VERSION")
HASH=$(nix store prefetch-file --json --hash-type sha256 --unpack "$URL" | jq -r .hash)
HOMEPAGE=$(jq -r ".[] | select(.id == \"${a}\") | .website" "$APPS_PER_VERSION")
DESCRIPTION=$(jq ".[] | select(.id == \"${a}\") | .translations.en.description" "$APPS_PER_VERSION")
# Add all variables to the file
cat >>"$MAJOR_FILE".tmp <<EOF
"${a}": {
"hash": "$HASH",
"url": "$URL",
"version": "$VERSION",
"description": $DESCRIPTION,
"homepage": "$HOMEPAGE"
},
EOF
# If we can't find the app, then don't try to process it.
else
true
fi
done
# clean up by removing last trailing comma
sed -i '$s/,$//' "$MAJOR_FILE".tmp
# Add final closing bracket
echo '}' >>"$MAJOR_FILE".tmp
# Beautify file
jq '.' "$MAJOR_FILE".tmp >"$MAJOR_FILE"
# Remove the temporary files
rm "$APPS_PER_VERSION"
rm "$MAJOR_FILE".tmp
rm "$MAJOR_FILE".bak
done

View File

@ -6,12 +6,13 @@
python3.pkgs.buildPythonApplication rec {
pname = "ansible-lint";
version = "24.2.2";
version = "24.7.0";
format = "pyproject";
src = fetchPypi {
inherit pname version;
hash = "sha256-6ElHbhUC435aRsJijJkyYM5GS995dRljc13MtoMFGX4=";
inherit version;
pname = "ansible_lint";
hash = "sha256-yi7cfk6AzxnfSyjL9MEY92HObN1qXvnIVh5FTtevWiQ=";
};
postPatch = ''
@ -35,6 +36,7 @@ python3.pkgs.buildPythonApplication rec {
ansible-compat
black
filelock
importlib-metadata
jsonschema
packaging
pyyaml

View File

@ -1,19 +1,48 @@
{ lib
, buildPythonPackage
, fetchPypi
, fetchFromGitHub
, fetchNpmDeps
# build-system
, setuptools
, nodejs
, npmHooks
}:
buildPythonPackage rec {
pname = "esphome-dashboard";
version = "20240620.0";
format = "setuptools";
pyproject = true;
src = fetchPypi {
pname = "esphome_dashboard";
inherit version;
hash = "sha256-lx3i8Z2PUefyibCNiQ4zPEwfgXr6r/TVa9TBF0YE5fA=";
src = fetchFromGitHub {
owner = "esphome";
repo = "dashboard";
rev = "refs/tags/${version}";
hash = "sha256-LmIxfX3rcRK90h31J0B5T02f48MCctFERgXxf0zkDm0=";
};
npmDeps = fetchNpmDeps {
inherit src;
hash = "sha256-xMVESS1bPNJF07joUgY8ku+GWtflWhM8mYAv0emggc8=";
};
build-system = [ setuptools ];
nativeBuildInputs = [
nodejs
npmHooks.npmConfigHook
];
postPatch = ''
# https://github.com/esphome/dashboard/pull/639
patchShebangs script/build
'';
preBuild = ''
script/build
'';
# no tests
doCheck = false;

View File

@ -19,14 +19,14 @@ let
in
python.pkgs.buildPythonApplication rec {
pname = "esphome";
version = "2024.6.6";
version = "2024.7.0";
pyproject = true;
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-/EGj6kEgUhQefdFz/IllKWeVGLhC3STiOOsy3Pq4pIM=";
hash = "sha256-bQGsLt8+WPaQfQ9ReKGrIS1O071LkpAxJerfHO3E0Oc=";
};
nativeBuildInputs = with python.pkgs; [

View File

@ -186,12 +186,12 @@ in lib.makeExtensible (self: ({
git = (common rec {
version = "2.24.0";
suffix = "pre20240709_${lib.substring 0 8 src.rev}";
suffix = "pre20240717_${lib.substring 0 8 src.rev}";
src = fetchFromGitHub {
owner = "NixOS";
repo = "nix";
rev = "142e566adbce587a5ed97d1648a26352f0608ec5";
hash = "sha256-fYZGuB/4LOBoMSUNj/yRU1mWm9lhdTzXF0P+zmac0hw=";
rev = "464e5925cb21150e3c94f31224efabd3c1e74237";
hash = "sha256-C9pE0ghVURE3nLZmmgTG6CnGvWQ84g2lcyN7KKGCfN8=";
};
self_attribute_name = "git";
}).override (lib.optionalAttrs (stdenv.isDarwin && stdenv.isx86_64) {

View File

@ -39126,9 +39126,7 @@ with pkgs;
nix-query-tree-viewer = callPackage ../tools/nix/nix-query-tree-viewer { };
nix-update = callPackage ../tools/package-management/nix-update {
python3 = python311;
};
nix-update = callPackage ../tools/package-management/nix-update { };
nix-update-source = callPackage ../tools/package-management/nix-update-source { };