Merge remote-tracking branch 'origin/master' into staging-next

This commit is contained in:
Martin Weinelt 2022-10-05 00:44:16 +02:00
commit 253ca4957d
311 changed files with 5152 additions and 2210 deletions

View File

@ -15,7 +15,7 @@ assignees: ''
<!-- make sure this issue is not redundant or obsolete -->
- [ ] checked [latest Nixpkgs manual] \([source][nixpkgs-source]) and [latest NixOS manual]] \([source][nixos-source])
- [ ] checked [latest Nixpkgs manual] \([source][nixpkgs-source]) and [latest NixOS manual] \([source][nixos-source])
- [ ] checked [open documentation issues] for possible duplicates
- [ ] checked [open documentation pull requests] for possible solutions

View File

@ -174,6 +174,11 @@ in mkLicense lset) ({
free = false;
};
cal10 = {
fullName = "Cryptographic Autonomy License version 1.0 (CAL-1.0)";
url = "https://opensource.org/licenses/CAL-1.0";
};
capec = {
fullName = "Common Attack Pattern Enumeration and Classification";
url = "https://capec.mitre.org/about/termsofuse.html";

View File

@ -4833,6 +4833,15 @@
fingerprint = "386E D1BF 848A BB4A 6B4A 3C45 FC83 907C 125B C2BC";
}];
};
georgesalkhouri = {
name = "Georges Alkhouri";
email = "incense.stitch_0w@icloud.com";
github = "GeorgesAlkhouri";
githubId = 6077574;
keys = [{
fingerprint = "1608 9E8D 7C59 54F2 6A7A 7BD0 8BD2 09DC C54F D339";
}];
};
georgewhewell = {
email = "georgerw@gmail.com";
github = "georgewhewell";
@ -9534,6 +9543,12 @@
github = "nessdoor";
githubId = 25993494;
};
net-mist = {
email = "archimist.linux@gmail.com";
github = "Net-Mist";
githubId = 13920346;
name = "Sébastien Iooss";
};
netali = {
name = "Jennifer Graul";
email = "me@netali.de";
@ -12848,13 +12863,6 @@
githubId = 2666479;
name = "Y Nguyen";
};
superherointj = {
name = "Sérgio G.";
email = "5861043+superherointj@users.noreply.github.com";
matrix = "@superherointj:matrix.org";
github = "superherointj";
githubId = 5861043;
};
SuperSandro2000 = {
email = "sandro.jaeckel@gmail.com";
matrix = "@sandro:supersandro.de";
@ -15396,6 +15404,12 @@
github = "jali-clarke";
githubId = 17733984;
};
wesleyjrz = {
email = "wesleyjr2002@gmail.com";
name = "Wesley V. Santos Jr.";
github = "wesleyjrz";
githubId = 60184588;
};
npatsakula = {
email = "nikita.patsakula@gmail.com";
name = "Patsakula Nikita";

View File

@ -15,6 +15,8 @@
- `scope` describes the scope of the group.
- `shortName` short human-readable name
- `enableFeatureFreezePing` will ping this team during the Feature Freeze announcements on releases
- There is limited mention capacity in a single post, so this should be reserved for critical components
or larger ecosystems within nixpkgs.
- `githubTeams` will ping specified GitHub teams as well
More fields may be added in the future.
@ -38,6 +40,7 @@ with lib.maintainers; {
];
scope = "Maintain ACME-related packages and modules.";
shortName = "ACME";
enableFeatureFreezePing = true;
};
bazel = {
@ -90,7 +93,6 @@ with lib.maintainers; {
];
scope = "Maintain Blockchain packages and modules.";
shortName = "Blockchains";
enableFeatureFreezePing = true;
};
c = {
@ -111,7 +113,6 @@ with lib.maintainers; {
];
scope = "Maintain packages used in the C3D2 hackspace";
shortName = "c3d2";
enableFeatureFreezePing = true;
};
cinnamon = {
@ -202,7 +203,6 @@ with lib.maintainers; {
];
scope = "Maintain Docker and related tools.";
shortName = "DockerTools";
enableFeatureFreezePing = true;
};
docs = {
@ -220,7 +220,6 @@ with lib.maintainers; {
];
scope = "Maintain the Emacs editor and packages.";
shortName = "Emacs";
enableFeatureFreezePing = true;
};
enlightenment = {
@ -385,6 +384,15 @@ with lib.maintainers; {
shortName = "Lumiguide employees";
};
lua = {
githubTeams = [
"lua"
];
scope = "Maintain the lua ecosystem.";
shortName = "lua";
enableFeatureFreezePing = true;
};
lumina = {
members = [
romildo
@ -426,6 +434,7 @@ with lib.maintainers; {
];
scope = "Maintain Mate desktop environment and related packages.";
shortName = "MATE";
enableFeatureFreezePing = true;
};
matrix = {
@ -448,7 +457,6 @@ with lib.maintainers; {
];
scope = "Maintain Mobile NixOS.";
shortName = "Mobile";
enableFeatureFreezePing = true;
};
nix = {
@ -483,7 +491,6 @@ with lib.maintainers; {
tazjin
zimbatm
];
enableFeatureFreezePing = true;
scope = "Group registration for Numtide team members who collectively maintain packages.";
shortName = "Numtide team";
};
@ -548,7 +555,6 @@ with lib.maintainers; {
];
scope = "Maintain Podman and CRI-O related packages and modules.";
shortName = "Podman";
enableFeatureFreezePing = true;
};
postgres = {
@ -557,7 +563,6 @@ with lib.maintainers; {
];
scope = "Maintain the PostgreSQL package and plugins along with the NixOS module.";
shortName = "PostgreSQL";
enableFeatureFreezePing = true;
};
python = {
@ -610,7 +615,6 @@ with lib.maintainers; {
];
scope = "Manage the current nixpkgs/NixOS release.";
shortName = "Release";
enableFeatureFreezePing = true;
};
ruby = {
@ -699,7 +703,6 @@ with lib.maintainers; {
];
scope = "Maintain the vim and neovim text editors and related packages.";
shortName = "Vim/Neovim";
enableFeatureFreezePing = true;
};
xfce = {
@ -708,5 +711,6 @@ with lib.maintainers; {
];
scope = "Maintain Xfce desktop environment and related packages.";
shortName = "Xfce";
enableFeatureFreezePing = true;
};
}

View File

@ -63,6 +63,7 @@ let
};
documentType = "none";
variablelistId = "test-options-list";
optionIdPrefix = "test-opt-";
};
sources = lib.sourceFilesBySuffices ./. [".xml"];

View File

