Merge branch 'master' into haskell-updates

This commit is contained in:
maralorn 2024-03-16 23:33:06 +01:00
commit 06f993f7e7
292 changed files with 4918 additions and 2496 deletions

5
.github/CODEOWNERS vendored
View File

@ -359,3 +359,8 @@ nixos/tests/zfs.nix @raitobezarius
nixos/modules/services/continuous-integration/buildbot @Mic92 @zowoq
nixos/tests/buildbot.nix @Mic92 @zowoq
pkgs/development/tools/continuous-integration/buildbot @Mic92 @zowoq
# Pretix
pkgs/by-name/pr/pretix/ @mweinelt
nixos/modules/services/web-apps/pretix.nix @mweinelt
nixos/tests/web-apps/pretix.nix @mweinelt

3
doc/anchor-use.js Normal file
View File

@ -0,0 +1,3 @@
document.addEventListener('DOMContentLoaded', function(event) {
anchors.add('h1:not(div.note h1, div.warning h1, div.tip h1, div.caution h1, div.important h1), h2:not(div.note h2, div.warning h2, div.tip h2, div.caution h2, div.important h2), h3:not(div.note h3, div.warning h3, div.tip h3, div.caution h3, div.important h3), h4:not(div.note h4, div.warning h4, div.tip h4, div.caution h4, div.important h4), h5:not(div.note h5, div.warning h5, div.tip h5, div.caution h5, div.important h5), h6:not(div.note h6, div.warning h6, div.tip h6, div.caution h6, div.important h6)');
});