@ -39,11 +39,11 @@ directory.
## Interactive-only test configuration {#sec-nixos-test-interactive-configuration}
The `.driverInteractive` attribute combines the regular test configuration with
definitions from the [`interactive` submodule](#opt-interactive). This gives you
definitions from the [`interactive` submodule](#test-opt-interactive). This gives you
a more usable, graphical, but slightly different configuration.
You can add your own interactive-only test configuration by adding extra
configuration to the [`interactive` submodule](#opt-interactive).
configuration to the [`interactive` submodule](#test-opt-interactive).
To interactively run only the regular configuration, build the `<test>.driver` attribute
instead, and call it with the flag `result/bin/nixos-test-driver --interactive`.

View File

@ -22,12 +22,12 @@ A NixOS test is a module that has the following structure:
```
We refer to the whole test above as a test module, whereas the values
in [`nodes.<name>`](#opt-nodes) are NixOS modules themselves.
in [`nodes.<name>`](#test-opt-nodes) are NixOS modules themselves.
The option [`testScript`](#opt-testScript) is a piece of Python code that executes the
The option [`testScript`](#test-opt-testScript) is a piece of Python code that executes the
test (described below). During the test, it will start one or more
virtual machines, the configuration of which is described by
the option [`nodes`](#opt-nodes).
the option [`nodes`](#test-opt-nodes).
An example of a single-node test is
[`login.nix`](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/login.nix).
@ -171,7 +171,7 @@ The following methods are available on machine objects:
least one will be returned.
::: {.note}
This requires [`enableOCR`](#opt-enableOCR) to be set to `true`.
This requires [`enableOCR`](#test-opt-enableOCR) to be set to `true`.
:::
`get_screen_text`
@ -180,7 +180,7 @@ The following methods are available on machine objects:
machine\'s screen using optical character recognition.
::: {.note}
This requires [`enableOCR`](#opt-enableOCR) to be set to `true`.
This requires [`enableOCR`](#test-opt-enableOCR) to be set to `true`.
:::
`send_monitor_command`
@ -291,7 +291,7 @@ The following methods are available on machine objects:
`get_screen_text` and `get_screen_text_variants`).
::: {.note}
This requires [`enableOCR`](#opt-enableOCR) to be set to `true`.
This requires [`enableOCR`](#test-opt-enableOCR) to be set to `true`.
:::
`wait_for_console_text`

View File

@ -44,14 +44,14 @@ $ ./result/bin/nixos-test-driver --keep-vm-state
<para>
The <literal>.driverInteractive</literal> attribute combines the
regular test configuration with definitions from the
<link linkend="opt-interactive"><literal>interactive</literal>
<link linkend="test-opt-interactive"><literal>interactive</literal>
submodule</link>. This gives you a more usable, graphical, but
slightly different configuration.
</para>
<para>
You can add your own interactive-only test configuration by adding
extra configuration to the
<link linkend="opt-interactive"><literal>interactive</literal>
<link linkend="test-opt-interactive"><literal>interactive</literal>
submodule</link>.
</para>
<para>

View File

@ -24,16 +24,16 @@
<para>
We refer to the whole test above as a test module, whereas the
values in
<link linkend="opt-nodes"><literal>nodes.&lt;name&gt;</literal></link>
<link linkend="test-opt-nodes"><literal>nodes.&lt;name&gt;</literal></link>
are NixOS modules themselves.
</para>
<para>
The option
<link linkend="opt-testScript"><literal>testScript</literal></link>
<link linkend="test-opt-testScript"><literal>testScript</literal></link>
is a piece of Python code that executes the test (described below).
During the test, it will start one or more virtual machines, the
configuration of which is described by the option
<link linkend="opt-nodes"><literal>nodes</literal></link>.
<link linkend="test-opt-nodes"><literal>nodes</literal></link>.
</para>
<para>
An example of a single-node test is
@ -263,7 +263,7 @@ start_all()
<note>
<para>
This requires
<link linkend="opt-enableOCR"><literal>enableOCR</literal></link>
<link linkend="test-opt-enableOCR"><literal>enableOCR</literal></link>
to be set to <literal>true</literal>.
</para>
</note>
@ -281,7 +281,7 @@ start_all()
<note>
<para>
This requires
<link linkend="opt-enableOCR"><literal>enableOCR</literal></link>
<link linkend="test-opt-enableOCR"><literal>enableOCR</literal></link>
to be set to <literal>true</literal>.
</para>
</note>
@ -522,7 +522,7 @@ start_all()
<note>
<para>
This requires
<link linkend="opt-enableOCR"><literal>enableOCR</literal></link>
<link linkend="test-opt-enableOCR"><literal>enableOCR</literal></link>
to be set to <literal>true</literal>.
</para>
</note>

View File

@ -194,6 +194,13 @@
<link linkend="opt-services.komga.enable">services.komga</link>.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://tandoor.dev">Tandoor Recipes</link>,
a self-hosted multi-tenant recipe collection. Available as
<link xlink:href="options.html#opt-services.tandoor-recipes.enable">services.tandoor-recipes</link>.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://hbase.apache.org/">HBase

View File

@ -72,6 +72,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- [Komga](https://komga.org/), a free and open source comics/mangas media server. Available as [services.komga](#opt-services.komga.enable).
- [Tandoor Recipes](https://tandoor.dev), a self-hosted multi-tenant recipe collection. Available as [services.tandoor-recipes](options.html#opt-services.tandoor-recipes.enable).
- [HBase cluster](https://hbase.apache.org/), a distributed, scalable, big data store. Available as [services.hadoop.hbase](options.html#opt-services.hadoop.hbase.enable).
- [Sachet](https://github.com/messagebird/sachet/), an SMS alerting tool for the Prometheus Alertmanager. Available as [services.prometheus.sachet](#opt-services.prometheus.sachet.enable).

View File

@ -26,6 +26,8 @@
# If you include more than one option list into a document, you need to
# provide different ids.
, variablelistId ? "configuration-variable-list"
# Strig to prefix to the option XML/HTML id attributes.
, optionIdPrefix ? "opt-"
, revision ? "" # Specify revision for the options
# a set of options the docs we are generating will be merged into, as if by recursiveUpdate.
# used to split the options doc build into a static part (nixos/modules) and a dynamic part
@ -183,6 +185,7 @@ in rec {
--stringparam documentType '${documentType}' \
--stringparam revision '${revision}' \
--stringparam variablelistId '${variablelistId}' \
--stringparam optionIdPrefix '${optionIdPrefix}' \
-o intermediate.xml ${./options-to-docbook.xsl} sorted.xml
${pkgs.libxslt.bin}/bin/xsltproc \
-o "$out" ${./postprocess-option-descriptions.xsl} intermediate.xml

View File

@ -15,6 +15,7 @@
<xsl:param name="documentType" />
<xsl:param name="program" />
<xsl:param name="variablelistId" />
<xsl:param name="optionIdPrefix" />
<xsl:template match="/expr/list">
@ -36,7 +37,7 @@
<xsl:attribute name="id" namespace="http://www.w3.org/XML/1998/namespace"><xsl:value-of select="$variablelistId"/></xsl:attribute>
<xsl:for-each select="attrs">
<xsl:variable name="id" select="
concat('opt-',
concat($optionIdPrefix,
translate(
attr[@name = 'name']/string/@value,
'*&lt; >[]:',

View File

@ -19,7 +19,7 @@ rec {
];
qemuSerialDevice =
if pkgs.stdenv.hostPlatform.isx86 || pkgs.stdenv.hostPlatform.isRiscV then "ttyS0"
if with pkgs.stdenv.hostPlatform; isx86 || isMips64 || isRiscV then "ttyS0"
else if (with pkgs.stdenv.hostPlatform; isAarch || isPower) then "ttyAMA0"
else throw "Unknown QEMU serial device for system '${pkgs.stdenv.hostPlatform.system}'";

View File

@ -120,7 +120,7 @@ in
};
qemu.package = mkOption {
description = mdDoc "Which qemu package to use for the virtualisation of [{option}`nodes`](#opt-nodes).";
description = mdDoc "Which qemu package to use for the virtualisation of [{option}`nodes`](#test-opt-nodes).";
type = types.package;
default = hostPkgs.qemu_test;
defaultText = "hostPkgs.qemu_test";
@ -152,7 +152,7 @@ in
description = mdDoc ''
Extra arguments to pass to the test driver.
They become part of [{option}`driver`](#opt-driver) via `wrapProgram`.
They become part of [{option}`driver`](#test-opt-driver) via `wrapProgram`.
'';
type = types.listOf types.str;
default = [];
@ -172,7 +172,7 @@ in
description = mdDoc ''
Disable type checking. This must not be enabled for new NixOS tests.
This may speed up your iteration cycle, unless you're working on the [{option}`testScript`](#opt-testScript).
This may speed up your iteration cycle, unless you're working on the [{option}`testScript`](#test-opt-testScript).
'';
};
};

View File

@ -24,14 +24,14 @@ in
type = types.nullOr types.int;
default = null; # NOTE: null values are filtered out by `meta`.
description = mdDoc ''
The [{option}`test`](#opt-test)'s [`meta.timeout`](https://nixos.org/manual/nixpkgs/stable/#var-meta-timeout) in seconds.
The [{option}`test`](#test-opt-test)'s [`meta.timeout`](https://nixos.org/manual/nixpkgs/stable/#var-meta-timeout) in seconds.
'';
};
broken = lib.mkOption {
type = types.bool;
default = false;
description = mdDoc ''
Sets the [`meta.broken`](https://nixos.org/manual/nixpkgs/stable/#var-meta-broken) attribute on the [{option}`test`](#opt-test) derivation.
Sets the [`meta.broken`](https://nixos.org/manual/nixpkgs/stable/#var-meta-broken) attribute on the [{option}`test`](#test-opt-test) derivation.
'';
};
};

View File

@ -7,7 +7,7 @@ in
description = mdDoc ''
The name of the test.
This is used in the derivation names of the [{option}`driver`](#opt-driver) and [{option}`test`](#opt-test) runner.
This is used in the derivation names of the [{option}`driver`](#test-opt-driver) and [{option}`test`](#test-opt-test) runner.
'';
type = types.str;
};

View File

@ -44,7 +44,7 @@ in
description = mdDoc ''
An attribute set of NixOS configuration modules.
The configurations are augmented by the [`defaults`](#opt-defaults) option.
The configurations are augmented by the [`defaults`](#test-opt-defaults) option.
They are assigned network addresses according to the `nixos/lib/testing/network.nix` module.
@ -54,7 +54,7 @@ in
defaults = mkOption {
description = mdDoc ''
NixOS configuration that is applied to all [{option}`nodes`](#opt-nodes).
NixOS configuration that is applied to all [{option}`nodes`](#test-opt-nodes).
'';
type = types.deferredModule;
default = { };
@ -62,7 +62,7 @@ in
extraBaseModules = mkOption {
description = mdDoc ''
NixOS configuration that, like [{option}`defaults`](#opt-defaults), is applied to all [{option}`nodes`](#opt-nodes) and can not be undone with [`specialisation.<name>.inheritParentConfig`](https://search.nixos.org/options?show=specialisation.%3Cname%3E.inheritParentConfig&from=0&size=50&sort=relevance&type=packages&query=specialisation).
NixOS configuration that, like [{option}`defaults`](#test-opt-defaults), is applied to all [{option}`nodes`](#test-opt-nodes) and can not be undone with [`specialisation.<name>.inheritParentConfig`](https://search.nixos.org/options?show=specialisation.%3Cname%3E.inheritParentConfig&from=0&size=50&sort=relevance&type=packages&query=specialisation).
'';
type = types.deferredModule;
default = { };
@ -82,7 +82,7 @@ in
type = types.bool;
default = false;
description = mdDoc ''
Enable to configure all [{option}`nodes`](#opt-nodes) to run with a minimal kernel.
Enable to configure all [{option}`nodes`](#test-opt-nodes) to run with a minimal kernel.
'';
};

View File

@ -48,6 +48,6 @@ in
};
meta = {
maintainers = with lib.maintainers; [ superherointj ];
maintainers = with lib.maintainers; [ ];
};
}

View File

@ -653,6 +653,7 @@
./services/misc/svnserve.nix
./services/misc/synergy.nix
./services/misc/sysprof.nix
./services/misc/tandoor-recipes.nix
./services/misc/taskserver
./services/misc/tiddlywiki.nix
./services/misc/tp-auto-kbbl.nix
@ -721,7 +722,7 @@
./services/network-filesystems/drbd.nix
./services/network-filesystems/glusterfs.nix
./services/network-filesystems/kbfs.nix
./services/network-filesystems/ipfs.nix
./services/network-filesystems/kubo.nix
./services/network-filesystems/litestream/default.nix
./services/network-filesystems/netatalk.nix
./services/network-filesystems/nfsd.nix

View File

@ -0,0 +1,144 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.services.tandoor-recipes;
pkg = cfg.package;
# SECRET_KEY through an env file
env = {
GUNICORN_CMD_ARGS = "--bind=${cfg.address}:${toString cfg.port}";
DEBUG = "0";
MEDIA_ROOT = "/var/lib/tandoor-recipes";
} // optionalAttrs (config.time.timeZone != null) {
TIMEZONE = config.time.timeZone;
} // (
lib.mapAttrs (_: toString) cfg.extraConfig
);
manage =
let
setupEnv = lib.concatStringsSep "\n" (mapAttrsToList (name: val: "export ${name}=\"${val}\"") env);
in
pkgs.writeShellScript "manage" ''
${setupEnv}
exec ${pkg}/bin/tandoor-recipes "$@"
'';
in
{
meta.maintainers = with maintainers; [ ambroisie ];
options.services.tandoor-recipes = {
enable = mkOption {
type = lib.types.bool;
default = false;
description = lib.mdDoc ''
Enable Tandoor Recipes.
When started, the Tandoor Recipes database is automatically created if
it doesn't exist and updated if the package has changed. Both tasks are
achieved by running a Django migration.
A script to manage the instance (by wrapping Django's manage.py) is linked to
`/var/lib/tandoor-recipes/tandoor-recipes-manage`.
'';
};
address = mkOption {
type = types.str;
default = "localhost";
description = lib.mdDoc "Web interface address.";
};
port = mkOption {
type = types.port;
default = 8080;
description = lib.mdDoc "Web interface port.";
};
extraConfig = mkOption {
type = types.attrs;
default = { };
description = lib.mdDoc ''
Extra tandoor recipes config options.
See [the example dot-env file](https://raw.githubusercontent.com/vabene1111/recipes/master/.env.template)
for available options.
'';
example = {
ENABLE_SIGNUP = "1";
};
};
package = mkOption {
type = types.package;
default = pkgs.tandoor-recipes;
defaultText = literalExpression "pkgs.tandoor-recipes";
description = lib.mdDoc "The Tandoor Recipes package to use.";
};
};
config = mkIf cfg.enable {
systemd.services.tandoor-recipes = {
description = "Tandoor Recipes server";
serviceConfig = {
ExecStart = ''
${pkg.python.pkgs.gunicorn}/bin/gunicorn recipes.wsgi
'';
Restart = "on-failure";
User = "tandoor_recipes";
DynamicUser = true;
StateDirectory = "tandoor-recipes";
WorkingDirectory = "/var/lib/tandoor-recipes";
RuntimeDirectory = "tandoor-recipes";
BindReadOnlyPaths = [
"${config.environment.etc."ssl/certs/ca-certificates.crt".source}:/etc/ssl/certs/ca-certificates.crt"
builtins.storeDir
"-/etc/resolv.conf"
"-/etc/nsswitch.conf"
"-/etc/hosts"
"-/etc/localtime"
"-/run/postgresql"
];
CapabilityBoundingSet = "";
LockPersonality = true;
MemoryDenyWriteExecute = true;
PrivateDevices = true;
PrivateUsers = true;
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
RestrictNamespaces = true;
RestrictRealtime = true;
SystemCallArchitectures = "native";
# gunicorn needs setuid
SystemCallFilter = [ "@system-service" "~@privileged" "@resources" "@setuid" "@keyring" ];
UMask = "0066";
} // lib.optionalAttrs (cfg.port < 1024) {
AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];
CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ];
};
wantedBy = [ "multi-user.target" ];
preStart = ''
ln -sf ${manage} tandoor-recipes-manage
# Let django migrate the DB as needed
${pkg}/bin/tandoor-recipes migrate
'';
environment = env // {
PYTHONPATH = "${pkg.python.pkgs.makePythonPath pkg.propagatedBuildInputs}:${pkg}/lib/tandoor-recipes";
};
};
};
}

View File

@ -1,9 +1,9 @@
{ config, lib, pkgs, utils, ... }:
with lib;
let
cfg = config.services.ipfs;
cfg = config.services.kubo;
ipfsFlags = utils.escapeSystemdExecArgs (
kuboFlags = utils.escapeSystemdExecArgs (
optional cfg.autoMount "--mount" ++
optional cfg.enableGC "--enable-gc" ++
optional (cfg.serviceFdlimit != null) "--manage-fdlimit=false" ++
@ -50,27 +50,27 @@ in
options = {
services.ipfs = {
services.kubo = {
enable = mkEnableOption (lib.mdDoc "Interplanetary File System (WARNING: may cause severe network degredation)");
package = mkOption {
type = types.package;
default = pkgs.ipfs;
defaultText = literalExpression "pkgs.ipfs";
description = lib.mdDoc "Which IPFS package to use.";
default = pkgs.kubo;
defaultText = literalExpression "pkgs.kubo";
description = lib.mdDoc "Which Kubo package to use.";
};
user = mkOption {
type = types.str;
default = "ipfs";
description = lib.mdDoc "User under which the IPFS daemon runs";
description = lib.mdDoc "User under which the Kubo daemon runs";
};
group = mkOption {
type = types.str;
default = "ipfs";
description = lib.mdDoc "Group under which the IPFS daemon runs";
description = lib.mdDoc "Group under which the Kubo daemon runs";
};
dataDir = mkOption {
@ -84,7 +84,7 @@ in
then "/var/lib/ipfs"
else "/var/lib/ipfs/.ipfs"
'';
description = lib.mdDoc "The data dir for IPFS";
description = lib.mdDoc "The data dir for Kubo";
};
defaultMode = mkOption {
@ -96,13 +96,13 @@ in
autoMount = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc "Whether IPFS should try to mount /ipfs and /ipns at startup.";
description = lib.mdDoc "Whether Kubo should try to mount /ipfs and /ipns at startup.";
};
autoMigrate = mkOption {
type = types.bool;
default = true;
description = lib.mdDoc "Whether IPFS should try to run the fs-repo-migration at startup.";
description = lib.mdDoc "Whether Kubo should try to run the fs-repo-migration at startup.";
};
ipfsMountDir = mkOption {
@ -126,7 +126,7 @@ in
apiAddress = mkOption {
type = types.str;
default = "/ip4/127.0.0.1/tcp/5001";
description = lib.mdDoc "Where IPFS exposes its API to";
description = lib.mdDoc "Where Kubo exposes its API to";
};
swarmAddress = mkOption {
@ -137,7 +137,7 @@ in
"/ip4/0.0.0.0/udp/4001/quic"
"/ip6/::/udp/4001/quic"
];
description = lib.mdDoc "Where IPFS listens for incoming p2p connections";
description = lib.mdDoc "Where Kubo listens for incoming p2p connections";
};
enableGC = mkOption {
@ -174,14 +174,14 @@ in
extraFlags = mkOption {
type = types.listOf types.str;
description = lib.mdDoc "Extra flags passed to the IPFS daemon";
description = lib.mdDoc "Extra flags passed to the Kubo daemon";
default = [ ];
};
localDiscovery = mkOption {
type = types.bool;
description = lib.mdDoc ''Whether to enable local discovery for the ipfs daemon.
This will allow ipfs to scan ports on your local network. Some hosting services will ban you if you do this.
description = lib.mdDoc ''Whether to enable local discovery for the Kubo daemon.
This will allow Kubo to scan ports on your local network. Some hosting services will ban you if you do this.
'';
default = false;
};
@ -189,14 +189,14 @@ in
serviceFdlimit = mkOption {
type = types.nullOr types.int;
default = null;
description = lib.mdDoc "The fdlimit for the IPFS systemd unit or `null` to have the daemon attempt to manage it";
description = lib.mdDoc "The fdlimit for the Kubo systemd unit or `null` to have the daemon attempt to manage it";
example = 64 * 1024;
};
startWhenNeeded = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc "Whether to use socket activation to start IPFS when needed.";
description = lib.mdDoc "Whether to use socket activation to start Kubo when needed.";
};
};
@ -223,7 +223,7 @@ in
uid = config.ids.uids.ipfs;
description = "IPFS daemon user";
packages = [
pkgs.ipfs-migrator
pkgs.kubo-migrator
];
};
};
@ -255,7 +255,7 @@ in
# After an unclean shutdown this file may exist which will cause the config command to attempt to talk to the daemon. This will hang forever if systemd is holding our sockets open.
rm -vf "$IPFS_PATH/api"
'' + optionalString cfg.autoMigrate ''
${pkgs.ipfs-migrator}/bin/fs-repo-migrations -to '${cfg.package.repoVersion}' -y
${pkgs.kubo-migrator}/bin/fs-repo-migrations -to '${cfg.package.repoVersion}' -y
'' + ''
ipfs --offline config profile apply ${profile} >/dev/null
fi
@ -279,7 +279,7 @@ in
| ipfs --offline config replace -
'';
serviceConfig = {
ExecStart = [ "" "${cfg.package}/bin/ipfs daemon ${ipfsFlags}" ];
ExecStart = [ "" "${cfg.package}/bin/ipfs daemon ${kuboFlags}" ];
User = cfg.user;
Group = cfg.group;
StateDirectory = "";
@ -320,4 +320,27 @@ in
meta = {
maintainers = with lib.maintainers; [ Luflosi ];
};
imports = [
(mkRenamedOptionModule [ "services" "ipfs" "enable" ] [ "services" "kubo" "enable" ])
(mkRenamedOptionModule [ "services" "ipfs" "package" ] [ "services" "kubo" "package" ])
(mkRenamedOptionModule [ "services" "ipfs" "user" ] [ "services" "kubo" "user" ])
(mkRenamedOptionModule [ "services" "ipfs" "group" ] [ "services" "kubo" "group" ])
(mkRenamedOptionModule [ "services" "ipfs" "dataDir" ] [ "services" "kubo" "dataDir" ])
(mkRenamedOptionModule [ "services" "ipfs" "defaultMode" ] [ "services" "kubo" "defaultMode" ])
(mkRenamedOptionModule [ "services" "ipfs" "autoMount" ] [ "services" "kubo" "autoMount" ])
(mkRenamedOptionModule [ "services" "ipfs" "autoMigrate" ] [ "services" "kubo" "autoMigrate" ])
(mkRenamedOptionModule [ "services" "ipfs" "ipfsMountDir" ] [ "services" "kubo" "ipfsMountDir" ])
(mkRenamedOptionModule [ "services" "ipfs" "ipnsMountDir" ] [ "services" "kubo" "ipnsMountDir" ])
(mkRenamedOptionModule [ "services" "ipfs" "gatewayAddress" ] [ "services" "kubo" "gatewayAddress" ])
(mkRenamedOptionModule [ "services" "ipfs" "apiAddress" ] [ "services" "kubo" "apiAddress" ])
(mkRenamedOptionModule [ "services" "ipfs" "swarmAddress" ] [ "services" "kubo" "swarmAddress" ])
(mkRenamedOptionModule [ "services" "ipfs" "enableGC" ] [ "services" "kubo" "enableGC" ])
(mkRenamedOptionModule [ "services" "ipfs" "emptyRepo" ] [ "services" "kubo" "emptyRepo" ])
(mkRenamedOptionModule [ "services" "ipfs" "extraConfig" ] [ "services" "kubo" "extraConfig" ])
(mkRenamedOptionModule [ "services" "ipfs" "extraFlags" ] [ "services" "kubo" "extraFlags" ])
(mkRenamedOptionModule [ "services" "ipfs" "localDiscovery" ] [ "services" "kubo" "localDiscovery" ])
(mkRenamedOptionModule [ "services" "ipfs" "serviceFdlimit" ] [ "services" "kubo" "serviceFdlimit" ])
(mkRenamedOptionModule [ "services" "ipfs" "startWhenNeeded" ] [ "services" "kubo" "startWhenNeeded" ])
];
}

View File

@ -22,42 +22,14 @@ let
favorite-apps=[ 'org.gnome.Epiphany.desktop', 'org.gnome.Geary.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop' ]
'';
nixos-background-ligtht = pkgs.nixos-artwork.wallpapers.simple-blue;
nixos-background-light = pkgs.nixos-artwork.wallpapers.simple-blue;
nixos-background-dark = pkgs.nixos-artwork.wallpapers.simple-dark-gray;
nixos-gsettings-desktop-schemas = let
defaultPackages = with pkgs; [ gsettings-desktop-schemas gnome.gnome-shell ];
in
pkgs.runCommand "nixos-gsettings-desktop-schemas" { preferLocalBuild = true; }
''
mkdir -p $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
${concatMapStrings
(pkg: "cp -rf ${pkg}/share/gsettings-schemas/*/glib-2.0/schemas/*.xml $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas\n")
(defaultPackages ++ cfg.extraGSettingsOverridePackages)}
cp -f ${pkgs.gnome.gnome-shell}/share/gsettings-schemas/*/glib-2.0/schemas/*.gschema.override $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
${optionalString flashbackEnabled ''
cp -f ${pkgs.gnome.gnome-flashback}/share/gsettings-schemas/*/glib-2.0/schemas/*.gschema.override $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
''}
chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides
cat - > $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/nixos-defaults.gschema.override <<- EOF
[org.gnome.desktop.background]
picture-uri='file://${nixos-background-ligtht.gnomeFilePath}'
picture-uri-dark='file://${nixos-background-dark.gnomeFilePath}'
[org.gnome.desktop.screensaver]
picture-uri='file://${nixos-background-dark.gnomeFilePath}'
${cfg.favoriteAppsOverride}
${cfg.extraGSettingsOverrides}
EOF
${pkgs.glib.dev}/bin/glib-compile-schemas $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/
'';
# TODO: Having https://github.com/NixOS/nixpkgs/issues/54150 would supersede this
nixos-gsettings-desktop-schemas = pkgs.gnome.nixos-gsettings-overrides.override {
inherit (cfg) extraGSettingsOverrides extraGSettingsOverridePackages favoriteAppsOverride;
inherit flashbackEnabled nixos-background-dark nixos-background-light;
};
nixos-background-info = pkgs.writeTextFile rec {
name = "nixos-background-info";
@ -67,7 +39,7 @@ let
<wallpapers>
<wallpaper deleted="false">
<name>Blobs</name>
<filename>${nixos-background-ligtht.gnomeFilePath}</filename>
<filename>${nixos-background-light.gnomeFilePath}</filename>
<filename-dark>${nixos-background-dark.gnomeFilePath}</filename-dark>
<options>zoom</options>
<shade_type>solid</shade_type>

View File

@ -156,6 +156,14 @@ let cfg = config.services.xserver.libinput;
'';
};
tappingButtonMap = mkOption {
type = types.nullOr (types.enum [ "lrm" "lmr" ]);
default = null;
description = lib.mdDoc ''
Set the button mapping for 1/2/3-finger taps to left/right/middle or left/middle/right, respectively.
'';
};
tappingDragLock = mkOption {
type = types.bool;
default = true;
@ -220,6 +228,7 @@ let cfg = config.services.xserver.libinput;
Option "HorizontalScrolling" "${xorgBool cfg.${deviceType}.horizontalScrolling}"
Option "SendEventsMode" "${cfg.${deviceType}.sendEventsMode}"
Option "Tapping" "${xorgBool cfg.${deviceType}.tapping}"
${optionalString (cfg.${deviceType}.tappingButtonMap != null) ''Option "TappingButtonMap" "${cfg.${deviceType}.tappingButtonMap}"''}
Option "TappingDragLock" "${xorgBool cfg.${deviceType}.tappingDragLock}"
Option "DisableWhileTyping" "${xorgBool cfg.${deviceType}.disableWhileTyping}"
${cfg.${deviceType}.additionalOptions}
@ -241,6 +250,7 @@ in {
"horizontalScrolling"
"sendEventsMode"
"tapping"
"tappingButtonMap"
"tappingDragLock"
"transformationMatrix"
"disableWhileTyping"

View File

@ -325,8 +325,8 @@ in
type = types.lines;
example = "DefaultLimitCORE=infinity";
description = lib.mdDoc ''
Extra config options for systemd. See man systemd-system.conf for
available options.
Extra config options for systemd. See systemd-system.conf(5) man page
for available options.
'';
};

View File

@ -284,7 +284,6 @@ in {
installer-systemd-stage-1 = handleTest ./installer-systemd-stage-1.nix {};
invoiceplane = handleTest ./invoiceplane.nix {};
iodine = handleTest ./iodine.nix {};
ipfs = handleTest ./ipfs.nix {};
ipv6 = handleTest ./ipv6.nix {};
iscsi-multipath-root = handleTest ./iscsi-multipath-root.nix {};
iscsi-root = handleTest ./iscsi-root.nix {};
@ -317,6 +316,7 @@ in {
ksm = handleTest ./ksm.nix {};
kthxbye = handleTest ./kthxbye.nix {};
kubernetes = handleTestOn ["x86_64-linux"] ./kubernetes {};
kubo = handleTest ./kubo.nix {};
ladybird = handleTest ./ladybird.nix {};
languagetool = handleTest ./languagetool.nix {};
latestKernel.login = handleTest ./login.nix { latestKernel = true; };
@ -612,6 +612,7 @@ in {
systemd-shutdown = handleTest ./systemd-shutdown.nix {};
systemd-timesyncd = handleTest ./systemd-timesyncd.nix {};
systemd-misc = handleTest ./systemd-misc.nix {};
tandoor-recipes = handleTest ./tandoor-recipes.nix {};
taskserver = handleTest ./taskserver.nix {};
teeworlds = handleTest ./teeworlds.nix {};
telegraf = handleTest ./telegraf.nix {};

View File

@ -1,4 +1,4 @@
import ../make-test-python.nix ({ pkgs, ... }:
import ../make-test-python.nix ({ pkgs, lib, ... }:
let
imageEnv = pkgs.buildEnv {
name = "k3s-pause-image-env";
@ -54,7 +54,15 @@ import ../make-test-python.nix ({ pkgs, ... }:
role = "server";
package = pkgs.k3s;
clusterInit = true;
extraFlags = "--no-deploy coredns,servicelb,traefik,local-storage,metrics-server --pause-image test.local/pause:local --node-ip 192.168.1.1";
extraFlags = ''
--disable coredns \
--disable local-storage \
--disable metrics-server \
--disable servicelb \
--disable traefik \
--node-ip 192.168.1.1 \
--pause-image test.local/pause:local
'';
};
networking.firewall.allowedTCPPorts = [ 2379 2380 6443 ];
networking.firewall.allowedUDPPorts = [ 8472 ];
@ -76,7 +84,15 @@ import ../make-test-python.nix ({ pkgs, ... }:
enable = true;
serverAddr = "https://192.168.1.1:6443";
clusterInit = false;
extraFlags = "--no-deploy coredns,servicelb,traefik,local-storage,metrics-server --pause-image test.local/pause:local --node-ip 192.168.1.3";
extraFlags = ''
--disable coredns \
--disable local-storage \
--disable metrics-server \
--disable servicelb \
--disable traefik \
--node-ip 192.168.1.3 \
--pause-image test.local/pause:local
'';
};
networking.firewall.allowedTCPPorts = [ 2379 2380 6443 ];
networking.firewall.allowedUDPPorts = [ 8472 ];
@ -123,7 +139,8 @@ import ../make-test-python.nix ({ pkgs, ... }:
server.wait_until_succeeds("k3s kubectl get node agent")
for m in machines:
m.succeed("k3s check-config")
'' # Fix-Me: Tests fail for 'aarch64-linux' as: "CONFIG_CGROUP_FREEZER: missing (fail)"
+ lib.optionalString (!pkgs.stdenv.isAarch64) ''m.succeed("k3s check-config")'' + ''
m.succeed(
"${pauseImage} | k3s ctr image import -"
)

View File

@ -1,4 +1,4 @@
import ../make-test-python.nix ({ pkgs, ... }:
import ../make-test-python.nix ({ pkgs, lib, ... }:
let
imageEnv = pkgs.buildEnv {
name = "k3s-pause-image-env";
@ -40,7 +40,15 @@ import ../make-test-python.nix ({ pkgs, ... }:
services.k3s.role = "server";
services.k3s.package = pkgs.k3s;
# Slightly reduce resource usage
services.k3s.extraFlags = "--no-deploy coredns,servicelb,traefik,local-storage,metrics-server --pause-image test.local/pause:local";
services.k3s.extraFlags = ''
--disable coredns \
--disable local-storage \
--disable metrics-server \
--disable servicelb \
--disable traefik \
--pause-image \
test.local/pause:local
'';
users.users = {
noprivs = {
@ -57,7 +65,8 @@ import ../make-test-python.nix ({ pkgs, ... }:
machine.wait_for_unit("k3s")
machine.succeed("k3s kubectl cluster-info")
machine.fail("sudo -u noprivs k3s kubectl cluster-info")
machine.succeed("k3s check-config")
'' # Fix-Me: Tests fail for 'aarch64-linux' as: "CONFIG_CGROUP_FREEZER: missing (fail)"
+ lib.optionalString (!pkgs.stdenv.isAarch64) ''machine.succeed("k3s check-config")'' + ''
machine.succeed(
"${pauseImage} | k3s ctr image import -"

View File

@ -1,11 +1,11 @@
import ./make-test-python.nix ({ pkgs, ...} : {
name = "ipfs";
name = "kubo";
meta = with pkgs.lib.maintainers; {
maintainers = [ mguentner ];
};
nodes.machine = { ... }: {
services.ipfs = {
services.kubo = {
enable = true;
# Also will add a unix domain socket socket API address, see module.
startWhenNeeded = true;
@ -15,7 +15,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
};
nodes.fuse = { ... }: {
services.ipfs = {
services.kubo = {
enable = true;
apiAddress = "/ip4/127.0.0.1/tcp/2324";
autoMount = true;

View File

@ -0,0 +1,43 @@
import ./make-test-python.nix ({ lib, ... }: {
name = "tandoor-recipes";
meta.maintainers = with lib.maintainers; [ ambroisie ];
nodes.machine = { pkgs, ... }: {
# Setup using Postgres
services.tandoor-recipes = {
enable = true;
extraConfig = {
DB_ENGINE = "django.db.backends.postgresql";
POSTGRES_HOST = "/run/postgresql";
POSTGRES_USER = "tandoor_recipes";
POSTGRES_DB = "tandoor_recipes";
};
};
services.postgresql = {
enable = true;
ensureDatabases = [ "tandoor_recipes" ];
ensureUsers = [
{
name = "tandoor_recipes";
ensurePermissions."DATABASE tandoor_recipes" = "ALL PRIVILEGES";
}
];
};
systemd.services = {
tandoor-recipes = {
after = [ "postgresql.service" ];
};
};
};
testScript = ''
machine.wait_for_unit("tandoor-recipes.service")
with subtest("Web interface gets ready"):
# Wait until server accepts connections
machine.wait_until_succeeds("curl -fs localhost:8080")
'';
})

View File

@ -13,13 +13,13 @@
stdenv.mkDerivation rec {
pname = "ft2-clone";
version = "1.58";
version = "1.59";
src = fetchFromGitHub {
owner = "8bitbubsy";
repo = "ft2-clone";
rev = "v${version}";
sha256 = "sha256-FHhASs1PKTz6G1sAKNUeft0BHbWgl44l7eiOnyQXZb8=";
sha256 = "sha256-TQJCkvPV6vbhURLcuH41i8obHnfHkrCTJG0+IuSVDos=";
};
# Adapt the linux-only CMakeLists to darwin (more reliable than make-macos.sh)

View File

@ -2,6 +2,7 @@
, libid3tag, liblo, libmad, liboggz, libpulseaudio, libsamplerate
, libsndfile, lrdf, opusfile, portaudio, rubberband, serd, sord, capnproto
, wrapQtAppsHook, pkg-config
, libjack2
}:
stdenv.mkDerivation rec {
@ -17,6 +18,7 @@ stdenv.mkDerivation rec {
[ alsa-lib boost bzip2 fftw fftwFloat libfishsound libid3tag liblo
libmad liboggz libpulseaudio libsamplerate libsndfile lrdf opusfile
portaudio rubberband serd sord capnproto
libjack2
];
nativeBuildInputs = [ pkg-config wrapQtAppsHook ];
@ -34,5 +36,7 @@ stdenv.mkDerivation rec {
license = licenses.gpl2Plus;
maintainers = [ maintainers.vandenoever ];
platforms = platforms.linux;
# undefined reference to `std::__throw_bad_array_new_length()@GLIBCXX_3.4.29'
broken = true; # at 2022-09-30
};
}

View File

@ -3,12 +3,12 @@
, libGLU, lv2, gtk2, cairo, pango, fftwFloat, zita-convolver }:
stdenv.mkDerivation rec {
version = "20220714";
version = "20220923";
pname = "x42-plugins";
src = fetchurl {
url = "https://gareus.org/misc/x42-plugins/${pname}-${version}.tar.xz";
sha256 = "sha256-myrHOfgpCwuW8YX0jZ3RutoqtXysU0ejBNcuxN3stXU=";
sha256 = "sha256-9Y9up5Ziipm6ums1wESfcADKgMwas2SESgGPn74RTt4=";
};
nativeBuildInputs = [ pkg-config ];

View File

@ -96,7 +96,7 @@ self: let
./build.sh -j$NIX_BUILD_CORES
'';
postInstall = ''
postInstall = (old.postInstall or "") + "\n" + ''
./install.sh --prefix=$out
'';

View File

@ -186,7 +186,7 @@ let
cd -
'';
postInstall = ''
postInstall = (old.postInstall or "") + "\n" + ''
install -m=755 -D source/sqlite/emacsql-sqlite \
$out/share/emacs/site-lisp/elpa/emacsql-sqlite-${old.version}/sqlite/emacsql-sqlite
'';
@ -301,7 +301,7 @@ let
make
popd
'';
postInstall = ''
postInstall = (attrs.postInstall or "") + "\n" + ''
outd=$(echo $out/share/emacs/site-lisp/elpa/libgit-**)
mkdir $outd/build
install -m444 -t $outd/build ./source/src/libegit2.so
@ -426,7 +426,7 @@ let
cd -
'';
postInstall = ''
postInstall = (old.postInstall or "") + "\n" + ''
mkdir -p $out/bin
install -m755 -Dt $out/bin ./source/server/telega-server
'';
@ -456,7 +456,7 @@ let
pkgs.libtool
(pkgs.zeromq.override { enableDrafts = true; })
];
postInstall = ''
postInstall = (old.postInstall or "") + "\n" + ''
mv $EZMQ_LIBDIR/emacs-zmq.* $out/share/emacs/site-lisp/elpa/zmq-*
rm -r $out/share/emacs/site-lisp/elpa/zmq-*/src
rm $out/share/emacs/site-lisp/elpa/zmq-*/Makefile
@ -533,7 +533,7 @@ let
];
# we need the proper out directory to exist, so we do this in the
# postInstall instead of postBuild
postInstall = ''
postInstall = (old.postInstall or "") + "\n" + ''
pushd source/build >/dev/null
make
install -m444 -t $out/share/emacs/site-lisp/elpa/vterm-** ../*.so

View File

@ -2,6 +2,7 @@
, fetchFromGitHub
, python3
, neovim
, fetchpatch
}:
with python3.pkgs; buildPythonApplication rec {
@ -15,6 +16,14 @@ with python3.pkgs; buildPythonApplication rec {
sha256 = "0lbz4w8hgxsw4k1pxafrl3rhydrvi5jc6vnsmkvnhh6l6rxlmvmq";
};
patches = [
# Fix a compatibility issue with neovim 0.8.0
(fetchpatch {
url = "https://github.com/mhinz/neovim-remote/commit/56d2a4097f4b639a16902390d9bdd8d1350f948c.patch";
hash = "sha256-/PjE+9yfHtOUEp3xBaobzRM8Eo2wqOhnF1Es7SIdxvM=";
})
];
propagatedBuildInputs = [
pynvim
psutil
@ -26,15 +35,12 @@ with python3.pkgs; buildPythonApplication rec {
pytestCheckHook
];
disabledTests = [
# these tests get stuck and never return
"test_escape_filenames_properly"
"test_escape_single_quotes_in_filenames"
"test_escape_double_quotes_in_filenames"
];
doCheck = !stdenv.isDarwin;
preCheck = ''
export HOME="$(mktemp -d)"
'';
meta = with lib; {
description = "A tool that helps controlling nvim processes from a terminal";
homepage = "https://github.com/mhinz/neovim-remote/";

File diff suppressed because it is too large Load Diff

View File

@ -53,6 +53,7 @@
, zsh
# command-t dependencies
, getconf
, ruby
# cpsm dependencies
@ -239,10 +240,11 @@ self: super: {
};
command-t = super.command-t.overrideAttrs (old: {
buildInputs = [ ruby ];
nativeBuildInputs = [ getconf ruby ];
buildPhase = ''
substituteInPlace lua/wincent/commandt/lib/Makefile \
--replace '/bin/bash' 'bash'
--replace '/bin/bash' 'bash' \
--replace xcrun ""
make build
rm ruby/command-t/ext/command-t/*.o
'';
@ -983,7 +985,7 @@ self: super: {
libiconv
];
cargoSha256 = "sha256-g5yNqDCN1O9x7/HcM8NsZlMwLudDTuPLE5gSpScNQnY=";
cargoSha256 = "sha256-AY14YEdMpHXmiHwEA9hwSwwwJ8hYIomAuIuCJv1OUDw=";
};
in
''

View File

@ -60,6 +60,7 @@ https://github.com/vmchale/ats-vim/,,
https://github.com/ray-x/aurora/,,
https://github.com/hotwatermorning/auto-git-diff/,,
https://github.com/jiangmiao/auto-pairs/,,
https://github.com/pocco81/auto-save.nvim/,HEAD,
https://github.com/rmagatti/auto-session/,,
https://github.com/vim-scripts/autoload_cscope.vim/,,
https://github.com/rafi/awesome-vim-colorschemes/,,
@ -460,6 +461,7 @@ https://github.com/vijaymarupudi/nvim-fzf/,,
https://github.com/vijaymarupudi/nvim-fzf-commands/,,
https://github.com/sakhnik/nvim-gdb/,,
https://github.com/smiteshp/nvim-gps/,,
https://github.com/brenoprata10/nvim-highlight-colors/,HEAD,
https://github.com/Iron-E/nvim-highlite/,,
https://github.com/kevinhwang91/nvim-hlslens/,,
https://github.com/neovimhaskell/nvim-hs.vim/,,
@ -479,6 +481,7 @@ https://github.com/AckslD/nvim-neoclip.lua/,,
https://github.com/yamatsum/nvim-nonicons/,,
https://github.com/rcarriga/nvim-notify/,,
https://github.com/gennaro-tedesco/nvim-peekup/,,
https://github.com/olrtg/nvim-rename-state/,HEAD,
https://github.com/dstein64/nvim-scrollview/,,
https://github.com/dcampos/nvim-snippy/,HEAD,
https://github.com/ishan9299/nvim-solarized-lua/,,
@ -636,6 +639,7 @@ https://github.com/tom-anders/telescope-vim-bookmarks.nvim/,,
https://github.com/nvim-telescope/telescope-z.nvim/,,
https://github.com/jvgrootveld/telescope-zoxide/,,
https://github.com/nvim-telescope/telescope.nvim/,,
https://github.com/axelvc/template-string.nvim/,HEAD,
https://github.com/jacoborus/tender.vim/,,
https://github.com/wincent/terminus/,,
https://github.com/oberblastmeister/termwrapper.nvim/,,
@ -1071,6 +1075,7 @@ https://github.com/mattn/webapi-vim/,,
https://github.com/folke/which-key.nvim/,,
https://github.com/gelguy/wilder.nvim/,,
https://github.com/gcmt/wildfire.vim/,,
https://github.com/anuvyklack/windows.nvim/,,
https://github.com/sindrets/winshift.nvim/,,
https://github.com/wannesm/wmgraphviz.vim/,,
https://github.com/vim-scripts/wombat256.vim/,,
@ -1087,4 +1092,3 @@ https://github.com/ziglang/zig.vim/,,
https://github.com/mickael-menu/zk-nvim/,HEAD,
https://github.com/troydm/zoomwintab.vim/,,
https://github.com/nanotee/zoxide.vim/,,
https://github.com/anuvyklack/windows.nvim/,,

View File

@ -326,7 +326,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=attilabuti.brainfuck-syntax";
homepage = "https://github.com/attilabuti/brainfuck-syntax";
license = licenses.mit;
maintainers = with maintainers; [ superherointj ];
maintainers = with maintainers; [ ];
};
};
@ -410,7 +410,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=badochov.ocaml-formatter";
homepage = "https://github.com/badochov/ocamlformatter-vscode";
license = licenses.mit;
maintainers = with maintainers; [ superherointj ];
maintainers = with maintainers; [ ];
};
};
@ -585,7 +585,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=christian-kohler.path-intellisense";
homepage = "https://github.com/ChristianKohler/PathIntellisense";
license = licenses.mit;
maintainers = with maintainers; [ imgabe superherointj ];
maintainers = with maintainers; [ imgabe ];
};
};
@ -943,7 +943,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode";
homepage = "https://github.com/prettier/prettier-vscode";
license = licenses.mit;
maintainers = with maintainers; [ datafoo superherointj ];
maintainers = with maintainers; [ datafoo ];
};
};
@ -1134,7 +1134,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=gencer.html-slim-scss-css-class-completion";
homepage = "https://github.com/gencer/SCSS-Everywhere";
license = licenses.mit;
maintainers = with maintainers; [ superherointj ];
maintainers = with maintainers; [ ];
};
};
@ -1150,7 +1150,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=gitlab.gitlab-workflow";
homepage = "https://gitlab.com/gitlab-org/gitlab-vscode-extension#readme";
license = licenses.mit;
maintainers = with maintainers; [ superherointj ];
maintainers = with maintainers; [ ];
};
};
@ -1400,7 +1400,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=IronGeek.vscode-env";
homepage = "https://github.com/IronGeek/vscode-env.git";
license = licenses.mit;
maintainers = with maintainers; [ superherointj ];
maintainers = with maintainers; [ ];
};
};
@ -1468,7 +1468,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=jnoortheen.nix-ide";
homepage = "https://github.com/jnoortheen/vscode-nix-ide";
license = licenses.mit;
maintainers = with maintainers; [ superherointj SuperSandro2000 ];
maintainers = with maintainers; [ SuperSandro2000 ];
};
};
@ -1963,7 +1963,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=phoenixframework.phoenix";
homepage = "https://github.com/phoenixframework/vscode-phoenix";
license = licenses.mit;
maintainers = with maintainers; [ superherointj ];
maintainers = with maintainers; [ ];
};
};
@ -2027,7 +2027,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=ocamllabs.ocaml-platform";
homepage = "https://github.com/ocamllabs/vscode-ocaml-platform";
license = licenses.isc;
maintainers = with maintainers; [ ratsclub superherointj ];
maintainers = with maintainers; [ ratsclub ];
};
mktplcRef = {
name = "ocaml-platform";
@ -2090,7 +2090,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=Prisma.prisma";
homepage = "https://github.com/prisma/language-tools";
license = licenses.asl20;
maintainers = with maintainers; [ superherointj ];
maintainers = with maintainers; [ ];
};
};
@ -2332,7 +2332,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=stefanjarina.vscode-eex-snippets";
homepage = "https://github.com/stefanjarina/vscode-eex-snippets";
license = licenses.mit;
maintainers = with maintainers; [ superherointj ];
maintainers = with maintainers; [ ];
};
};
@ -2374,8 +2374,8 @@ let
mktplcRef = {
name = "code-spell-checker";
publisher = "streetsidesoftware";
version = "2.3.1";
sha256 = "0pm9i3zw4aa4qrcqnzb9bz166rl7p6nwb81m9rqzisdc85mx4s3x";
version = "2.10.1";
sha256 = "sha256-FeYkSML6QYtuIHIbAovOqlPwkKfNkHr7IdMCWwkynQ0=";
};
meta = with lib; {
changelog = "https://marketplace.visualstudio.com/items/streetsidesoftware.code-spell-checker/changelog";
@ -2469,7 +2469,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=theangryepicbanana.language-pascal";
homepage = "https://github.com/ALANVF/vscode-pascal-magic";
license = licenses.mit;
maintainers = with maintainers; [ superherointj ];
maintainers = with maintainers; [ ];
};
};

View File

@ -0,0 +1,50 @@
{ lib
, rustPlatform
, fetchFromGitHub
, installShellFiles
, pkg-config
, openssl
}:
rustPlatform.buildRustPackage rec {
pname = "artem";
version = "1.1.5";
src = fetchFromGitHub {
owner = "finefindus";
repo = pname;
rev = "v${version}";
sha256 = "1jax39gizlcbqnkjckxwm5h0wdk5dk8dasaj9wxv7yidbcbgj4zh";
};
cargoSha256 = "sha256-n2NOWrgcMVHpNCHL7r8+Kl1e01XYadaNM7UdE8fQo1U=";
nativeBuildInputs = [ installShellFiles pkg-config ];
buildInputs = [ openssl ];
OPENSSL_NO_VENDOR = 1;
checkFlags = [
# require internet access
"--skip=arguments::input::url_input"
"--skip=full_file_compare_url"
# flaky
"--skip=full_file_compare_html"
];
postInstall = ''
installManPage $releaseDir/build/artem-*/out/artem.1
installShellCompletion $releaseDir/build/artem-*/out/artem.{bash,fish} \
--zsh $releaseDir/build/artem-*/out/_artem
'';
meta = with lib; {
description = "A small CLI program to convert images to ASCII art";
homepage = "https://github.com/finefindus/artem";
changelog = "https://github.com/finefindus/artem/blob/v${version}/CHANGELOG.md";
license = licenses.mpl20;
maintainers = with maintainers; [ figsoda ];
};
}

View File

@ -120,8 +120,8 @@ in stdenv.mkDerivation rec {
cp -a resources/icons $out/share
interp="$(cat $NIX_CC/nix-support/dynamic-linker)"
patchelf --set-interpreter $interp $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper}
patchelf --set-rpath ${rpath}:$out/share/1password $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper}
patchelf --set-interpreter $interp $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper,op-ssh-sign}
patchelf --set-rpath ${rpath}:$out/share/1password $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper,op-ssh-sign}
for file in $(find $out -type f -name \*.so\* ); do
patchelf --set-rpath ${rpath}:$out/share/1password $file
done

View File

@ -120,8 +120,8 @@ in stdenv.mkDerivation rec {
cp -a resources/icons $out/share
interp="$(cat $NIX_CC/nix-support/dynamic-linker)"
patchelf --set-interpreter $interp $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper}
patchelf --set-rpath ${rpath}:$out/share/1password $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper}
patchelf --set-interpreter $interp $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper,op-ssh-sign}
patchelf --set-rpath ${rpath}:$out/share/1password $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper,op-ssh-sign}
for file in $(find $out -type f -name \*.so\* ); do
patchelf --set-rpath ${rpath}:$out/share/1password $file
done

View File

@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
pname = "cubiomes-viewer";
version = "2.4.1";
version = "2.5.0";
src = fetchFromGitHub {
owner = "Cubitect";
repo = pname;
rev = version;
sha256 = "sha256-vneX3Wo1DUK1WIwBP3nMUDV26EN2A7XIqMcTZQ4UI4A=";
sha256 = "sha256-VZsq2HMvhFB6DR+Z3bVtyIJ2O984QaryYWCcP/a7paw=";
fetchSubmodules = true;
};