9
doc/anchor.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -122,16 +122,17 @@ in pkgs.stdenv.mkDerivation {
${pkgs.documentation-highlighter}/mono-blue.css \
${pkgs.documentation-highlighter}/loader.js
cp -t out ./overrides.css ./style.css
cp -t out ./style.css ./anchor.min.js ./anchor-use.js
nixos-render-docs manual html \
--manpage-urls ./manpage-urls.json \
--revision ${pkgs.lib.trivial.revisionWithDefault (pkgs.rev or "master")} \
--stylesheet style.css \
--stylesheet overrides.css \
--stylesheet highlightjs/mono-blue.css \
--script ./highlightjs/highlight.pack.js \
--script ./highlightjs/loader.js \
--script ./anchor.min.js \
--script ./anchor-use.js \
--toc-depth 1 \
--section-toc-depth 1 \
manual.md \

View File

@ -1,22 +0,0 @@
.docbook .xref img[src^=images\/callouts\/],
.screen img,
.programlisting img,
.literallayout img,
.synopsis img {
width: 1em;
}
.calloutlist img {
width: 1.5em;
}
.prompt,
.screen img,
.programlisting img,
.literallayout img,
.synopsis img {
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
}

View File

@ -1,291 +1,416 @@
/* Copied from http://bakefile.sourceforge.net/, which appears
licensed under the GNU GPL. */
/***************************************************************************
Basic headers and text:
***************************************************************************/
body
{
font-family: "Nimbus Sans L", sans-serif;
font-size: 1em;
background: white;
margin: 2em 1em 2em 1em;
html {
line-height: 1.15;
-webkit-text-size-adjust: 100%;
}
h1, h2, h3, h4
{
color: #005aa0;
body {
margin: 0;
}
h1 /* title */
{
font-size: 200%;
}
h2 /* chapters, appendices, subtitle */
{
font-size: 180%;
}
div.book
{
text-align: center;
}
div.book > div
{
/*
* based on https://medium.com/@zkareemz/golden-ratio-62b3b6d4282a
* we do 70 characters per line to fit code listings better
* 70 * (font-size / 1.618)
* expression for emacs:
* (* 70 (/ 1 1.618))
*/
max-width: 43.2em;
text-align: left;
.book {
margin: auto;
width: 100%;
}
/* Extra space between chapters, appendices. */
div.chapter > div.titlepage h2, div.appendix > div.titlepage h2
{
margin-top: 1.5em;
@media screen and (min-width: 768px) {
.book {
max-width: 46rem;
}
}
div.section > div.titlepage h2 /* sections */
{
font-size: 150%;
margin-top: 1.5em;
@media screen and (min-width: 992px) {
.book {
max-width: 60rem;
}
}
h3 /* subsections */
{
font-size: 125%;
@media screen and (min-width: 1200px) {
.book {
max-width: 73rem;
}
}
div.simplesect h2
{
font-size: 110%;
.book .list-of-examples {
display: none;
}
div.appendix h3
{
font-size: 150%;
margin-top: 1.5em;
h1 {
font-size: 2em;
margin: 0.67em 0;
}
div.refnamediv h2, div.refsynopsisdiv h2, div.refsection h2 /* refentry parts */
{
margin-top: 1.4em;
font-size: 125%;
hr {
box-sizing: content-box;
height: 0;
overflow: visible;
}
div.refsection h3
{
font-size: 110%;
pre {
font-family: monospace, monospace;
font-size: 1em;
}
/***************************************************************************
Examples:
***************************************************************************/
div.example
{
border: 1px solid #b0b0b0;
padding: 6px 6px;
margin-left: 1.5em;
margin-right: 1.5em;
background: #f4f4f8;
border-radius: 0.4em;
box-shadow: 0.4em 0.4em 0.5em #e0e0e0;
a {
background-color: transparent;
}
div.example p.title
{
margin-top: 0em;
strong {
font-weight: bolder;
}
div.example pre
{
box-shadow: none;
code {
font-family: monospace, monospace;
font-size: 1em;
}
/***************************************************************************
Screen dumps:
***************************************************************************/
pre.screen, pre.programlisting
{
border: 1px solid #b0b0b0;
padding: 3px 3px;
margin-left: 0.5em;
margin-right: 0.5em;
background: #f4f4f8;
font-family: monospace;
border-radius: 0.4em;
box-shadow: 0.4em 0.4em 0.5em #e0e0e0;
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
div.example pre.programlisting
{
border: 0px;
padding: 0 0;
margin: 0 0 0 0;
sup {
top: -0.5em;
}
/***************************************************************************
Notes, warnings etc:
***************************************************************************/
.note, .warning
{
border: 1px solid #b0b0b0;
padding: 3px 3px;
margin-left: 1.5em;
margin-right: 1.5em;
margin-bottom: 1em;
padding: 0.3em 0.3em 0.3em 0.3em;
background: #fffff5;
border-radius: 0.4em;
box-shadow: 0.4em 0.4em 0.5em #e0e0e0;
::-webkit-file-upload-button {
-webkit-appearance: button;
font: inherit;
}
div.note, div.warning
{
font-style: italic;
pre {
overflow: auto;
}
div.note h3, div.warning h3
{
color: red;
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
font-size: 100%;
padding-right: 0.5em;
display: inline;
line-height: 1.77777778;
}
div.note p, div.warning p
{
margin-bottom: 0em;
@media screen and (min-width: 4000px) {
html {
background: #000;
}
html body {
margin: auto;
max-width: 250rem;
}
}
div.note h3 + p, div.warning h3 + p
{
display: inline;
@media screen and (max-width: 320px) {
html {
font-size: calc(16 / 320 * 100vw);
}
}
div.note h3
{
color: blue;
font-size: 100%;
body {
font-size: 1rem;
font-family: 'Roboto', sans-serif;
font-weight: 300;
color: #000000;
background-color: #ffffff;
min-height: 100vh;
display: flex;
flex-direction: column;
}
div.navfooter *
{
font-size: 90%;
@media screen and (max-width: 767.9px) {
body {
padding-left: 1rem;
padding-right: 1rem;
}
}
/***************************************************************************
Links colors and highlighting:
***************************************************************************/
a { text-decoration: none; }
a:hover { text-decoration: underline; }
a:link { color: #0048b3; }
a:visited { color: #002a6a; }
/***************************************************************************
Table of contents:
***************************************************************************/
div.toc
{
font-size: 90%;
a {
text-decoration: none;
border-bottom: 1px solid;
color: #405d99;
}
div.toc dl
{
margin-top: 0em;
margin-bottom: 0em;
ul {
padding: 0;
margin-top: 0;
margin-right: 0;
margin-bottom: 1rem;
margin-left: 1rem;
}
/***************************************************************************
Special elements:
***************************************************************************/
tt, code
{
color: #400000;
}
.term
{
font-weight: bold;
}
div.variablelist dd p, div.glosslist dd p
{
margin-top: 0em;
}
div.variablelist dd, div.glosslist dd
{
margin-left: 1.5em;
}
div.glosslist dt
{
font-style: italic;
}
.varname
{
color: #400000;
}
span.command strong
{
font-weight: normal;
color: #400000;
}
div.calloutlist table
{
box-shadow: none;
}
table
{
table {
border-collapse: collapse;
box-shadow: 0.4em 0.4em 0.5em #e0e0e0;
width: 100%;
margin-bottom: 1rem;
}
table.simplelist
{
thead th {
text-align: left;
color: #005aa0;
}
hr {
margin-top: 1rem;
margin-bottom: 1rem;
}
h1 {
font-weight: 800;
line-height: 110%;
font-size: 200%;
margin-bottom: 1rem;
color: #6586c8;
}
h2 {
font-weight: 800;
line-height: 110%;
font-size: 170%;
margin-bottom: 0.625rem;
color: #6586c8;
}
h2:not(:first-child) {
margin-top: 1rem;
}
h3 {
font-weight: 800;
line-height: 110%;
margin-bottom: 1rem;
font-size: 150%;
color: #6586c8;
}
.note h3,
.tip h3,
.warning h3,
.caution h3,
.important h3 {
font-size: 120%;
}
h4 {
font-weight: 800;
line-height: 110%;
margin-bottom: 1rem;
font-size: 140%;
color: #6586c8;
}
h5 {
font-weight: 800;
line-height: 110%;
margin-bottom: 1rem;
font-size: 130%;
color: #6a6a6a;
}
h6 {
font-weight: 800;
line-height: 110%;
margin-bottom: 1rem;
font-size: 120%
}
strong {
font-weight: bold;
}
p {
margin-top: 0;
margin-bottom: 1rem;
}
dt>*:first-child,
dd>*:first-child {
margin-top: 0;
}
dt>*:last-child,
dd>*:last-child {
margin-bottom: 0;
}
pre,
code {
font-family: monospace;
}
code {
color: #ff8657;
background: #f4f4f4;
display: inline-block;
padding: 0 0.5rem;
border: 1px solid #d8d8d8;
border-radius: 0.5rem;
line-height: 1.57777778;
}
div.book .programlisting,
div.appendix .programlisting {
border-radius: 0.5rem;
padding: 1rem;
overflow: auto;
background: #f2f8fd;
color: #000000;
}
div.book .note,
div.book .tip,
div.book .warning,
div.book .caution,
div.book .important,
div.appendix .note,
div.appendix .tip,
div.appendix .warning,
div.appendix .caution,
div.appendix .important {
margin-bottom: 1rem;
border-radius: 0.5rem;
padding: 1.5rem;
overflow: auto;
background: #f4f4f4;
}
div.book .note>.title,
div.book .tip>.title,
div.book .warning>.title,
div.book .caution>.title,
div.book .important>.title,
div.appendix .note>.title,
div.appendix .tip>.title,
div.appendix .warning>.title,
div.appendix .caution>.title,
div.appendix .important>.title {
font-weight: 800;
/* font-family: 'Overpass', serif; */
line-height: 110%;
margin-bottom: 1rem;
color: inherit;
margin-bottom: 0;
}
div.book .note> :first-child,
div.book .tip> :first-child,
div.book .warning> :first-child,
div.book .caution> :first-child,
div.book .important> :first-child,
div.appendix .note> :first-child,
div.appendix .tip> :first-child,
div.appendix .warning> :first-child,
div.appendix .caution> :first-child,
div.appendix .important> :first-child {
margin-top: 0;
}
div.book .note> :last-child,
div.book .tip> :last-child,
div.book .warning> :last-child,
div.book .caution> :last-child,
div.book .important> :last-child,
div.appendix .note> :last-child,
div.appendix .tip> :last-child,
div.appendix .warning> :last-child,
div.appendix .caution> :last-child,
div.appendix .important> :last-child {
margin-bottom: 0;
}
div.book .note,
div.book .tip,
div.appendix .note,
div.appendix .tip {
color: #5277c3;
background: #f2f8fd;
}
div.book .warning,
div.book .caution,
div.appendix .warning,
div.appendix .caution {
color: #cc3900;
background-color: #fff5e1;
}
div.book .section,
div.appendix .section {
margin-top: 2em;
}
div.book div.example,
div.appendix div.example {
margin-top: 1.5em;
}
div.book br.example-break,
div.appendix br.example-break {
display: none;
}
div.book div.footnotes>hr,
div.appendix div.footnotes>hr {
border-color: #d8d8d8;
}
div.book div.footnotes>br,
div.appendix div.footnotes>br {
display: none;
}
div.book dt,
div.appendix dt {
margin-top: 1em;
}
div.book .toc dt,
div.appendix .toc dt {
margin-top: 0;
}
div.book .list-of-examples dt,
div.appendix .list-of-examples dt {
margin-top: 0;
}
div.book code,
div.appendix code {
padding: 0;
border: 0;
padding: 5px;
background: #fffff5;
font-weight: normal;
font-style: italic;
box-shadow: none;
margin-bottom: 1em;
background-color: inherit;
color: inherit;
font-size: 100%;
-webkit-hyphens: none;
-moz-hyphens: none;
hyphens: none;
}
div.navheader table, div.navfooter table {
box-shadow: none;
div.book div.toc,
div.appendix div.toc {
margin-bottom: 3em;
border-bottom: 0.0625rem solid #d8d8d8;
}
div.affiliation
{
font-style: italic;
div.book div.toc dd,
div.appendix div.toc dd {
margin-left: 2em;
}
div.book span.command,
div.appendix span.command {
font-family: monospace;
-webkit-hyphens: none;
-moz-hyphens: none;
hyphens: none;
}
div.book .informaltable th,
div.book .informaltable td,
div.appendix .informaltable th,
div.appendix .informaltable td {
padding: 0.5rem;
}

View File

@ -105,7 +105,9 @@ in rec {
mkdir -p $dst
cp ${../../../doc/style.css} $dst/style.css
cp ${../../../doc/overrides.css} $dst/overrides.css
cp ${../../../doc/anchor.min.js} $dst/anchor.min.js
cp ${../../../doc/anchor-use.js} $dst/anchor-use.js
cp -r ${pkgs.documentation-highlighter} $dst/highlightjs
${prepareManualFromMD}
@ -115,10 +117,11 @@ in rec {
--revision ${lib.escapeShellArg revision} \
--generator "nixos-render-docs ${lib.version}" \
--stylesheet style.css \
--stylesheet overrides.css \
--stylesheet highlightjs/mono-blue.css \
--script ./highlightjs/highlight.pack.js \
--script ./highlightjs/loader.js \
--script ./anchor.min.js \
--script ./anchor-use.js \
--toc-depth 1 \
--chunk-toc-depth 1 \
./manual.md \

View File

@ -103,6 +103,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- [Monado](https://monado.freedesktop.org/), an open source XR runtime. Available as [services.monado](#opt-services.monado.enable).
- [Pretix](https://pretix.eu/about/en/), an open source ticketing software for events. Available as [services.pretix]($opt-services-pretix.enable).
- [Clevis](https://github.com/latchset/clevis), a pluggable framework for automated decryption, used to unlock encrypted devices in initrd. Available as [boot.initrd.clevis.enable](#opt-boot.initrd.clevis.enable).
- [armagetronad](https://wiki.armagetronad.org), a mid-2000s 3D lightcycle game widely played at iD Tech Camps. You can define multiple servers using `services.armagetronad.<server>.enable`.
@ -129,6 +131,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- The `power.ups` module now generates `upsd.conf`, `upsd.users` and `upsmon.conf` automatically from a set of new configuration options. This breaks compatibility with existing `power.ups` setups where these files were created manually. Back up these files before upgrading NixOS.
- `pdns` was updated to version [v4.9.x](https://doc.powerdns.com/authoritative/changelog/4.9.html), which introduces breaking changes. Check out the [Upgrade Notes](https://doc.powerdns.com/authoritative/upgrading.html#to-4-9-0) for details.
- `unrar` was updated to v7. See [changelog](https://www.rarlab.com/unrar7notes.htm) for more information.
- `k9s` was updated to v0.31. There have been various breaking changes in the config file format,
@ -320,7 +324,12 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- `addDriverRunpath` has been added to facilitate the deprecation of the old `addOpenGLRunpath` setuphook. This change is motivated by the evolution of the setuphook to include all hardware acceleration.
- Cinnamon has been updated to 6.0. Please beware that the [Wayland session](https://blog.linuxmint.com/?p=4591) is still experimental in this release.
- Cinnamon has been updated to 6.0. Please beware that the [Wayland session](https://blog.linuxmint.com/?p=4591) is still experimental in this release and could potentially [affect Xorg sessions](https://blog.linuxmint.com/?p=4639). We suggest a reboot when switching between sessions.
- MATE has been updated to 1.28.
- To properly support panel plugins built with Wayland (in-process) support, we are introducing `services.xserver.desktopManager.mate.extraPanelApplets` option, please use that for installing panel applets.
- Similarly, please use `services.xserver.desktopManager.mate.extraCajaExtensions` option for installing Caja extensions.
- To use the Wayland session, enable `services.xserver.desktopManager.mate.enableWaylandSession`. This is opt-in for now as it is in early stage and introduces a new set of Wayfire closure. Due to [known issues with LightDM](https://github.com/canonical/lightdm/issues/63), we suggest using SDDM for display manager.
- New `boot.loader.systemd-boot.xbootldrMountPoint` allows setting up a separate [XBOOTLDR partition](https://uapi-group.org/specifications/specs/boot_loader_specification/) to store boot files. Useful on systems with a small EFI System partition that cannot be easily repartitioned.
@ -347,6 +356,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- [Lilypond](https://lilypond.org/index.html) and [Denemo](https://www.denemo.org) are now compiled with Guile 3.0.
- The EC2 image module now enables the [Amazon SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html) by default.
- The following options of the Nextcloud module were moved into [`services.nextcloud.settings`](#opt-services.nextcloud.settings) and renamed to match the name from Nextcloud's `config.php`:
- `logLevel` -> [`loglevel`](#opt-services.nextcloud.settings.loglevel),
- `logType` -> [`log_type`](#opt-services.nextcloud.settings.log_type),

View File

@ -30,7 +30,10 @@ in
ipu6-drivers
];
hardware.firmware = [ pkgs.ipu6-camera-bins ];
hardware.firmware = with pkgs; [
ipu6-camera-bins
ivsc-firmware
];
services.udev.extraRules = ''
SUBSYSTEM=="intel-ipu6-psys", MODE="0660", GROUP="video"

View File

@ -1358,6 +1358,7 @@
./services/web-apps/plausible.nix
./services/web-apps/powerdns-admin.nix
./services/web-apps/pretalx.nix
./services/web-apps/pretix.nix
./services/web-apps/prosody-filer.nix
./services/web-apps/rimgo.nix
./services/web-apps/sftpgo.nix

View File

@ -44,8 +44,8 @@ in {
'';
apply = steam: steam.override (prev: {
extraEnv = (lib.optionalAttrs (cfg.extraCompatPackages != [ ]) {
STEAM_EXTRA_COMPAT_TOOLS_PATHS = makeBinPath cfg.extraCompatPackages;
}) // (prev.extraEnv or {});
STEAM_EXTRA_COMPAT_TOOLS_PATHS = makeSearchPathOutput "steamcompattool" "" cfg.extraCompatPackages;
}) // (prev.extraEnv or {});
extraLibraries = pkgs: let
prevLibs = if prev ? extraLibraries then prev.extraLibraries pkgs else [ ];
additionalLibs = with config.hardware.opengl;
@ -74,10 +74,17 @@ in {
extraCompatPackages = mkOption {
type = types.listOf types.package;
default = [ ];
example = literalExpression ''
with pkgs; [
proton-ge-bin
]
'';
description = lib.mdDoc ''
Extra packages to be used as compatibility tools for Steam on Linux. Packages will be included
in the `STEAM_EXTRA_COMPAT_TOOLS_PATHS` environmental variable. For more information see
<https://github.com/ValveSoftware/steam-for-linux/issues/6310">.
https://github.com/ValveSoftware/steam-for-linux/issues/6310.
These packages must be Steam compatibility tools that have a `steamcompattool` output.
'';
};

View File

@ -13,48 +13,60 @@ in
{
options = {
services.ollama = {
enable = lib.mkEnableOption (
lib.mdDoc "Server for local large language models"
);
enable = lib.mkEnableOption "ollama server for local large language models";
package = lib.mkPackageOption pkgs "ollama" { };
listenAddress = lib.mkOption {
type = types.str;
default = "127.0.0.1:11434";
description = lib.mdDoc ''
Specifies the bind address on which the ollama server HTTP interface listens.
example = "0.0.0.0:11111";
description = ''
The address which the ollama server HTTP interface binds and listens to.
'';
};
acceleration = lib.mkOption {
type = types.nullOr (types.enum [ "rocm" "cuda" ]);
default = null;
example = "rocm";
description = lib.mdDoc ''
Specifies the interface to use for hardware acceleration.
description = ''
What interface to use for hardware acceleration.
- `rocm`: supported by modern AMD GPUs
- `cuda`: supported by modern NVIDIA GPUs
'';
};
package = lib.mkPackageOption pkgs "ollama" { };
environmentVariables = lib.mkOption {
type = types.attrsOf types.str;
default = { };
example = {
HOME = "/tmp";
OLLAMA_LLM_LIBRARY = "cpu";
};
description = ''
Set arbitrary environment variables for the ollama service.
Be aware that these are only seen by the ollama server (systemd service),
not normal invocations like `ollama run`.
Since `ollama run` is mostly a shell around the ollama server, this is usually sufficient.
'';
};
};
};
config = lib.mkIf cfg.enable {
systemd = {
services.ollama = {
wantedBy = [ "multi-user.target" ];
description = "Server for local large language models";
after = [ "network.target" ];
environment = {
HOME = "%S/ollama";
OLLAMA_MODELS = "%S/ollama/models";
OLLAMA_HOST = cfg.listenAddress;
};
serviceConfig = {
ExecStart = "${lib.getExe ollamaPackage} serve";
WorkingDirectory = "/var/lib/ollama";
StateDirectory = [ "ollama" ];
DynamicUser = true;
};
systemd.services.ollama = {
description = "Server for local large language models";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
environment = cfg.environmentVariables // {
HOME = "%S/ollama";
OLLAMA_MODELS = "%S/ollama/models";
OLLAMA_HOST = cfg.listenAddress;
};
serviceConfig = {
ExecStart = "${lib.getExe ollamaPackage} serve";
WorkingDirectory = "%S/ollama";
StateDirectory = [ "ollama" ];
DynamicUser = true;
};
};

View File

@ -2,7 +2,7 @@
let
inherit (lib) maintainers;
inherit (lib.meta) getExe;
inherit (lib.modules) mkIf;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.options) literalExpression mkEnableOption mkOption mkPackageOption;
inherit (lib.types) bool enum nullOr port str submodule;
@ -156,42 +156,44 @@ in
};
};
config = mkIf (cfg.enable || cfg.collector.enable) {
services.influxdb2.enable = cfg.influxdb.enable;
config = mkMerge [
(mkIf cfg.enable {
services.influxdb2.enable = cfg.influxdb.enable;
networking.firewall = mkIf cfg.openFirewall {
allowedTCPPorts = [ cfg.settings.web.listen.port ];
};
networking.firewall = mkIf cfg.openFirewall {
allowedTCPPorts = [ cfg.settings.web.listen.port ];
};
services.smartd = mkIf cfg.collector.enable {
enable = true;
extraOptions = [
"-A /var/log/smartd/"
"--interval=600"
];
};
systemd = {
services = {
scrutiny = mkIf cfg.enable {
description = "Hard Drive S.M.A.R.T Monitoring, Historical Trends & Real World Failure Thresholds";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
environment = {
SCRUTINY_VERSION = "1";
SCRUTINY_WEB_DATABASE_LOCATION = "/var/lib/scrutiny/scrutiny.db";
SCRUTINY_WEB_SRC_FRONTEND_PATH = "${cfg.package}/share/scrutiny";
};
serviceConfig = {
DynamicUser = true;
ExecStart = "${getExe cfg.package} start --config ${settingsFormat.generate "scrutiny.yaml" cfg.settings}";
Restart = "always";
StateDirectory = "scrutiny";
StateDirectoryMode = "0750";
};
systemd.services.scrutiny = {
description = "Hard Drive S.M.A.R.T Monitoring, Historical Trends & Real World Failure Thresholds";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ] ++ lib.optional cfg.influxdb.enable "influxdb2.service";
wants = lib.optional cfg.influxdb.enable "influxdb2.service";
environment = {
SCRUTINY_VERSION = "1";
SCRUTINY_WEB_DATABASE_LOCATION = "/var/lib/scrutiny/scrutiny.db";
SCRUTINY_WEB_SRC_FRONTEND_PATH = "${cfg.package}/share/scrutiny";
};
serviceConfig = {
DynamicUser = true;
ExecStart = "${getExe cfg.package} start --config ${settingsFormat.generate "scrutiny.yaml" cfg.settings}";
Restart = "always";
StateDirectory = "scrutiny";
StateDirectoryMode = "0750";
};
};
})
(mkIf cfg.collector.enable {
services.smartd = {
enable = true;
extraOptions = [
"-A /var/log/smartd/"
"--interval=600"
];
};
scrutiny-collector = mkIf cfg.collector.enable {
systemd = {
services.scrutiny-collector = {
description = "Scrutiny Collector Service";
environment = {
COLLECTOR_VERSION = "1";
@ -203,13 +205,11 @@ in
};
startAt = cfg.collector.schedule;
};
};
timers = mkIf cfg.collector.enable {
scrutiny-collector.timerConfig.Persistent = true;
timers.scrutiny-collector.timerConfig.Persistent = true;
};
};
};
})
];
meta.maintainers = [ maintainers.jnsgruk ];
}

View File

@ -584,6 +584,7 @@ in
description = "Ensure that NetworkManager declarative profiles are created";
wantedBy = [ "multi-user.target" ];
before = [ "network-online.target" ];
after = [ "NetworkManager.service" ];
script = let
path = id: "/run/NetworkManager/system-connections/${id}.nmconnection";
in ''
@ -593,9 +594,7 @@ in
${pkgs.envsubst}/bin/envsubst -i ${ini.generate (lib.escapeShellArg profile.n) profile.v} > ${path (lib.escapeShellArg profile.n)}
'') (lib.mapAttrsToList (n: v: { inherit n v; }) cfg.ensureProfiles.profiles)
+ ''
if systemctl is-active --quiet NetworkManager; then
${pkgs.networkmanager}/bin/nmcli connection reload
fi
${pkgs.networkmanager}/bin/nmcli connection reload
'';
serviceConfig = {
EnvironmentFile = cfg.ensureProfiles.environmentFiles;

View File

@ -1,99 +1,122 @@
{ config, pkgs, lib, ... }:
with lib;
{
config,
pkgs,
lib,
...
}:
let
cfg = config.services.komga;
in {
inherit (lib) mkOption mkEnableOption maintainers;
inherit (lib.types) port str bool;
in
{
options = {
services.komga = {
enable = mkEnableOption (lib.mdDoc "Komga, a free and open source comics/mangas media server");
enable = mkEnableOption "Komga, a free and open source comics/mangas media server";
port = mkOption {
type = types.port;
type = port;
default = 8080;
description = lib.mdDoc ''
The port that Komga will listen on.
'';
description = "The port that Komga will listen on.";
};
user = mkOption {
type = types.str;
type = str;
default = "komga";
description = lib.mdDoc ''
User account under which Komga runs.
'';
description = "User account under which Komga runs.";
};
group = mkOption {
type = types.str;
type = str;
default = "komga";
description = lib.mdDoc ''
Group under which Komga runs.
'';
description = "Group under which Komga runs.";
};
stateDir = mkOption {
type = types.str;
type = str;
default = "/var/lib/komga";
description = lib.mdDoc ''
State and configuration directory Komga will use.
'';
description = "State and configuration directory Komga will use.";
};
openFirewall = mkOption {
type = types.bool;
type = bool;
default = false;
description = lib.mdDoc ''
Whether to open the firewall for the port in {option}`services.komga.port`.
'';
description = "Whether to open the firewall for the port in {option}`services.komga.port`.";
};
};
};
config = mkIf cfg.enable {
config =
let
inherit (lib) mkIf getExe;
in
mkIf cfg.enable {
networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.port ];
networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.port ];
users.groups = mkIf (cfg.group == "komga") {
komga = {};
};
users.groups = mkIf (cfg.group == "komga") { komga = { }; };
users.users = mkIf (cfg.user == "komga") {
komga = {
group = cfg.group;
home = cfg.stateDir;
description = "Komga Daemon user";
isSystemUser = true;
};
};
systemd.services.komga = {
environment = {
SERVER_PORT = builtins.toString cfg.port;
KOMGA_CONFIGDIR = cfg.stateDir;
users.users = mkIf (cfg.user == "komga") {
komga = {
group = cfg.group;
home = cfg.stateDir;
description = "Komga Daemon user";
isSystemUser = true;
};
};
description = "Komga is a free and open source comics/mangas media server";
systemd.services.komga = {
environment = {
SERVER_PORT = builtins.toString cfg.port;
KOMGA_CONFIGDIR = cfg.stateDir;
};
wantedBy = [ "multi-user.target" ];
wants = [ "network-online.target" ];
after = [ "network-online.target" ];
description = "Komga is a free and open source comics/mangas media server";
serviceConfig = {
User = cfg.user;
Group = cfg.group;
wantedBy = [ "multi-user.target" ];
wants = [ "network-online.target" ];
after = [ "network-online.target" ];
Type = "simple";
Restart = "on-failure";
ExecStart = "${pkgs.komga}/bin/komga";
serviceConfig = {
User = cfg.user;
Group = cfg.group;
StateDirectory = mkIf (cfg.stateDir == "/var/lib/komga") "komga";
Type = "simple";
Restart = "on-failure";
ExecStart = getExe pkgs.komga;
StateDirectory = mkIf (cfg.stateDir == "/var/lib/komga") "komga";
RemoveIPC = true;
NoNewPrivileges = true;
CapabilityBoundingSet = "";
SystemCallFilter = [ "@system-service" ];
ProtectSystem = "full";
PrivateTmp = true;
ProtectProc = "invisible";
ProtectClock = true;
ProcSubset = "pid";
PrivateUsers = true;
PrivateDevices = true;
ProtectHostname = true;
ProtectKernelTunables = true;
RestrictAddressFamilies = [
"AF_INET"
"AF_INET6"
"AF_NETLINK"
];
LockPersonality = true;
RestrictNamespaces = true;
ProtectKernelLogs = true;
ProtectControlGroups = true;
ProtectKernelModules = true;
SystemCallArchitectures = "native";
RestrictSUIDSGID = true;
RestrictRealtime = true;
};
};
};
};
meta.maintainers = with maintainers; [ govanify ];
}

View File

@ -0,0 +1,579 @@
{ config
, lib
, pkgs
, utils
, ...
}:
let
inherit (lib)
concatMapStringsSep
escapeShellArgs
filter
filterAttrs
getExe
getExe'
isAttrs
isList
literalExpression
mapAttrs
mkDefault
mkEnableOption
mkIf
mkOption
mkPackageOption
optionals
optionalString
recursiveUpdate
types
;
filterRecursiveNull = o:
if isAttrs o then
mapAttrs (_: v: filterRecursiveNull v) (filterAttrs (_: v: v != null) o)
else if isList o then
map filterRecursiveNull (filter (v: v != null) o)
else
o;
cfg = config.services.pretix;
format = pkgs.formats.ini { };
configFile = format.generate "pretix.cfg" (filterRecursiveNull cfg.settings);
finalPackage = cfg.package.override {
inherit (cfg) plugins;
};
pythonEnv = cfg.package.python.buildEnv.override {
extraLibs = with cfg.package.python.pkgs; [
(toPythonModule finalPackage)
gunicorn
]
++ lib.optionals (cfg.settings.memcached.location != null)
cfg.package.optional-dependencies.memcached
;
};
withRedis = cfg.settings.redis.location != null;
in
{
meta = with lib; {
maintainers = with maintainers; [ hexa ];
};
options.services.pretix = {
enable = mkEnableOption "pretix";
package = mkPackageOption pkgs "pretix" { };
group = mkOption {
type = types.str;
default = "pretix";
description = ''
Group under which pretix should run.
'';
};
user = mkOption {
type = types.str;
default = "pretix";
description = ''
User under which pretix should run.
'';
};
environmentFile = mkOption {
type = types.nullOr types.path;
default = null;
example = "/run/keys/pretix-secrets.env";
description = ''
Environment file to pass secret configuration values.
Each line must follow the `PRETIX_SECTION_KEY=value` pattern.
'';
};
plugins = mkOption {
type = types.listOf types.package;
default = [];
example = literalExpression ''
with config.services.pretix.package.plugins; [
passbook
pages
];
'';
description = ''
Pretix plugins to install into the Python environment.
'';
};
gunicorn.extraArgs = mkOption {
type = with types; listOf str;
default = [
"--name=pretix"
];
example = [
"--name=pretix"
"--workers=4"
"--max-requests=1200"
"--max-requests-jitter=50"
"--log-level=info"
];
description = ''
Extra arguments to pass to gunicorn.
See <https://docs.pretix.eu/en/latest/admin/installation/manual_smallscale.html#start-pretix-as-a-service> for details.
'';
apply = escapeShellArgs;
};
celery = {
extraArgs = mkOption {
type = with types; listOf str;
default = [ ];
description = ''
Extra arguments to pass to celery.
See <https://docs.celeryq.dev/en/stable/reference/cli.html#celery-worker> for more info.
'';
apply = utils.escapeSystemdExecArgs;
};
};
nginx = {
enable = mkOption {
type = types.bool;
default = true;
example = false;
description = ''
Whether to set up an nginx virtual host.
'';
};
domain = mkOption {
type = types.str;
example = "talks.example.com";
description = ''
The domain name under which to set up the virtual host.
'';
};
};
database.createLocally = mkOption {
type = types.bool;
default = true;
example = false;
description = ''
Whether to automatically set up the database on the local DBMS instance.
Only supported for PostgreSQL. Not required for sqlite.
'';
};
settings = mkOption {
type = types.submodule {
freeformType = format.type;
options = {
pretix = {
instance_name = mkOption {
type = types.str;
example = "tickets.example.com";
description = ''
The name of this installation.
'';
};
url = mkOption {
type = types.str;
example = "https://tickets.example.com";
description = ''
The installations full URL, without a trailing slash.
'';
};
cachedir = mkOption {
type = types.path;
default = "/var/cache/pretix";
description = ''
Directory for storing temporary files.
'';
};
datadir = mkOption {
type = types.path;
default = "/var/lib/pretix";
description = ''
Directory for storing user uploads and similar data.
'';
};
logdir = mkOption {
type = types.path;
default = "/var/log/pretix";
description = ''
Directory for storing log files.
'';
};
currency = mkOption {
type = types.str;
default = "EUR";
example = "USD";
description = ''
Default currency for events in its ISO 4217 three-letter code.
'';
};
registration = mkOption {
type = types.bool;
default = false;
example = true;
description = ''
Whether to allow registration of new admin users.
'';
};
};
database = {
backend = mkOption {
type = types.enum [
"sqlite3"
"postgresql"
];
default = "postgresql";
description = ''
Database backend to use.
Only postgresql is recommended for production setups.
'';
};
host = mkOption {
type = with types; nullOr types.path;
default = if cfg.settings.database.backend == "postgresql" then "/run/postgresql" else null;
defaultText = literalExpression ''
if config.services.pretix.settings..database.backend == "postgresql" then "/run/postgresql"
else null
'';
description = ''
Database host or socket path.
'';
};
name = mkOption {
type = types.str;
default = "pretix";
description = ''
Database name.
'';
};
user = mkOption {
type = types.str;
default = "pretix";
description = ''
Database username.
'';
};
};
mail = {
from = mkOption {
type = types.str;
example = "tickets@example.com";
description = ''
E-Mail address used in the `FROM` header of outgoing mails.
'';
};
host = mkOption {
type = types.str;
default = "localhost";
example = "mail.example.com";
description = ''
Hostname of the SMTP server use for mail delivery.
'';
};
port = mkOption {
type = types.port;
default = 25;
example = 587;
description = ''
Port of the SMTP server to use for mail delivery.
'';
};
};
celery = {
backend = mkOption {
type = types.str;
default = "redis+socket://${config.services.redis.servers.pretix.unixSocket}?virtual_host=1";
defaultText = literalExpression ''
optionalString config.services.pretix.celery.enable "redis+socket://''${config.services.redis.servers.pretix.unixSocket}?virtual_host=1"
'';
description = ''
URI to the celery backend used for the asynchronous job queue.
'';
};
broker = mkOption {
type = types.str;
default = "redis+socket://${config.services.redis.servers.pretix.unixSocket}?virtual_host=2";
defaultText = literalExpression ''
optionalString config.services.pretix.celery.enable "redis+socket://''${config.services.redis.servers.pretix.unixSocket}?virtual_host=2"
'';
description = ''
URI to the celery broker used for the asynchronous job queue.
'';
};
};
redis = {
location = mkOption {
type = with types; nullOr str;
default = "unix://${config.services.redis.servers.pretix.unixSocket}?db=0";
defaultText = literalExpression ''
"unix://''${config.services.redis.servers.pretix.unixSocket}?db=0"
'';
description = ''
URI to the redis server, used to speed up locking, caching and session storage.
'';
};
sessions = mkOption {
type = types.bool;
default = true;
example = false;
description = ''
Whether to use redis as the session storage.
'';
};
};
memcached = {
location = mkOption {
type = with types; nullOr str;
default = null;
example = "127.0.0.1:11211";
description = ''
The `host:port` combination or the path to the UNIX socket of a memcached instance.
Can be used instead of Redis for caching.
'';
};
};
tools = {
pdftk = mkOption {
type = types.path;
default = getExe pkgs.pdftk;
defaultText = literalExpression ''
lib.getExe pkgs.pdftk
'';
description = ''
Path to the pdftk executable.
'';
};
};
};
};
default = { };
description = ''
pretix configuration as a Nix attribute set. All settings can also be passed
from the environment.
See <https://docs.pretix.eu/en/latest/admin/config.html> for possible options.
'';
};
};
config = mkIf cfg.enable {
# https://docs.pretix.eu/en/latest/admin/installation/index.html
environment.systemPackages = [
(pkgs.writeScriptBin "pretix-manage" ''
cd ${cfg.settings.pretix.datadir}
sudo=exec
if [[ "$USER" != ${cfg.user} ]]; then
sudo='exec /run/wrappers/bin/sudo -u ${cfg.user} ${optionalString withRedis "-g redis-pretix"} --preserve-env=PRETIX_CONFIG_FILE'
fi
export PRETIX_CONFIG_FILE=${configFile}
$sudo ${getExe' pythonEnv "pretix-manage"} "$@"
'')
];
services = {
nginx = mkIf cfg.nginx.enable {
enable = true;
recommendedGzipSettings = mkDefault true;
recommendedOptimisation = mkDefault true;
recommendedProxySettings = mkDefault true;
recommendedTlsSettings = mkDefault true;
upstreams.pretix.servers."unix:/run/pretix/pretix.sock" = { };
virtualHosts.${cfg.nginx.domain} = {
# https://docs.pretix.eu/en/latest/admin/installation/manual_smallscale.html#ssl
extraConfig = ''
more_set_headers Referrer-Policy same-origin;
more_set_headers X-Content-Type-Options nosniff;
'';
locations = {
"/".proxyPass = "http://pretix";
"/media/" = {
alias = "${cfg.settings.pretix.datadir}/media/";
extraConfig = ''
access_log off;
expires 7d;
'';
};
"^~ /media/(cachedfiles|invoices)" = {
extraConfig = ''
deny all;
return 404;
'';
};
"/static/" = {
alias = "${finalPackage}/${cfg.package.python.sitePackages}/pretix/static.dist/";
extraConfig = ''
access_log off;
more_set_headers Cache-Control "public";
expires 365d;
'';
};
};
};
};
postgresql = mkIf (cfg.database.createLocally && cfg.settings.database.backend == "postgresql") {
enable = true;
ensureUsers = [ {
name = cfg.settings.database.user;
ensureDBOwnership = true;
} ];
ensureDatabases = [ cfg.settings.database.name ];
};
redis.servers.pretix.enable = withRedis;
};
systemd.services = let
commonUnitConfig = {
environment.PRETIX_CONFIG_FILE = configFile;
serviceConfig = {
User = "pretix";
Group = "pretix";
EnvironmentFile = optionals (cfg.environmentFile != null) [
cfg.environmentFile
];
StateDirectory = [
"pretix"
];
CacheDirectory = "pretix";
LogsDirectory = "pretix";
WorkingDirectory = cfg.settings.pretix.datadir;
SupplementaryGroups = optionals withRedis [
"redis-pretix"
];
AmbientCapabilities = "";
CapabilityBoundingSet = [ "" ];
DevicePolicy = "closed";
LockPersonality = true;
MemoryDenyWriteExecute = true;
NoNewPrivileges = true;
PrivateDevices = true;
PrivateTmp = true;
ProcSubset = "pid";
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectProc = "invisible";
ProtectSystem = "strict";
RemoveIPC = true;
RestrictAddressFamilies = [
"AF_INET"
"AF_INET6"
"AF_UNIX"
];
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
SystemCallArchitectures = "native";
SystemCallFilter = [
"@system-service"
"~@privileged"
"@chown"
];
UMask = "0077";
};
};
in {
pretix-web = recursiveUpdate commonUnitConfig {
description = "pretix web service";
after = [
"network.target"
"redis-pretix.service"
"postgresql.service"
];
wantedBy = [ "multi-user.target" ];
preStart = ''
versionFile="${cfg.settings.pretix.datadir}/.version"
version=$(cat "$versionFile" 2>/dev/null || echo 0)
pluginsFile="${cfg.settings.pretix.datadir}/.plugins"
plugins=$(cat "$pluginsFile" 2>/dev/null || echo "")
configuredPlugins="${concatMapStringsSep "|" (package: package.name) cfg.plugins}"
if [[ $version != ${cfg.package.version} || $plugins != $configuredPlugins ]]; then
${getExe' pythonEnv "pretix-manage"} migrate
echo "${cfg.package.version}" > "$versionFile"
echo "$configuredPlugins" > "$pluginsFile"
fi
'';
serviceConfig = {
ExecStart = "${getExe' pythonEnv "gunicorn"} --bind unix:/run/pretix/pretix.sock ${cfg.gunicorn.extraArgs} pretix.wsgi";
RuntimeDirectory = "pretix";
};
};
pretix-periodic = recursiveUpdate commonUnitConfig {
description = "pretix periodic task runner";
# every 15 minutes
startAt = [ "*:3,18,33,48" ];
serviceConfig = {
Type = "oneshot";
ExecStart = "${getExe' pythonEnv "pretix-manage"} runperiodic";
};
};
pretix-worker = recursiveUpdate commonUnitConfig {
description = "pretix asynchronous job runner";
after = [
"network.target"
"redis-pretix.service"
"postgresql.service"
];
wantedBy = [ "multi-user.target" ];
serviceConfig.ExecStart = "${getExe' pythonEnv "celery"} -A pretix.celery_app worker ${cfg.celery.extraArgs}";
};
};
systemd.sockets.pretix-web.socketConfig = {
ListenStream = "/run/pretix/pretix.sock";
SocketUser = "nginx";
};
users = {
groups."${cfg.group}" = {};
users."${cfg.user}" = {
isSystemUser = true;
createHome = true;
home = cfg.settings.pretix.datadir;
inherit (cfg) group;
};
};
};
}

View File

@ -20,6 +20,22 @@ in
};
debug = mkEnableOption (lib.mdDoc "mate-session debug messages");
extraPanelApplets = mkOption {
default = [ ];
example = literalExpression "with pkgs.mate; [ mate-applets ]";
type = types.listOf types.package;
description = lib.mdDoc "Extra applets to add to mate-panel.";
};
extraCajaExtensions = mkOption {
default = [ ];
example = lib.literalExpression "with pkgs.mate; [ caja-extensions ]";
type = types.listOf types.package;
description = lib.mdDoc "Extra extensions to add to caja.";
};
enableWaylandSession = mkEnableOption (lib.mdDoc "MATE Wayland session");
};
environment.mate.excludePackages = mkOption {
@ -31,55 +47,63 @@ in
};
config = mkIf cfg.enable {
config = mkMerge [
(mkIf (cfg.enable || cfg.enableWaylandSession) {
services.xserver.displayManager.sessionPackages = [
pkgs.mate.mate-session-manager
];
services.xserver.displayManager.sessionPackages = [
pkgs.mate.mate-session-manager
];
# Debugging
environment.sessionVariables.MATE_SESSION_DEBUG = mkIf cfg.debug "1";
# Let caja find extensions
environment.sessionVariables.CAJA_EXTENSION_DIRS = [ "${config.system.path}/lib/caja/extensions-2.0" ];
environment.systemPackages = utils.removePackagesByName
(pkgs.mate.basePackages ++
pkgs.mate.extraPackages ++
[
(pkgs.mate.caja-with-extensions.override {
extensions = cfg.extraCajaExtensions;
})
(pkgs.mate.mate-panel-with-applets.override {
applets = cfg.extraPanelApplets;
})
pkgs.desktop-file-utils
pkgs.glib
pkgs.gtk3.out
pkgs.shared-mime-info
pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
pkgs.yelp # for 'Contents' in 'Help' menus
])
config.environment.mate.excludePackages;
# Let mate-panel find applets
environment.sessionVariables."MATE_PANEL_APPLETS_DIR" = "${config.system.path}/share/mate-panel/applets";
environment.sessionVariables."MATE_PANEL_EXTRA_MODULES" = "${config.system.path}/lib/mate-panel/applets";
programs.dconf.enable = true;
# Shell integration for VTE terminals
programs.bash.vteIntegration = mkDefault true;
programs.zsh.vteIntegration = mkDefault true;
# Debugging
environment.sessionVariables.MATE_SESSION_DEBUG = mkIf cfg.debug "1";
# Mate uses this for printing
programs.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
environment.systemPackages = utils.removePackagesByName
(pkgs.mate.basePackages ++
pkgs.mate.extraPackages ++
[
pkgs.desktop-file-utils
pkgs.glib
pkgs.gtk3.out
pkgs.shared-mime-info
pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
pkgs.yelp # for 'Contents' in 'Help' menus
])
config.environment.mate.excludePackages;
services.gnome.at-spi2-core.enable = true;
services.gnome.gnome-keyring.enable = true;
services.udev.packages = [ pkgs.mate.mate-settings-daemon ];
services.gvfs.enable = true;
services.upower.enable = config.powerManagement.enable;
services.xserver.libinput.enable = mkDefault true;
programs.dconf.enable = true;
# Shell integration for VTE terminals
programs.bash.vteIntegration = mkDefault true;
programs.zsh.vteIntegration = mkDefault true;
security.pam.services.mate-screensaver.unixAuth = true;
# Mate uses this for printing
programs.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
xdg.portal.configPackages = mkDefault [ pkgs.mate.mate-desktop ];
services.gnome.at-spi2-core.enable = true;
services.gnome.gnome-keyring.enable = true;
services.udev.packages = [ pkgs.mate.mate-settings-daemon ];
services.gvfs.enable = true;
services.upower.enable = config.powerManagement.enable;
services.xserver.libinput.enable = mkDefault true;
environment.pathsToLink = [ "/share" ];
})
(mkIf cfg.enableWaylandSession {
programs.wayfire.enable = true;
programs.wayfire.plugins = [ pkgs.wayfirePlugins.firedecor ];
security.pam.services.mate-screensaver.unixAuth = true;
xdg.portal.configPackages = mkDefault [ pkgs.mate.mate-desktop ];
environment.pathsToLink = [ "/share" ];
};
environment.sessionVariables.NIX_GSETTINGS_OVERRIDES_DIR = "${pkgs.mate.mate-gsettings-overrides}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";
environment.systemPackages = [ pkgs.mate.mate-wayland-session ];
services.xserver.displayManager.sessionPackages = [ pkgs.mate.mate-wayland-session ];
})
];
}

View File

@ -79,6 +79,10 @@ in
serviceConfig.StandardOutput = "journal+console";
};
# Amazon-issued AMIs include the SSM Agent by default, so we do the same.
# https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html
services.amazon-ssm-agent.enable = true;
# Allow root logins only using the SSH key that the user specified
# at instance creation time.
services.openssh.enable = true;

View File

@ -513,6 +513,7 @@ in {
mastodon = discoverTests (import ./web-apps/mastodon { inherit handleTestOn; });
pixelfed = discoverTests (import ./web-apps/pixelfed { inherit handleTestOn; });
mate = handleTest ./mate.nix {};
mate-wayland = handleTest ./mate-wayland.nix {};
matter-server = handleTest ./matter-server.nix {};
matomo = handleTest ./matomo.nix {};
matrix-appservice-irc = handleTest ./matrix/appservice-irc.nix {};
@ -729,6 +730,7 @@ in {
pppd = handleTest ./pppd.nix {};
predictable-interface-names = handleTest ./predictable-interface-names.nix {};
pretalx = runTest ./web-apps/pretalx.nix;
pretix = runTest ./web-apps/pretix.nix;
printing-socket = handleTest ./printing.nix { socket = true; };
printing-service = handleTest ./printing.nix { socket = false; };
privoxy = handleTest ./privoxy.nix {};

View File

@ -29,6 +29,8 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
testScript = { nodes, ... }:
let
user = nodes.machine.users.users.alice;
env = "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/${toString user.uid}/bus DISPLAY=:0";
su = command: "su - ${user.name} -c '${env} ${command}'";
in
''
with subtest("Wait for login"):
@ -47,21 +49,45 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
with subtest("Check if Budgie session components actually start"):
machine.wait_until_succeeds("pgrep budgie-daemon")
machine.wait_for_window("budgie-daemon")
machine.wait_until_succeeds("pgrep budgie-panel")
machine.wait_for_window("budgie-panel")
# We don't check xwininfo for this one.
for i in ["budgie-daemon", "budgie-panel", "budgie-wm", "budgie-desktop-view", "gsd-media-keys"]:
machine.wait_until_succeeds(f"pgrep -f {i}")
# We don't check xwininfo for budgie-wm.
# See https://github.com/NixOS/nixpkgs/pull/216737#discussion_r1155312754
machine.wait_until_succeeds("pgrep budgie-wm")
machine.wait_for_window("budgie-daemon")
machine.wait_for_window("budgie-panel")
with subtest("Check if various environment variables are set"):
cmd = "xargs --null --max-args=1 echo < /proc/$(pgrep -xf /run/current-system/sw/bin/budgie-wm)/environ"
machine.succeed(f"{cmd} | grep 'XDG_CURRENT_DESKTOP' | grep 'Budgie:GNOME'")
machine.succeed(f"{cmd} | grep 'BUDGIE_PLUGIN_DATADIR' | grep '${pkgs.budgie.budgie-desktop-with-plugins.pname}'")
with subtest("Open Budgie Control Center"):
machine.send_key("alt-f2")
machine.wait_until_succeeds("pgrep -f budgie-run-dialog")
machine.wait_for_window("budgie-run-dialog")
machine.sleep(3)
machine.send_chars("Budgie Control Center", delay=0.5)
machine.screenshot("quick_search")
machine.send_chars("\n")
machine.wait_for_window("Budgie Control Center")
with subtest("Lock the screen"):
machine.succeed("${su "budgie-screensaver-command -l >&2 &"}")
machine.wait_until_succeeds("${su "budgie-screensaver-command -q"} | grep 'The screensaver is active'")
machine.sleep(2)
machine.send_chars("${user.password}", delay=0.5)
machine.screenshot("budgie_screensaver")
machine.send_chars("\n")
machine.wait_until_succeeds("${su "budgie-screensaver-command -q"} | grep 'The screensaver is inactive'")
machine.sleep(2)
with subtest("Open MATE terminal"):
machine.succeed("su - ${user.name} -c 'DISPLAY=:0 mate-terminal >&2 &'")
machine.succeed("${su "mate-terminal >&2 &"}")
machine.wait_for_window("Terminal")
with subtest("Check if budgie-wm has ever coredumped"):
machine.fail("coredumpctl --json=short | grep budgie-wm")
machine.sleep(20)
with subtest("Check if Budgie has ever coredumped"):
machine.fail("coredumpctl --json=short | grep budgie")
machine.sleep(10)
machine.screenshot("screen")
'';
})

View File

@ -0,0 +1,63 @@
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "mate-wayland";
meta.maintainers = lib.teams.mate.members;
nodes.machine = { ... }: {
imports = [
./common/user-account.nix
];
services.xserver.enable = true;
services.xserver.displayManager = {
sddm.enable = true; # https://github.com/canonical/lightdm/issues/63
sddm.wayland.enable = true;
defaultSession = "MATE";
autoLogin = {
enable = true;
user = "alice";
};
};
services.xserver.desktopManager.mate.enableWaylandSession = true;
hardware.pulseaudio.enable = true;
# Need to switch to a different GPU driver than the default one (-vga std) so that wayfire can launch:
virtualisation.qemu.options = [ "-vga none -device virtio-gpu-pci" ];
};
enableOCR = true;
testScript = { nodes, ... }:
let
user = nodes.machine.users.users.alice;
in
''
machine.wait_for_unit("display-manager.service")
with subtest("Wait for Wayland server"):
machine.wait_for_file("/run/user/${toString user.uid}/wayland-1")
with subtest("Check if MATE session components actually start"):
for i in ["wayfire", "mate-panel", "mate-wayland.sh", "mate-wayland-components.sh"]:
machine.wait_until_succeeds(f"pgrep -f {i}")
machine.wait_for_text('(Applications|Places|System)')
# It is expected that this applet doesn't work in Wayland
machine.wait_for_text('WorkspaceSwitcherApplet')
with subtest("Check if various environment variables are set"):
cmd = "xargs --null --max-args=1 echo < /proc/$(pgrep -xf mate-panel)/environ"
machine.succeed(f"{cmd} | grep 'XDG_SESSION_TYPE' | grep 'wayland'")
machine.succeed(f"{cmd} | grep 'XDG_SESSION_DESKTOP' | grep 'MATE'")
machine.succeed(f"{cmd} | grep 'MATE_PANEL_APPLETS_DIR' | grep '${pkgs.mate.mate-panel-with-applets.pname}'")
with subtest("Check if Wayfire config is properly configured"):
for i in ["button_style = mate", "firedecor", "mate-wayland-components.sh"]:
machine.wait_until_succeeds(f"cat /home/${user.name}/.config/mate/wayfire.ini | grep '{i}'")
with subtest("Check if Wayfire has ever coredumped"):
machine.fail("coredumpctl --json=short | grep wayfire")
machine.sleep(10)
machine.screenshot("screen")
'';
})

View File

@ -54,6 +54,15 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
machine.wait_for_text('(Applications|Places|System)')
machine.wait_for_text('(Computer|Home|Trash)')
with subtest("Check if various environment variables are set"):
machine.succeed("xargs --null --max-args=1 echo < /proc/$(pgrep -xf marco)/environ | grep 'XDG_CURRENT_DESKTOP' | grep 'MATE'")
# From mate-panel-with-applets packaging
machine.succeed("xargs --null --max-args=1 echo < /proc/$(pgrep -xf mate-panel)/environ | grep 'MATE_PANEL_APPLETS_DIR' | grep '${pkgs.mate.mate-panel-with-applets.pname}'")
with subtest("Check if applets are built with in-process support"):
# This is needed for Wayland support
machine.fail("pgrep -fa clock-applet")
with subtest("Lock the screen"):
machine.wait_until_succeeds("su - ${user.name} -c '${env} mate-screensaver-command -q' | grep 'The screensaver is inactive'")
machine.succeed("su - ${user.name} -c '${env} mate-screensaver-command -l >&2 &'")

View File

@ -0,0 +1,47 @@
{
lib,
pkgs,
...
}:
{
name = "pretix";
meta.maintainers = with lib.maintainers; [ hexa ];
nodes = {
pretix = {
networking.extraHosts = ''
127.0.0.1 tickets.local
'';
services.pretix = {
enable = true;
nginx.domain = "tickets.local";
plugins = with pkgs.pretix.plugins; [
passbook
pages
];
settings = {
pretix = {
instance_name = "NixOS Test";
url = "http://tickets.local";
};
mail.from = "hello@tickets.local";
};
};
};
};
testScript = ''
start_all()
pretix.wait_for_unit("pretix-web.service")
pretix.wait_for_unit("pretix-worker.service")
pretix.wait_until_succeeds("curl -q --fail http://tickets.local")
pretix.succeed("pretix-manage --help")
pretix.log(pretix.succeed("systemd-analyze security pretix-web.service"))
'';
}

View File

@ -20,13 +20,13 @@
stdenv.mkDerivation rec {
pname = "gridcoin-research";
version = "5.4.6.0-hotfix-1";
version = "5.4.7.0";
src = fetchFromGitHub {
owner = "gridcoin-community";
repo = "Gridcoin-Research";
rev = "${version}";
sha256 = "sha256-fFxHJJ+EMnv0CterTwJbAfybF9WCzaSP7ynlxx2hE5A=";
sha256 = "sha256-wdXah7QnWohGAtC98exPSkhg5F3BaBOiFs6bklFxD7E=";
};
nativeBuildInputs = [

View File

@ -5,11 +5,11 @@
let
pname = "codux";
version = "15.22.0";
version = "15.22.2";
src = fetchurl {
url = "https://github.com/wixplosives/codux-versions/releases/download/${version}/Codux-${version}.x86_64.AppImage";
sha256 = "sha256-6UYWg018TumJVgZpLVLlkM+/sTqC6y0A7KVfiwn0hzw=";
sha256 = "sha256-aYGZPoA2Tux6pmpZFShkZB+os34jZczXsfmYN/pu+Ic=";
};
appimageContents = appimageTools.extractType2 { inherit pname version src; };

View File

@ -24,7 +24,7 @@
"new": "nvchad-ui"
},
"nvim-base16": {
"date": "2024-02-15",
"date": "2024-03-16",
"new": "base16-nvim"
},
"nvim-bufferline-lua": {
@ -47,6 +47,10 @@
"date": "2021-09-03",
"new": "sqlite-lua"
},
"vim-fsharp": {
"date": "2024-03-16",
"new": "zarchive-vim-fsharp"
},
"vim-jade": {
"date": "2020-03-27",
"new": "vim-pug"

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=6d02054";
version = "0.0.0+rev=62179d7";
src = fetchFromGitHub {
owner = "dlvandenberg";
repo = "tree-sitter-angular";
rev = "6d02054ae9aa1fedf5097fe6d93dd78f751dff21";
hash = "sha256-Bm3I9a14WMNqL+nt5qr8Bd0Z4BOTCCF25wFrJ07FCSw=";
rev = "62179d7bbfb5fd8a8f7298495ac654d252a1bd52";
hash = "sha256-qRsBeJ01kGTKJqFubG1u9SFa1nsDH7ZHKQ0cGwfqi84=";
};
meta.homepage = "https://github.com/dlvandenberg/tree-sitter-angular";
};
@ -50,12 +50,12 @@
};
arduino = buildGrammar {
language = "arduino";
version = "0.0.0+rev=7722d43";
version = "0.0.0+rev=e3a0a7f";
src = fetchFromGitHub {
owner = "ObserverOfTime";
repo = "tree-sitter-arduino";
rev = "7722d4398d87ea22c4877264f88b45bd7ce0cba5";
hash = "sha256-pNiJY+KJ8QrL7xXOX/NRIFxIbXmf9DkVC9FUvXlk5qQ=";
rev = "e3a0a7f60e544afc478b72cdda7ffc0f2f889db0";
hash = "sha256-WdGCnZSMxyNJJYHB5H5Atc9EW2/0oB22/OWyxTrQHT8=";
};
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-arduino";
};
@ -94,23 +94,23 @@
};
awk = buildGrammar {
language = "awk";
version = "0.0.0+rev=207b049";
version = "0.0.0+rev=ba74721";
src = fetchFromGitHub {
owner = "Beaglefoot";
repo = "tree-sitter-awk";
rev = "207b04974c83d8d25a947e4d09763675c4617da7";
hash = "sha256-sW6ix5j9VpeQj7dct9u3cJ8sXgjIQlhQ7Nnh2S8wWbk=";
rev = "ba7472152d79a8c916550c80fdbfd5724d07a0c9";
hash = "sha256-ywrd9wCdrQ9UZPXvB8fUkelFaZzHxL+hDAPSecMueFs=";
};
meta.homepage = "https://github.com/Beaglefoot/tree-sitter-awk";
};
bash = buildGrammar {
language = "bash";
version = "0.0.0+rev=975bc70";
version = "0.0.0+rev=f3f26f4";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-bash";
rev = "975bc70ad95dbbf2733872bc2e0a059c055db983";
hash = "sha256-SU5wBy81aANd7oUZvYR14Vd53Ml/cBSwDtO6uG34CaE=";
rev = "f3f26f47a126797c011c311cec9d449d855c3eab";
hash = "sha256-6Rfxh8Y6dg2wyQ9jYnbOaXm1SVfQDQ1B1tNqgpz6sY4=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-bash";
};
@ -127,12 +127,12 @@
};
beancount = buildGrammar {
language = "beancount";
version = "0.0.0+rev=1f19abf";
version = "0.0.0+rev=6c665e7";
src = fetchFromGitHub {
owner = "polarmutex";
repo = "tree-sitter-beancount";
rev = "1f19abf1e162e1828013cb5434c6cf30f4054e80";
hash = "sha256-yb6z5iLMoK1wWCS9laA1muRVLssFwnyAg4SKWVsti0s=";
rev = "6c665e7cf15d76a1687959643868a78fb381458d";
hash = "sha256-hVFPt+ndXx38SH/e/dORz226SQwDNu1j4cinvJLhkTM=";
};
meta.homepage = "https://github.com/polarmutex/tree-sitter-beancount";
};
@ -182,12 +182,12 @@
};
c = buildGrammar {
language = "c";
version = "0.0.0+rev=652433f";
version = "0.0.0+rev=371fd0b";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-c";
rev = "652433fce487d8c3943207da38e3e65e4550e288";
hash = "sha256-Ld8ufwdOVqRYb9YpOa6z6fWoA+gj0w0nlq3dqhFCap8=";
rev = "371fd0bf0650581b6e49f06f438c88c419859696";
hash = "sha256-zaH4b5lsOtnl1e07ERU2mP/IFvg90YjsFFhvz+EY/ig=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-c";
};
@ -248,12 +248,12 @@
};
cmake = buildGrammar {
language = "cmake";
version = "0.0.0+rev=f8de25f";
version = "0.0.0+rev=7dc1582";
src = fetchFromGitHub {
owner = "uyha";
repo = "tree-sitter-cmake";
rev = "f8de25f30757a2def006a7c144354710fe63dcf3";
hash = "sha256-J8Ro3J9kkH7k/v+nwekCotoS/l28yInhk9p/xaSbegc=";
rev = "7dc15823107831729c64a917c796a93cf5c6a7e3";
hash = "sha256-kz/FnQMibzmZ6O/x92q8IfrriO0vUlZhozIzhS0jRyo=";
};
meta.homepage = "https://github.com/uyha/tree-sitter-cmake";
};
@ -359,12 +359,12 @@
};
cue = buildGrammar {
language = "cue";
version = "0.0.0+rev=2df92e6";
version = "0.0.0+rev=8a5f273";
src = fetchFromGitHub {
owner = "eonpatapon";
repo = "tree-sitter-cue";
rev = "2df92e6755337e9234ad18ffef37f35d95e2ba9d";
hash = "sha256-RsWbGMC2RXfZlZnkXJclMwiGecZ8Sc1OPkG+mmE5r6Q=";
rev = "8a5f273bfa281c66354da562f2307c2d394b6c81";
hash = "sha256-uV7Tl41PCU+8uJa693km5xvysvbptbT7LvGyYIelspk=";
};
meta.homepage = "https://github.com/eonpatapon/tree-sitter-cue";
};
@ -768,12 +768,12 @@
};
gitcommit = buildGrammar {
language = "gitcommit";
version = "0.0.0+rev=6bd8196";
version = "0.0.0+rev=523a1a4";
src = fetchFromGitHub {
owner = "gbprod";
repo = "tree-sitter-gitcommit";
rev = "6bd81962d1abe309bf5dffde3315e4a5988f35fd";
hash = "sha256-aSgnTbhpekeDDUzz9hecebW5ejCnmLiE5d1fTTxP19g=";
rev = "523a1a4f0f674eff7fbf46addfa6ef7644151aae";
hash = "sha256-QWWX/92yOZES1XgcCTu77tgcfeRhaUEJJudCCopMBrk=";
};
meta.homepage = "https://github.com/gbprod/tree-sitter-gitcommit";
};
@ -790,12 +790,12 @@
};
gleam = buildGrammar {
language = "gleam";
version = "0.0.0+rev=58b7cac";
version = "0.0.0+rev=2012f29";
src = fetchFromGitHub {
owner = "gleam-lang";
repo = "tree-sitter-gleam";
rev = "58b7cac8fc14c92b0677c542610d8738c373fa81";
hash = "sha256-VtuGsa8jKndxlyJKy9UHfZXvAgr63Q0iwceXKfEUAYE=";
rev = "2012f294baacf30e7a62414754021284377366c6";
hash = "sha256-W+PfxqPUKHhLH5UBATmQ1mlSfLPAWIQyDgiSQBWBtBs=";
};
meta.homepage = "https://github.com/gleam-lang/tree-sitter-gleam";
};
@ -887,6 +887,17 @@
};
meta.homepage = "https://github.com/amaanq/tree-sitter-go-sum";
};
gotmpl = buildGrammar {
language = "gotmpl";
version = "0.0.0+rev=17144a7";
src = fetchFromGitHub {
owner = "ngalaiko";
repo = "tree-sitter-go-template";
rev = "17144a77be0acdecebd9d557398883569fed41de";
hash = "sha256-aB8MTTKzxV9+66goNfFRI39wzuBiGECAc8HvAQzIv80=";
};
meta.homepage = "https://github.com/ngalaiko/tree-sitter-go-template";
};
gowork = buildGrammar {
language = "gowork";
version = "0.0.0+rev=949a8a4";
@ -900,12 +911,12 @@
};
gpg = buildGrammar {
language = "gpg";
version = "0.0.0+rev=d4c9cc0";
version = "0.0.0+rev=f99323f";
src = fetchFromGitHub {
owner = "ObserverOfTime";
repo = "tree-sitter-gpg-config";
rev = "d4c9cc0060cd4d1b8ca6d7add9f34352ad310a09";
hash = "sha256-kV9GN0qdVNA7LFYoCM/ISEW4Mpd5v9+oHV83XgEJTRs=";
rev = "f99323fb8f3f10b6c69db0c2f6d0a14bd7330675";
hash = "sha256-VJXXpHVMKUNaslsjoKR6XsaUJ8C+0MyidXtRPRywnpg=";
};
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-gpg-config";
};
@ -988,26 +999,38 @@
};
hcl = buildGrammar {
language = "hcl";
version = "0.0.0+rev=e135399";
version = "0.0.0+rev=e936d3f";
src = fetchFromGitHub {
owner = "MichaHoffmann";
repo = "tree-sitter-hcl";
rev = "e135399cb31b95fac0760b094556d1d5ce84acf0";
hash = "sha256-Ylxpj+e9YGhyRRRCCVs0g/zhwHpwGELxG2i+E3SFmpQ=";
rev = "e936d3fef8bac884661472dce71ad82284761eb1";
hash = "sha256-lcvs4auZrMb1f9ocrAnLVxX8JnvrPT18LsJBqoNG9Oo=";
};
meta.homepage = "https://github.com/MichaHoffmann/tree-sitter-hcl";
};
heex = buildGrammar {
language = "heex";
version = "0.0.0+rev=4a36c9a";
version = "0.0.0+rev=b5ad6e3";
src = fetchFromGitHub {
owner = "connorlay";
repo = "tree-sitter-heex";
rev = "4a36c9a388505180da6ee0eda1d8afb8c83481c8";
hash = "sha256-6gdAxNI81jbN8XZALRw31kFQRZg8ge/O7QRprLZpWOg=";
rev = "b5ad6e34eea18a15bbd1466ca707a17f9bff7b93";
hash = "sha256-o0ArFfBJTrEQVXVet+AIDPCB/b9KKvOYrrtMGyLgtM8=";
};
meta.homepage = "https://github.com/connorlay/tree-sitter-heex";
};
helm = buildGrammar {
language = "helm";
version = "0.0.0+rev=17144a7";
src = fetchFromGitHub {
owner = "ngalaiko";
repo = "tree-sitter-go-template";
rev = "17144a77be0acdecebd9d557398883569fed41de";
hash = "sha256-aB8MTTKzxV9+66goNfFRI39wzuBiGECAc8HvAQzIv80=";
};
location = "dialects/helm";
meta.homepage = "https://github.com/ngalaiko/tree-sitter-go-template";
};
hjson = buildGrammar {
language = "hjson";
version = "0.0.0+rev=02fa3b7";
@ -1065,12 +1088,12 @@
};
html = buildGrammar {
language = "html";
version = "0.0.0+rev=b5d9758";
version = "0.0.0+rev=b285e25";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-html";
rev = "b5d9758e22b4d3d25704b72526670759a9e4d195";
hash = "sha256-v3BD36OKkzJ1xqQV87HAyQpnQzi/4+PuyEAM1HfkW3U=";
rev = "b285e25c1ba8729399ce4f15ac5375cf6c3aa5be";
hash = "sha256-bAFSq2FXtSvFY8FrpeDgXXSq66QZsUrdz1As07B45u0=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-html";
};
@ -1153,23 +1176,23 @@
};
java = buildGrammar {
language = "java";
version = "0.0.0+rev=99b29f1";
version = "0.0.0+rev=5e62fbb";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-java";
rev = "99b29f1ed957b3b424b6e21f57bd21a9732a622a";
hash = "sha256-2A3dXO+N3M7GEiI06Dn28vU73Bow6vK0deC85mY058Q=";
rev = "5e62fbb519b608dfd856000fdc66536304c414de";
hash = "sha256-Wki+tdLzYINDbZMFd79QIDNK46rtzx25Qy0mB54eWN4=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-java";
};
javascript = buildGrammar {
language = "javascript";
version = "0.0.0+rev=51aed72";
version = "0.0.0+rev=de1e682";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-javascript";
rev = "51aed7263d33bee46b0a8a5e165ffcb690d5aca8";
hash = "sha256-FDnVwYpPgenOTgWaX/VdmtUmmIbCm/TtkiQ3TFoQjYY=";
rev = "de1e682289a417354df5b4437a3e4f92e0722a0f";
hash = "sha256-HhqYqU1CwPxXMHp21unRekFDzpGVedlgh/4bsplhe9c=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-javascript";
};
@ -1274,12 +1297,12 @@
};
kotlin = buildGrammar {
language = "kotlin";
version = "0.0.0+rev=4e909d6";
version = "0.0.0+rev=260afd9";
src = fetchFromGitHub {
owner = "fwcd";
repo = "tree-sitter-kotlin";
rev = "4e909d6cc9ac96b4eaecb3fb538eaca48e9e9ee9";
hash = "sha256-Rmq5G+7h/XSNX7JYtpAKcWbOZ1aZpBpe9GpaizK2DRk=";
rev = "260afd9a92bac51b3a4546303103c3d40a430639";
hash = "sha256-cmtUGmytAgiqBi31CNxEX+vE3YXmH1hphsIHvGRd7SY=";
};
meta.homepage = "https://github.com/fwcd/tree-sitter-kotlin";
};
@ -1373,12 +1396,12 @@
};
lua = buildGrammar {
language = "lua";
version = "0.0.0+rev=04c9579";
version = "0.0.0+rev=a24dab1";
src = fetchFromGitHub {
owner = "MunifTanjim";
repo = "tree-sitter-lua";
rev = "04c9579dcb917255b2e5f8199df4ae7f587d472f";
hash = "sha256-kzyn6XF4/PN8civ/0UV+ancCMkh7DF2B7WUYxix6aaM=";
rev = "a24dab177e58c9c6832f96b9a73102a0cfbced4a";
hash = "sha256-uFaEptW4wPrqgHfB1mYmVltf+4no61L2cPgpsr5qBIU=";
};
meta.homepage = "https://github.com/MunifTanjim/tree-sitter-lua";
};
@ -1439,24 +1462,24 @@
};
markdown = buildGrammar {
language = "markdown";
version = "0.0.0+rev=2821521";
version = "0.0.0+rev=b2f0198";
src = fetchFromGitHub {
owner = "MDeiml";
repo = "tree-sitter-markdown";
rev = "2821521a4e6eab37b63dff6a8e169cd88554047d";
hash = "sha256-JoZ/CKIMHVowwqTMFdys+Qu1CHMsP+8Wr2LJo5h30B4=";
rev = "b2f01981a76e3251f5b660378136c248ed106b81";
hash = "sha256-6gxtiO6Dzo5BELdw/dAaQB90SJYelr/RqvTzNK55caA=";
};
location = "tree-sitter-markdown";
meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
};
markdown_inline = buildGrammar {
language = "markdown_inline";
version = "0.0.0+rev=2821521";
version = "0.0.0+rev=b2f0198";
src = fetchFromGitHub {
owner = "MDeiml";
repo = "tree-sitter-markdown";
rev = "2821521a4e6eab37b63dff6a8e169cd88554047d";
hash = "sha256-JoZ/CKIMHVowwqTMFdys+Qu1CHMsP+8Wr2LJo5h30B4=";
rev = "b2f01981a76e3251f5b660378136c248ed106b81";
hash = "sha256-6gxtiO6Dzo5BELdw/dAaQB90SJYelr/RqvTzNK55caA=";
};
location = "tree-sitter-markdown-inline";
meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
@ -1507,12 +1530,12 @@
};
mlir = buildGrammar {
language = "mlir";
version = "0.0.0+rev=117cbbc";
version = "0.0.0+rev=992c756";
src = fetchFromGitHub {
owner = "artagnon";
repo = "tree-sitter-mlir";
rev = "117cbbc46bbf82ae30b24f8939573655017226da";
hash = "sha256-c0+Pvhe++fHmRL9Ptri+vsdRN3MCb2Z/7EqWmFaK/CE=";
rev = "992c756686eb968af752ce75a874591042a8e24c";
hash = "sha256-nm7YSwj10p6GKR7lUJZ5SZeiW8fh+5ZI52haeUM3oDE=";
};
generate = true;
meta.homepage = "https://github.com/artagnon/tree-sitter-mlir";
@ -1541,12 +1564,12 @@
};
nickel = buildGrammar {
language = "nickel";
version = "0.0.0+rev=33a64ec";
version = "0.0.0+rev=58baf89";
src = fetchFromGitHub {
owner = "nickel-lang";
repo = "tree-sitter-nickel";
rev = "33a64ec9a27058c52e4195f1030235dcdfc04747";
hash = "sha256-gTOePRg5ZEXfBL35biG6abpxW2eycgbHIzaL6w4g8rc=";
rev = "58baf89db8fdae54a84bcf22c80ff10ee3f929ed";
hash = "sha256-WuY6X1mnXdjiy4joIcY8voK2sqICFf0GvudulZ9lwqg=";
};
meta.homepage = "https://github.com/nickel-lang/tree-sitter-nickel";
};
@ -1640,24 +1663,24 @@
};
ocaml = buildGrammar {
language = "ocaml";
version = "0.0.0+rev=9965d20";
version = "0.0.0+rev=712d9bf";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-ocaml";
rev = "9965d208337d88bbf1a38ad0b0fe49e5f5ec9677";
hash = "sha256-9Y/eZNsKkz8RKjMn5RIAPITkDQTWdSc/fBXzxMg1ViQ=";
rev = "712d9bfa1d537c5899dde5538767ed2d8bb37a93";
hash = "sha256-l4hchr03Jrsat863K8wfBeHo1o9dw0T3RAl4MMWKIHA=";
};
location = "ocaml";
meta.homepage = "https://github.com/tree-sitter/tree-sitter-ocaml";
};
ocaml_interface = buildGrammar {
language = "ocaml_interface";
version = "0.0.0+rev=9965d20";
version = "0.0.0+rev=712d9bf";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-ocaml";
rev = "9965d208337d88bbf1a38ad0b0fe49e5f5ec9677";
hash = "sha256-9Y/eZNsKkz8RKjMn5RIAPITkDQTWdSc/fBXzxMg1ViQ=";
rev = "712d9bfa1d537c5899dde5538767ed2d8bb37a93";
hash = "sha256-l4hchr03Jrsat863K8wfBeHo1o9dw0T3RAl4MMWKIHA=";
};
location = "interface";
meta.homepage = "https://github.com/tree-sitter/tree-sitter-ocaml";
@ -1742,24 +1765,24 @@
};
php = buildGrammar {
language = "php";
version = "0.0.0+rev=78a78df";
version = "0.0.0+rev=ad414fa";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-php";
rev = "78a78df5e06b4c13173af2a1f607c9a853d0f240";
hash = "sha256-N7qbOQethP/ZZHu5r+SJYCdrX4FVg72YuyULpuMUAhw=";
rev = "ad414fa5497328e96ef992d80896f19c77584f7c";
hash = "sha256-is5jtMg3G4ay+yF1Eti0jDljlB4vmibLPW0qup+8VeU=";
};
location = "php";
meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
};
php_only = buildGrammar {
language = "php_only";
version = "0.0.0+rev=78a78df";
version = "0.0.0+rev=ad414fa";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-php";
rev = "78a78df5e06b4c13173af2a1f607c9a853d0f240";
hash = "sha256-N7qbOQethP/ZZHu5r+SJYCdrX4FVg72YuyULpuMUAhw=";
rev = "ad414fa5497328e96ef992d80896f19c77584f7c";
hash = "sha256-is5jtMg3G4ay+yF1Eti0jDljlB4vmibLPW0qup+8VeU=";
};
location = "php_only";
meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
@ -1921,12 +1944,12 @@
};
puppet = buildGrammar {
language = "puppet";
version = "0.0.0+rev=3641b9e";
version = "0.0.0+rev=5849f96";
src = fetchFromGitHub {
owner = "amaanq";
repo = "tree-sitter-puppet";
rev = "3641b9e854ac9c84c7576e71c4c9a357bcfd9550";
hash = "sha256-J1DBjQRdV4R85NTyg/qmwbjm1bryKe3UOdp4XyH6BQc=";
rev = "5849f9694197a6e822872945b415429c285fdd54";
hash = "sha256-Lwfiby7amjTIOz8QRoC4RdZyFPfFikmQ2sqta4akyH8=";
};
meta.homepage = "https://github.com/amaanq/tree-sitter-puppet";
};
@ -1954,12 +1977,12 @@
};
python = buildGrammar {
language = "python";
version = "0.0.0+rev=22d3f87";
version = "0.0.0+rev=b8a4c64";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-python";
rev = "22d3f87bdafac2782e907330babe4af574f5d0b4";
hash = "sha256-tyEawslx00ZwohMZo4HBa/INfbS7q6Ob2LO7pvowobk=";
rev = "b8a4c64121ba66b460cb878e934e3157ecbfb124";
hash = "sha256-ZTqWyr4+pOyXY4X/WnYdn9Sgp7T8FEEUy/TQPuFqb4k=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-python";
};
@ -1998,12 +2021,12 @@
};
query = buildGrammar {
language = "query";
version = "0.0.0+rev=a0ccc35";
version = "0.0.0+rev=176a380";
src = fetchFromGitHub {
owner = "nvim-treesitter";
repo = "tree-sitter-query";
rev = "a0ccc351e5e868ec1f8135e97aa3b53c663cf2df";
hash = "sha256-H2QLsjl3/Kh0ojCf2Df38tb9KrM2InphEmtGd0J6+hM=";
rev = "176a380df78800167565118bb0dadfc961abbd43";
hash = "sha256-b9M213q6dmuK65llDTMW7rksrOyTEzlE0kdAVv0fDnA=";
};
meta.homepage = "https://github.com/nvim-treesitter/tree-sitter-query";
};
@ -2020,12 +2043,12 @@
};
racket = buildGrammar {
language = "racket";
version = "0.0.0+rev=e4ba1a9";
version = "0.0.0+rev=b5a2fe7";
src = fetchFromGitHub {
owner = "6cdh";
repo = "tree-sitter-racket";
rev = "e4ba1a9674a3b4dd7905d04f194ae6f8331be342";
hash = "sha256-4+TRol2i6ibuXqBr6O8jI/4MZq8hnf09eVBtPqaKp8s=";
rev = "b5a2fe74cac87dc5342b366f50db71d421e7cf8f";
hash = "sha256-TPQw9Yd194tTD2k+qzzGjMInCAJ9WeZuRPRD96zLGzs=";
};
meta.homepage = "https://github.com/6cdh/tree-sitter-racket";
};
@ -2108,12 +2131,12 @@
};
rnoweb = buildGrammar {
language = "rnoweb";
version = "0.0.0+rev=502c112";
version = "0.0.0+rev=1a74dc0";
src = fetchFromGitHub {
owner = "bamonroe";
repo = "tree-sitter-rnoweb";
rev = "502c1126dc6777f09af5bef16e72a42f75bd081e";
hash = "sha256-aGEhy4uMhKFbL0+JO5rrn3GIe//8PZpDHEMDGHDlBCY=";
rev = "1a74dc0ed731ad07db39f063e2c5a6fe528cae7f";
hash = "sha256-sCjSS6iunij2SXHNzQcTq0HKawH9i5h/vQ6yl77opXw=";
};
meta.homepage = "https://github.com/bamonroe/tree-sitter-rnoweb";
};
@ -2152,34 +2175,34 @@
};
ruby = buildGrammar {
language = "ruby";
version = "0.0.0+rev=22a0bb2";
version = "0.0.0+rev=9d86f37";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-ruby";
rev = "22a0bb2678755a3714e194609862ea7f4516e807";
hash = "sha256-lD3pRbQZDyqIkiknuXAkXd+6aHqKUY/8SNwQgfnrbBw=";
rev = "9d86f3761bb30e8dcc81e754b81d3ce91848477e";
hash = "sha256-Ibfu+5NWCkw7jriy1tiMLplpXNZfZf8WP30lDU1//GM=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-ruby";
};
rust = buildGrammar {
language = "rust";
version = "0.0.0+rev=2d7bac5";
version = "0.0.0+rev=3a56481";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-rust";
rev = "2d7bac5164c344c95530c16dd5c8fa1319e34308";
hash = "sha256-k5/tfG8ONOK8ARgHwpxqB27sJWHioTd5WfCpmMZ1vJY=";
rev = "3a56481f8d13b6874a28752502a58520b9139dc7";
hash = "sha256-6ROXeKuPehtIOtaI1OJuTtyPfQmZyLzCxv3ZS04yAIk=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-rust";
};
scala = buildGrammar {
language = "scala";
version = "0.0.0+rev=e02f003";
version = "0.0.0+rev=70b4fe6";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-scala";
rev = "e02f003d78dc269fef287b9b7b9963dc1f26bd7e";
hash = "sha256-LkrZ+y7QSAGe/kkkdUSyFQJFmD/mOI5Ps/wxD3BAkDI=";
rev = "70b4fe63c4973b04cc7bd40c6b7646d9c2430db8";
hash = "sha256-ZwrsEhlZGVJMP+GRIlaxGqS1b7HtiQelg3QBwJT9Igk=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-scala";
};
@ -2197,12 +2220,12 @@
};
scheme = buildGrammar {
language = "scheme";
version = "0.0.0+rev=85b6188";
version = "0.0.0+rev=6c77a5b";
src = fetchFromGitHub {
owner = "6cdh";
repo = "tree-sitter-scheme";
rev = "85b6188fb77c03dfb01d13e58e2844450506860c";
hash = "sha256-v+iQpeAeySKPgMu5IQ8vNnUSc2duX1vYvO3qqK1/Pmc=";
rev = "6c77a5bcfb9baceeaa79ef67354b2d501b37b085";
hash = "sha256-HIZ8j8a5ejB87rTBaMpNGRGL0TGqXiuV/BxfU4aj17s=";
};
meta.homepage = "https://github.com/6cdh/tree-sitter-scheme";
};
@ -2230,12 +2253,12 @@
};
slint = buildGrammar {
language = "slint";
version = "0.0.0+rev=3c82235";
version = "0.0.0+rev=f5fa844";
src = fetchFromGitHub {
owner = "slint-ui";
repo = "tree-sitter-slint";
rev = "3c82235f41b63f35a01ae3888206e93585cbb84a";
hash = "sha256-D3X2YwvxvseIGnKzaSocr3Ak7qoASZhxyRS+rtpir0g=";
rev = "f5fa844d2adbcfdc7a0ec4daae4539887959d9ff";
hash = "sha256-MSIQd1Xb4ug4yZk2bQFPHMZxrqe1xke6X7LKsxtkIkc=";
};
meta.homepage = "https://github.com/slint-ui/tree-sitter-slint";
};
@ -2274,12 +2297,12 @@
};
solidity = buildGrammar {
language = "solidity";
version = "0.0.0+rev=5cb506a";
version = "0.0.0+rev=b239a95";
src = fetchFromGitHub {
owner = "JoranHonig";
repo = "tree-sitter-solidity";
rev = "5cb506ae419c4ad620c77210fd47500d3d169dbc";
hash = "sha256-3BQuEGrmQD9Va7JpTuKJaZ6VaJ//tfPtjoEDRj/utcU=";
rev = "b239a95f94cfcc6e7b3e961bc73a28d55e214f02";
hash = "sha256-b+LthCf+g19sjKeNgXZmUV0RNi94O3u0WmXfgKRpaE0=";
};
meta.homepage = "https://github.com/JoranHonig/tree-sitter-solidity";
};
@ -2309,12 +2332,12 @@
};
sourcepawn = buildGrammar {
language = "sourcepawn";
version = "0.0.0+rev=39ce73a";
version = "0.0.0+rev=3ca89fd";
src = fetchFromGitHub {
owner = "nilshelmig";
repo = "tree-sitter-sourcepawn";
rev = "39ce73ad42b2c4f52848d16093c24feddaa7d226";
hash = "sha256-CyCUGGycWpgQl/BGDjRHwYoa9Mess49jUf9WUkRaliE=";
rev = "3ca89fdf998340a7973e276b39516d8902950f86";
hash = "sha256-AF7PiM0Tt6wqGdNsfMGSkgWXgZRDZGdKc7DQpUHuGUA=";
};
meta.homepage = "https://github.com/nilshelmig/tree-sitter-sourcepawn";
};
@ -2331,12 +2354,12 @@
};
sql = buildGrammar {
language = "sql";
version = "0.0.0+rev=da2d1ef";
version = "0.0.0+rev=cdb7cde";
src = fetchFromGitHub {
owner = "derekstride";
repo = "tree-sitter-sql";
rev = "da2d1eff425b146d3c8cab7be8dfa98b11d896dc";
hash = "sha256-aNxUvmj4AMO744fsSOsvQcNEtHYuQDephKha/hSphh0=";
rev = "cdb7cde9bf70b194ab8beb5069fbbc3c9640284e";
hash = "sha256-yxr+AbKp4pkVpjMQXL3P5VEzSo2Ii6yE7ceEBYiDHJA=";
};
meta.homepage = "https://github.com/derekstride/tree-sitter-sql";
};
@ -2353,12 +2376,12 @@
};
ssh_config = buildGrammar {
language = "ssh_config";
version = "0.0.0+rev=4fab1c9";
version = "0.0.0+rev=514695d";
src = fetchFromGitHub {
owner = "ObserverOfTime";
repo = "tree-sitter-ssh-config";
rev = "4fab1c9116cb7890885508e4630cc8e6a8373a41";
hash = "sha256-cZoRQN3vrOC7xaKeURGeKfQ0xAyRMapbgNQrBTCFoHI=";
rev = "514695df4985f56455b8f139a319453a2325cdcf";
hash = "sha256-LDqRP8FA5m1tnbGNTxItQlp6B6U+M6gOBlbi4zX0FHI=";
};
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-ssh-config";
};
@ -2430,12 +2453,12 @@
};
swift = buildGrammar {
language = "swift";
version = "0.0.0+rev=fc00cbb";
version = "0.0.0+rev=78a736d";
src = fetchFromGitHub {
owner = "alex-pinkus";
repo = "tree-sitter-swift";
rev = "fc00cbb460b40228b30f322b5a34ea0e8f35a9f8";
hash = "sha256-FEac9qZuNAJYn/7mIpRSOy72F3qsiyPHZTn1DUzM2xk=";
rev = "78a736d77094b0b3c35e811e6765c4d38a72724e";
hash = "sha256-cBUBmXc+mhub5jvGKPcCgHgZPQtxF6OD+dlKQ0ZaxpY=";
};
generate = true;
meta.homepage = "https://github.com/alex-pinkus/tree-sitter-swift";
@ -2464,12 +2487,12 @@
};
t32 = buildGrammar {
language = "t32";
version = "0.0.0+rev=b904af3";
version = "0.0.0+rev=0a457a5";
src = fetchFromGitLab {
owner = "xasc";
repo = "tree-sitter-t32";
rev = "b904af353fb2f1df6ac45d8d3e3a5ee85a6cc306";
hash = "sha256-MGdwcw9T3hemUHfgQmdTp20MW08AQcVWGRHxkP/6N5Y=";
rev = "0a457a557be7779336bc8ac2b396e73797bc68f7";
hash = "sha256-ylMJ177FYVcnfaXbnOieNP1Emq8HpeAgEddt96tBJqE=";
};
meta.homepage = "https://gitlab.com/xasc/tree-sitter-t32.git";
};
@ -2520,12 +2543,12 @@
};
terraform = buildGrammar {
language = "terraform";
version = "0.0.0+rev=e135399";
version = "0.0.0+rev=e936d3f";
src = fetchFromGitHub {
owner = "MichaHoffmann";
repo = "tree-sitter-hcl";
rev = "e135399cb31b95fac0760b094556d1d5ce84acf0";
hash = "sha256-Ylxpj+e9YGhyRRRCCVs0g/zhwHpwGELxG2i+E3SFmpQ=";
rev = "e936d3fef8bac884661472dce71ad82284761eb1";
hash = "sha256-lcvs4auZrMb1f9ocrAnLVxX8JnvrPT18LsJBqoNG9Oo=";
};
location = "dialects/terraform";
meta.homepage = "https://github.com/MichaHoffmann/tree-sitter-hcl";
@ -2565,12 +2588,12 @@
};
tlaplus = buildGrammar {
language = "tlaplus";
version = "0.0.0+rev=aaf5bb5";
version = "0.0.0+rev=3896a5b";
src = fetchFromGitHub {
owner = "tlaplus-community";
repo = "tree-sitter-tlaplus";
rev = "aaf5bb5c1df0a6e583bb51efa519a9ac788b2ad8";
hash = "sha256-p/khQ31bReopPyZ1TvUKI6bnFipWiGrxKO7cAYzeku4=";
rev = "3896a5be761f04ffb22a841b2a0672f7a8a43ef9";
hash = "sha256-EODxn3ZitUSz8/4XkgMK0dp2T07BwlsXVbFbBQ5xXi4=";
};
meta.homepage = "https://github.com/tlaplus-community/tree-sitter-tlaplus";
};
@ -2621,12 +2644,12 @@
};
tsx = buildGrammar {
language = "tsx";
version = "0.0.0+rev=198e2ea";
version = "0.0.0+rev=b00b8eb";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-typescript";
rev = "198e2ea43d1c4ddd76ee883f4eae15f4201cd241";
hash = "sha256-WnVqoshymxZgGC/p5nFX08ypB1VDLIAMjjWN5YC4UT8=";
rev = "b00b8eb44f0b9f02556da0b1a4e2f71faed7e61b";
hash = "sha256-uGuwE1eTVEkuosMfTeY2akHB+bJ5npWEwUv+23nhY9M=";
};
location = "tsx";
meta.homepage = "https://github.com/tree-sitter/tree-sitter-typescript";
@ -2655,12 +2678,12 @@
};
typescript = buildGrammar {
language = "typescript";
version = "0.0.0+rev=198e2ea";
version = "0.0.0+rev=b00b8eb";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-typescript";
rev = "198e2ea43d1c4ddd76ee883f4eae15f4201cd241";
hash = "sha256-WnVqoshymxZgGC/p5nFX08ypB1VDLIAMjjWN5YC4UT8=";
rev = "b00b8eb44f0b9f02556da0b1a4e2f71faed7e61b";
hash = "sha256-uGuwE1eTVEkuosMfTeY2akHB+bJ5npWEwUv+23nhY9M=";
};
location = "typescript";
meta.homepage = "https://github.com/tree-sitter/tree-sitter-typescript";
@ -2790,34 +2813,34 @@
};
vim = buildGrammar {
language = "vim";
version = "0.0.0+rev=bc1364d";
version = "0.0.0+rev=052279c";
src = fetchFromGitHub {
owner = "neovim";
repo = "tree-sitter-vim";
rev = "bc1364d922952138957a62105171ed68e73fbb6c";
hash = "sha256-5h1GYjyYMJd5GS0zXh0LP1wBs60fYohpFv89gcdZ4vU=";
rev = "052279cd5e1d73b075640c64cef97e7bdcd32611";
hash = "sha256-EoiMqMcBl5bC1Irs2flA2F5nHN6VTZdv6hdCrqoTAcY=";
};
meta.homepage = "https://github.com/neovim/tree-sitter-vim";
};
vimdoc = buildGrammar {
language = "vimdoc";
version = "0.0.0+rev=b63be26";
version = "0.0.0+rev=f431bfa";
src = fetchFromGitHub {
owner = "neovim";
repo = "tree-sitter-vimdoc";
rev = "b63be26fa571259b512e1939f01755d9d6e78fbd";
hash = "sha256-gsjepcw8Y8Vm6GhJRKUJKLsCb+Rd0lNyYfnmWijuiLo=";
rev = "f431bfa7d433f4d629943147817193a4fccbd303";
hash = "sha256-+SYbYvmVN2U0Q03p0eCj3MViCyzPqUiPG1oMWh7hRyM=";
};
meta.homepage = "https://github.com/neovim/tree-sitter-vimdoc";
};
vue = buildGrammar {
language = "vue";
version = "0.0.0+rev=7e48557";
version = "0.0.0+rev=3b9d520";
src = fetchFromGitHub {
owner = "tree-sitter-grammars";
repo = "tree-sitter-vue";
rev = "7e48557b903a9db9c38cea3b7839ef7e1f36c693";
hash = "sha256-dz9NC+axivAsVJPbt7TNtU89wFyrTBoD2hCBjiXFbgY=";
rev = "3b9d52087100bdfce43dad2ca46d75b0e21613f6";
hash = "sha256-36MnM1X8uhqCb44oHY0kEKDLpYmU1QL2JfGpdIbb3pc=";
};
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-vue";
};
@ -2845,12 +2868,12 @@
};
wing = buildGrammar {
language = "wing";
version = "0.0.0+rev=13b79ea";
version = "0.0.0+rev=07f6740";
src = fetchFromGitHub {
owner = "winglang";
repo = "wing";
rev = "13b79ea3f343b15f233c6e7ac930797748191615";
hash = "sha256-2BOPevKjrNoTRNaadwr7erWDBxIDUvU4zLOQgXOB4rE=";
rev = "07f6740ab9f4f74c49413b9056154cac51f4b2d7";
hash = "sha256-jnDrJhhsfRAqR+83VaGXBKANu5J2Xt7LNUm0VUFEVbY=";
};
location = "libs/tree-sitter-wing";
generate = true;
@ -2881,14 +2904,14 @@
};
yaml = buildGrammar {
language = "yaml";
version = "0.0.0+rev=0e36bed";
version = "0.0.0+rev=9e59b9b";
src = fetchFromGitHub {
owner = "ikatyang";
owner = "tree-sitter-grammars";
repo = "tree-sitter-yaml";
rev = "0e36bed171768908f331ff7dff9d956bae016efb";
hash = "sha256-bpiT3FraOZhJaoiFWAoVJX1O+plnIi8aXOW2LwyU23M=";
rev = "9e59b9bbf839ba231fbcb953617d8b9b9a059e38";
hash = "sha256-9YVXErOwUf4hcvugcgtlefyQd4p34u9AT4gUcwc3ZaU=";
};
meta.homepage = "https://github.com/ikatyang/tree-sitter-yaml";
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-yaml";
};
yang = buildGrammar {
language = "yang";

View File

@ -998,7 +998,7 @@
inherit (old) version src;
sourceRoot = "${old.src.name}/spectre_oxi";
cargoHash = "sha256-gCGuD5kipgfR0Le8npNmyBxNsUq0PavXvKkxkiPx13E=";
cargoHash = "sha256-VDnrJ2EJ8LDykqxYKD1VR8BkDqzzifazJzL/0UsmSCk=";
preCheck = ''
@ -1134,7 +1134,7 @@
pname = "sg-nvim-rust";
inherit (old) version src;
cargoHash = "sha256-nlPSsp/HbS1DxhOHh5+7x1re46oiQa9FQMLClc7TQLg=";
cargoHash = "sha256-iGNLk3ckm90i5m05V/va+hO9RMiOUKL19dkszoUCwlU=";
nativeBuildInputs = [ pkg-config ];

View File

@ -1,5 +1,5 @@
diff --git a/autoload/health/openscad_nvim.vim b/autoload/health/openscad_nvim.vim
index 9022d55..30ef53f 100644
index d6d4b4c..9853877 100644
--- a/autoload/health/openscad_nvim.vim
+++ b/autoload/health/openscad_nvim.vim
@@ -7,7 +7,7 @@ function! s:check_nvim_version_minimum() abort
@ -8,20 +8,20 @@ index 9022d55..30ef53f 100644
function! s:check_zathura_installed() abort
- if !executable('zathura')
+ if !executable('@zathura@')
call health#report_error('has(zathura)','install zathura')
call v:lua.vim.health.error('has(zathura)','install zathura')
else
call health#report_ok("zathura is installed")
call v:lua.vim.health.ok("zathura is installed")
@@ -15,7 +15,7 @@ function! s:check_zathura_installed() abort
endfunction
function! s:check_htop_installed() abort
- if !executable('htop')
+ if !executable('@htop@')
call health#report_error('has(htop)','install htop')
call v:lua.vim.health.error('has(htop)','install htop')
else
call health#report_ok("htop is installed")
call v:lua.vim.health.ok("htop is installed")
diff --git a/lua/openscad.lua b/lua/openscad.lua
index 7dff2fb..4382003 100644
index 7475f29..832c895 100644
--- a/lua/openscad.lua
+++ b/lua/openscad.lua
@@ -101,7 +101,7 @@ end
@ -38,7 +38,7 @@ index 7dff2fb..4382003 100644
else
-- TODO: What about Windows?
- jobCommand = 'openscad ' .. vim.fn.expand('%:p')
+ jobCommand = '@oepnscad@ ' .. vim.fn.expand('%:p')
+ jobCommand = '@openscad@ ' .. vim.fn.expand('%:p')
end
vim.fn.jobstart(jobCommand)

View File

@ -361,6 +361,7 @@ https://github.com/nvimdev/guard.nvim/,HEAD,
https://github.com/nmac427/guess-indent.nvim/,HEAD,
https://github.com/sjl/gundo.vim/,,
https://github.com/junegunn/gv.vim/,,
https://github.com/TheSnakeWitcher/hardhat.nvim/,HEAD,
https://github.com/m4xshen/hardtime.nvim/,HEAD,
https://git.sr.ht/~sircmpwn/hare.vim,HEAD,
https://github.com/ThePrimeagen/harpoon/,master,
@ -548,15 +549,22 @@ https://github.com/Shougo/neosnippet-snippets/,,
https://github.com/Shougo/neosnippet.vim/,,
https://github.com/kassio/neoterm/,,
https://github.com/nvim-neotest/neotest/,HEAD,
https://github.com/rcasia/neotest-bash/,HEAD,
https://github.com/sidlatau/neotest-dart/,HEAD,
https://github.com/MarkEmmons/neotest-deno/,HEAD,
https://github.com/Issafalcon/neotest-dotnet/,HEAD,
https://github.com/jfpedroza/neotest-elixir/,HEAD,
https://github.com/llllvvuu/neotest-foundry/,HEAD,
https://github.com/nvim-neotest/neotest-go/,HEAD,
https://github.com/weilbith/neotest-gradle/,HEAD,
https://github.com/alfaix/neotest-gtest/,HEAD,
https://github.com/MrcJkb/neotest-haskell/,HEAD,
https://github.com/rcasia/neotest-java/,HEAD,
https://github.com/haydenmeade/neotest-jest/,HEAD,
https://github.com/zidhuss/neotest-minitest/,HEAD,
https://github.com/theutz/neotest-pest/,HEAD,
https://github.com/olimorris/neotest-phpunit/,HEAD,
https://github.com/thenbe/neotest-playwright/,HEAD,
https://github.com/nvim-neotest/neotest-plenary/,HEAD,
https://github.com/nvim-neotest/neotest-python/,HEAD,
https://github.com/olimorris/neotest-rspec/,HEAD,
@ -564,6 +572,7 @@ https://github.com/rouge8/neotest-rust/,HEAD,
https://github.com/stevanmilic/neotest-scala/,HEAD,
https://github.com/shunsambongi/neotest-testthat/,HEAD,
https://github.com/marilari88/neotest-vitest/,HEAD,
https://github.com/lawrence-laz/neotest-zig/,HEAD,
https://github.com/rose-pine/neovim/,main,rose-pine
https://github.com/Shatur/neovim-ayu/,,
https://github.com/cloudhead/neovim-fuzzy/,,
@ -1364,6 +1373,7 @@ https://github.com/puremourning/vimspector/,,
https://github.com/lervag/vimtex/,,
https://github.com/preservim/vimux/,,
https://github.com/vimwiki/vimwiki/,,
https://github.com/lukas-reineke/virt-column.nvim/,HEAD,
https://github.com/jubnzv/virtual-types.nvim/,HEAD,
https://github.com/vim-scripts/vis/,,
https://github.com/navicore/vissort.vim/,,

View File

@ -1,6 +1,6 @@
{ lib, stdenv, vscode-utils, callPackage }:
let
version = "1.48.0";
version = "1.50.0";
rescript-editor-analysis = callPackage ./rescript-editor-analysis.nix { inherit version; };
arch =
if stdenv.isLinux then "linux"
@ -13,7 +13,7 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
name = "rescript-vscode";
publisher = "chenglou92";
inherit version;
sha256 = "sha256-/1nDuj/kSdkV6PlbdlOLfUKQeuvyL2VhPjUAr9kq2NM=";
sha256 = "sha256-Dt7mqZQ/vEUFyUD5SsY6RGzg9kq19/Amksrwtfv0TuE=";
};
postPatch = ''
rm -r ${analysisDir}

View File

@ -98,9 +98,9 @@ in mkDerivation rec {
wrapGAppsHook
wrapQtAppsHook
bison
cmake
flex
bison
ninja
];

View File

@ -1,48 +0,0 @@
{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron_25 }:
stdenv.mkDerivation rec {
pname = "blockbench-electron";
version = "4.8.1";
src = fetchurl {
url = "https://github.com/JannisX11/blockbench/releases/download/v${version}/Blockbench_${version}.AppImage";
sha256 = "sha256-CE2wDOt1WBcYmPs4sEyZ3LYvKLequFZH0B3huMYHlwA=";
name = "${pname}-${version}.AppImage";
};
appimageContents = appimageTools.extractType2 {
name = "${pname}-${version}";
inherit src;
};
dontUnpack = true;
dontConfigure = true;
dontBuild = true;
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/share/${pname} $out/share/applications
cp -a ${appimageContents}/{locales,resources} $out/share/${pname}
cp -a ${appimageContents}/blockbench.desktop $out/share/applications/${pname}.desktop
cp -a ${appimageContents}/usr/share/icons $out/share
substituteInPlace $out/share/applications/${pname}.desktop \
--replace 'Exec=AppRun' 'Exec=${pname}'
runHook postInstall
'';
postFixup = ''
makeWrapper ${electron_25}/bin/electron $out/bin/${pname} \
--add-flags $out/share/${pname}/resources/app.asar \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ]}"
'';
meta = with lib; {
description = "A boxy 3D model editor powered by Electron";
homepage = "https://blockbench.net/";
license = licenses.gpl3Only;
maintainers = with maintainers; [ ckie ];
platforms = [ "x86_64-linux" ];
};
}

View File

@ -7,13 +7,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "bemenu";
version = "0.6.20";
version = "0.6.21";
src = fetchFromGitHub {
owner = "Cloudef";
repo = finalAttrs.pname;
rev = finalAttrs.version;
hash = "sha256-pXuaNhrXy33rZxk+qisFWpYj6w9QW3p3WmGtE1kHGII=";
hash = "sha256-E/5wN7HpdBt//jFe9yAB8fuHKiFJ7D1UAJEvG8KBJ6k=";
};
strictDeps = true;

View File

@ -9,10 +9,27 @@
, enableQt ? true
, callPackage
, qtwayland
, fetchPypi
}:
let
version = "4.5.3";
version = "4.5.4";
python = python3.override {
self = python;
packageOverrides = self: super: {
# Pin ledger-bitcoin to 0.2.1
ledger-bitcoin = super.ledger-bitcoin.overridePythonAttrs (oldAttrs: rec {
version = "0.2.1";
format = "pyproject";
src = fetchPypi {
pname = "ledger_bitcoin";
inherit version;
hash = "sha256-AWl/q2MzzspNIo6yf30S92PgM/Ygsb+1lJsg7Asztso=";
};
});
};
};
libsecp256k1_name =
if stdenv.isLinux then "libsecp256k1.so.{v}"
@ -29,7 +46,7 @@ let
owner = "spesmilo";
repo = "electrum";
rev = version;
sha256 = "sha256-Lr6ynHAbyaiaxYAWU5j5Wh5acxO5HkP1/jpnFrL4j68=";
sha256 = "sha256-fDu2PlEQOF7ftlS6dYw15S2XiAx+D/bng4zC9ELj6uk=";
postFetch = ''
mv $out ./all
@ -39,13 +56,13 @@ let
in
python3.pkgs.buildPythonApplication {
python.pkgs.buildPythonApplication {
pname = "electrum";
inherit version;
src = fetchurl {
url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
sha256 = "sha256-kej0msc7SB+51ad5xZrT8MMEY5rfYOGqum6RO1gBH5s=";
sha256 = "sha256-lDuwXhOjcbCx8x/oIoigrklDwCbhn1trf5lDf/X/1Qc=";
};
postUnpack = ''
@ -56,7 +73,7 @@ python3.pkgs.buildPythonApplication {
nativeBuildInputs = lib.optionals enableQt [ wrapQtAppsHook ];
buildInputs = lib.optional (stdenv.isLinux && enableQt) qtwayland;
propagatedBuildInputs = with python3.pkgs; [
propagatedBuildInputs = with python.pkgs; [
aiohttp
aiohttp-socks
aiorpcx
@ -80,12 +97,15 @@ python3.pkgs.buildPythonApplication {
ckcc-protocol
keepkey
trezor
bitbox02
cbor
pyserial
] ++ lib.optionals enableQt [
pyqt5
qdarkstyle
];
checkInputs = with python3.pkgs; lib.optionals enableQt [
checkInputs = with python.pkgs; lib.optionals enableQt [
pyqt6
];
@ -117,7 +137,7 @@ python3.pkgs.buildPythonApplication {
wrapQtApp $out/bin/electrum
'';
nativeCheckInputs = with python3.pkgs; [ pytestCheckHook pyaes pycryptodomex ];
nativeCheckInputs = with python.pkgs; [ pytestCheckHook pyaes pycryptodomex ];
pytestFlagsArray = [ "tests" ];
@ -140,7 +160,7 @@ python3.pkgs.buildPythonApplication {
changelog = "https://github.com/spesmilo/electrum/blob/master/RELEASE-NOTES";
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [ joachifm np prusnak ];
maintainers = with maintainers; [ joachifm np prusnak chewblacka ];
mainProgram = "electrum";
};
}

View File

@ -11,13 +11,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "kiwix-tools";
version = "3.6.0";
version = "3.7.0";
src = fetchFromGitHub {
owner = "kiwix";
repo = "kiwix-tools";
rev = finalAttrs.version;
hash = "sha256-+th86lMAuCcmWj06yQoZ1L7rLZKqNvuTrV+Rra2km44=";
hash = "sha256-JwF4EN5kyHEfNoMhHb9ywe+7pmgQtjEd2FeRUeTjvQw=";
};
nativeBuildInputs = [

View File

@ -23,16 +23,18 @@ stdenv.mkDerivation rec {
checkTarget = "test";
nativeCheckInputs = [ which zstd pbzip2 ];
sharePath = "$out/share/${pname}";
installPhase = ''
runHook preInstall
installManPage makeself.1
install -Dm555 makeself.sh $out/bin/makeself
install -Dm444 -t $out/share/${pname}/ makeself.lsm README.md makeself-header.sh
install -Dm444 -t ${sharePath}/ makeself.lsm README.md makeself-header.sh
runHook postInstall
'';
fixupPhase = ''
sed -e "s|^HEADER=.*|HEADER=$out/share/${pname}-${version}/makeself-header.sh|" -i $out/bin/makeself
sed -e "s|^HEADER=.*|HEADER=${sharePath}/makeself-header.sh|" -i $out/bin/makeself
'';
meta = with lib; {

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "revanced-cli";
version = "4.4.2";
version = "4.5.0";
src = fetchurl {
url = "https://github.com/revanced/revanced-cli/releases/download/v${version}/revanced-cli-${version}-all.jar";
hash = "sha256-zdkasyYwyPB6mPvRVMP3/UoaXdaRxAI8GyOxsCYBMEE=";
hash = "sha256-I25SmWUVJenFou1fKCd53PojoGt9FAQ7hDpEWweAICQ=";
};
nativeBuildInputs = [ makeWrapper ];

View File

@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
runHook preInstall
mkdir -p $out/opt
cp -r ./dist/linux-unpacked $out/opt/Whalebird
cp -r ./dist/*-unpacked $out/opt/Whalebird
# Install icons
# Taken from https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=whalebird#n41
@ -104,7 +104,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Single-column Fediverse client for desktop";
homepage = "https://whalebird.social";
sourceProvenance = with sourceTypes; [ fromSource ];
changelog = "https://github.com/h3poteto/whalebird-desktop/releases/tag/v${version}";
license = licenses.gpl3Only;
maintainers = with maintainers; [ wolfangaukang colinsane weathercold ];
platforms = [ "x86_64-linux" "aarch64-linux" ];

View File

@ -8,13 +8,13 @@
buildGoModule rec {
pname = "bosh-cli";
version = "7.5.4";
version = "7.5.5";
src = fetchFromGitHub {
owner = "cloudfoundry";
repo = pname;
rev = "v${version}";
sha256 = "sha256-aNzKp7QwyhC/ado0NrCyxrRZu+ePGBNSq31/Iw6k6n0=";
sha256 = "sha256-LjqMCkEIl+0psxIys/tvJPkEQqDRzLOsaFUfAVG+RrE=";
};
vendorHash = null;

View File

@ -5,16 +5,16 @@
buildGoModule rec {
pname = "kubectl-cnpg";
version = "1.22.1";
version = "1.22.2";
src = fetchFromGitHub {
owner = "cloudnative-pg";
repo = "cloudnative-pg";
rev = "v${version}";
hash = "sha256-mKQuHswnoxgqQOCiQFbibg6MqACOxM73XngQai6s6To=";
hash = "sha256-xR61PYUqiVtPTghEEeSWXs/Apx7VVWDgi6Pgx/EBQzQ=";
};
vendorHash = "sha256-SCeKoxI1zFzSwLAdAa1YI3DiyfK/uOk7CmWwQWVeF7g=";
vendorHash = "sha256-u5ou9rY/JBrV0EF/nJX8u/Fqde/WZe21EcsNLwvtqB0=";
subPackages = [ "cmd/kubectl-cnpg" ];

View File

@ -10,16 +10,16 @@
buildGoModule rec {
pname = "nerdctl";
version = "1.7.4";
version = "1.7.5";
src = fetchFromGitHub {
owner = "containerd";
repo = pname;
rev = "v${version}";
hash = "sha256-d90xwrMtDK5ibRHIeV6nzv5jqJfaQXpU9xKTH49yiX4=";
hash = "sha256-eGDshnJ26rrRuM9lWwcdRg8udA4uE5ee6c+SYES7qt4=";
};
vendorHash = "sha256-oiBgZQtqFwq189h/Bb4CrFhs4RDYUoEEOjrccujGclU=";
vendorHash = "sha256-GsI695T7nkwwAt78l7mc5JCD9wXAUcTxwsiLLFcANBI=";
nativeBuildInputs = [ makeWrapper installShellFiles ];

View File

@ -5,16 +5,16 @@
buildGoModule rec {
pname = "terragrunt";
version = "0.55.13";
version = "0.55.15";
src = fetchFromGitHub {
owner = "gruntwork-io";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-qTQ4tmSFFqO2tnp+7fVeXO6dNbPsx37vT6GElz8dLdQ=";
hash = "sha256-luVYnuvsLHfkSZVCjzGB34ffbNzuKjEFmxQfgdY+YpQ=";
};
vendorHash = "sha256-sdEA/5QQ85tGfo7qSCD/lD20uAh045fl3tF9nFfH6x0=";
vendorHash = "sha256-KXAN8WNKFfGbV7YQRhwgFBM0g+rbHe+MIuaR5/7khAs=";
doCheck = false;

View File

@ -15,13 +15,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "pjsip";
version = "2.14";
version = "2.14.1";
src = fetchFromGitHub {
owner = finalAttrs.pname;
repo = "pjproject";
rev = "refs/tags/${finalAttrs.version}";
hash = "sha256-PWCeIvnBAOqbcNYPhIY7hykdvLzoD9lssSViCCPNT68=";
hash = "sha256-LDA3o1QMrAxcGuOi/YRoMzXmw/wFkfDs2wweZuIJ2RY=";
};
patches = [

View File

@ -18,13 +18,13 @@
stdenv.mkDerivation rec {
pname = "wayvnc";
version = "0.7.2";
version = "0.8.0";
src = fetchFromGitHub {
owner = "any1";
repo = pname;
rev = "v${version}";
sha256 = "sha256-6at0p1Xc25K5l6sq2uMWpaLVvZMNlWC0ybyZyrIw41I=";
hash = "sha256-IGEM212CU91+pT8xq3BzrPrIDUZxZveb2jhatMGJAsw=";
};
strictDeps = true;

View File

@ -5,18 +5,18 @@
buildGoModule rec {
pname = "storj-uplink";
version = "1.99.3";
version = "1.100.2";
src = fetchFromGitHub {
owner = "storj";
repo = "storj";
rev = "v${version}";
hash = "sha256-SzldiGwcpR+UEQ3imJfu3FlYqGq4evsYtjVLybdjGqc=";
hash = "sha256-wc6oK1zn04/1nwis9ndpkQc8dwY/J85zZbhkwmNFLek=";
};
subPackages = [ "cmd/uplink" ];
vendorHash = "sha256-mPJVb2/iGbRWDDcfIey3uW/5g2TIIemHR8d/3osMeGA=";
vendorHash = "sha256-84PI1tZFiodnGvMwObELVxXMCgIWINOrO0ISAWRnxRM=";
ldflags = [ "-s" "-w" ];

View File

@ -19,15 +19,15 @@
python3.pkgs.buildPythonApplication rec {
pname = "iotas";
version = "0.2.7";
format = "other";
version = "0.2.10";
pyproject = false;
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "cheywood";
repo = pname;
owner = "World";
repo = "iotas";
rev = version;
hash = "sha256-k3Qbi/BwkJlQzlyTlo9SjJ1M3zMFHo4669rzd+BBPzQ=";
hash = "sha256-aITt+TJb/LrVOyb/mAC7U6/NJ4stHD76jjBFC7Pt7fU=";
};
nativeBuildInputs = [
@ -57,6 +57,7 @@ python3.pkgs.buildPythonApplication rec {
markdown-it-py
linkify-it-py
mdit-py-plugins
pypandoc
];
# prevent double wrapping
@ -67,9 +68,10 @@ python3.pkgs.buildPythonApplication rec {
meta = with lib; {
description = "Simple note taking with mobile-first design and Nextcloud sync";
homepage = "https://gitlab.gnome.org/cheywood/iotas";
homepage = "https://gitlab.gnome.org/World/iotas";
license = licenses.gpl3Plus;
platforms = platforms.linux;
mainProgram = "iotas";
maintainers = with maintainers; [ zendo ];
};
}

View File

@ -27,11 +27,11 @@ let
in
stdenv.mkDerivation rec {
pname = "PortfolioPerformance";
version = "0.68.1";
version = "0.68.2";
src = fetchurl {
url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
hash = "sha256-ZXtBKc5vQz9fDyiG+DYOx7DsnnsORiltOacdx4AqFjg=";
hash = "sha256-h/WCfF3jK/pkN911vxPe2xzGUfVY2Xy+3yJwoqBQ5mA=";
};
nativeBuildInputs = [

View File

@ -19,14 +19,14 @@
let
pname = "qownnotes";
appname = "QOwnNotes";
version = "24.3.1";
version = "24.3.3";
in
stdenv.mkDerivation {
inherit pname version;
src = fetchurl {
url = "https://github.com/pbek/QOwnNotes/releases/download/v${version}/qownnotes-${version}.tar.xz";
hash = "sha256-9WlpZO/OUSSUxBXXOcB6fLq5t75uryViWsn26C05bVo=";
hash = "sha256-1PnGccbEKkFZGE7mxMD8onMkFd/f9qyvERSu+VL3yUE=";
};
nativeBuildInputs = [

View File

@ -11,7 +11,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "commitizen";
version = "3.18.3";
version = "3.18.4";
format = "pyproject";
disabled = python3.pythonOlder "3.8";
@ -20,7 +20,7 @@ python3.pkgs.buildPythonApplication rec {
owner = "commitizen-tools";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-8l2nahrYq7GQwajdGwCg0Bfx8D5xk695UEHKds5+N5A=";
hash = "sha256-ODBlNwrvkYnZ+CvKyc5Bic6DK/z8d6/KR3+iarFxduE=";
};
pythonRelaxDeps = [

View File

@ -16,13 +16,13 @@
mkDerivation rec {
pname = "anilibria-winmaclinux";
version = "1.2.14";
version = "1.2.15";
src = fetchFromGitHub {
owner = "anilibria";
repo = "anilibria-winmaclinux";
rev = "d941607f078c72fca104ee1e7916cc0ddcc0acf5";
sha256 = "sha256-G4KlYAjOT1UV29vcX7Q8dMTj0BX0rsJcLtK2MQag5nU=";
rev = version;
sha256 = "sha256-pfM3o4H3XJ4ZE0FXVR1k8pc7lr7SOQjKEMWuG9YkvvI=";
};
sourceRoot = "${src.name}/src";

View File

@ -8,34 +8,18 @@
mkDerivation rec {
pname = "mythtv";
version = "32.0";
version = "34.0";
src = fetchFromGitHub {
owner = "MythTV";
repo = "mythtv";
rev = "v${version}";
sha256 = "0i4fs3rbk1jggh62wflpa2l03na9i1ihpz2vsdic9vfahqqjxff1";
hash = "sha256-6/TEoyYIRq6pufYzGOmO5DB05JuDo9lqRAYT5N5M/L4=";
};
patches = [
# Disable sourcing /etc/os-release
./dont-source-os-release.patch
# Fix QMake variable substitution syntax - MythTV/mythtv#550
(fetchpatch {
name = "fix-qmake-var-syntax.patch";
url = "https://github.com/MythTV/mythtv/commit/a8da7f7e7ec069164adbef65a8104adc9bb52e36.patch";
stripLen = 1;
hash = "sha256-JfRME00YNNjl6SKs1HBa0wBa/lR/Rt3zbQtWhsC36JM=";
})
# Bachport the build against binutils-2.41
(fetchpatch {
name = "binutils-2.41.patch";
url = "https://github.com/MythTV/mythtv/commit/f9f9bba62ee2743c816cb2b9634b6b4397e5e2e3.patch";
stripLen = 1;
hash = "sha256-IcXgBtfqPZ42inYFe7l8mWvKUV13S/YEQAHcOFaDivI=";
})
];
setSourceRoot = "sourceRoot=$(echo */mythtv)";

View File

@ -1,6 +1,6 @@
--- a/configure
+++ b/configure
@@ -5894,9 +5894,9 @@ else
@@ -5451,9 +5451,9 @@ else
die "ERROR: cannot find soundtouch 1.8.0 or later."
fi

View File

@ -19,12 +19,12 @@
}:
stdenv.mkDerivation rec {
pname = "vdr-markad";
version = "3.4.6";
version = "3.4.12";
src = fetchFromGitHub {
repo = "vdr-plugin-markad";
owner = "kfb77";
sha256 = "sha256-fixkalZAPz0iO1SmshsO0vYc2sksH2lrStsSOEcdZ1g=";
sha256 = "sha256-yc/zWMGzsfZl3n+Qt5Se2duo3jwntCWaYq1yACsrPzM=";
rev = "V${version}";
};

View File

@ -14,12 +14,12 @@
}:
stdenv.mkDerivation rec {
pname = "vdr-softhddevice";
version = "2.1.1";
version = "2.1.2";
src = fetchFromGitHub {
owner = "ua0lnj";
repo = "vdr-plugin-softhddevice";
sha256 = "sha256-d/Cl0sE4laDdjMhd3xTHcY4OT5tWWCFCvLsNF157+zw=";
sha256 = "sha256-y6b0nOf597uxS9zDh0NQOwLN81nk4U7lHK2CalyVi8s=";
rev = "v${version}";
};

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "docker-compose";
version = "2.24.7";
version = "2.25.0";
src = fetchFromGitHub {
owner = "docker";
repo = "compose";
rev = "v${version}";
hash = "sha256-r7V9ZqUbtK4PG/NfDTbDljP+xaPJBXZSp1rGY/kgUTA=";
hash = "sha256-QfzFo6VqNK+4GvF2sSVLeDTcoBOG8Jtqs6K5o5bwddA=";
};
postPatch = ''
@ -16,7 +16,7 @@ buildGoModule rec {
rm -rf e2e/
'';
vendorHash = "sha256-Ec2JRCQvdC2VzkK29GyKS2DTrfHgv4wJc/50fbLVKEY=";
vendorHash = "sha256-zAIf5ljy9trJE27RpsK0atPoqNIDUdTn6ywRo0yk/18=";
ldflags = [ "-X github.com/docker/compose/v2/internal.Version=${version}" "-s" "-w" ];

View File

@ -11,13 +11,13 @@
buildGoModule rec {
pname = "lima";
version = "0.20.1";
version = "0.20.2";
src = fetchFromGitHub {
owner = "lima-vm";
repo = pname;
rev = "v${version}";
sha256 = "sha256-MeTFATaAGRSaUXmC1fv9/gMFWafvkteKVJS6MHaqt8A=";
sha256 = "sha256-xFiCGuCUJUnWN5DBfwjhBgntDfod4CWpXqJ3dbrDUSQ=";
};
vendorHash = "sha256-wd7YiEo4Gy2kHF7aCRoNGlbOQUxqQnKqP3znzMqS2PI=";

View File

@ -1,6 +1,6 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchFromGitea
, installShellFiles
, libX11
, libinput
@ -24,8 +24,9 @@ stdenv.mkDerivation (finalAttrs: {
pname = "dwl";
version = "0.5";
src = fetchFromGitHub {
owner = "djpohly";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "dwl";
repo = "dwl";
rev = "v${finalAttrs.version}";
hash = "sha256-U/vqGE1dJKgEGTfPMw02z5KJbZLWY1vwDJWnJxT8urM=";

View File

@ -0,0 +1,73 @@
{ stdenv
, lib
, fetchFromGitHub
, meson
, ninja
, pkg-config
, boost
, cairo
, glib
, libGL
, libinput
, librsvg
, libxkbcommon
, pango
, udev
, wayfire
, wayland
, wf-config
, xcbutilwm
, mate
}:
stdenv.mkDerivation (finalAttrs: {
pname = "firedecor";
version = "2023-10-23";
src = fetchFromGitHub {
owner = "mntmn";
repo = "Firedecor";
rev = finalAttrs.version;
hash = "sha256-7or8HkmIZnLpXEZzUhJ3u8SIPfIQFgn32Ju/5OzK06Y=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [
boost
cairo
glib
libGL
libinput
librsvg
libxkbcommon
pango
udev
wayfire
wayland
wf-config
xcbutilwm
];
postPatch = ''
substituteInPlace src/firedecor-theme.cpp \
--replace-fail "/usr/share" "/run/current-system/sw/share"
'';
env = {
PKG_CONFIG_WAYFIRE_PLUGINDIR = "${placeholder "out"}/lib/wayfire";
PKG_CONFIG_WAYFIRE_METADATADIR = "${placeholder "out"}/share/wayfire/metadata";
};
meta = with lib; {
homepage = "https://github.com/mntmn/Firedecor";
description = "Advanced window decoration plugin for the Wayfire window manager";
license = licenses.mit;
inherit (mate.mate-wayland-session.meta) maintainers;
inherit (wayfire.meta) platforms;
};
})

View File

@ -4,6 +4,7 @@ lib.makeScope pkgs.newScope (self:
let
inherit (self) callPackage;
in {
firedecor = callPackage ./firedecor.nix { };
wayfire-plugins-extra = callPackage ./wayfire-plugins-extra.nix { };
wcm = callPackage ./wcm.nix { };
wf-shell = callPackage ./wf-shell.nix { };

View File

@ -26,6 +26,13 @@ stdenv.mkDerivation rec {
hash = "sha256-Uv8dSqI5Si5BbIWjOLYnzpf6cdQ+t2L9Sq8UXTb8eVo=";
};
postPatch = ''
# raise neatvnc version bound to 0.8.0
# https://gitlab.freedesktop.org/wayland/weston/-/issues/890
substituteInPlace libweston/backend-vnc/meson.build \
--replace-fail "'neatvnc', version: ['>= 0.7.0', '< 0.8.0']" "'neatvnc', version: ['>= 0.7.0', '<= 0.8.0']"
'';
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [ meson ninja pkg-config python3 wayland-scanner ];
buildInputs = [

View File

@ -325,6 +325,12 @@ stdenv.mkDerivation {
hardening_unsupported_flags+=" relro bindnow"
''
+ optionalString (libc != null && targetPlatform.isAvr) ''
for isa in avr5 avr3 avr4 avr6 avr25 avr31 avr35 avr51 avrxmega2 avrxmega4 avrxmega5 avrxmega6 avrxmega7 tiny-stack; do
echo "-L${getLib libc}/avr/lib/$isa" >> $out/nix-support/libc-cflags
done
''
+ optionalString stdenv.targetPlatform.isDarwin ''
echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/libc-ldflags
''

View File

@ -668,6 +668,12 @@ stdenv.mkDerivation {
hardening_unsupported_flags+=" stackprotector"
''
+ optionalString (libc != null && targetPlatform.isAvr) ''
for isa in avr5 avr3 avr4 avr6 avr25 avr31 avr35 avr51 avrxmega2 avrxmega4 avrxmega5 avrxmega6 avrxmega7 tiny-stack; do
echo "-B${getLib libc}/avr/lib/$isa" >> $out/nix-support/libc-crt1-cflags
done
''
+ optionalString stdenv.targetPlatform.isDarwin ''
echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/cc-cflags
''

View File

@ -27,13 +27,13 @@
, dbusSupport ? true
}:
stdenv.mkDerivation rec {
version = "3.10.0";
version = "3.10.1";
pname = "baresip";
src = fetchFromGitHub {
owner = "baresip";
repo = "baresip";
rev = "v${version}";
hash = "sha256-cVPg8T9sLZd4fXBoI64TtlIBwF2lAXNth9fMiKnk9H4=";
hash = "sha256-0huZP1hopHaN5R1Hki6YutpvoASfIHzHMl/Y4czHHMo=";
};
prePatch = lib.optionalString (!dbusSupport) ''
substituteInPlace cmake/modules.cmake --replace 'list(APPEND MODULES ctrl_dbus)' ""

View File

@ -0,0 +1,87 @@
{ lib
, stdenv
, buildNpmPackage
, fetchFromGitHub
, imagemagick
, makeWrapper
, makeDesktopItem
, copyDesktopItems
, electron_28
}:
let
electron = electron_28;
in
buildNpmPackage rec {
pname = "blockbench";
version = "4.9.4";
src = fetchFromGitHub {
owner = "JannisX11";
repo = "blockbench";
rev = "v${version}";
hash = "sha256-z4hr1pQh7Jp/DB8+pxwuHvi4gvTHHVn0yrruwnXm2iM=";
};
nativeBuildInputs = [
imagemagick # for icon resizing
makeWrapper
copyDesktopItems
];
npmDepsHash = "sha256-onfz+J77jNIgdc7ALiyoXt1CdTyX/C7+bKwtpJm+H+I=";
env.ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
npmBuildScript = "bundle";
postBuild = ''
npm exec electron-builder -- \
--dir \
-c.electronDist=${electron}/libexec/electron \
-c.electronVersion=${electron.version}
'';
installPhase = ''
runHook preInstall
mkdir -p $out/share/blockbench
cp -r dist/*-unpacked/{locales,resources{,.pak}} $out/share/blockbench
for size in 16 32 48 64 128 256 512; do
mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
convert -resize "$size"x"$size" icon.png $out/share/icons/hicolor/"$size"x"$size"/apps/blockbench.png
done
makeWrapper ${lib.getExe electron} $out/bin/blockbench \
--add-flags $out/share/blockbench/resources/app.asar \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
--inherit-argv0
runHook postInstall
'';
# based on desktop file found in the published AppImage archive
desktopItems = [
(makeDesktopItem {
name = "blockbench";
exec = "blockbench %U";
icon = "blockbench";
desktopName = "Blockbench";
comment = meta.description;
categories = [ "3DGraphics" ];
startupWMClass = "Blockbench";
terminal = false;
})
];
meta = {
changelog = "https://github.com/JannisX11/blockbench/releases/tag/${src.rev}";
description = "Low-poly 3D modeling and animation software";
homepage = "https://blockbench.net/";
license = lib.licenses.gpl3Only;
mainProgram = "blockbench";
maintainers = with lib.maintainers; [ ckie tomasajt ];
broken = stdenv.isDarwin;
};
}

View File

@ -27,20 +27,20 @@ let
in
buildNpmPackage' rec {
pname = "bruno";
version = "1.10.0";
version = "1.11.0";
src = fetchFromGitHub {
owner = "usebruno";
repo = "bruno";
rev = "v${version}";
hash = "sha256-wxQaKewKIfN93Wvb7WmOSuflTgfk1XKvHAA1UIVyMqk=";
hash = "sha256-Urskhzs00OEucoR17NDXNtnrcXk9h75E806Re0HvYyw=";
postFetch = ''
${lib.getExe npm-lockfile-fix} $out/package-lock.json
'';
};
npmDepsHash = "sha256-IXFFOegzJbDcQejqQsAg11jDnhSKi27Olm8m3qr7bqw=";
npmDepsHash = "sha256-48xzx7dTalceXzjFBHIkkUS83pqP/OQ0L2tnMESpHII=";
npmFlags = [ "--legacy-peer-deps" ];
nativeBuildInputs = [

View File

@ -44,13 +44,13 @@ in
stdenv.mkDerivation rec {
pname = "cockpit";
version = "312";
version = "313";
src = fetchFromGitHub {
owner = "cockpit-project";
repo = "cockpit";
rev = "refs/tags/${version}";
hash = "sha256-X3IsUaqXlg/SlqHo9jK+hONY/6LAIAfRO9rAwCQcq64=";
hash = "sha256-k/JbvotOcVs2OXwGOrnjY0xYRRgvk61p0o7VQTTPqz4=";
fetchSubmodules = true;
};

View File

@ -25,11 +25,11 @@ let
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "dynamodb-local";
version = "2.2.1";
version = "2.3.0";
src = fetchurl {
url = "https://d1ni2b6xgvw0s0.cloudfront.net/v2.x/dynamodb_local_2024-01-04.tar.gz";
hash = "sha256-CbZ9Z9A70JoHu4G6It+7WycaEtzuwjVJ2YrOK+37zYA=";
url = "https://d1ni2b6xgvw0s0.cloudfront.net/v2.x/dynamodb_local_2024-03-14.tar.gz";
hash = "sha256-BmLbmT63CaETgu1a/Tcf0KyF+Xwol67yKVwSMa9fJbw=";
};
sourceRoot = ".";

View File

@ -6,16 +6,16 @@
buildGoModule rec {
pname = "eksctl";
version = "0.173.0";
version = "0.174.0";
src = fetchFromGitHub {
owner = "weaveworks";
repo = pname;
rev = version;
hash = "sha256-PVBt+AoYd8fMYHzBpgQ261TGlkmyooN7UKX9ooXaRYA=";
hash = "sha256-I3YBKdb53BLZ3wFBu8WGJ1kTkuLucMoHLNchMOTNc2o=";
};
vendorHash = "sha256-5bHZt+Oze7JiaY0dKjoMNDdU6wzMphgZ3W3NveRKGy0=";
vendorHash = "sha256-wdH4+s9SU2WgIy7bJ4YrT53URvHC4vw7RZpllT2DfV8=";
doCheck = false;

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "gatus";
version = "5.7.0";
version = "5.8.0";
src = fetchFromGitHub {
owner = "TwiN";
repo = "gatus";
rev = "v${version}";
hash = "sha256-GG5p2sAIameGo6IFt3IBwFuLfVFRbfHjrQrG6Ei9odA=";
hash = "sha256-FFnrtdJiN7B27sJXzoGsbPKX3NeuHOtA34WQrw6pvEI=";
};
vendorHash = "sha256-VYHBqVFXX7fUuW2UqPOlbRDEfcysYvjSlfm0UJ2mMGM=";
vendorHash = "sha256-VICVo7XYeHs/43knHA4CMSgHloyYSjOFe1TUb4u+egE=";
subPackages = [ "." ];

View File

@ -6,16 +6,16 @@
buildNpmPackage rec {
pname = "gitlab-ci-local";
version = "4.46.1";
version = "4.47.0";
src = fetchFromGitHub {
owner = "firecow";
repo = "gitlab-ci-local";
rev = version;
hash = "sha256-0NUmsbuzs004w9ETj4e4nO+sDvYHQh9SwJoRc3+r+j8=";
hash = "sha256-AMqifAdC4aPra/KfM0Z8L1mF6+lA0dv9tt/cXSd3Ov4=";
};
npmDepsHash = "sha256-zCBNUKmLluVCDoPHuKy9KMKCGL8FqopFhKq7QCAUe4U=";
npmDepsHash = "sha256-GVqGA4aMfA08j/+fy+DA6udi52lmfDeAkE59d9CMAqg=";
postPatch = ''
# remove cleanup which runs git commands

View File

@ -9,17 +9,18 @@
, libnotify
, withHyprland ? true
, hyprland
, gawk
}:
stdenvNoCC.mkDerivation rec {
pname = "hdrop";
version = "0.4.4";
version = "0.5.0";
src = fetchFromGitHub {
owner = "Schweber";
repo = "hdrop";
rev = "v${version}";
hash = "sha256-eLOu7xmFphTxCtyyXdM9VkNcUpefefuZMAQtOV4FVtU=";
hash = "sha256-iginpMlgANSPWgFxNC2TYMjf2NKSSzzrjIN8lIsAvX8=";
};
nativeBuildInputs = [
@ -36,6 +37,7 @@ stdenvNoCC.mkDerivation rec {
util-linux
jq
libnotify
gawk
]
++ lib.optional withHyprland hyprland)}"
'';

View File

@ -16,14 +16,14 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "home-manager";
version = "unstable-2024-03-12";
version = "unstable-2024-03-15";
src = fetchFromGitHub {
name = "home-manager-source";
owner = "nix-community";
repo = "home-manager";
rev = "a500de54b2e3067201a40cefa5f210f719423ddf";
hash = "sha256-AfVYEQIhOK6vaYVndgqFV4Vb5REXG9R0ylv83QInsT0=";
rev = "206f457fffdb9a73596a4cb2211a471bd305243d";
hash = "sha256-SUXGZNrXX05YA9G6EmgupxhOr3swI1gcxLUeDMUhrEY=";
};
nativeBuildInputs = [

View File

@ -1,8 +1,9 @@
{ lib
, rustPlatform
, fetchFromGitHub
, installShellFiles
, nix-update-script
{
lib,
rustPlatform,
fetchFromGitHub,
installShellFiles,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
@ -18,17 +19,15 @@ rustPlatform.buildRustPackage rec {
cargoHash = "sha256-hgcGzRLB1L3yxJjw1ECDJPmbl1W+2OS4KDojclyVYrc=";
nativeBuildInputs = [
installShellFiles
];
nativeBuildInputs = [ installShellFiles ];
postInstall = ''
installManPage target/man/hyprdim.1
installShellCompletion --cmd hyprdim \
--bash <(cat target/completions/hyprdim.bash) \
--fish <(cat target/completions/hyprdim.fish) \
--zsh <(cat target/completions/_hyprdim)
--bash target/completions/hyprdim.bash \
--fish target/completions/hyprdim.fish \
--zsh target/completions/_hyprdim
'';
passthru.updateScript = nix-update-script { };

View File

@ -1,8 +1,9 @@
{ lib
, rustPlatform
, fetchFromGitHub
, installShellFiles
, nix-update-script
{
lib,
rustPlatform,
fetchFromGitHub,
installShellFiles,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
@ -18,17 +19,15 @@ rustPlatform.buildRustPackage rec {
cargoHash = "sha256-DpbRs97sr5wpJSrYF99ZiQ0SZOZdoQjfaLhKIAU95HA=";
nativeBuildInputs = [
installShellFiles
];
nativeBuildInputs = [ installShellFiles ];
postInstall = ''
installManPage target/man/hyprnome.1
installShellCompletion --cmd hyprnome \
--bash <(cat target/completions/hyprnome.bash) \
--fish <(cat target/completions/hyprnome.fish) \
--zsh <(cat target/completions/_hyprnome)
--bash target/completions/hyprnome.bash \
--fish target/completions/hyprnome.fish \
--zsh target/completions/_hyprnome
'';
passthru.updateScript = nix-update-script { };

View File

@ -23,11 +23,11 @@
}:
stdenv.mkDerivation rec {
pname = "intune-portal";
version = "1.2401.21-jammy";
version = "1.2402.12-jammy";
src = fetchurl {
url = "https://packages.microsoft.com/ubuntu/22.04/prod/pool/main/i/${pname}/${pname}_${version}_amd64.deb";
hash = "sha256-BIPTVhOBzaKzZR0WhQOX2W8kDg64UWOgIVvgaw2Gckc=";
hash = "sha256-S5+Ddm13OJ4eQTQ9Q8OgsCqnpM6GxuZ1hEycZCy6//g=";
};
nativeBuildInputs = [ dpkg ];

View File

@ -0,0 +1,58 @@
{ lib
, fetchFromGitHub
, pkg-config
, pkgs
, overrideSDK
, darwin
, testers
}:
let
stdenv = overrideSDK pkgs.stdenv "11.0";
in
stdenv.mkDerivation (finalAttrs: {
pname = "JankyBorders";
version = "1.6.0";
src = fetchFromGitHub {
owner = "FelixKratz";
repo = "JankyBorders";
rev = "v${finalAttrs.version}";
hash = "sha256-DX1d228UCOI+JU+RxenhiGyn3AiqpsGe0aCtr091szs=";
};
nativeBuildInputs = [
pkg-config
];
buildInputs = with darwin.apple_sdk.frameworks; [
AppKit
ApplicationServices
CoreFoundation
CoreGraphics
SkyLight
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp ./bin/borders $out/bin/borders
runHook postInstall
'';
passthru.tests.version = testers.testVersion {
package = finalAttrs.finalPackage;
version = "borders-v${finalAttrs.version}";
};
meta = {
description = "JankyBorders is a lightweight tool designed to add colored borders to user windows on macOS 14.0+";
longDescription = "It enhances the user experience by visually highlighting the currently focused window without relying on the accessibility API, thereby being faster than comparable tools.";
homepage = "https://github.com/FelixKratz/JankyBorders";
license = lib.licenses.gpl3;
mainProgram = "borders";
maintainers = with lib.maintainers; [ khaneliman ];
platforms = lib.platforms.darwin;
};
})

View File

@ -8,16 +8,16 @@
rustPlatform.buildRustPackage rec {
pname = "joshuto";
version = "0.9.6";
version = "0.9.8";
src = fetchFromGitHub {
owner = "kamiyaa";
repo = "joshuto";
rev = "v${version}";
hash = "sha256-d2r8xPGnH/299wjEijilgqy3u/xJgtRmwzJdHt0sA+o=";
hash = "sha256-8OvaL6HqsJjBAbksR4EpC/ZgvdBSKlB37PP77p3T3PY=";
};
cargoHash = "sha256-amgqoL7NYfl3WzTtgvDoBX46rsL9248rbCis6MHVQhE=";
cargoHash = "sha256-zGqOmebD7kZAsWunWSB2NFOSg0cu8aM1dyhEIQz1j4I=";
nativeBuildInputs = [ installShellFiles ];

View File

@ -4,7 +4,7 @@
, nix-update-script
}:
let
version = "0.0.1";
version = "0.0.3";
in
buildGoModule {
inherit version;
@ -14,7 +14,7 @@ buildGoModule {
owner = "kubernetes-sigs";
repo = "kubectl-validate";
rev = "v${version}";
hash = "sha256-0lwN+3Cy7O9kX9dh8PjxmvdyKSZhBxcxy+b+ZtuDZaw=";
hash = "sha256-k2+2QIPjNw6C/Do1WhPN39VZhZX4PZ6ZsKDKGJ9E5QA=";
};
vendorHash = null;

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "kyverno-chainsaw";
version = "0.1.7";
version = "0.1.9";
src = fetchFromGitHub {
owner = "kyverno";
repo = "chainsaw";
rev = "v${version}";
hash = "sha256-v71qAJSpnbHd+jkPkR34IVNvwWLhm04TrPzduB6ZOgA=";
hash = "sha256-qn5EjddLVRhN90SICa39A28giXQ24Ol1nfbxNH5TXhc=";
};
vendorHash = "sha256-lHV5Ik/L/Svn9AvcKZupq778ektEsbxfOkCts4Ocx9g=";
vendorHash = "sha256-R9qaG19Vp+1a7AL0q8Cl1jN89cbXzLwbnN163WMWAEw=";
ldflags = [
"-s" "-w"

View File

@ -0,0 +1,60 @@
{ lib
, stdenv
, fetchurl
, cups
, autoPatchelfHook
}:
stdenv.mkDerivation (finalAttrs: {
pname = "labelife-label-printer";
version = "1.2.1";
arch =
if stdenv.hostPlatform.system == "x86_64-linux" then "x86_64"
else if stdenv.hostPlatform.system == "i686-linux" then "i386"
else throw "Unsupported system: ${stdenv.hostPlatform.system}";
src = fetchurl {
url = "https://oss.saas.aimocloud.com/saas/Lablife/bag/LabelPrinter-${finalAttrs.version}.tar.gz";
hash = "sha256-twnIFMBMyEM3xGlsuk3763C3emz3mgpEnlfvnL0XRWw=";
};
nativeBuildInputs = [ autoPatchelfHook ];
buildInputs = [ cups ];
installPhase =
''
runHook preInstall
# Install the CUPS filter with executable permissions
install -Dm755 ./${finalAttrs.arch}/rastertolabeltspl $out/lib/cups/filter/rastertolabeltspl
# Install all PPD files with read and write permissions for owner, and read for group and others
for ppd in ./ppds/*.ppd; do
install -Dm644 $ppd $out/share/cups/model/label/$(basename $ppd)
done
runHook postInstall
'';
meta = {
description = "CUPS driver for several Labelife-compatible thermal label printers";
downloadPage = "https://labelife.net/#/chart";
homepage = "https://labelife.net";
license = lib.licenses.unfree;
longDescription = ''
Supported printer models include:
- D520 & D520BT
- PM-201
- PM-241 & PM-241-BT
- PM-246 & PM-246S
Brands using Labelife drivers include:
- Phomemo
- Itari
- Omezizy
- Aimo
'';
maintainers = with lib.maintainers; [ daniel-fahey ];
platforms = with lib; [ "i686-linux" "x86_64-linux" ];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
})

View File

@ -9,13 +9,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "labwc-menu-generator";
version = "unstable-2024-03-11";
version = "unstable-2024-03-12";
src = fetchFromGitHub {
owner = "labwc";
repo = "labwc-menu-generator";
rev = "38d08a6695fe9d3176059dc5c57a9c84f9ef4981";
hash = "sha256-wB5+VmtxjuWbeuDdtGt0f9u7bc3j1Bb6r5MfmMsmE0M=";
rev = "85a014db7214103c14c2bfbb5fc09a349ad64992";
hash = "sha256-nt/K00cr1dKEk547J/6w1j6O3WSgGqVt1+Jdw95K28s=";
};
nativeBuildInputs = [

View File

@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec {
pname = "lutgen";
version = "0.9.0";
version = "0.10.0";
src = fetchFromGitHub {
owner = "ozwaldorf";
repo = "lutgen-rs";
rev = "v${version}";
hash = "sha256-tKSPk0V11pnKFV4E08H4CUnjw9nAonTRI6W3mGipd9I=";
hash = "sha256-O2995+DLiCRDM/+oPTOBiM0L1x0jmbLTlR48+5IfOQw=";
};
cargoHash = "sha256-DiorrgTH9lIdmaZL7451uCXj9X7M6eHf4MQc85MpU7s=";
cargoHash = "sha256-ys4c/YUJJikDEUJjzagZBB+kSy+EFf+PqQdK/h+3gWU=";
nativeBuildInputs = [
installShellFiles

View File

@ -1,6 +1,7 @@
{ lib, buildGoModule, fetchFromGitHub }:
{ lib, buildGoModule, fetchFromGitHub, nix-update-script
}:
let
version = "0.0.38";
version = "0.0.42";
in
buildGoModule {
@ -12,7 +13,7 @@ buildGoModule {
repo = "mcap";
owner = "foxglove";
rev = "releases/mcap-cli/v${version}";
hash = "sha256-mwKWf0kJ3uMx1cLUac+AqXgQ1Af3tLDOCTFKgq8FtHE=";
hash = "sha256-9fjzMUMWn5j8AJJq+tK+Hq0o8d3HpacitJZ5CfLiaLw=";
};
vendorHash = "sha256-Gl0zLBTWscKGtVOS6rPRL/r8KHYHpZwoUDbEyCL4Ijk=";
@ -34,11 +35,16 @@ buildGoModule {
"-skip=TestCat|TestInfo"
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "MCAP CLI tool to inspect and fix MCAP files";
homepage = "https://github.com/foxglove/mcap";
license = with licenses; [ mit ];
maintainers = with maintainers; [ squalus therishidesai ];
mainProgram = "mcap";
};
}

View File

@ -0,0 +1,43 @@
{ lib
, stdenv
, fetchFromGitHub
, cmake
, darwin
}:
stdenv.mkDerivation (finalAttrs: {
pname = "mkalias";
version = "1.0.0";
src = fetchFromGitHub {
owner = "vs49688";
repo = "mkalias";
rev = "v${finalAttrs.version}";
hash = "sha256-L6bgCJ0fdiWmtlgTzDmTenTMP74UFUEqiDmE1+gg3zw=";
};
nativeBuildInputs = [
cmake
];
buildInputs = [
darwin.apple_sdk.frameworks.Foundation
];
installPhase = ''
runHook preInstall
install -D mkalias $out/bin/mkalias
runHook postInstall
'';
meta = {
description = "Quick'n'dirty tool to make APFS aliases";
homepage = "https://github.com/vs49688/mkalias";
license = lib.licenses.mit;
mainProgram = "mkalias";
maintainers = with lib.maintainers; [ zane emilytrau ];
platforms = lib.platforms.darwin;
};
})

View File

@ -146,18 +146,19 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
[[package]]
name = "axum"
version = "0.6.20"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf"
checksum = "1236b4b292f6c4d6dc34604bb5120d85c3fe1d1aa596bd5cc52ca054d13e7b9e"
dependencies = [
"async-trait",
"axum-core",
"bitflags 1.3.2",
"bytes",
"futures-util",
"http",
"http-body",
"hyper",
"http 1.1.0",
"http-body 1.0.0",
"http-body-util",
"hyper 1.2.0",
"hyper-util",
"itoa",
"matchit",
"memchr",
@ -178,17 +179,20 @@ dependencies = [
[[package]]
name = "axum-core"
version = "0.3.4"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c"
checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3"
dependencies = [
"async-trait",
"bytes",
"futures-util",
"http",
"http-body",
"http 1.1.0",
"http-body 1.0.0",
"http-body-util",
"mime",
"pin-project-lite",
"rustversion",
"sync_wrapper",
"tower-layer",
"tower-service",
]
@ -310,6 +314,12 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "cfg_aliases"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
[[package]]
name = "cipher"
version = "0.4.4"
@ -504,9 +514,9 @@ dependencies = [
[[package]]
name = "etherparse"
version = "0.13.0"
version = "0.14.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "827292ea592108849932ad8e30218f8b1f21c0dfd0696698a18b5d0aed62d990"
checksum = "24890603eb4b43aa788f02261ce21714449033e3e2ab93692f0ab18480c3c9b1"
dependencies = [
"arrayvec",
]
@ -691,7 +701,26 @@ dependencies = [
"futures-core",
"futures-sink",
"futures-util",
"http",
"http 0.2.11",
"indexmap",
"slab",
"tokio",
"tokio-util",
"tracing",
]
[[package]]
name = "h2"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "31d030e59af851932b72ceebadf4a2b5986dba4c3b99dd2493f8273a0f151943"
dependencies = [
"bytes",
"fnv",
"futures-core",
"futures-sink",
"futures-util",
"http 1.1.0",
"indexmap",
"slab",
"tokio",
@ -728,6 +757,17 @@ dependencies = [
"itoa",
]
[[package]]
name = "http"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
dependencies = [
"bytes",
"fnv",
"itoa",
]
[[package]]
name = "http-body"
version = "0.4.6"
@ -735,7 +775,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
dependencies = [
"bytes",
"http",
"http 0.2.11",
"pin-project-lite",
]
[[package]]
name = "http-body"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
dependencies = [
"bytes",
"http 1.1.0",
]
[[package]]
name = "http-body-util"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840"
dependencies = [
"bytes",
"futures-util",
"http 1.1.0",
"http-body 1.0.0",
"pin-project-lite",
]
@ -767,9 +830,9 @@ dependencies = [
"futures-channel",
"futures-core",
"futures-util",
"h2",
"http",
"http-body",
"h2 0.3.24",
"http 0.2.11",
"http-body 0.4.6",
"httparse",
"httpdate",
"itoa",
@ -782,17 +845,39 @@ dependencies = [
]
[[package]]
name = "hyper-rustls"
version = "0.24.2"
name = "hyper"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
checksum = "186548d73ac615b32a73aafe38fb4f56c0d340e110e5a200bcadbaf2e199263a"
dependencies = [
"bytes",
"futures-channel",
"futures-util",
"http",
"hyper",
"rustls",
"h2 0.4.2",
"http 1.1.0",
"http-body 1.0.0",
"httparse",
"httpdate",
"itoa",
"pin-project-lite",
"smallvec",
"tokio",
]
[[package]]
name = "hyper-util"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa"
dependencies = [
"bytes",
"futures-util",
"http 1.1.0",
"http-body 1.0.0",
"hyper 1.2.0",
"pin-project-lite",
"socket2",
"tokio",
"tokio-rustls",
]
[[package]]
@ -886,9 +971,9 @@ dependencies = [
[[package]]
name = "libc"
version = "0.2.152"
version = "0.2.153"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
[[package]]
name = "libloading"
@ -908,9 +993,9 @@ checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
[[package]]
name = "log"
version = "0.4.20"
version = "0.4.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
[[package]]
name = "loom"
@ -972,9 +1057,9 @@ dependencies = [
[[package]]
name = "mio"
version = "0.8.10"
version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
dependencies = [
"libc",
"wasi",
@ -983,7 +1068,7 @@ dependencies = [
[[package]]
name = "mycelium"
version = "0.4.2"
version = "0.4.3"
dependencies = [
"aes-gcm",
"axum",
@ -1002,7 +1087,7 @@ dependencies = [
"libc",
"log",
"network-interface",
"nix 0.27.1",
"nix 0.28.0",
"pretty_env_logger",
"quinn",
"rand",
@ -1119,6 +1204,18 @@ dependencies = [
"bitflags 2.4.2",
"cfg-if",
"libc",
]
[[package]]
name = "nix"
version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
dependencies = [
"bitflags 2.4.2",
"cfg-if",
"cfg_aliases",
"libc",
"memoffset",
]
@ -1360,9 +1457,9 @@ dependencies = [
[[package]]
name = "rcgen"
version = "0.12.0"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d918c80c5a4c7560db726763020bd16db179e4d5b828078842274a443addb5d"
checksum = "48406db8ac1f3cbc7dcdb56ec355343817958a356ff430259bb07baf7607e1e1"
dependencies = [
"pem",
"ring 0.17.7",
@ -1425,11 +1522,10 @@ dependencies = [
"encoding_rs",
"futures-core",
"futures-util",
"h2",
"http",
"http-body",
"hyper",
"hyper-rustls",
"h2 0.3.24",
"http 0.2.11",
"http-body 0.4.6",
"hyper 0.14.28",
"ipnet",
"js-sys",
"log",
@ -1437,20 +1533,16 @@ dependencies = [
"once_cell",
"percent-encoding",
"pin-project-lite",
"rustls",
"rustls-pemfile",
"serde",
"serde_json",
"serde_urlencoded",
"system-configuration",
"tokio",
"tokio-rustls",
"tower-service",
"url",
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
"webpki-roots",
"winreg",
]
@ -1541,21 +1633,11 @@ version = "0.21.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
dependencies = [
"log",
"ring 0.17.7",
"rustls-webpki",
"sct",
]
[[package]]
name = "rustls-pemfile"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
dependencies = [
"base64",
]
[[package]]
name = "rustls-webpki"
version = "0.101.7"
@ -1602,18 +1684,18 @@ checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
[[package]]
name = "serde"
version = "1.0.195"
version = "1.0.197"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.195"
version = "1.0.197"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
dependencies = [
"proc-macro2",
"quote",
@ -1622,9 +1704,9 @@ dependencies = [
[[package]]
name = "serde_json"
version = "1.0.111"
version = "1.0.114"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4"
checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
dependencies = [
"itoa",
"ryu",
@ -1879,16 +1961,6 @@ dependencies = [
"syn 2.0.48",
]
[[package]]
name = "tokio-rustls"
version = "0.24.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
dependencies = [
"rustls",
"tokio",
]
[[package]]
name = "tokio-stream"
version = "0.1.14"
@ -1929,9 +2001,9 @@ dependencies = [
[[package]]
name = "toml"
version = "0.7.8"
version = "0.8.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257"
checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
dependencies = [
"serde",
"serde_spanned",
@ -1950,9 +2022,9 @@ dependencies = [
[[package]]
name = "toml_edit"
version = "0.19.15"
version = "0.22.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
dependencies = [
"indexmap",
"serde",
@ -2241,12 +2313,6 @@ dependencies = [
"wasm-bindgen",
]
[[package]]
name = "webpki-roots"
version = "0.25.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
[[package]]
name = "winapi"
version = "0.3.9"
@ -2459,9 +2525,9 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
[[package]]
name = "winnow"
version = "0.5.34"
version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b7cf47b659b318dccbd69cc4797a39ae128f533dce7902a1096044d1967b9c16"
checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
dependencies = [
"memchr",
]
@ -2504,9 +2570,9 @@ dependencies = [
[[package]]
name = "x25519-dalek"
version = "2.0.0"
version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96"
checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277"
dependencies = [
"curve25519-dalek",
"rand_core",

View File

@ -7,13 +7,13 @@
rustPlatform.buildRustPackage rec {
pname = "mycelium";
version = "0.4.2";
version = "0.4.3";
src = fetchFromGitHub {
owner = "threefoldtech";
repo = "mycelium";
rev = "v${version}";
hash = "sha256-VWrWg9UpBSug0cvY/zuzGFI6Y0CRFcrh1Cy4mbYtg9Q=";
hash = "sha256-bA3ci+vqXBCPBaxMvfUdFcqdaZbAw/+r5UbH/as/fnc=";
};
cargoLock = {
@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec {
homepage = "https://github.com/threefoldtech/mycelium";
changelog = "https://github.com/threefoldtech/mycelium/blob/${src.rev}/CHANGELOG.md";
license = licenses.asl20;
maintainers = with maintainers; [ matthewcroughan ];
maintainers = with maintainers; [ flokli matthewcroughan ];
mainProgram = "mycelium";
};
}

View File

@ -5,13 +5,13 @@
buildGoModule rec {
pname = "namespace-cli";
version = "0.0.348";
version = "0.0.350";
src = fetchFromGitHub {
owner = "namespacelabs";
repo = "foundation";
rev = "v${version}";
hash = "sha256-SEqiW3AdhvsIU9WEEcaRi8paMNgRvnZTFL874mSjUQE=";
hash = "sha256-qMtmB/KMMkMfU2AyE2pcjiy3wUwyQUpcP6rMkZk3SMI=";
};
vendorHash = "sha256-a/e+xPOD9BDSlKknmfcX2tTMyIUrzKxqtUpFXcFIDSE=";

View File

@ -6,16 +6,16 @@
rustPlatform.buildRustPackage rec {
pname = "openapi-tui";
version = "0.4.0";
version = "0.5.0";
src = fetchFromGitHub {
owner = "zaghaghi";
repo = "openapi-tui";
rev = version;
hash = "sha256-7xkjlX3+/hdVN2PXoiXbouSoMLy0Qe8uMRlPHWJO5Ts=";
hash = "sha256-flxQ5+nLacQAkrxJafw9D3iXYTFpHcmTshEySmFJ0Cc=";
};
cargoHash = "sha256-U8TOms8C7vV64OKKdJhMAoOha9s2lBqfBWU7pyZ0h/s=";
cargoHash = "sha256-vfEDbUrIXc498QnMJJlMGyTUDvlHgquB5GpWTe7yCvM=";
meta = with lib; {
description = "Terminal UI to list, browse and run APIs defined with openapi spec";

View File

@ -6,13 +6,13 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "openttd-ttf";
version = "0.5";
version = "0.6";
src = fetchFromGitHub {
owner = "zephyris";
repo = "openttd-ttf";
rev = "refs/tags/${finalAttrs.version}";
hash = "sha256-GjtfwM268i3bUAX8Pw5/Og9029AuD1OZuJ2VIlFTogY=";
hash = "sha256-Nr3oLiCEdpUhB/IczCEoLM8kb1hGDH/d6WYWRbjgOi8=";
};
nativeBuildInputs = [
@ -25,6 +25,9 @@ stdenvNoCC.mkDerivation (finalAttrs: {
postPatch = ''
chmod a+x build.sh
# Test requires openttd source and an additional python module, doesn't seem worth it
substituteInPlace build.sh \
--replace-fail "python3 checkOpenTTDStrings.py ../openttd/src/lang" ""
patchShebangs --build build.sh
'';

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "plumber";
version = "2.5.4";
version = "2.6.0";
src = fetchFromGitHub {
owner = "streamdal";
repo = pname;
rev = "v${version}";
hash = "sha256-6nPH+HQtpFJ4MAtblFWjaQjDSKtpIxW9tGt2o1ICtos=";
hash = "sha256-H1tyMedYKj1bePNcaEWYP3njHw57cJ0jgxwC7zDXQvk=";
};
vendorHash = null;

View File

@ -0,0 +1,264 @@
{ lib
, buildNpmPackage
, fetchFromGitHub
, fetchPypi
, fetchpatch2
, nodejs
, python3
, gettext
, nixosTests
, plugins ? [ ]
}:
let
python = python3.override {
packageOverrides = self: super: {
django = super.django_4;
stripe = super.stripe.overridePythonAttrs rec {
version = "7.9.0";
src = fetchPypi {
pname = "stripe";
inherit version;
hash = "sha256-hOXkMINaSwzU/SpXzjhTJp0ds0OREc2mtu11LjSc9KE=";
};
};
pretix-plugin-build = self.callPackage ./plugin-build.nix { };
};
};
pname = "pretix";
version = "2024.2.0";
src = fetchFromGitHub {
owner = "pretix";
repo = "pretix";
rev = "refs/tags/v${version}";
hash = "sha256-emtF5dDXEXN8GIucHbjF+m9Vkg1Jj6nmQdHhBOkXMAs=";
};
npmDeps = buildNpmPackage {
pname = "pretix-node-modules";
inherit version src;
sourceRoot = "${src.name}/src/pretix/static/npm_dir";
npmDepsHash = "sha256-kE13dcTdWZZNHPMcHEiK0a2dEcu3Z3/q815YhaVkLbQ=";
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir $out
cp -R node_modules $out/
runHook postInstall
'';
};
in
python.pkgs.buildPythonApplication rec {
inherit pname version src;
pyproject = true;
patches = [
# Discover pretix.plugin entrypoints during build and add them into
# INSTALLED_APPS, so that their static files are collected.
./plugin-build.patch
(fetchpatch2 {
# Allow customization of cache and log directory
# https://github.com/pretix/pretix/pull/3997
name = "pretix-directory-customization.patch";
url = "https://github.com/pretix/pretix/commit/e151d1d1f08917e547df49da0779b36bb73b7294.patch";
hash = "sha256-lO5eCKSqUaCwSm7rouMTFMwauWl9Tz/Yf0JE/IO+bnI=";
})
];
postPatch = ''
NODE_PREFIX=src/pretix/static.dist/node_prefix
mkdir -p $NODE_PREFIX
cp -R ${npmDeps}/node_modules $NODE_PREFIX/
chmod -R u+w $NODE_PREFIX/
# unused
sed -i "/setuptools-rust/d" pyproject.toml
substituteInPlace pyproject.toml \
--replace-fail phonenumberslite phonenumbers \
--replace-fail psycopg2-binary psycopg2 \
--replace-fail vat_moss_forked==2020.3.20.0.11.0 vat-moss \
--replace-fail "bleach==5.0.*" bleach \
--replace-fail "dnspython==2.5.*" dnspython \
--replace-fail "importlib_metadata==7.*" importlib_metadata \
--replace-fail "protobuf==4.25.*" protobuf \
--replace-fail "pycryptodome==3.20.*" pycryptodome \
--replace-fail "pypdf==3.9.*" pypdf \
--replace-fail "python-dateutil==2.8.*" python-dateutil \
--replace-fail "sentry-sdk==1.40.*" sentry-sdk \
--replace-fail "stripe==7.9.*" stripe
'';
build-system = with python.pkgs; [
gettext
nodejs
pythonRelaxDepsHook
setuptools
tomli
];
dependencies = with python.pkgs; [
arabic-reshaper
babel
beautifulsoup4
bleach
celery
chardet
cryptography
css-inline
defusedcsv
dj-static
django
django-bootstrap3
django-compressor
django-countries
django-filter
django-formset-js-improved
django-formtools
django-hierarkey
django-hijack
django-i18nfield
django-libsass
django-localflavor
django-markup
django-oauth-toolkit
django-otp
django-phonenumber-field
django-redis
django-scopes
django-statici18n
djangorestframework
dnspython
drf-ujson2
geoip2
importlib-metadata
isoweek
jsonschema
kombu
libsass
lxml
markdown
mt-940
oauthlib
openpyxl
packaging
paypalrestsdk
paypal-checkout-serversdk
pyjwt
phonenumbers
pillow
pretix-plugin-build
protobuf
psycopg2
pycountry
pycparser
pycryptodome
pypdf
python-bidi
python-dateutil
pytz
pytz-deprecation-shim
pyuca
qrcode
redis
reportlab
requests
sentry-sdk
sepaxml
slimit
static3
stripe
text-unidecode
tlds
tqdm
vat-moss
vobject
webauthn
zeep
] ++ plugins;
optional-dependencies = with python.pkgs; {
memcached = [
pylibmc
];
};
postInstall = ''
mkdir -p $out/bin
cp ./src/manage.py $out/bin/pretix-manage
# Trim packages size
rm -rfv $out/${python.sitePackages}/pretix/static.dist/node_prefix
'';
dontStrip = true; # no binaries
nativeCheckInputs = with python.pkgs; [
pytestCheckHook
pytest-xdist
pytest-mock
pytest-django
pytest-asyncio
pytest-rerunfailures
freezegun
fakeredis
responses
] ++ lib.flatten (lib.attrValues optional-dependencies);
pytestFlagsArray = [
"--reruns" "3"
# tests fail when run before 4:30am
# https://github.com/pretix/pretix/pull/3987
"--deselect=src/tests/base/test_orders.py::PaymentReminderTests::test_sent_days"
"--deselect=src/tests/plugins/sendmail/test_rules.py::test_sendmail_rule_specified_subevent"
];
preCheck = ''
export PYTHONPATH=$(pwd)/src:$PYTHONPATH
export DJANGO_SETTINGS_MODULE=tests.settings
'';
passthru = {
inherit
npmDeps
python
;
plugins = lib.recurseIntoAttrs
(python.pkgs.callPackage ./plugins {
inherit (python.pkgs) callPackage;
}
);
tests = {
inherit (nixosTests) pretix;
};
};
meta = with lib; {
description = "Ticketing software that cares about your eventall the way";
homepage = "https://github.com/pretix/pretix";
license = with licenses; [
agpl3Only
# 3rd party components below src/pretix/static
bsd2
isc
mit
ofl # fontawesome
unlicense
# all other files below src/pretix/static and src/pretix/locale and aux scripts
asl20
];
maintainers = with maintainers; [ hexa ];
};
}

View File

@ -0,0 +1,37 @@
{
lib,
buildPythonPackage,
fetchPypi,
setuptools,
django,
gettext,
}:
buildPythonPackage rec {
pname = "pretix-plugin-build";
version = "1.0.1";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-iLbqcCAbeK4PyLXiebpdE27rt6bOP7eXczIG2bdvvYo=";
};
build-system = [
setuptools
];
dependencies = [
django
gettext
];
doCheck = false; # no tests
meta = with lib; {
description = "";
homepage = "https://github.com/pretix/pretix-plugin-build";
license = licenses.asl20;
maintainers = with maintainers; [ hexa ];
};
}

View File

@ -0,0 +1,20 @@
diff --git a/src/pretix/_build_settings.py b/src/pretix/_build_settings.py
index c03f56a1a..d1ea73b84 100644
--- a/src/pretix/_build_settings.py
+++ b/src/pretix/_build_settings.py
@@ -24,6 +24,8 @@
This file contains settings that we need at wheel require time. All settings that we only need at runtime are set
in settings.py.
"""
+from importlib_metadata import entry_points
+
from ._base_settings import * # NOQA
ENTROPY = {
@@ -47,3 +49,6 @@ HAS_MEMCACHED = False
HAS_CELERY = False
HAS_GEOIP = False
SENTRY_ENABLED = False
+
+for entry_point in entry_points(group='pretix.plugin'):
+ INSTALLED_APPS.append(entry_point.module) # noqa: F405

View File

@ -0,0 +1,13 @@
{ callPackage
, ...
}:
{
pages = callPackage ./pages.nix { };
passbook = callPackage ./passbook.nix { };
reluctant-stripe = callPackage ./reluctant-stripe.nix { };
stretchgoals = callPackage ./stretchgoals.nix { };
}

View File

@ -0,0 +1,37 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pretix-plugin-build
, setuptools
}:
buildPythonPackage rec {
pname = "pretix-pages";
version = "1.6.0";
pyproject = true;
src = fetchFromGitHub {
owner = "pretix";
repo = "pretix-pages";
rev = "v${version}";
hash = "sha256-cO5tAiOifLpqFEQwYgrGoByUecpzvue8YmChpPwm+y0=";
};
build-system = [
pretix-plugin-build
setuptools
];
doCheck = false; # no tests
pythonImportsCheck = [
"pretix_pages"
];
meta = with lib; {
description = "Plugin to add static pages to your pretix event";
homepage = "https://github.com/pretix/pretix-pages";
license = licenses.asl20;
maintainers = with maintainers; [ hexa ];
};
}

View File

@ -0,0 +1,33 @@
diff --git a/pretix_passbook/apps.py b/pretix_passbook/apps.py
index e34eee1..a7ad382 100644
--- a/pretix_passbook/apps.py
+++ b/pretix_passbook/apps.py
@@ -22,15 +22,6 @@ class PassbookApp(AppConfig):
def ready(self):
from . import signals # NOQA
- @cached_property
- def compatibility_errors(self):
- import shutil
-
- errs = []
- if not shutil.which("openssl"):
- errs.append("The OpenSSL binary is not installed or not in the PATH.")
- return errs
-
@cached_property
def compatibility_warnings(self):
errs = []
diff --git a/pretix_passbook/forms.py b/pretix_passbook/forms.py
index 2a38604..aec38de 100644
--- a/pretix_passbook/forms.py
+++ b/pretix_passbook/forms.py
@@ -41,7 +41,7 @@ class CertificateFileField(forms.FileField):
return SimpleUploadedFile("cert.pem", content, "text/plain")
openssl_cmd = [
- "openssl",
+ "@openssl@",
"x509",
"-inform",
"DER",

View File

@ -0,0 +1,59 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, substituteAll
# build-system
, pretix-plugin-build
, setuptools
# runtime
, openssl
# dependencies
, googlemaps
, wallet-py3k
}:
buildPythonPackage rec {
pname = "pretix-passbook";
version = "1.13.1";
pyproject = true;
src = fetchFromGitHub {
owner = "pretix";
repo = "pretix-passbook";
rev = "v${version}";
hash = "sha256-bp64wCEMon05JhOaDr/cVbqUxc+7ndcsSuSesxJt8GE=";
};
patches = [
(substituteAll {
src = ./passbook-openssl.patch;
openssl = lib.getExe openssl;
})
];
build-system = [
pretix-plugin-build
setuptools
];
dependencies = [
googlemaps
wallet-py3k
];
doCheck = false; # no tests
pythonImportsCheck = [
"pretix_passbook"
];
meta = with lib; {
description = "Support for Apple Wallet/Passbook files in pretix";
homepage = "https://github.com/pretix/pretix-passbook";
license = licenses.asl20;
maintainers = with maintainers; [ hexa ];
};
}

View File

@ -0,0 +1,37 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pretix-plugin-build
, setuptools
}:
buildPythonPackage {
pname = "pretix-reluctant-stripe";
version = "unstable-2023-08-03";
pyproject = true;
src = fetchFromGitHub {
owner = "metarheinmain";
repo = "pretix-reluctant-stripe";
rev = "ae2d770442553e5fc00815ff4521a8fd2c113fd9";
hash = "sha256-bw9aDMxl4/uar5KHjj+wwkYkaGMRxHWY/c1N75bxu0o=";
};
build-system = [
pretix-plugin-build
setuptools
];
doCheck = false; # no tests
pythonImportsCheck = [
"pretix_reluctant_stripe"
];
meta = with lib; {
description = "Nudge users to not use Stripe as a payment provider";
homepage = "https://github.com/metarheinmain/pretix-reluctant-stripe";
license = licenses.asl20;
maintainers = with maintainers; [ hexa ];
};
}

Some files were not shown because too many files have changed in this diff Show More