View File

@ -89,7 +89,13 @@ python3.pkgs.buildPythonApplication {
qdarkstyle
];
preBuild = ''
postPatch = ''
# make compatible with protobuf4 by easing dependencies ...
substituteInPlace ./contrib/requirements/requirements.txt \
--replace "protobuf>=3.12,<4" "protobuf>=3.12"
# ... and regenerating the paymentrequest_pb2.py file
protoc --python_out=. electrum/paymentrequest.proto
substituteInPlace ./electrum/ecc_fast.py \
--replace ${libsecp256k1_name} ${secp256k1}/lib/libsecp256k1${stdenv.hostPlatform.extensions.sharedLibrary}
'' + (if enableQt then ''

View File

@ -0,0 +1,163 @@
{ lib, stdenv, fetchFromGitHub, fetchsvn
, scons, pkg-config, python3
, glib, libxml2, gtk2, libGLU, gnome2
, runCommand, writeScriptBin, runtimeShell
, makeDesktopItem, copyDesktopItems
}:
let
q3Pack = fetchsvn {
url = "svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk";
rev = 144;
sha256 = "sha256-U1GtMv775JEOAJ1W2kSaRNPDCnW39W+KqVDTTG2yISY=";
};
urtPack = fetchsvn {
url = "svn://svn.icculus.org/gtkradiant-gamepacks/UrTPack/trunk";
rev = 144;
sha256 = "sha256-DQjENyQa1kEieU3ZWyMt2e4oEN0X2K3lxP79sBI91iI=";
};
etPack = fetchsvn {
url = "svn://svn.icculus.org/gtkradiant-gamepacks/ETPack/trunk";
rev = 144;
sha256 = "sha256-mqaWOYfF/F6ABh7nKA36YvsywZIdwJ9IitFi2Xp5rgk=";
};
qlPack = fetchsvn {
url = "svn://svn.icculus.org/gtkradiant-gamepacks/QLPack/trunk";
rev = 144;
sha256 = "sha256-lrn4nu3JI7j+t9jYd+UFE55GOCbc6+Sh2fZfVlEr1WM=";
};
q2Pack = fetchsvn {
url = "svn://svn.icculus.org/gtkradiant-gamepacks/Q2Pack/trunk";
rev = 144;
sha256 = "sha256-ad8dRV+28Zz5yQsJU7hvteSIn9wWpehuqxMspw3yvvU=";
};
quetooPack = fetchsvn {
url = "svn://svn.icculus.org/gtkradiant-gamepacks/QuetooPack/trunk";
rev = 144;
sha256 = "sha256-SOblPJgdVEZrTYtvDlcF7paIm3UitSVFQ9+RahXkO64=";
};
jaPack = fetchsvn {
url = "svn://svn.icculus.org/gtkradiant-gamepacks/JAPack/trunk";
rev = 144;
sha256 = "sha256-P6lI+nNrPwoWJl5ThUHIA3Iw1nWVo2djaaWHAF5HuDo=";
};
stvefPack = fetchsvn {
url = "svn://svn.icculus.org/gtkradiant-gamepacks/STVEFPack/trunk";
rev = 144;
sha256 = "sha256-quNyVC6fg1FIBsLWx0LzRK2JfxKMNJeUEIkWGhGJHhI=";
};
wolfPack = fetchsvn {
url = "svn://svn.icculus.org/gtkradiant-gamepacks/WolfPack/trunk";
rev = 144;
sha256 = "sha256-693k6KiIchQddVGBhRJf7ikv6ut5L9rcLt0FTZ7pSvw=";
};
unvanquishedPack = fetchsvn {
url = "https://github.com/Unvanquished/unvanquished-mapeditor-support.git/trunk/build/gtkradiant/";
rev = 212;
sha256 = "sha256-weBlnSBezPppbhsMOT66vubioTxpDC+AcKIOC2Xitdo=";
};
q1Pack = fetchsvn {
url = "svn://svn.icculus.org/gtkradiant-gamepacks/Q1Pack/trunk";
rev = 144;
sha256 = "sha256-JfmDIUoDY7dYdMgwwUMgcwNhWxuxsdkv1taw8DXhPY4=";
};
packs = runCommand "gtkradiant-packs" {} ''
mkdir -p $out
ln -s ${q3Pack} $out/Q3Pack
ln -s ${urtPack} $out/UrTPack
ln -s ${etPack} $out/ETPack
ln -s ${qlPack} $out/QLPack
ln -s ${q2Pack} $out/Q2Pack
ln -s ${quetooPack} $out/QuetooPack
ln -s ${jaPack} $out/JAPack
ln -s ${stvefPack} $out/STVEFPack
ln -s ${wolfPack} $out/WolfPack
ln -s ${unvanquishedPack} $out/UnvanquishedPack
ln -s ${q1Pack} $out/Q1Pack
'';
in
stdenv.mkDerivation rec {
pname = "gtkradiant";
version = "unstable-2022-07-31";
src = fetchFromGitHub {
owner = "TTimo";
repo = "GtkRadiant";
rev = "5b498bfa01bde6c2c9eb60fb94cf04666e52d22d";
sha256 = "sha256-407faeQnhxqbWgOUunQKj2JhHeqIzPPgrhz2K5O4CaM=";
};
# patch paths so that .game settings are put into the user's home instead of the read-only /nix/store
postPatch = ''
substituteInPlace radiant/preferences.cpp \
--replace 'gameFilePath += "games/";' 'gameFilePath = g_get_home_dir(); gameFilePath += "/.cache/radiant/games/";printf("gameFilePath: %s\\n", gameFilePath);' \
--replace 'radCreateDirectory( gameFilePath );' 'if (g_mkdir_with_parents( gameFilePath, 0777 ) == -1) {radCreateDirectory( gameFilePath );};' \
--replace 'strGamesPath = g_strAppPath.GetBuffer();' 'strGamesPath = g_get_home_dir();' \
--replace 'strGamesPath += "games";' 'strGamesPath += "/.cache/radiant/games";'
'';
nativeBuildInputs =
let
python = python3.withPackages (ps: with ps; [
urllib3
]);
svn = writeScriptBin "svn" ''
#!${runtimeShell} -e
if [ "$1" = checkout ]; then
# link predownloaded pack to destination
mkdir -p $(dirname $3)
ln -s ${packs}/$(basename $3) $3
# verify existence
test -e $(readlink $3)
elif [ "$1" = update ]; then
# verify existence
test -e $(readlink $3)
else
echo "$@"
exit 1
fi
'';
in [
scons
pkg-config
python
svn
copyDesktopItems
];
buildInputs = [ glib libxml2 gtk2 libGLU gnome2.gtkglext ];
enableParallelBuilding = true;
desktopItems = [ (makeDesktopItem {
name = "gtkradiant";
exec = "gtkradiant";
desktopName = "GtkRadiant";
comment = meta.description;
categories = [ "Development" ];
icon = "gtkradiant";
# includes its own splash screen
startupNotify = false;
}) ];
postInstall = ''
mkdir -p $out/{bin,lib}
cp -ar install $out/lib/gtkradiant
ln -s ../lib/gtkradiant/radiant.bin $out/bin/gtkradiant
ln -s ../lib/gtkradiant/{q3map2,q3map2_urt,q3data} $out/bin/
mkdir -p $out/share/pixmaps
ln -s ../../lib/gtkradiant/bitmaps/icon.png $out/share/pixmaps/gtkradiant.png
'';
meta = with lib; {
description = "Level editor for idTech games";
homepage = "https://icculus.org/gtkradiant/";
license = with licenses; [ gpl2Only bsdOriginal lgpl21Only ];
maintainers = with maintainers; [ astro ];
platforms = platforms.unix;
};
}

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "gum";
version = "0.6.0";
version = "0.7.0";
src = fetchFromGitHub {
owner = "charmbracelet";
repo = pname;
rev = "v${version}";
sha256 = "sha256-pEULArQDwKZzpD0GVH21L1v9xVZiBz91kL/jPJjJav4=";
sha256 = "sha256-T8dIk99qUMyeZvfM+rLA13HAmITQ8SMsQ9uIXtMM+MM=";
};
vendorSha256 = "sha256-vvNoO5eABGVwvAzK33uPelmo3BKxfqiYgEXZI7kgeSo=";
vendorSha256 = "sha256-sht9e4pam4aJCylUZPeVGwk9TYttumJSniNVxI0LfNM=";
nativeBuildInputs = [
installShellFiles

View File

@ -0,0 +1,52 @@
{ stdenv
, lib
, fetchurl
, autoPatchelfHook
, pkg-config
, dpkg
, openssl
, webkitgtk
, libappindicator
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
name = "holochain-launcher";
version = "0.6.0";
src = fetchurl {
url = "https://github.com/holochain/launcher/releases/download/v${version}/holochain-launcher_${version}_amd64.deb";
sha256 = "sha256-o9cUFtq5XUkbC3yFRFiV2k4uWjb+szlE8qV+G9Gve5E=";
};
nativeBuildInputs = [
autoPatchelfHook
dpkg
wrapGAppsHook # required for FileChooser
];
buildInputs = [
openssl
webkitgtk
libappindicator
];
unpackCmd = "dpkg-deb -x $curSrc source";
installPhase = ''
mv usr $out
'';
preFixup = ''
patchelf --add-needed "libappindicator3.so" "$out/bin/holochain-launcher"
'';
meta = with lib; {
description = "A cross-platform executable that launches a local Holochain conductor, and installs and opens apps";
homepage = "https://github.com/holochain/launcher";
maintainers = [ maintainers.steveej ];
license = licenses.cal10;
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
platforms = platforms.linux;
};
}

View File

@ -41,7 +41,7 @@ buildGoModule rec {
'';
license = licenses.mit;
homepage = "https://github.com/mschneider82/keylight-control";
maintainers = with maintainers; [ superherointj ];
maintainers = with maintainers; [ ];
};
}

View File

@ -33,16 +33,3 @@ index c6c31cbf5..c51b59ce6 100644
}
int RSettings::getSnapRange() {
diff --git a/qcad.desktop b/qcad.desktop
index 93c5e9720..2d0e6bf32 100644
--- a/qcad.desktop
+++ b/qcad.desktop
@@ -48,7 +48,7 @@ Comment[sv]=2D CAD-system
Comment[sl]=Sistem 2D CAD
Comment[uk]=2D САПР
Comment[tr]=2D CAD Sistemi
-Exec=qcad %F
+Exec=qcad-bin %F
X-MultipleArgs=true
Icon=qcad_icon
Terminal=false

View File

@ -0,0 +1,19 @@
{ lib, fetchFromGitHub }:
rec {
version = "1.4.1";
src = fetchFromGitHub {
owner = "TandoorRecipes";
repo = "recipes";
rev = version;
sha256 = "sha256-Q/IwjSByCUXVYxhk3U7oWvlMxrJxyajhpsRyq67PVHY=";
};
yarnSha256 = "sha256-gH0q3pJ2BC5pAU9KSo3C9DDRUnpypoyLOEqKSrkxYrk=";
meta = with lib; {
homepage = "https://tandoor.dev/";
license = licenses.agpl3Only;
maintainers = with maintainers; [ ambroisie ];
};
}

View File

@ -0,0 +1,140 @@
{ callPackage
, nixosTests
, python3
}:
let
python = python3.override {
packageOverrides = self: super: {
django = super.django_4;
# Tests are incompatible with Django 4
django-js-reverse = super.django-js-reverse.overridePythonAttrs (_: {
doCheck = false;
});
};
};
common = callPackage ./common.nix { };
frontend = callPackage ./frontend.nix { };
in
python.pkgs.pythonPackages.buildPythonPackage rec {
pname = "tandoor-recipes";
inherit (common) version src;
format = "other";
patches = [
# Allow setting MEDIA_ROOT through environment variable
./media-root.patch
];
propagatedBuildInputs = with python.pkgs; [
beautifulsoup4
bleach
bleach-allowlist
boto3
cryptography
django
django-allauth
django-annoying
django-auth-ldap
django-autocomplete-light
django-cleanup
django-cors-headers
django-crispy-forms
django-hcaptcha
django-js-reverse
django-oauth-toolkit
django-prometheus
django-scopes
django-storages
django-tables2
django-webpack-loader
django_treebeard
djangorestframework
drf-writable-nested
gunicorn
icalendar
jinja2
lxml
markdown
microdata
pillow
psycopg2
pyppeteer
python-dotenv
pytube
pyyaml
recipe-scrapers
requests
six
uritemplate
validators
webdavclient3
whitenoise
];
configurePhase = ''
runHook preConfigure
ln -sf ${frontend}/ cookbook/static/vue
cp ${frontend}/webpack-stats.json vue/
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
# Avoid dependency on django debug toolbar
export DEBUG=0
# See https://github.com/TandoorRecipes/recipes/issues/2043
mkdir cookbook/static/themes/maps/
touch cookbook/static/themes/maps/style.min.css.map
touch cookbook/static/themes/bootstrap.min.css.map
touch cookbook/static/css/bootstrap-vue.min.css.map
${python.pythonForBuild.interpreter} manage.py collectstatic_js_reverse
${python.pythonForBuild.interpreter} manage.py collectstatic
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/lib
cp -r . $out/lib/tandoor-recipes
chmod +x $out/lib/tandoor-recipes/manage.py
makeWrapper $out/lib/tandoor-recipes/manage.py $out/bin/tandoor-recipes \
--prefix PYTHONPATH : "$PYTHONPATH"
runHook postInstall
'';
checkInputs = with python.pkgs; [
pytestCheckHook
pytest-django
pytest-factoryboy
];
passthru = {
inherit frontend python;
updateScript = ./update.sh;
tests = {
inherit (nixosTests) tandoor-recipes;
};
};
meta = common.meta // {
description = ''
Application for managing recipes, planning meals, building shopping lists
and much much more!
'';
};
}

View File

@ -0,0 +1,57 @@
{ stdenv, fetchYarnDeps, fixup_yarn_lock, callPackage, nodejs-16_x }:
let
common = callPackage ./common.nix { };
in
stdenv.mkDerivation {
pname = "tandoor-recipes-frontend";
inherit (common) version;
src = "${common.src}/vue";
yarnOfflineCache = fetchYarnDeps {
yarnLock = "${common.src}/vue/yarn.lock";
sha256 = common.yarnSha256;
};
nativeBuildInputs = [
fixup_yarn_lock
# Use Node JS 16 because of @achrinza/node-ipc@9.2.2
nodejs-16_x
nodejs-16_x.pkgs.yarn
];
configurePhase = ''
runHook preConfigure
export HOME=$(mktemp -d)
yarn config --offline set yarn-offline-mirror "$yarnOfflineCache"
fixup_yarn_lock yarn.lock
command -v yarn
yarn install --frozen-lockfile --offline --no-progress --non-interactive
patchShebangs node_modules/
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
yarn --offline run build
runHook postBuild
'';
installPhase = ''
runHook preInstall
cp -R ../cookbook/static/vue/ $out
cp webpack-stats.json $out
echo "${common.version}" > "$out/version"
runHook postInstall
'';
meta = common.meta // {
description = "Tandoor Recipes frontend";
};
}

View File

@ -0,0 +1,17 @@
diff --git a/recipes/settings.py b/recipes/settings.py
index 5676fe0a..6c6f1747 100644
--- a/recipes/settings.py
+++ b/recipes/settings.py
@@ -426,10 +426,10 @@ if os.getenv('S3_ACCESS_KEY', ''):
AWS_S3_CUSTOM_DOMAIN = os.getenv('S3_CUSTOM_DOMAIN', '')
MEDIA_URL = os.getenv('MEDIA_URL', '/media/')
- MEDIA_ROOT = os.path.join(BASE_DIR, "mediafiles")
+ MEDIA_ROOT = os.getenv('MEDIA_ROOT', os.path.join(BASE_DIR, "mediafiles"))
else:
MEDIA_URL = os.getenv('MEDIA_URL', '/media/')
- MEDIA_ROOT = os.path.join(BASE_DIR, "mediafiles")
+ MEDIA_ROOT = os.getenv('MEDIA_ROOT', os.path.join(BASE_DIR, "mediafiles"))
# Serve static files with gzip
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

View File

@ -0,0 +1,42 @@
#!/usr/bin/env nix-shell
#!nix-shell -I nixpkgs=../../../../ -i bash -p nix wget prefetch-yarn-deps nix-prefetch-github jq
# shellcheck shell=bash
if [ -n "$GITHUB_TOKEN" ]; then
TOKEN_ARGS=(--header "Authorization: token $GITHUB_TOKEN")
fi
if [ "$#" -gt 1 ] || [[ "$1" == -* ]]; then
echo "Regenerates packaging data for the tandoor-recipes package."
echo "Usage: $0 [git release tag]"
exit 1
fi
version="$1"
set -euo pipefail
if [ -z "$version" ]; then
version="$(wget -O- "${TOKEN_ARGS[@]}" "https://api.github.com/repos/TandoorRecipes/recipes/releases?per_page=1" | jq -r '.[0].tag_name')"
fi
package_src="https://raw.githubusercontent.com/TandoorRecipes/recipes/$version"
src_hash=$(nix-prefetch-github TandoorRecipes recipes --rev "${version}" | jq -r .sha256)
tmpdir=$(mktemp -d)
trap 'rm -rf "$tmpdir"' EXIT
pushd "$tmpdir"
wget "${TOKEN_ARGS[@]}" "$package_src/vue/yarn.lock"
yarn_hash=$(prefetch-yarn-deps yarn.lock)
popd
# Use friendlier hashes
src_hash=$(nix hash to-sri --type sha256 "$src_hash")
yarn_hash=$(nix hash to-sri --type sha256 "$yarn_hash")
sed -i -E -e "s#version = \".*\"#version = \"$version\"#" common.nix
sed -i -E -e "s#sha256 = \".*\"#sha256 = \"$src_hash\"#" common.nix
sed -i -E -e "s#yarnSha256 = \".*\"#yarnSha256 = \"$yarn_hash\"#" common.nix

View File

@ -144,14 +144,15 @@ stdenv.mkDerivation {
inherit gtk3;
buildInputs = [ wrapGAppsHook gtk3 adwaita-icon-theme ];
nativeBuildInputs = [ wrapGAppsHook ];
buildInputs = [ gtk3 adwaita-icon-theme ];
# "strip" after "patchelf" may break binaries.
# See: https://github.com/NixOS/patchelf/issues/10
dontStrip = true;
dontPatchELF = true;
patchPhase = ''
postPatch = ''
# Don't download updates from Mozilla directly
echo 'pref("app.update.auto", "false");' >> defaults/pref/channel-prefs.js
'';

View File

@ -1,5 +1,5 @@
{ stdenv, lib, makeDesktopItem, makeWrapper, makeBinaryWrapper, lndir, config
, fetchurl, zip, unzip, jq, xdg-utils, writeText
, jq, xdg-utils, writeText
## various stuff that can be plugged in
, ffmpeg_5, xorg, alsa-lib, libpulseaudio, libcanberra-gtk3, libglvnd, libnotify, opensc

View File

@ -0,0 +1,41 @@
{ lib, fetchurl, appimageTools }:
let
pname = "polypane";
version = "10.0.1";
src = fetchurl {
url = "https://github.com/firstversionist/${pname}/releases/download/v${version}/${pname}-${version}.AppImage";
name = "${pname}-${version}.AppImage";
sha256 = "eujv99L5svMhDIKHFOfm7sOwNZ4xiUaIsimfOf4BBik=";
};
appimageContents = appimageTools.extractType2 {
inherit pname src version;
};
in appimageTools.wrapType2 {
inherit pname src version;
multiPkgs = null;
extraPkgs = pkgs: appimageTools.defaultFhsEnvArgs.multiPkgs pkgs ++ [ pkgs.bash ];
extraInstallCommands = ''
ln -s $out/bin/${pname}-${version} $out/bin/${pname}
install -m 444 -D ${appimageContents}/${pname}.desktop $out/share/applications/${pname}.desktop
install -m 444 -D ${appimageContents}/${pname}.png \
$out/share/icons/hicolor/512x512/apps/${pname}.png
'';
meta = with lib; {
description = "Browser with unified devtools targeting responsability and acessibility";
longDescription = ''
The stand-alone browser for ambitious developers that want to build responsive,
accessible and performant websites in a fraction of the time it takes with other browsers.
'';
homepage = "https://polypane.app/";
maintainers = with maintainers; [ zoedsoupe ];
platforms = [ "x86_64-linux" ];
changelog = "https://polypane.app/docs/changelog/";
license = licenses.unfree;
};
}

View File

@ -48,6 +48,6 @@ buildGoModule rec {
downloadPage = "https://github.com/cert-manager/cert-manager";
license = licenses.asl20;
homepage = "https://cert-manager.io/";
maintainers = with maintainers; [ joshvanl superherointj ];
maintainers = with maintainers; [ joshvanl ];
};
}

View File

@ -65,7 +65,7 @@ in buildGoModule rec {
'';
homepage = "https://fluxcd.io";
license = licenses.asl20;
maintainers = with maintainers; [ bryanasdev000 jlesquembre superherointj ];
maintainers = with maintainers; [ bryanasdev000 jlesquembre ];
mainProgram = "flux";
};
}

View File

@ -0,0 +1,25 @@
{ lib
, buildGoModule
, fetchFromGitHub
}:
buildGoModule rec {
pname = "hashi-up";
version = "0.16.0";
src = fetchFromGitHub {
owner = "jsiebens";
repo = pname;
rev = "v${version}";
sha256 = "sha256-PdZ8X2pJ5TfT0bJ4/P/XbMTv+yyL5/1AxIFHnL/qNcg=";
};
vendorSha256 = "sha256-dircE3WlDPsPnF+0wT5RG/c4hC8qPs8NaSGM5wpvVlM=";
meta = with lib; {
description = "A lightweight utility to install HashiCorp Consul, Nomad, or Vault on any remote Linux host";
homepage = "https://github.com/jsiebens/hashi-up";
license = licenses.mit;
maintainers = with maintainers; [ lucperkins ];
};
}

View File

@ -42,7 +42,7 @@ buildGoModule rec {
description = "Istio configuration command line utility for service operators to debug and diagnose their Istio mesh";
homepage = "https://istio.io/latest/docs/reference/commands/istioctl";
license = licenses.asl20;
maintainers = with maintainers; [ superherointj bryanasdev000 veehaitch ];
maintainers = with maintainers; [ bryanasdev000 veehaitch ];
platforms = platforms.unix;
};
}

View File

@ -47,10 +47,10 @@ with lib;
# Those pieces of software we entirely ignore upstream's handling of, and just
# make sure they're in the path if desired.
let
k3sVersion = "1.25.0+k3s1"; # k3s git tag
k3sCommit = "26e9405767263a2915723cb72b1ffd7f50687a8f"; # k3s git commit at the above version
k3sRepoSha256 = "0rk0svqx26rn6qlvvyj5rsqb87195h1qcf84qmmvf874qwszwpgh";
k3sVendorSha256 = "sha256-YX/yLOLtDxGhRB4tic6oTli/qeeSnpP+f+S+sVXXDSs=";
k3sVersion = "1.25.2+k3s1"; # k3s git tag
k3sCommit = "53c268d8eb90ceea5e1c7865f89db5c7fb8763bc"; # k3s git commit at the above version
k3sRepoSha256 = "1w040bsrf981k19rwaaxjsv52pgzc0k77x083fkhysmrca565z0y";
k3sVendorSha256 = "sha256-8Xti08sjFk1WKimH/GEb99oqBdFO79WVCvYyXIWMpgo=";
# taken from ./manifests/traefik.yaml, extracted from '.spec.chart' https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/download#L9
# The 'patch' and 'minor' versions are currently hardcoded as single digits only, so ignore the trailing two digits. Weird, I know.
@ -77,7 +77,7 @@ let
description = "A lightweight Kubernetes distribution";
license = licenses.asl20;
homepage = "https://k3s.io";
maintainers = with maintainers; [ euank mic92 superherointj ];
maintainers = with maintainers; [ euank mic92 ];
platforms = platforms.linux;
};

View File

@ -7,8 +7,8 @@ WORKDIR=$(mktemp -d)
trap "rm -rf ${WORKDIR}" EXIT
NIXPKGS_ROOT="$(git rev-parse --show-toplevel)"/
NIXPKGS_K3S_FOLDER=$(cd $(dirname ${BASH_SOURCE[0]}); pwd -P)/
cd ${NIXPKGS_K3S_FOLDER}
NIXPKGS_K3S_PATH=$(cd $(dirname ${BASH_SOURCE[0]}); pwd -P)/
cd ${NIXPKGS_K3S_PATH}
LATEST_TAG_RAWFILE=${WORKDIR}/latest_tag.json
curl --silent ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \
@ -60,7 +60,7 @@ CRI_CTL_VERSION=$(grep github.com/kubernetes-sigs/cri-tools ${FILE_GO_MOD} \
| head -n1 | awk '{print $4}' | sed -e 's/"//g' -e 's/^v//')
setKV () {
sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" ${NIXPKGS_K3S_FOLDER}default.nix
sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" ${NIXPKGS_K3S_PATH}default.nix
}
setKV k3sVersion ${K3S_VERSION}
@ -91,3 +91,11 @@ else
echo "Update failed. K3S_VENDOR_SHA256 is empty."
exit 1
fi
# `git` flag here is to be used by local maintainers to speed up the bump process
if [ $# -eq 1 ] && [ "$1" = "git" ]; then
OLD_VERSION="$(nix-instantiate --eval -E "with import $NIXPKGS_ROOT. {}; k3s.version or (builtins.parseDrvName k3s.name).version" | tr -d '"')"
git switch -c "package-k3s-${K3S_VERSION}"
git add "$NIXPKGS_K3S_PATH"/default.nix
git commit -m "k3s: ${OLD_VERSION} -> ${K3S_VERSION}"
fi

View File

@ -9,13 +9,13 @@
buildGoModule rec {
pname = "k3sup";
version = "0.12.3";
version = "0.12.7";
src = fetchFromGitHub {
owner = "alexellis";
repo = "k3sup";
rev = version;
sha256 = "sha256-2S/VnxVb056aPxFd5LxtUdaNlosHLlu7Tl/RQbY/zpA=";
sha256 = "sha256-EOGYOxRhpPHOSo9ccCSvat9kq2SlujPqno8v7/zmuto=";
};
nativeBuildInputs = [ makeWrapper installShellFiles ];

View File

@ -53,6 +53,6 @@ buildGoModule rec {
downloadPage = "https://github.com/linkerd/linkerd2/";
homepage = "https://linkerd.io/";
license = licenses.asl20;
maintainers = with maintainers; [ bryanasdev000 Gonzih superherointj ];
maintainers = with maintainers; [ bryanasdev000 Gonzih ];
};
}

View File

@ -2,18 +2,18 @@
buildGoModule rec{
pname = "pinniped";
version = "0.19.0";
version = "0.20.0";
src = fetchFromGitHub {
owner = "vmware-tanzu";
repo = "pinniped";
rev = "v${version}";
sha256 = "sha256-VGvT0jj2f4+jiaPQkebL0GE+W4U8+RfSEsGr2sNBu2Q=";
sha256 = "sha256-JKZij9f6zlBzbYolxz03R5j95zKELVmEhX+QRTxF/cc=";
};
subPackages = "cmd/pinniped";
vendorSha256 = "sha256-7jQRUYJiRdYuAy3x+VPK4Nh5GF6ME7juloagm85oOVg=";
vendorSha256 = "sha256-szv/B7LG/In0j6MT6KCnuUfaCnK7RsJOLeuOtJ/ig9w=";
ldflags = [ "-s" "-w" ];

View File

@ -2,12 +2,12 @@
stdenv.mkDerivation rec {
pname = "signal-cli";
version = "0.10.11";
version = "0.11.0";
# Building from source would be preferred, but is much more involved.
src = fetchurl {
url = "https://github.com/AsamK/signal-cli/releases/download/v${version}/signal-cli-${version}-Linux.tar.gz";
sha256 = "sha256-tBgtSYKSoyze9qFWpy6IUdwMU9KCLZGEIpOkjLdHsHM=";
sha256 = "sha256-BIVeY4H5pn8hdjUkSDrlVMTXy5wuMskkSlccfgCWc6Q=";
};
buildInputs = lib.optionals stdenv.isLinux [ libmatthew_java dbus dbus_java ];

View File

@ -1,23 +0,0 @@
{ lib
, buildEnv
, makeWrapper
, ipfs-migrator-unwrapped
, ipfs-migrator-all-fs-repo-migrations
}:
buildEnv {
name = "ipfs-migrator-${ipfs-migrator-unwrapped.version}";
nativeBuildInputs = [ makeWrapper ];
paths = [ ipfs-migrator-unwrapped ];
pathsToLink = [ "/bin" ];
postBuild = ''
wrapProgram "$out/bin/fs-repo-migrations" \
--prefix PATH ':' '${lib.makeBinPath [ ipfs-migrator-all-fs-repo-migrations ]}'
'';
inherit (ipfs-migrator-unwrapped) meta;
}

View File

@ -20,13 +20,13 @@
stdenv.mkDerivation rec {
pname = "srain";
version = "1.4.1";
version = "1.5.0";
src = fetchFromGitHub {
owner = "SrainApp";
repo = "srain";
rev = version;
sha256 = "sha256-zkSePzmbi/QnUYJO/henkxfhuN+BXTXtKGPW7M2QyBY=";
sha256 = "sha256-AJ02S5+A/n8kO6lic8EbPYqNDmHL/tKbXhIkHTrcXOM=";
};
nativeBuildInputs = [

View File

@ -2,23 +2,23 @@
, stdenv
, symlinkJoin
, buildGoModule
, ipfs-migrator-unwrapped
, kubo-migrator-unwrapped
}:
# This package contains all the individual migrations in the bin directory.
# This is used by fs-repo-migrations and could also be used by IPFS itself
# This is used by fs-repo-migrations and could also be used by Kubo itself
# when starting it like this: ipfs daemon --migrate
let
fs-repo-common = pname: version: buildGoModule {
inherit pname version;
inherit (ipfs-migrator-unwrapped) src;
inherit (kubo-migrator-unwrapped) src;
sourceRoot = "source/${pname}";
vendorSha256 = null;
doCheck = false;
meta = ipfs-migrator-unwrapped.meta // {
meta = kubo-migrator-unwrapped.meta // {
mainProgram = pname;
description = "Individual migration for the filesystem repository of ipfs clients";
description = "Individual migration for the filesystem repository of Kubo clients";
};
};
@ -58,6 +58,6 @@ let
in
symlinkJoin {
name = "ipfs-migrator-all-fs-repo-migrations-${version}";
name = "kubo-migrator-all-fs-repo-migrations-${version}";
paths = all-migrations;
}

View File

@ -0,0 +1,23 @@
{ lib
, buildEnv
, makeWrapper
, kubo-migrator-unwrapped
, kubo-migrator-all-fs-repo-migrations
}:
buildEnv {
name = "kubo-migrator-${kubo-migrator-unwrapped.version}";
nativeBuildInputs = [ makeWrapper ];
paths = [ kubo-migrator-unwrapped ];
pathsToLink = [ "/bin" ];
postBuild = ''
wrapProgram "$out/bin/fs-repo-migrations" \
--prefix PATH ':' '${lib.makeBinPath [ kubo-migrator-all-fs-repo-migrations ]}'
'';
inherit (kubo-migrator-unwrapped) meta;
}

View File

@ -4,7 +4,7 @@
}:
buildGoModule rec {
pname = "ipfs-migrator";
pname = "kubo-migrator";
version = "2.0.2";
src = fetchFromGitHub {
@ -26,7 +26,7 @@ buildGoModule rec {
doCheck = false;
meta = with lib; {
description = "Migrations for the filesystem repository of ipfs clients";
description = "Migrations for the filesystem repository of Kubo clients";
homepage = "https://github.com/ipfs/fs-repo-migrations";
license = licenses.mit;
maintainers = with maintainers; [ Luflosi elitak ];

View File

@ -1,13 +1,13 @@
{ lib, buildGoModule, fetchurl, nixosTests, openssl, pkg-config }:
buildGoModule rec {
pname = "ipfs";
pname = "kubo";
version = "0.15.0"; # When updating, also check if the repo version changed and adjust repoVersion below
rev = "v${version}";
passthru.repoVersion = "12"; # Also update ipfs-migrator when changing the repo version
passthru.repoVersion = "12"; # Also update kubo-migrator when changing the repo version
# go-ipfs makes changes to it's source tarball that don't match the git source.
# Kubo makes changes to it's source tarball that don't match the git source.
src = fetchurl {
url = "https://github.com/ipfs/kubo/releases/download/${rev}/kubo-source.tar.gz";
hash = "sha256-GkOY1G2CKXbMbHXkw5v27HmfkJIl2nZOmjjZbzuaRWs=";
@ -15,10 +15,10 @@ buildGoModule rec {
# tarball contains multiple files/directories
postUnpack = ''
mkdir ipfs-src
mkdir kubo-src
shopt -s extglob
mv !(ipfs-src) ipfs-src || true
cd ipfs-src
mv !(kubo-src) kubo-src || true
cd kubo-src
'';
sourceRoot = ".";
@ -29,7 +29,7 @@ buildGoModule rec {
nativeBuildInputs = [ pkg-config ];
tags = [ "openssl" ];
passthru.tests.ipfs = nixosTests.ipfs;
passthru.tests.kubo = nixosTests.kubo;
vendorSha256 = null;
@ -57,6 +57,7 @@ buildGoModule rec {
homepage = "https://ipfs.io/";
license = licenses.mit;
platforms = platforms.unix;
mainProgram = "ipfs";
maintainers = with maintainers; [ fpletz ];
};
}

View File

@ -27,13 +27,13 @@
stdenv.mkDerivation rec {
pname = "beamerpresenter";
version = "0.2.3";
version = "0.2.3-1";
src = fetchFromGitHub {
owner = "stiglers-eponym";
repo = "BeamerPresenter";
rev = "v${version}";
sha256 = "1n9d0i0j67ymnghn8zkqf52c88zby6rqin8aicbw8cpn35fqf5a6";
rev = "dd41a00b3c6c8b881fa62945165c965634df66f0";
sha256 = "11yj1zl8hdnqbynkbyzg8kwyx1jl8c87x8f8qyllpk0s6cg304d0";
};
nativeBuildInputs = [

View File

@ -12,13 +12,13 @@ let
in stdenv.mkDerivation rec {
pname = "avogadro2";
version = "1.95.1";
version = "1.97.0";
src = fetchFromGitHub {
owner = "OpenChemistry";
repo = "avogadroapp";
rev = version;
sha256 = "9GnsxQsMuik6CPDmJbJPF0/+LXbZHf/JLevpSsMEoP0=";
hash = "sha256-gZpMgFSPz70QNfd8gH5Jb9RTxQfQalWx33LkgXLEqOQ=";
};
postUnpack = ''

View File

@ -11,13 +11,13 @@ let
in stdenv.mkDerivation rec {
pname = "cp2k";
version = "9.1.0";
version = "2022.2";
src = fetchFromGitHub {
owner = "cp2k";
repo = "cp2k";
rev = "v${version}";
hash = "sha256-P9RwZmrE1E0UTQVasQxWAqa3LBLyJNGeJo8T6u5WWcw=";
hash = "sha256-zDIsgPcLnA0ATJEN1vQClpkToqvIyW7KuXhyGiXJXDw=";
fetchSubmodules = true;
};

View File

@ -7,12 +7,11 @@
, netcdf
, glew
, glm
, freeglut
, libpng
, libxml2
, tk
, freetype
, msgpack
, qt5
}:
let
pname = "pymol";
@ -47,12 +46,11 @@ python3Packages.buildPythonApplication rec {
sha256 = "sha256-JdsgcVF1w1xFPZxVcyS+GcWg4a1Bd4SvxFOuSdlz9SM=";
};
buildInputs = [ python3Packages.numpy glew glm freeglut libpng libxml2 tk freetype msgpack netcdf ];
nativeBuildInputs = [ qt5.wrapQtAppsHook ];
buildInputs = [ python3Packages.numpy python3Packages.pyqt5 glew glm libpng libxml2 freetype msgpack netcdf ];
NIX_CFLAGS_COMPILE = "-I ${libxml2.dev}/include/libxml2";
hardeningDisable = [ "format" ];
setupPyBuildFlags = [ "--glut" ];
installPhase = ''
python setup.py install --home="$out"
runHook postInstall
@ -60,13 +58,17 @@ python3Packages.buildPythonApplication rec {
postInstall = with python3Packages; ''
wrapProgram $out/bin/pymol \
--prefix PYTHONPATH : ${lib.makeSearchPathOutput "lib" python3.sitePackages [ Pmw tkinter ]}
--prefix PYTHONPATH : ${lib.makeSearchPathOutput "lib" python3.sitePackages [ pyqt5 pyqt5.pyqt5_sip ]}
mkdir -p "$out/share/icons/"
ln -s ../../lib/python/pymol/pymol_path/data/pymol/icons/icon2.svg "$out/share/icons/pymol.svg"
cp -r "${desktopItem}/share/applications/" "$out/share/"
'';
preFixup = ''
wrapQtApp "$out/bin/pymol"
'';
meta = with lib; {
broken = stdenv.isDarwin;
inherit description;

View File

@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "librepcb";
version = "0.1.6";
version = "0.1.7";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = version;
sha256 = "0gzf3asdgdicpikb412134ybqnbbark948yrfhvba2w4i9cwbk2r";
sha256 = "sha256-zqvvc3CHqdRWVUFt4BkH5Vq50/FKNvMNW2NvGyfWwFM=";
fetchSubmodules = true;
};

View File

@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "verilator";
version = "4.224";
version = "4.226";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
sha256 = "sha256-Kn44yWkNcOLkc79HLDTxx5zQn/vqft+hhbvsoUAKR7I=";
sha256 = "sha256-X6Kwpcm+ugu+4gVkWfsqdCPFTESHzJ1jjCPnGqE3/vo=";
};
enableParallelBuilding = true;

View File

@ -0,0 +1,22 @@
{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config }:
stdenv.mkDerivation rec {
name = "readstat";
version = "1.1.8";
src = fetchFromGitHub {
owner = "WizardMac";
repo = "ReadStat";
rev = "v${version}";
sha256 = "1r04lq45h1yn34v1mgfiqjfzyaqv4axqlby0nkandamcsqyhc7y4";
};
nativeBuildInputs = [ pkg-config autoreconfHook ];
meta = {
homepage = "https://github.com/WizardMac/ReadStat";
description = "Command-line tool (+ C library) for converting SAS, Stata, and SPSS files";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ swflint ];
};
}

View File

@ -166,7 +166,7 @@ stdenv.mkDerivation rec {
url = "https://www.desy.de/~twhite/${pname}/${pname}-${version}.tar.gz";
sha256 = "0i9d5ggalic7alj97dxjdys7010kxhm2cb4lwakvigl023j8ms79";
};
nativeBuildInputs = [ meson pkg-config ninja flex bison doxygen opencl-headers ]
nativeBuildInputs = [ meson pkg-config ninja flex bison doxygen opencl-headers makeWrapper ]
++ lib.optionals withGui [ wrapGAppsHook ];
buildInputs = [
hdf5

View File

@ -4,6 +4,7 @@
, libxkbcommon, libXi, libXext, wayland-protocols, wayland
, lcms2
, librsync
, openssl
, installShellFiles
, dbus
, darwin
@ -27,14 +28,14 @@
with python3Packages;
buildPythonApplication rec {
pname = "kitty";
version = "0.25.2";
version = "0.26.2";
format = "other";
src = fetchFromGitHub {
owner = "kovidgoyal";
repo = "kitty";
rev = "v${version}";
sha256 = "sha256-o/vVz1lPfsgkzbYjYhIrScCAROmVdiPsNwjW/m5n7Us=";
sha256 = "sha256-IqXRkKzOfqWolH/534nmM2R/69olhFOk6wbbF4ifRd0=";
};
buildInputs = [
@ -42,6 +43,7 @@ buildPythonApplication rec {
ncurses
lcms2
librsync
openssl.dev
] ++ lib.optionals stdenv.isDarwin [
Cocoa
CoreGraphics
@ -77,6 +79,9 @@ buildPythonApplication rec {
outputs = [ "out" "terminfo" "shell_integration" ];
patches = [
# Gets `test_ssh_env_vars` to pass when `bzip2` is in the output of `env`.
./fix-test_ssh_env_vars.patch
# Needed on darwin
# Gets `test_ssh_shell_integration` to pass for `zsh` when `compinit` complains about
@ -98,14 +103,18 @@ buildPythonApplication rec {
--update-check-interval=0 \
--shell-integration=enabled\ no-rc
'';
darwinOptions = ''
--disable-link-time-optimization \
${commonOptions}
'';
in ''
runHook preBuild
${if stdenv.isDarwin then ''
${python.interpreter} setup.py kitty.app \
--disable-link-time-optimization \
${commonOptions}
make man
${python.interpreter} setup.py build ${darwinOptions}
make docs
${python.interpreter} setup.py kitty.app ${darwinOptions}
'' else ''
${python.interpreter} setup.py build-launcher
${python.interpreter} setup.py linux-package \
--egl-library='${lib.getLib libGL}/lib/libEGL.so.1' \
--startup-notification-library='${libstartup_notification}/lib/libstartup-notification-1.so' \
@ -126,7 +135,7 @@ buildPythonApplication rec {
];
# skip failing tests due to darwin sandbox
preCheck = if stdenv.isDarwin then ''
preCheck = lib.optionalString stdenv.isDarwin ''
substituteInPlace kitty_tests/file_transmission.py \
--replace test_file_get dont_test_file_get \
--replace test_path_mapping_receive dont_test_path_mapping_receive
@ -138,15 +147,9 @@ buildPythonApplication rec {
--replace test_ssh_connection_data dont_test_ssh_connection_data
substituteInPlace kitty_tests/fonts.py \
--replace 'class Rendering(BaseTest)' 'class Rendering'
'' else "";
'';
checkPhase =
let buildBinPath =
if stdenv.isDarwin
then "kitty.app/Contents/MacOS"
else "linux-package/bin";
in
''
checkPhase = ''
runHook preCheck
# Fontconfig error: Cannot load default config file: No such file: (null)
@ -155,7 +158,8 @@ buildPythonApplication rec {
# Required for `test_ssh_shell_integration` to pass.
export TERM=kitty
env PATH="${buildBinPath}:$PATH" ${python.interpreter} test.py
make test
runHook postCheck
'';
installPhase = ''

View File

@ -0,0 +1,13 @@
diff --git a/kitty_tests/ssh.py b/kitty_tests/ssh.py
index 7b3bdbeb..710aeceb 100644
--- a/kitty_tests/ssh.py
+++ b/kitty_tests/ssh.py
@@ -272,8 +272,6 @@ def check_bootstrap(self, sh, home_dir, login_shell='', SHELL_INTEGRATION_VALUE=
def check_untar_or_fail():
q = pty.screen_contents()
- if 'bzip2' in q:
- raise ValueError('Untarring failed with screen contents:\n' + q)
return 'UNTAR_DONE' in q
pty.wait_till(check_untar_or_fail)
self.assertTrue(os.path.exists(os.path.join(home_dir, '.terminfo/kitty.terminfo')))

View File

@ -0,0 +1,33 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook, gtk3, vte, lua5_3, pcre2 }:
stdenv.mkDerivation rec {
pname = "tym";
version = "3.3.0";
src = fetchFromGitHub {
owner = "endaaman";
repo = "${pname}";
rev = "${version}";
sha256 = "sha256-ufIYJgbHmSJJbnx4hyDx0DmIjaGCxKXtiekcXcyka14=";
};
nativeBuildInputs = [
pkg-config
autoreconfHook
];
buildInputs = [
gtk3
vte
lua5_3
pcre2
];
meta = with lib; {
description = "Lua-configurable terminal emulator";
homepage = "https://github.com/endaaman/tym";
license = licenses.mit;
maintainers = [ maintainers.wesleyjrz ];
platforms = platforms.linux;
};
}

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "gh";
version = "2.16.1";
version = "2.17.0";
src = fetchFromGitHub {
owner = "cli";
repo = "cli";
rev = "v${version}";
sha256 = "sha256-I8/vO7SfZr4JVbFNBgIaP7CwHn7q6CMIZMjLBsTLY2Q=";
sha256 = "sha256-2GDhDmk7AVb2DGxibIQM0b7hj2iGvjeLJ4+vAZggxtk=";
};
vendorSha256 = "sha256-TVMFOit2pi+ZVcppzs0iKNXluDW9ZQDH2d7cPSzg+ak=";

View File

@ -0,0 +1,25 @@
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, pkg-config, glm, libGL }:
buildKodiBinaryAddon rec {
pname = "visualization-waveform";
namespace = "visualization.waveform";
version = "19.0.2";
src = fetchFromGitHub {
owner = "xbmc";
repo = namespace;
rev = "${version}-${rel}";
hash = "sha256-IQLW4CDNtt/ptE679hnoXbharq61Ru9S2m7QbJLtNSI=";
};
extraBuildInputs = [ pkg-config libGL ];
propagatedBuildInputs = [ glm ];
meta = with lib; {
homepage = "https://github.com/xbmc/visualization.waveform";
description = "Waveform visualization for kodi";
platforms = platforms.all;
license = licenses.gpl2Only;
maintainers = teams.kodi.members;
};
}

View File

@ -4,8 +4,8 @@
, appstream-glib
, desktop-file-utils
, glib
, gobject-introspection
, gst_all_1
, pipewire
, gtk4
, libadwaita
, libpulseaudio
@ -13,27 +13,26 @@
, meson
, ninja
, pkg-config
, python3
, rustPlatform
, wayland
, wrapGAppsHook
, wrapGAppsHook4
}:
stdenv.mkDerivation rec {
pname = "kooha";
version = "2.0.1";
version = "2.2.2";
src = fetchFromGitHub {
owner = "SeaDve";
repo = "Kooha";
rev = "v${version}";
sha256 = "05ynpwjdpl7zp9f17zhhvb59rbz3gd7hc0amla1g85ldgfxbgl00";
hash = "sha256-HgouIMbwpmR/K1hPU7QDzeEtyi5hC66huvInkJFLS2w=";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
hash = "sha256:16zf6vb001z7xdv2g4kpmb2vqsmaql2cpsx1rl9zrfhpl2z6frs9";
hash = "sha256-rdxD9pys11QcUtufcZ/zCrviytyc8hIXJfsXg2JoaKE=";
};
nativeBuildInputs = [
@ -41,18 +40,15 @@ stdenv.mkDerivation rec {
desktop-file-utils
meson
ninja
python3
pkg-config
rustPlatform.cargoSetupHook
rustPlatform.rust.cargo
rustPlatform.rust.rustc
wayland
wrapGAppsHook
wrapGAppsHook4
];
buildInputs = [
glib
gobject-introspection
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-ugly
@ -60,18 +56,10 @@ stdenv.mkDerivation rec {
libadwaita
libpulseaudio
librsvg
wayland
pipewire
];
propagatedBuildInputs = [ python3.pkgs.pygobject3 ];
strictDeps = false;
# Fixes https://github.com/NixOS/nixpkgs/issues/31168
postPatch = ''
patchShebangs build-aux/meson_post_install.py
substituteInPlace meson.build --replace '>= 1.0.0-alpha.1' '>= 1.0.0'
'';
installCheckPhase = ''
$out/bin/kooha --help
'';

View File

@ -6,11 +6,12 @@
python3Packages.buildPythonApplication rec {
pname = "streamlink";
version = "3.2.0";
version = "5.0.1";
format = "pyproject";
src = python3Packages.fetchPypi {
inherit pname version;
sha256 = "sha256-l3DS2DhExTeKc+FBMNy3YKvIVlZsqgpB/FuXoN7V2SY=";
hash = "sha256-PKRioPBhTV6i3ckQgcKuhQFmpBvUQE4o3FLej8qx4mM=";
};
checkInputs = with python3Packages; [
@ -20,6 +21,10 @@ python3Packages.buildPythonApplication rec {
freezegun
];
nativeBuildInputs = with python3Packages; [
versioningit
];
propagatedBuildInputs = (with python3Packages; [
isodate
lxml

View File

@ -50,7 +50,7 @@
homepage = "http://www.tvdr.de/";
description = "Video Disc Recorder";
maintainers = [ maintainers.ck3d ];
platforms = [ "i686-linux" "x86_64-linux" ];
platforms = platforms.linux;
license = licenses.gpl2Plus;
};
}

View File

@ -32,9 +32,11 @@ in {
buildInputs = [ vdr ];
src = fetchurl {
url = "http://www.saunalahti.fi/~rahrenbe/vdr/femon/files/${pname}-${version}.tgz";
sha256 = "1hra1xslj8s68zbyr8zdqp8yap0aj1p6rxyc6cwy1j122kwcnapp";
src = fetchFromGitHub {
repo = "vdr-plugin-femon";
owner = "rofafor";
sha256 = "sha256-0qBMYgNKk7N9Bj8fAoOokUo+G9gfj16N5e7dhoKRBqs=";
rev = "v${version}";
};
postPatch = "substituteInPlace Makefile --replace /bin/true true";
@ -42,23 +44,23 @@ in {
makeFlags = [ "DESTDIR=$(out)" ];
meta = with lib; {
homepage = "http://www.saunalahti.fi/~rahrenbe/vdr/femon/";
inherit (src.meta) homepage;
description = "DVB Frontend Status Monitor plugin for VDR";
maintainers = [ maintainers.ck3d ];
license = licenses.gpl2;
platforms = [ "i686-linux" "x86_64-linux" ];
inherit (vdr.meta) platforms;
};
};
markad = stdenv.mkDerivation rec {
pname = "vdr-markad";
version = "3.0.25";
version = "3.0.26";
src = fetchFromGitHub {
repo = "vdr-plugin-markad";
owner = "kfb77";
sha256 = "sha256-m7cUAxwXj62spelHYH6uTIoViSavSR0d4psr7+KLJg8=";
sha256 = "sha256-0J6XeLgr9IZSWsheQZWVNRLIxp8iyCvR9Y0z/yrbTnI=";
rev = "v${version}";
};
@ -88,11 +90,11 @@ in {
installFlags = buildFlags;
meta = with lib; {
homepage = "https://github.com/kfb77/vdr-plugin-markad";
inherit (src.meta) homepage;
description = "MarkAd marks advertisements in VDR recordings.";
maintainers = [ maintainers.ck3d ];
license = licenses.gpl2;
platforms = [ "i686-linux" "x86_64-linux" ];
inherit (vdr.meta) platforms;
};
};
@ -101,8 +103,9 @@ in {
pname = "vdr-epgsearch";
version = "2.4.1";
src = fetchgit {
url = "git://projects.vdr-developer.org/vdr-plugin-epgsearch.git";
src = fetchFromGitHub {
repo = "vdr-plugin-epgsearch";
owner = "vdr-projects";
sha256 = "sha256-UlbPCkUFN0Gyxjw9xq2STFTDZRVcPPNjadSQd4o2o9U=";
rev = "v${version}";
};
@ -136,18 +139,18 @@ in {
outputs = [ "out" "man" ];
meta = with lib; {
homepage = "http://winni.vdr-developer.org/epgsearch";
inherit (src.meta) homepage;
description = "Searchtimer and replacement of the VDR program menu";
maintainers = [ maintainers.ck3d ];
license = licenses.gpl2;
platforms = [ "i686-linux" "x86_64-linux" ];
inherit (vdr.meta) platforms;
};
};
vnsiserver = stdenv.mkDerivation rec {
pname = "vdr-vnsiserver";
version = "1.8.0";
version = "1.8.1";
buildInputs = [ vdr ];
@ -155,17 +158,17 @@ in {
src = fetchFromGitHub {
repo = "vdr-plugin-vnsiserver";
owner = "FernetMenta";
rev = "v${version}";
sha256 = "0n7idpxqx7ayd63scl6xwdx828ik4kb2mwz0c30cfjnmnxxd45lw";
owner = "vdr-projects";
rev = version;
sha256 = "sha256-1C0Z7NoU+FNch4BhrAcbJdzVvGuH1YDaxJ+9PflR78E=";
};
meta = with lib; {
homepage = "https://github.com/FernetMenta/vdr-plugin-vnsiserver";
inherit (src.meta) homepage;
description = "VDR plugin to handle KODI clients.";
maintainers = [ maintainers.ck3d ];
license = licenses.gpl2;
platforms = [ "i686-linux" "x86_64-linux" ];
inherit (vdr.meta) platforms;
};
};
@ -201,7 +204,7 @@ in {
description = "VDR Text2Skin Plugin";
maintainers = [ maintainers.ck3d ];
license = licenses.gpl2;
platforms = [ "i686-linux" "x86_64-linux" ];
inherit (vdr.meta) platforms;
};
};
@ -222,11 +225,11 @@ in {
installFlags = [ "DESTDIR=$(out)" ];
meta = with lib; {
homepage = "https://github.com/jowi24/vdr-fritz";
inherit (src.meta) homepage;
description = "A plugin for VDR to access AVMs Fritz Box routers";
maintainers = [ maintainers.ck3d ];
license = licenses.gpl2;
platforms = [ "i686-linux" "x86_64-linux" ];
inherit (vdr.meta) platforms;
};
};
}

View File

@ -12,12 +12,12 @@
}:
stdenv.mkDerivation rec {
pname = "vdr-softhddevice";
version = "1.9.0";
version = "1.9.2";
src = fetchFromGitHub {
owner = "ua0lnj";
repo = "vdr-plugin-softhddevice";
sha256 = "sha256-IqG1Jr+fV4MMyTTOUGY34HNqS8qvAH+CSi2IEyVGVFo=";
sha256 = "sha256-2kh8qMxaAjekvgjMVRmm1nPzlN2wjY/6qYjFyo6CLlg=";
rev = "v${version}";
};
@ -40,11 +40,11 @@ stdenv.mkDerivation rec {
'';
meta = with lib; {
homepage = "https://github.com/ua0lnj/vdr-plugin-softhddevice";
inherit (src.meta) homepage;
description = "VDR SoftHDDevice Plug-in";
maintainers = [ maintainers.ck3d ];
license = licenses.gpl2;
platforms = [ "i686-linux" "x86_64-linux" ];
inherit (vdr.meta) platforms;
};
}

View File

@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
];
meta = with lib;{
homepage = "https://github.com/vdr-projects/vdr-plugin-streamdev";
inherit (src.meta) homepage;
description = "This PlugIn is a VDR implementation of the VTP (Video Transfer Protocol) Version 0.0.3 (see file PROTOCOL) and a basic HTTP Streaming Protocol.";
maintainers = [ maintainers.ck3d ];
license = licenses.gpl2;

View File

@ -0,0 +1,35 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
}:
stdenv.mkDerivation rec {
pname = "canokey-qemu";
version = "unstable-2022-06-23";
rev = "b70af31229f1858089c3366f71b8d771de4a1e84";
src = fetchFromGitHub {
owner = "canokeys";
repo = "canokey-qemu";
inherit rev;
fetchSubmodules = true;
hash = "sha256-VJb59K/skx+DhoJs5qGUu070hAjQZC2Z6hAMXuX0bMw=";
};
postPatch = ''
substituteInPlace canokey-core/CMakeLists.txt \
--replace "COMMAND git describe --always --tags --long --abbrev=8 --dirty >>" "COMMAND echo '$rev' >>"
'';
outputs = [ "out" "dev" ];
nativeBuildInputs = [ cmake ];
meta = with lib; {
homepage = "https://github.com/canokeys/canokey-qemu";
description = "CanoKey QEMU Virt Card";
license = licenses.asl20;
maintainers = with maintainers; [ oxalica ];
};
}

View File

@ -26,6 +26,7 @@
, smbdSupport ? false, samba
, tpmSupport ? true
, uringSupport ? stdenv.isLinux, liburing
, canokeySupport ? false, canokey-qemu
, hostCpuOnly ? false
, hostCpuTargets ? (if hostCpuOnly
then (lib.optional stdenv.isx86_64 "i386-softmmu"
@ -79,7 +80,8 @@ stdenv.mkDerivation rec {
++ lib.optionals virglSupport [ virglrenderer ]
++ lib.optionals libiscsiSupport [ libiscsi ]
++ lib.optionals smbdSupport [ samba ]
++ lib.optionals uringSupport [ liburing ];
++ lib.optionals uringSupport [ liburing ]
++ lib.optionals canokeySupport [ canokey-qemu ];
dontUseMesonConfigure = true; # meson's configurePhase isn't compatible with qemu build
@ -161,7 +163,8 @@ stdenv.mkDerivation rec {
++ lib.optional tpmSupport "--enable-tpm"
++ lib.optional libiscsiSupport "--enable-libiscsi"
++ lib.optional smbdSupport "--smbd=${samba}/bin/smbd"
++ lib.optional uringSupport "--enable-linux-io-uring";
++ lib.optional uringSupport "--enable-linux-io-uring"
++ lib.optional canokeySupport "--enable-canokey";
dontWrapGApps = true;

View File

@ -0,0 +1,19 @@
{ lib
, genericUpdater
, common-updater-scripts
}:
{ pname ? null
, version ? null
, attrPath ? null
, ignoredVersions ? ""
, rev-prefix ? ""
, odd-unstable ? false
, patchlevel-unstable ? false
, url ? null
}:
genericUpdater {
inherit pname version attrPath ignoredVersions rev-prefix odd-unstable patchlevel-unstable;
versionLister = "${common-updater-scripts}/bin/list-directory-versions ${lib.optionalString (url != null) "--url=${lib.escapeShellArg url}"}";
}

View File

@ -62,7 +62,7 @@ let
return 1
}
tags=$($version_lister --pname=$pname --attr-path=$attr_path --file="${fileForGitCommands}") || exit 1
tags=$(sh -c "$version_lister --pname=$pname --attr-path=$attr_path --file=\"${fileForGitCommands}\"") || exit 1
# print available tags
for tag in $tags; do

View File

@ -15,5 +15,5 @@
genericUpdater {
inherit pname version attrPath ignoredVersions rev-prefix odd-unstable patchlevel-unstable;
versionLister = "${common-updater-scripts}/bin/list-archive-two-levels-versions ${lib.optionalString (url != null) "--url=${url}"}";
versionLister = "${common-updater-scripts}/bin/list-archive-two-levels-versions ${lib.optionalString (url != null) "--url=${lib.escapeShellArg url}"}";
}

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