Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2024-11-17 18:04:29 +00:00 committed by GitHub
commit 8531fec3b9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
81 changed files with 15794 additions and 2120 deletions

View File

@ -755,25 +755,63 @@ Used with Subversion. Expects `url` to a Subversion directory, `rev`, and `hash`
Used with Git. Expects `url` to a Git repo, `rev`, and `hash`. `rev` in this case can be full the git commit id (SHA1 hash) or a tag name like `refs/tags/v1.0`. Used with Git. Expects `url` to a Git repo, `rev`, and `hash`. `rev` in this case can be full the git commit id (SHA1 hash) or a tag name like `refs/tags/v1.0`.
Additionally, the following optional arguments can be given: `fetchSubmodules = true` makes `fetchgit` also fetch the submodules of a repository. If `deepClone` is set to true, the entire repository is cloned as opposing to just creating a shallow clone. `deepClone = true` also implies `leaveDotGit = true` which means that the `.git` directory of the clone won't be removed after checkout. Additionally, the following optional arguments can be given:
If only parts of the repository are needed, `sparseCheckout` can be used. This will prevent git from fetching unnecessary blobs from server, see [git sparse-checkout](https://git-scm.com/docs/git-sparse-checkout) for more information: *`fetchSubmodules`* (Boolean)
```nix : Whether to also fetch the submodules of a repository.
{ stdenv, fetchgit }:
stdenv.mkDerivation { *`fetchLFS`* (Boolean)
name = "hello";
src = fetchgit { : Whether to fetch LFS objects.
url = "https://...";
sparseCheckout = [ *`postFetch`* (String)
"directory/to/be/included"
"another/directory" : Shell code executed after the file has been fetched successfully.
]; This can do things like check or transform the file.
hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
}; *`leaveDotGit`* (Boolean)
}
``` : Whether the `.git` directory of the clone should *not* be removed after checkout.
Be warned though that the git repository format is not stable and this flag is therefore not suitable for actual use by itself.
Only use this for testing purposes or in conjunction with removing the `.git` directory in `postFetch`.
*`deepClone`* (Boolean)
: Clone the entire repository as opposing to just creating a shallow clone.
This implies `leaveDotGit`.
*`sparseCheckout`* (List of String)
: Prevent git from fetching unnecessary blobs from server.
This is useful if only parts of the repository are needed.
::: {.example #ex-fetchgit-sparseCheckout}
# Use `sparseCheckout` to only include some directories:
```nix
{ stdenv, fetchgit }:
stdenv.mkDerivation {
name = "hello";
src = fetchgit {
url = "https://...";
sparseCheckout = [
"directory/to/be/included"
"another/directory"
];
hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
};
}
```
:::
See [git sparse-checkout](https://git-scm.com/docs/git-sparse-checkout) for more information.
Some additional parameters for niche use-cases can be found listed in the function parameters in the declaration of `fetchgit`: `pkgs/build-support/fetchgit/default.nix`.
Future parameters additions might also happen without immediately being documented here.
## `fetchfossil` {#fetchfossil} ## `fetchfossil` {#fetchfossil}

View File

@ -139,6 +139,8 @@
- [zeronsd](https://github.com/zerotier/zeronsd), a DNS server for ZeroTier users. Available with [services.zeronsd.servedNetworks](#opt-services.zeronsd.servedNetworks). - [zeronsd](https://github.com/zerotier/zeronsd), a DNS server for ZeroTier users. Available with [services.zeronsd.servedNetworks](#opt-services.zeronsd.servedNetworks).
- [agorakit](https://github.com/agorakit/agorakit), an organization tool for citizens' collectives. Available with [services.agorakit](#opt-services.agorakit.enable).
- [Collabora Online](https://www.collaboraonline.com/), a collaborative online office suite based on LibreOffice technology. Available as [services.collabora-online](options.html#opt-services.collabora-online.enable). - [Collabora Online](https://www.collaboraonline.com/), a collaborative online office suite based on LibreOffice technology. Available as [services.collabora-online](options.html#opt-services.collabora-online.enable).
- [wg-access-server](https://github.com/freifunkMUC/wg-access-server/), an all-in-one WireGuard VPN solution with a WebUI for connecting devices. Available as [services.wg-access-server](#opt-services.wg-access-server.enable). - [wg-access-server](https://github.com/freifunkMUC/wg-access-server/), an all-in-one WireGuard VPN solution with a WebUI for connecting devices. Available as [services.wg-access-server](#opt-services.wg-access-server.enable).

View File

@ -1393,6 +1393,7 @@
./services/wayland/cage.nix ./services/wayland/cage.nix
./services/wayland/hypridle.nix ./services/wayland/hypridle.nix
./services/web-apps/akkoma.nix ./services/web-apps/akkoma.nix
./services/web-apps/agorakit.nix
./services/web-apps/alps.nix ./services/web-apps/alps.nix
./services/web-apps/anuko-time-tracker.nix ./services/web-apps/anuko-time-tracker.nix
./services/web-apps/artalk.nix ./services/web-apps/artalk.nix

View File

@ -36,9 +36,9 @@ in
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
environment.etc."g810-led/profile" = lib.mkIf (cfg.profile != null) cfg.profile; environment.etc."g810-led/profile".text = lib.mkIf (cfg.profile != null) cfg.profile;
services.udev.packages = [ config.package ]; services.udev.packages = [ cfg.package ];
}; };
meta.maintainers = with lib.maintainers; [ GaetanLepage ]; meta.maintainers = with lib.maintainers; [ GaetanLepage ];

View File

@ -0,0 +1,482 @@
{
config,
lib,
pkgs,
...
}:
with lib;
let
cfg = config.services.agorakit;
agorakit = pkgs.agorakit.override { dataDir = cfg.dataDir; };
db = cfg.database;
mail = cfg.mail;
user = cfg.user;
group = cfg.group;
# shell script for local administration
artisan = pkgs.writeScriptBin "agorakit" ''
#! ${pkgs.runtimeShell}
cd ${agorakit}
sudo() {
if [[ "$USER" != ${user} ]]; then
exec /run/wrappers/bin/sudo -u ${user} "$@"
else
exec "$@"
fi
}
sudo ${lib.getExe pkgs.php} artisan "$@"
'';
tlsEnabled = cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME;
in
{
options.services.agorakit = {
enable = mkEnableOption "agorakit";
user = mkOption {
default = "agorakit";
description = "User agorakit runs as.";
type = types.str;
};
group = mkOption {
default = "agorakit";
description = "Group agorakit runs as.";
type = types.str;
};
appKeyFile = mkOption {
description = ''
A file containing the Laravel APP_KEY - a 32 character long,
base64 encoded key used for encryption where needed. Can be
generated with <code>head -c 32 /dev/urandom | base64</code>.
'';
example = "/run/keys/agorakit-appkey";
type = types.path;
};
hostName = lib.mkOption {
type = lib.types.str;
default =
if config.networking.domain != null then config.networking.fqdn else config.networking.hostName;
defaultText = lib.literalExpression "config.networking.fqdn";
example = "agorakit.example.com";
description = ''
The hostname to serve agorakit on.
'';
};
appURL = mkOption {
description = ''
The root URL that you want to host agorakit on. All URLs in agorakit will be generated using this value.
If you change this in the future you may need to run a command to update stored URLs in the database.
Command example: <code>php artisan agorakit:update-url https://old.example.com https://new.example.com</code>
'';
default = "http${lib.optionalString tlsEnabled "s"}://${cfg.hostName}";
defaultText = ''http''${lib.optionalString tlsEnabled "s"}://''${cfg.hostName}'';
example = "https://example.com";
type = types.str;
};
dataDir = mkOption {
description = "agorakit data directory";
default = "/var/lib/agorakit";
type = types.path;
};
database = {
host = mkOption {
type = types.str;
default = "localhost";
description = "Database host address.";
};
port = mkOption {
type = types.port;
default = 3306;
description = "Database host port.";
};
name = mkOption {
type = types.str;
default = "agorakit";
description = "Database name.";
};
user = mkOption {
type = types.str;
default = user;
defaultText = lib.literalExpression "user";
description = "Database username.";
};
passwordFile = mkOption {
type = with types; nullOr path;
default = null;
example = "/run/keys/agorakit-dbpassword";
description = ''
A file containing the password corresponding to
<option>database.user</option>.
'';
};
createLocally = mkOption {
type = types.bool;
default = true;
description = "Create the database and database user locally.";
};
};
mail = {
driver = mkOption {
type = types.enum [
"smtp"
"sendmail"
];
default = "smtp";
description = "Mail driver to use.";
};
host = mkOption {
type = types.str;
default = "localhost";
description = "Mail host address.";
};
port = mkOption {
type = types.port;
default = 1025;
description = "Mail host port.";
};
fromName = mkOption {
type = types.str;
default = "agorakit";
description = "Mail \"from\" name.";
};
from = mkOption {
type = types.str;
default = "mail@agorakit.com";
description = "Mail \"from\" email.";
};
user = mkOption {
type = with types; nullOr str;
default = null;
example = "agorakit";
description = "Mail username.";
};
passwordFile = mkOption {
type = with types; nullOr path;
default = null;
example = "/run/keys/agorakit-mailpassword";
description = ''
A file containing the password corresponding to
<option>mail.user</option>.
'';
};
encryption = mkOption {
type = with types; nullOr (enum [ "tls" ]);
default = null;
description = "SMTP encryption mechanism to use.";
};
};
maxUploadSize = mkOption {
type = types.str;
default = "18M";
example = "1G";
description = "The maximum size for uploads (e.g. images).";
};
poolConfig = mkOption {
type =
with types;
attrsOf (oneOf [
str
int
bool
]);
default = {
"pm" = "dynamic";
"pm.max_children" = 32;
"pm.start_servers" = 2;
"pm.min_spare_servers" = 2;
"pm.max_spare_servers" = 4;
"pm.max_requests" = 500;
};
description = ''
Options for the agorakit PHP pool. See the documentation on <literal>php-fpm.conf</literal>
for details on configuration directives.
'';
};
nginx = mkOption {
type = types.submodule (
recursiveUpdate (import ../web-servers/nginx/vhost-options.nix {
inherit config lib;
}) { }
);
default = { };
example = ''
{
serverAliases = [
"agorakit.''${config.networking.domain}"
];
# To enable encryption and let let's encrypt take care of certificate
forceSSL = true;
enableACME = true;
}
'';
description = ''
With this option, you can customize the nginx virtualHost settings.
'';
};
config = mkOption {
type =
with types;
attrsOf (
nullOr (
either
(oneOf [
bool
int
port
path
str
])
(submodule {
options = {
_secret = mkOption {
type = nullOr str;
description = ''
The path to a file containing the value the
option should be set to in the final
configuration file.
'';
};
};
})
)
);
default = { };
example = ''
{
ALLOWED_IFRAME_HOSTS = "https://example.com";
AUTH_METHOD = "oidc";
OIDC_NAME = "MyLogin";
OIDC_DISPLAY_NAME_CLAIMS = "name";
OIDC_CLIENT_ID = "agorakit";
OIDC_CLIENT_SECRET = {_secret = "/run/keys/oidc_secret"};
OIDC_ISSUER = "https://keycloak.example.com/auth/realms/My%20Realm";
OIDC_ISSUER_DISCOVER = true;
}
'';
description = ''
Agorakit configuration options to set in the
<filename>.env</filename> file.
Refer to <link xlink:href="https://github.com/agorakit/agorakit"/>
for details on supported values.
Settings containing secret data should be set to an attribute
set containing the attribute <literal>_secret</literal> - a
string pointing to a file containing the value the option
should be set to. See the example to get a better picture of
this: in the resulting <filename>.env</filename> file, the
<literal>OIDC_CLIENT_SECRET</literal> key will be set to the
contents of the <filename>/run/keys/oidc_secret</filename>
file.
'';
};
};
config = mkIf cfg.enable {
assertions = [
{
assertion = db.createLocally -> db.user == user;
message = "services.agorakit.database.user must be set to ${user} if services.agorakit.database.createLocally is set true.";
}
{
assertion = db.createLocally -> db.passwordFile == null;
message = "services.agorakit.database.passwordFile cannot be specified if services.agorakit.database.createLocally is set to true.";
}
];
services.agorakit.config = {
APP_ENV = "production";
APP_KEY._secret = cfg.appKeyFile;
APP_URL = cfg.appURL;
DB_HOST = db.host;
DB_PORT = db.port;
DB_DATABASE = db.name;
DB_USERNAME = db.user;
MAIL_DRIVER = mail.driver;
MAIL_FROM_NAME = mail.fromName;
MAIL_FROM = mail.from;
MAIL_HOST = mail.host;
MAIL_PORT = mail.port;
MAIL_USERNAME = mail.user;
MAIL_ENCRYPTION = mail.encryption;
DB_PASSWORD._secret = db.passwordFile;
MAIL_PASSWORD._secret = mail.passwordFile;
APP_SERVICES_CACHE = "/run/agorakit/cache/services.php";
APP_PACKAGES_CACHE = "/run/agorakit/cache/packages.php";
APP_CONFIG_CACHE = "/run/agorakit/cache/config.php";
APP_ROUTES_CACHE = "/run/agorakit/cache/routes-v7.php";
APP_EVENTS_CACHE = "/run/agorakit/cache/events.php";
SESSION_SECURE_COOKIE = tlsEnabled;
};
environment.systemPackages = [ artisan ];
services.mysql = mkIf db.createLocally {
enable = true;
package = mkDefault pkgs.mysql;
ensureDatabases = [ db.name ];
ensureUsers = [
{
name = db.user;
ensurePermissions = {
"${db.name}.*" = "ALL PRIVILEGES";
};
}
];
};
services.phpfpm.pools.agorakit = {
inherit user group;
phpOptions = ''
log_errors = on
post_max_size = ${cfg.maxUploadSize}
upload_max_filesize = ${cfg.maxUploadSize}
'';
settings = {
"listen.mode" = "0660";
"listen.owner" = user;
"listen.group" = group;
} // cfg.poolConfig;
};
services.nginx = {
enable = mkDefault true;
recommendedTlsSettings = true;
recommendedOptimisation = true;
recommendedGzipSettings = true;
recommendedBrotliSettings = true;
recommendedProxySettings = true;
virtualHosts.${cfg.hostName} = mkMerge [
cfg.nginx
{
root = mkForce "${agorakit}/public";
locations = {
"/" = {
index = "index.php";
tryFiles = "$uri $uri/ /index.php?$query_string";
};
"~ \.php$".extraConfig = ''
fastcgi_pass unix:${config.services.phpfpm.pools."agorakit".socket};
'';
"~ \.(js|css|gif|png|ico|jpg|jpeg)$" = {
extraConfig = "expires 365d;";
};
};
}
];
};
systemd.services.agorakit-setup = {
description = "Preparation tasks for agorakit";
before = [ "phpfpm-agorakit.service" ];
after = optional db.createLocally "mysql.service";
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
User = user;
UMask = 77;
WorkingDirectory = "${agorakit}";
RuntimeDirectory = "agorakit/cache";
RuntimeDirectoryMode = 700;
};
path = [ pkgs.replace-secret ];
script =
let
isSecret = v: isAttrs v && v ? _secret && isString v._secret;
agorakitEnvVars = lib.generators.toKeyValue {
mkKeyValue = lib.flip lib.generators.mkKeyValueDefault "=" {
mkValueString =
v:
with builtins;
if isInt v then
toString v
else if isString v then
v
else if true == v then
"true"
else if false == v then
"false"
else if isSecret v then
hashString "sha256" v._secret
else
throw "unsupported type ${typeOf v}: ${(lib.generators.toPretty { }) v}";
};
};
secretPaths = lib.mapAttrsToList (_: v: v._secret) (lib.filterAttrs (_: isSecret) cfg.config);
mkSecretReplacement = file: ''
replace-secret ${
escapeShellArgs [
(builtins.hashString "sha256" file)
file
"${cfg.dataDir}/.env"
]
}
'';
secretReplacements = lib.concatMapStrings mkSecretReplacement secretPaths;
filteredConfig = lib.converge (lib.filterAttrsRecursive (
_: v:
!elem v [
{ }
null
]
)) cfg.config;
agorakitEnv = pkgs.writeText "agorakit.env" (agorakitEnvVars filteredConfig);
in
''
# error handling
set -euo pipefail
# create .env file
install -T -m 0600 -o ${user} ${agorakitEnv} "${cfg.dataDir}/.env"
${secretReplacements}
if ! grep 'APP_KEY=base64:' "${cfg.dataDir}/.env" >/dev/null; then
sed -i 's/APP_KEY=/APP_KEY=base64:/' "${cfg.dataDir}/.env"
fi
# migrate & seed db
${pkgs.php}/bin/php artisan key:generate --force
${pkgs.php}/bin/php artisan migrate --force
${pkgs.php}/bin/php artisan config:cache
'';
};
systemd.tmpfiles.rules = [
"d ${cfg.dataDir} 0710 ${user} ${group} - -"
"d ${cfg.dataDir}/public 0750 ${user} ${group} - -"
"d ${cfg.dataDir}/public/uploads 0750 ${user} ${group} - -"
"d ${cfg.dataDir}/storage 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/app 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/fonts 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/framework 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/framework/cache 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/framework/sessions 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/framework/views 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/logs 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/uploads 0700 ${user} ${group} - -"
];
users = {
users = mkIf (user == "agorakit") {
agorakit = {
inherit group;
isSystemUser = true;
};
"${config.services.nginx.user}".extraGroups = [ group ];
};
groups = mkIf (group == "agorakit") { agorakit = { }; };
};
};
}

View File

@ -111,6 +111,7 @@ in {
aesmd = runTestOn ["x86_64-linux"] ./aesmd.nix; aesmd = runTestOn ["x86_64-linux"] ./aesmd.nix;
agate = runTest ./web-servers/agate.nix; agate = runTest ./web-servers/agate.nix;
agda = handleTest ./agda.nix {}; agda = handleTest ./agda.nix {};
agorakit = runTest ./web-apps/agorakit.nix;
airsonic = handleTest ./airsonic.nix {}; airsonic = handleTest ./airsonic.nix {};
akkoma = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./akkoma.nix {}; akkoma = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./akkoma.nix {};
akkoma-confined = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./akkoma.nix { confined = true; }; akkoma-confined = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./akkoma.nix { confined = true; };

View File

@ -0,0 +1,43 @@
{ pkgs, ... }:
{
name = "agorakit";
meta.maintainers = with pkgs.lib.maintainers; [ julienmalka ];
nodes = {
agorakit =
{ ... }:
{
services.agorakit = {
enable = true;
appKeyFile = toString (
pkgs.writeText "agorakit-app-key" "uTqGUN5GUmUrh/zSAYmhyzRk62pnpXICyXv9eeITI8k="
);
hostName = "localhost";
database.createLocally = true;
mail = {
driver = "smtp";
encryption = "tls";
host = "localhost";
port = 1025;
fromName = "Agorakit";
from = "agorakit@localhost";
user = "agorakit@localhost";
passwordFile = toString (pkgs.writeText "agorakit-mail-pass" "a-secure-mail-password");
};
};
};
};
testScript = ''
start_all()
agorakit.wait_for_unit("nginx.service")
agorakit.wait_for_unit("agorakit-setup.service")
# Login page should now contain the configured site name
agorakit.succeed("curl http://localhost/login | grep Agorakit")
'';
}

View File

@ -21,7 +21,6 @@
machine.wait_for_open_port(8081) machine.wait_for_open_port(8081)
# check user registration via cli # check user registration via cli
machine.succeed("curl -sS -f http://localhost:8081/nodeinfo/2.0 | jq '.usage.users.total' | grep -q '^0$'")
machine.succeed("gotosocial-admin account create --username nickname --email email@example.com --password kurtz575VPeBgjVm") machine.succeed("gotosocial-admin account create --username nickname --email email@example.com --password kurtz575VPeBgjVm")
machine.succeed("curl -sS -f http://localhost:8081/nodeinfo/2.0 | jq '.usage.users.total' | grep -q '^1$'") machine.succeed("curl -sS -f http://localhost:8081/nodeinfo/2.0 | jq '.usage.users.total' | grep -q '^1$'")
''; '';

View File

@ -35,13 +35,13 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "vengi-tools"; pname = "vengi-tools";
version = "0.0.33"; version = "0.0.34";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mgerhardy"; owner = "mgerhardy";
repo = "vengi"; repo = "vengi";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
hash = "sha256-ljB36A5b8K1KBBuQVISb1fkWxb/tTTwojE31KPMg1xQ="; hash = "sha256-a78Oiwln3vyzCyjNewbK1/05bnGcSixxzKIgz4oiDmA=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -723,11 +723,11 @@
"vendorHash": "sha256-MfXuVZC7aroO83CJTNCh5YfbmMlUG1CiPeGgxhUFjN0=" "vendorHash": "sha256-MfXuVZC7aroO83CJTNCh5YfbmMlUG1CiPeGgxhUFjN0="
}, },
"launchdarkly": { "launchdarkly": {
"hash": "sha256-ke7o4I6d1JSsk+/6hk0EXUatnyCnXzb8xdgPX/cr4eM=", "hash": "sha256-ca8eXj+eOTNoR00c4nBLoghoPsO2PJ3dYOMOv5cXzO4=",
"homepage": "https://registry.terraform.io/providers/launchdarkly/launchdarkly", "homepage": "https://registry.terraform.io/providers/launchdarkly/launchdarkly",
"owner": "launchdarkly", "owner": "launchdarkly",
"repo": "terraform-provider-launchdarkly", "repo": "terraform-provider-launchdarkly",
"rev": "v2.20.2", "rev": "v2.21.0",
"spdx": "MPL-2.0", "spdx": "MPL-2.0",
"vendorHash": "sha256-v9N7lj7bEgR5HZm1SO0+DSCmQFVnsRvHPMycYMfpYwo=" "vendorHash": "sha256-v9N7lj7bEgR5HZm1SO0+DSCmQFVnsRvHPMycYMfpYwo="
}, },

View File

@ -3,11 +3,11 @@
buildKodiAddon rec { buildKodiAddon rec {
pname = "radioparadise"; pname = "radioparadise";
namespace = "script.radioparadise"; namespace = "script.radioparadise";
version = "2.0.1"; version = "2.1.1";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/script.radioparadise/script.radioparadise-${version}.zip"; url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/script.radioparadise/script.radioparadise-${version}.zip";
sha256 = "sha256-osQoOFr1vyTgZdlq1gNmhhDY37e+4SFqN3uX3yT8NQE="; sha256 = "sha256-jlEwqHkc3iiwc31DRnVPh5/AuPys9g/QApRUDweFt+E=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View File

@ -11,6 +11,8 @@
in "${if matched == null then base else builtins.head matched}${appendShort}"; in "${if matched == null then base else builtins.head matched}${appendShort}";
in in
lib.makeOverridable (lib.fetchers.withNormalizedHash { } ( lib.makeOverridable (lib.fetchers.withNormalizedHash { } (
# NOTE Please document parameter additions or changes in
# doc/build-helpers/fetchers.chapter.md
{ url, rev ? "HEAD", leaveDotGit ? deepClone { url, rev ? "HEAD", leaveDotGit ? deepClone
, outputHash ? lib.fakeHash, outputHashAlgo ? null , outputHash ? lib.fakeHash, outputHashAlgo ? null
, fetchSubmodules ? true, deepClone ? false , fetchSubmodules ? true, deepClone ? false

View File

@ -587,8 +587,8 @@ rec {
'' ''
(println "hello world") (println "hello world")
'' ''
:::
``` ```
:::
*/ */
writeBabashka = writeBabashka =
name: name:

View File

@ -0,0 +1,40 @@
{
lib,
fetchFromGitHub,
php,
dataDir ? "/var/lib/agorakit",
}:
php.buildComposerProject (finalAttrs: {
pname = "agorakit";
version = "1.9.2";
src = fetchFromGitHub {
owner = finalAttrs.pname;
repo = finalAttrs.pname;
rev = finalAttrs.version;
sha256 = "sha256-6T7AksvBxUpv8TkPicnlCE5KZS/ydPB5Bq1MJcWoZds=";
};
installPhase = ''
runHook preInstall
mkdir -p $out
cp -R * $out
rm -rf $out/storage
ln -s ${dataDir}/.env $out/.env
ln -s ${dataDir}/storage $out/storage
runHook postInstall
'';
vendorHash = "sha256-5ypBA9Qb8jHzAtvNBHkJfsLIf3Pfw1LvYmHP/hED2ig=";
composerStrictValidation = false;
meta = {
description = "Web-based, open-source groupware";
longDescription = "AgoraKit is web-based, open-source groupware for citizens' initiatives. By creating collaborative groups, people can discuss topics, organize events, store files and keep everyone updated as needed. AgoraKit is a forum, calendar, file manager and email notifier.";
homepage = "https://github.com/agorakit/agorakit";
license = lib.licenses.agpl3Only;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ shogo ];
};
})

View File

@ -8,11 +8,11 @@
stdenvNoCC.mkDerivation (finalAttrs: { stdenvNoCC.mkDerivation (finalAttrs: {
pname = "alt-tab-macos"; pname = "alt-tab-macos";
version = "7.2.0"; version = "7.4.0";
src = fetchurl { src = fetchurl {
url = "https://github.com/lwouis/alt-tab-macos/releases/download/v${finalAttrs.version}/AltTab-${finalAttrs.version}.zip"; url = "https://github.com/lwouis/alt-tab-macos/releases/download/v${finalAttrs.version}/AltTab-${finalAttrs.version}.zip";
hash = "sha256-70ODYDPcE5UT6bVY3H2J7RvqB3sDpPoeOpkqhwVkxJ0="; hash = "sha256-uCernCv52gZUxyn9LxsZGxd33z0y0YoEHEZ4mf4Ve4Y=";
}; };
sourceRoot = "."; sourceRoot = ".";

View File

@ -21,13 +21,13 @@
stdenvNoCC.mkDerivation (finalAttrs: { stdenvNoCC.mkDerivation (finalAttrs: {
pname = "atlauncher"; pname = "atlauncher";
version = "3.4.37.4"; version = "3.4.38.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ATLauncher"; owner = "ATLauncher";
repo = "ATLauncher"; repo = "ATLauncher";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
hash = "sha256-3Rs6XtqhD9PKz8ekF0STaANvPQ73KSUS8GIPvn9DmbQ="; hash = "sha256-0cn4qTdNH8VHRuypdRInrmU7gh792NSYL7P2rkz/4xc=";
}; };
postPatch = '' postPatch = ''
@ -96,6 +96,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
''; '';
meta = { meta = {
broken = stdenvNoCC.hostPlatform.isDarwin; # https://github.com/NixOS/nixpkgs/issues/356259
changelog = "https://github.com/ATLauncher/ATLauncher/blob/v${finalAttrs.version}/CHANGELOG.md"; changelog = "https://github.com/ATLauncher/ATLauncher/blob/v${finalAttrs.version}/CHANGELOG.md";
description = "Simple and easy to use Minecraft launcher which contains many different modpacks for you to choose from and play"; description = "Simple and easy to use Minecraft launcher which contains many different modpacks for you to choose from and play";
downloadPage = "https://atlauncher.com/downloads"; downloadPage = "https://atlauncher.com/downloads";

View File

@ -12,7 +12,7 @@
}: }:
stdenvNoCC.mkDerivation rec { stdenvNoCC.mkDerivation rec {
version = "1.1.31"; version = "1.1.34";
pname = "bun"; pname = "bun";
src = passthru.sources.${stdenvNoCC.hostPlatform.system} or (throw "Unsupported system: ${stdenvNoCC.hostPlatform.system}"); src = passthru.sources.${stdenvNoCC.hostPlatform.system} or (throw "Unsupported system: ${stdenvNoCC.hostPlatform.system}");
@ -51,19 +51,19 @@ stdenvNoCC.mkDerivation rec {
sources = { sources = {
"aarch64-darwin" = fetchurl { "aarch64-darwin" = fetchurl {
url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-aarch64.zip"; url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-aarch64.zip";
hash = "sha256-dOQFfkxCiOFmAr11CjSdSKNpiLERkbVWawAuy8ASkJE="; hash = "sha256-unFn4bexupfjtFA6Nxzi/vC1stzuBXYP5jPfwXbZDig=";
}; };
"aarch64-linux" = fetchurl { "aarch64-linux" = fetchurl {
url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-aarch64.zip"; url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-aarch64.zip";
hash = "sha256-ZuU14GvAtf1n1sA8amtZUSGp5iJ5qp/SI2wrw4Gwe/4="; hash = "sha256-BIYlEyRuyUdvipsCVEHTORlJoAnH+rv1ogv10JUHyOA=";
}; };
"x86_64-darwin" = fetchurl { "x86_64-darwin" = fetchurl {
url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-x64-baseline.zip"; url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-x64-baseline.zip";
hash = "sha256-qN8ciVHzHH8GgR89GDgfvteMV+YawMUQLiXNwYyN+wU="; hash = "sha256-gpcDIY1IYHO0N9Quw79VonhFHdgb/NFZns2hGNuQe9g=";
}; };
"x86_64-linux" = fetchurl { "x86_64-linux" = fetchurl {
url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-x64.zip"; url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-x64.zip";
hash = "sha256-zHitG4Ktt+iCKk9GrC3C4MRSWhUxh89kW9bUeHzqNJs="; hash = "sha256-S8AA/1CWxTSHZ60E2ZNQXyEAOalYgCc6dte9CvD8Lx8=";
}; };
}; };
updateScript = writeShellScript "update-bun" '' updateScript = writeShellScript "update-bun" ''

View File

@ -0,0 +1,108 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
ninja,
pkg-config,
tomlplusplus,
cli11,
gtest,
libei,
libportal,
libX11,
libxkbfile,
libXtst,
libXinerama,
libXi,
libXrandr,
libxkbcommon,
pugixml,
python3,
gdk-pixbuf,
libnotify,
qt6,
xkeyboard_config,
openssl,
wayland-protocols,
wayland,
libsysprof-capture,
lerc,
doxygen,
}:
stdenv.mkDerivation rec {
pname = "deskflow";
version = "1.17.1";
src = fetchFromGitHub {
owner = "deskflow";
repo = "deskflow";
rev = "v${version}";
hash = "sha256-cEKG9MwENbZqrfRdwiZtRWmIfRndrWUoaZQ5O7YRpBs=";
};
postPatch = ''
substituteInPlace src/lib/deskflow/unix/AppUtilUnix.cpp \
--replace-fail "/usr/share/X11/xkb/rules/evdev.xml" "${xkeyboard_config}/share/X11/xkb/rules/evdev.xml"
substituteInPlace src/lib/gui/tls/TlsCertificate.cpp \
--replace-fail "\"openssl\"" "\"${lib.getBin openssl}/bin/openssl\""
'';
nativeBuildInputs = [
cmake
ninja
pkg-config
qt6.wrapQtAppsHook
doxygen # docs
];
cmakeFlags = [
"-DCMAKE_SKIP_RPATH=ON" # Avoid generating incorrect RPATH
];
strictDeps = true;
buildInputs = [
tomlplusplus
cli11
gtest
libei
libportal
libX11
libxkbfile
libXinerama
libXi
libXrandr
libXtst
libxkbcommon
pugixml
gdk-pixbuf
libnotify
python3
qt6.qtbase
wayland-protocols
qt6.qtwayland
wayland
libsysprof-capture
lerc
];
postInstall = ''
substituteInPlace $out/share/applications/deskflow.desktop \
--replace-fail "Path=/usr/bin" "Path=$out/bin" \
--replace-fail "Exec=/usr/bin/deskflow" "Exec=deskflow"
'';
qtWrapperArgs = [
"--set QT_QPA_PLATFORM_PLUGIN_PATH ${qt6.qtwayland}/${qt6.qtbase.qtPluginPrefix}/platforms"
];
meta = {
homepage = "https://github.com/deskflow/deskflow";
description = "Share one mouse and keyboard between multiple computers on Windows, macOS and Linux";
mainProgram = "deskflow";
maintainers = with lib.maintainers; [ aucub ];
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.linux;
};
}

View File

@ -2,12 +2,12 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "fanficfare"; pname = "fanficfare";
version = "4.39.0"; version = "4.40.0";
pyproject = true; pyproject = true;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-F6+mWCFQHdE4qvnZ8FH2XgXwET76j3hy22bK5BELHtY="; hash = "sha256-5WquEgSqPFMq+HU0K94QiC9WsP6Iv+CpE1ZsBgdYGFI=";
}; };
nativeBuildInputs = with python3Packages; [ nativeBuildInputs = with python3Packages; [

View File

@ -1,5 +1,5 @@
{ {
bazel_7, bazel_6,
buildBazelPackage, buildBazelPackage,
fcitx5, fcitx5,
fetchFromGitHub, fetchFromGitHub,
@ -41,7 +41,7 @@ buildBazelPackage {
sed -i -e 's|^\(LINUX_MOZC_SERVER_DIR = \).\+|\1"${mozc}/lib/mozc"|' src/config.bzl sed -i -e 's|^\(LINUX_MOZC_SERVER_DIR = \).\+|\1"${mozc}/lib/mozc"|' src/config.bzl
''; '';
bazel = bazel_7; bazel = bazel_6;
removeRulesCC = false; removeRulesCC = false;
dontAddBazelOpts = true; dontAddBazelOpts = true;
@ -62,7 +62,7 @@ buildBazelPackage {
rm -rf $bazelOut/external/fcitx5 rm -rf $bazelOut/external/fcitx5
''; '';
sha256 = "sha256-wz2lJckr7Pu4jtoejjFv8LdjVO2+ferrS473M4jc86I="; sha256 = "sha256-rrRp/v1pty7Py80/6I8rVVQvkeY72W+nlixUeYkjp+o=";
}; };
preConfigure = '' preConfigure = ''

View File

@ -6,11 +6,11 @@
}: }:
stdenvNoCC.mkDerivation (finalAttrs: { stdenvNoCC.mkDerivation (finalAttrs: {
pname = "fcitx5-pinyin-moegirl"; pname = "fcitx5-pinyin-moegirl";
version = "20241009"; version = "20241109";
src = fetchurl { src = fetchurl {
url = "https://github.com/outloudvi/mw2fcitx/releases/download/${finalAttrs.version}/moegirl.dict"; url = "https://github.com/outloudvi/mw2fcitx/releases/download/${finalAttrs.version}/moegirl.dict";
hash = "sha256-tb+Z7ja6yG7n6DcxSvdFhMq2xTNs6mJ6pdPfEKeRUww="; hash = "sha256-Vg1Kx/7m1gNEJAe3bhxoIogXsNV8I0NYyhGt9SvqfM4=";
}; };
dontUnpack = true; dontUnpack = true;

View File

@ -7,16 +7,16 @@
buildGoModule rec { buildGoModule rec {
pname = "files-cli"; pname = "files-cli";
version = "2.13.148"; version = "2.13.180";
src = fetchFromGitHub { src = fetchFromGitHub {
repo = "files-cli"; repo = "files-cli";
owner = "files-com"; owner = "files-com";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-r3pYDBE1YaKuFdxxpDVcMGfX5vOLt4xh3eY0fgLIGk0="; hash = "sha256-qjrmU8IAxMzggAcuw0ONep6c/b4fx6ZuPQtOatTHBJU=";
}; };
vendorHash = "sha256-/w1uo3SmCUjKp1FcB2NfhrFCLh5zCP+6uf03uwb+SvU="; vendorHash = "sha256-ZBn/wKT+AR/jb2fbkU+cEgHH5nB/kl6p3s7n1iV9aAI=";
ldflags = [ ldflags = [
"-s" "-s"

View File

@ -1,22 +1,39 @@
{ stdenv, lib, cmake, fetchFromGitHub }: {
lib,
stdenv,
apple-sdk_11,
cmake,
fetchFromGitHub,
nix-update-script,
}:
stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
pname = "filesystem"; pname = "filesystem";
version = "1.5.14"; version = "1.5.14";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gulrak"; owner = "gulrak";
repo = "filesystem"; repo = "filesystem";
rev = "v${version}"; rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-XZ0IxyNIAs2tegktOGQevkLPbWHam/AOFT+M6wAWPFg="; hash = "sha256-XZ0IxyNIAs2tegktOGQevkLPbWHam/AOFT+M6wAWPFg=";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
meta = with lib; { buildInputs = lib.optional stdenv.hostPlatform.isDarwin apple-sdk_11;
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "header-only single-file C++ std::filesystem compatible helper library"; description = "header-only single-file C++ std::filesystem compatible helper library";
homepage = "https://github.com/gulrak/filesystem"; homepage = "https://github.com/gulrak/filesystem";
license = licenses.mit; changelog = "https://github.com/gulrak/filesystem/releases/tag/v${finalAttrs.version}";
maintainers = with maintainers; [ bbjubjub ]; license = lib.licenses.mit;
maintainers = with lib.maintainers; [
bbjubjub
getchoo
];
}; };
} })

View File

@ -8,16 +8,16 @@
buildGoModule rec { buildGoModule rec {
pname = "go-critic"; pname = "go-critic";
version = "0.11.4"; version = "0.11.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "go-critic"; owner = "go-critic";
repo = "go-critic"; repo = "go-critic";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-v/7fc3MRQoMQCKqZQVuZEm5R9ha5wusN+hEzp7aBpNk="; hash = "sha256-KH7jawMd73qdl1S+YQlQGW/2Vj8XjMLJ15Hz0cdwDO4=";
}; };
vendorHash = "sha256-Qw4t2v/5IZnpZX8sR26DL0SYrjvfuJSzDUpZ4G0u6hU="; vendorHash = "sha256-vBGCFnKKpMcM7RWmT05oPwCItR4QMHhTAZ8x2ejJpcI=";
subPackages = [ subPackages = [
"cmd/gocritic" "cmd/gocritic"

11480
pkgs/by-name/go/golem/Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,76 @@
{
lib,
fetchFromGitHub,
rustPlatform,
pkg-config,
openssl,
protobuf,
redis,
fontconfig,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "golem";
version = "1.0.26";
src = fetchFromGitHub {
owner = "golemcloud";
repo = "golem";
rev = "refs/tags/v${version}";
hash = "sha256-q2DZrJIegu6X89tVLJE+OY7XRpqY2nGmTE699UhMP2E=";
};
# Taker from https://github.com/golemcloud/golem/blob/v1.0.26/Makefile.toml#L399
postPatch = ''
grep -rl --include 'Cargo.toml' '0\.0\.0' | xargs sed -i "s/0\.0\.0/${version}/g"
'';
nativeBuildInputs = [
pkg-config
protobuf
rustPlatform.bindgenHook
];
buildInputs = [
fontconfig
(lib.getDev openssl)
];
# Required for golem-wasm-rpc's build.rs to find the required protobuf files
# https://github.com/golemcloud/wasm-rpc/blob/v1.0.6/wasm-rpc/build.rs#L7
GOLEM_WASM_AST_ROOT = "../golem-wasm-ast-1.0.1";
# Required for golem-examples's build.rs to find the required Wasm Interface Type (WIT) files
# https://github.com/golemcloud/golem-examples/blob/v1.0.6/build.rs#L9
GOLEM_WIT_ROOT = "../golem-wit-1.0.3";
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"cranelift-bforest-0.108.1" = "sha256-WVRj6J7yXLFOsud9qKugmYja0Pe7AqZ0O2jgkOtHRg8=";
};
};
# Tests are failing in the sandbox because of some redis integration tests
doCheck = false;
checkInputs = [ redis ];
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgram = [ "${placeholder "out"}/bin/golem-cli" ];
versionCheckProgramArg = [ "--version" ];
doInstallCheck = true;
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Open source durable computing platform that makes it easy to build and deploy highly reliable distributed systems";
changelog = "https://github.com/golemcloud/golem/releases/tag/v${version}";
homepage = "https://www.golem.cloud/";
license = lib.licenses.asl20;
mainProgram = "golem-cli";
};
}

View File

@ -9,11 +9,11 @@ let
owner = "superseriousbusiness"; owner = "superseriousbusiness";
repo = "gotosocial"; repo = "gotosocial";
version = "0.17.0"; version = "0.17.3";
web-assets = fetchurl { web-assets = fetchurl {
url = "https://github.com/${owner}/${repo}/releases/download/v${version}/${repo}_${version}_web-assets.tar.gz"; url = "https://github.com/${owner}/${repo}/releases/download/v${version}/${repo}_${version}_web-assets.tar.gz";
hash = "sha256-ASqPIf98qdnkh3j72ifQN3mWnzNCTRcUegmrStvQ08Q="; hash = "sha256-85CmcWjcX8a+hZxkyRTfXErmkIx64R2scaaS2Fpf668";
}; };
in in
buildGoModule rec { buildGoModule rec {
@ -23,7 +23,7 @@ buildGoModule rec {
src = fetchFromGitHub { src = fetchFromGitHub {
inherit owner repo; inherit owner repo;
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-uyqP3zhjcXKejGFAwZoTn2kY8IpX0QAAXNzb1VG6ve8="; hash = "sha256-ql0tDaMc/1NgsLUpPHZB6GoXJj9DwUpadTX3AYufR/o=";
}; };
vendorHash = null; vendorHash = null;

View File

@ -1,5 +1,4 @@
{ {
bash,
buildGoModule, buildGoModule,
fetchFromGitHub, fetchFromGitHub,
nix-update-script, nix-update-script,
@ -15,16 +14,16 @@
buildGoModule rec { buildGoModule rec {
pname = "granted"; pname = "granted";
version = "0.36.1"; version = "0.36.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "common-fate"; owner = "common-fate";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-sIn6D0696QPo4fs7HzvQNIopIfYYV4fYLmVdwQZnZag="; sha256 = "sha256-fLnrc+Aek2bFrJfCCwI9HRAocokb3IlGZbjYzur7LHk=";
}; };
vendorHash = "sha256-QswW1PyxrVWf6ZAPKW69q0JIXpyhSHucE5A7hkr8uxw="; vendorHash = "sha256-imArhe/TjrXv68ZF7moOcKjvxAvQzm7XfBkyWfwNJJs=";
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];

View File

@ -6,18 +6,18 @@
stdenvNoCC.mkDerivation (finalAttrs: { stdenvNoCC.mkDerivation (finalAttrs: {
pname = "itsycal"; pname = "itsycal";
version = "0.15.4"; version = "0.15.5";
src = fetchzip { src = fetchzip {
url = "https://itsycal.s3.amazonaws.com/Itsycal-${finalAttrs.version}.zip"; url = "https://itsycal.s3.amazonaws.com/Itsycal-${finalAttrs.version}.zip";
hash = "sha256-+Pi74xP5BcjhgtR3YCqJknl54wdNIU8ekEwQUaFp4T8="; hash = "sha256-kRO9zcyi8Di0NNuT158htKXt4wo7nVys+AV+1EgS1ZI=";
}; };
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
mkdir -p $out/Applications/Itsycal.app mkdir -p "$out/Applications/Itsycal.app"
cp -R . $out/Applications/Itsycal.app cp -R . "$out/Applications/Itsycal.app"
runHook postInstall runHook postInstall
''; '';

View File

@ -6,16 +6,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "kdlfmt"; pname = "kdlfmt";
version = "0.0.3"; version = "0.0.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "hougesen"; owner = "hougesen";
repo = "kdlfmt"; repo = "kdlfmt";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-qD1NYLHGmVRgV6pPXbvJ9NWDg/wVLWJY4hUsOLDlKh0="; hash = "sha256-Lv4BMhMsi2GBzIsFS2HGZcwENgU1vvgPDZUPBb9ucfo=";
}; };
cargoHash = "sha256-7HSDz/JI5VuTdM/Hv+nq+ddpQg31Q1v7Ct5gz2PfdmE="; cargoHash = "sha256-2Lh5jtLsY67e38Xa+GGRBg9L/WIE/Nnd6XDI4crtrTc=";
meta = { meta = {
description = "Formatter for kdl documents"; description = "Formatter for kdl documents";

View File

@ -2,6 +2,7 @@
, fetchFromGitHub , fetchFromGitHub
, fetchNpmDeps , fetchNpmDeps
, fetchPypi , fetchPypi
, fetchpatch
, nodejs , nodejs
, npmHooks , npmHooks
, python3 , python3
@ -38,6 +39,16 @@ python.pkgs.buildPythonApplication rec {
hash = "sha256-y0/fYuiIB/O5tsYKjzOPnCafOIZCn4Z5OITPMcnHd/M="; hash = "sha256-y0/fYuiIB/O5tsYKjzOPnCafOIZCn4Z5OITPMcnHd/M=";
}; };
patches = [
# Fixes test_thumbnail.py with Pillow 11.0
# see lektor/lektor #1202
(fetchpatch {
name = "lektor-pillow-11.patch";
url = "https://github.com/lektor/lektor/commit/af99ea4265e05227d7452977949475196a58edfa.patch";
hash = "sha256-PmSmX9Ku5rAzN2FzLwvXYeUqN683opLRt9J35w56cfg=";
})
];
npmDeps = fetchNpmDeps { npmDeps = fetchNpmDeps {
src = "${src}/${npmRoot}"; src = "${src}/${npmRoot}";
hash = "sha256-LXe5/u4nAGig8RSu6r8Qsr3p3Od8eoMxukW8Z4HkJ44="; hash = "sha256-LXe5/u4nAGig8RSu6r8Qsr3p3Od8eoMxukW8Z4HkJ44=";

View File

@ -7,16 +7,16 @@
buildNpmPackage rec { buildNpmPackage rec {
pname = "markdown-link-check"; pname = "markdown-link-check";
version = "3.12.2"; version = "3.13.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "tcort"; owner = "tcort";
repo = "markdown-link-check"; repo = "markdown-link-check";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-xeqvKPIJUDNEX9LdXpxoA7ECjGlfp/wwlCw/USZN47c="; hash = "sha256-UuzfIJL3nHIbGFQrs9ya+QiS/sM0z1GCHbJGLQBN5pE=";
}; };
npmDepsHash = "sha256-J11NJRmXg2tj5BqGSQ8bMRJQUOCOZ9dEfa4Gzrf38t4="; npmDepsHash = "sha256-Lxywr3M/4+DwVWxkWZHHn02K7RNWSI5LyMm12lyZT8w=";
dontNpmBuild = true; dontNpmBuild = true;

View File

@ -12,13 +12,13 @@ buildGoModule rec {
# See https://docs.mattermost.com/upgrade/extended-support-release.html # See https://docs.mattermost.com/upgrade/extended-support-release.html
# When a new ESR version is available (e.g. 8.1.x -> 9.5.x), update # When a new ESR version is available (e.g. 8.1.x -> 9.5.x), update
# the version regex in passthru.updateScript as well. # the version regex in passthru.updateScript as well.
version = "9.11.3"; version = "9.11.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mattermost"; owner = "mattermost";
repo = "mattermost"; repo = "mattermost";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-CuFkydl1ZZUAWmrDIV1Jp9S6jIKYmglAe5XW2lTRgtQ="; hash = "sha256-bLZFeG6kBVP0ws50wtBam/bO206sQnz6va8PATAoRAQ=";
}; };
# Needed because buildGoModule does not support go workspaces yet. # Needed because buildGoModule does not support go workspaces yet.
@ -34,7 +34,7 @@ buildGoModule rec {
webapp = fetchurl { webapp = fetchurl {
url = "https://releases.mattermost.com/${version}/mattermost-${version}-linux-amd64.tar.gz"; url = "https://releases.mattermost.com/${version}/mattermost-${version}-linux-amd64.tar.gz";
hash = "sha256-4JzhL2+G3T98pNFgKugs/eoSrbm7QSk5grVlprrIKEI="; hash = "sha256-jyaJUN8wpuBivKNdm7f1mYwygO8xC+Zxy0SdkDovdsA=";
}; };
# Makes nix-update-script pick up the fetchurl for the webapp. # Makes nix-update-script pick up the fetchurl for the webapp.

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "memtest86+"; pname = "memtest86+";
version = "7.00"; version = "7.20";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "memtest86plus"; owner = "memtest86plus";
repo = "memtest86plus"; repo = "memtest86plus";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
hash = "sha256-DVYiE9yi20IR2AZs8bya1h9vK4si7nKdg9Nqef4WTrw="; hash = "sha256-JZ6feyk66DLKEnugc+yXN4KckQrCTMNqQL4TvCTw1EU=";
}; };
# Binaries are booted directly by BIOS/UEFI or bootloader # Binaries are booted directly by BIOS/UEFI or bootloader

File diff suppressed because it is too large Load Diff

View File

@ -1,19 +1,19 @@
{ {
lib, lib,
stdenv, stdenv,
fetchFromGitHub, apple-sdk_11,
rustPlatform,
cacert, cacert,
cargo-tauri_1, cargo-tauri,
darwin,
desktop-file-utils, desktop-file-utils,
libsoup, fetchFromGitHub,
makeBinaryWrapper,
nodejs, nodejs,
openssl, openssl,
pkg-config, pkg-config,
pnpm_9, pnpm_9,
rustPlatform,
turbo, turbo,
webkitgtk_4_0, webkitgtk_4_1,
}: }:
let let
@ -21,52 +21,40 @@ let
in in
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "modrinth-app-unwrapped"; pname = "modrinth-app-unwrapped";
version = "0.8.2"; version = "0.8.9";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "modrinth"; owner = "modrinth";
repo = "code"; repo = "code";
rev = "a0bd011b808cdc998ef27960f610a8d99550c914"; rev = "refs/tags/v${version}";
hash = "sha256-zpFJq7if5gOx7jvwpE73lqH4Vpif0MJMPIGsgtThKVk="; hash = "sha256-DR1aPbSqAVhL/m/Maa3mPzNWwK4A1WvDd/PwEMVYn5g=";
}; };
cargoLock = { cargoLock = {
lockFile = ./Cargo.lock; lockFile = ./Cargo.lock;
outputHashes = { outputHashes = {
"sqlx-0.8.0-alpha.0" = "sha256-M1bumCMTzgDcQlgSYB6ypPp794e35ZSQCLzkbrFV4qY="; "wry-0.44.1" = "sha256-I1qkUVTu+Yqk1Imo1w5rG/lRSPLITF5BdcjBsPe+jXU=";
"tauri-plugin-single-instance-0.0.0" = "sha256-DZWTO2/LevbQJCJbeHbTc2rhesV3bNrs+BoYm2eMakA=";
}; };
}; };
pnpmDeps = pnpm.fetchDeps { pnpmDeps = pnpm.fetchDeps {
inherit pname version src; inherit pname version src;
hash = "sha256-Ye9GHvkO+xZj87NIc1JLmhIJFqdkJMg7HvfTltx9krw="; hash = "sha256-murZ82LV2pGng/Cg08NoWr/mDIVECrf00utVrs6PKRg=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
cacert # required for turbo cacert # Required for turbo
cargo-tauri_1.hook cargo-tauri.hook
desktop-file-utils desktop-file-utils
nodejs nodejs
pkg-config pkg-config
pnpm.configHook pnpm.configHook
]; ] ++ lib.optional stdenv.hostPlatform.isDarwin makeBinaryWrapper;
buildInputs = buildInputs =
[ openssl ] [ openssl ]
++ lib.optionals stdenv.hostPlatform.isLinux [ ++ lib.optional stdenv.hostPlatform.isDarwin apple-sdk_11
libsoup ++ lib.optional stdenv.hostPlatform.isLinux webkitgtk_4_1;
webkitgtk_4_0
]
++ lib.optionals stdenv.hostPlatform.isDarwin (
with darwin.apple_sdk.frameworks;
[
AppKit
CoreServices
Security
WebKit
]
);
env = { env = {
TURBO_BINARY_PATH = lib.getExe turbo; TURBO_BINARY_PATH = lib.getExe turbo;
@ -74,9 +62,7 @@ rustPlatform.buildRustPackage rec {
postInstall = postInstall =
lib.optionalString stdenv.hostPlatform.isDarwin '' lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p "$out"/bin makeBinaryWrapper "$out"/Applications/Modrinth\ App.app/Contents/MacOS/Modrinth\ App "$out"/bin/ModrinthApp
mv "$out"/Applications/Modrinth\ App.app/Contents/MacOS/Modrinth\ App "$out"/bin/modrinth-app
ln -s "$out"/bin/modrinth-app "$out"/Applications/Modrinth\ App.app/Contents/MacOS/Modrinth\ App
'' ''
+ lib.optionalString stdenv.hostPlatform.isLinux '' + lib.optionalString stdenv.hostPlatform.isLinux ''
desktop-file-edit \ desktop-file-edit \
@ -85,7 +71,7 @@ rustPlatform.buildRustPackage rec {
--set-key="Categories" --set-value="Game;ActionGame;AdventureGame;Simulation;" \ --set-key="Categories" --set-value="Game;ActionGame;AdventureGame;Simulation;" \
--set-key="Keywords" --set-value="game;minecraft;mc;" \ --set-key="Keywords" --set-value="game;minecraft;mc;" \
--set-key="StartupWMClass" --set-value="ModrinthApp" \ --set-key="StartupWMClass" --set-value="ModrinthApp" \
$out/share/applications/modrinth-app.desktop $out/share/applications/Modrinth\ App.desktop
''; '';
meta = { meta = {
@ -100,7 +86,7 @@ rustPlatform.buildRustPackage rec {
unfreeRedistributable unfreeRedistributable
]; ];
maintainers = with lib.maintainers; [ getchoo ]; maintainers = with lib.maintainers; [ getchoo ];
mainProgram = "modrinth-app"; mainProgram = "ModrinthApp";
platforms = with lib; platforms.linux ++ platforms.darwin; platforms = with lib; platforms.linux ++ platforms.darwin;
# This builds on architectures like aarch64, but the launcher itself does not support them yet. # This builds on architectures like aarch64, but the launcher itself does not support them yet.
# Darwin is the only exception # Darwin is the only exception

View File

@ -1,15 +1,13 @@
{ {
lib, lib,
stdenv, stdenv,
symlinkJoin,
modrinth-app-unwrapped,
addDriverRunpath, addDriverRunpath,
alsa-lib, alsa-lib,
flite, flite,
glib-networking, glib-networking,
jdk8,
jdk17, jdk17,
jdk21, jdk21,
jdk8,
jdks ? [ jdks ? [
jdk8 jdk8
jdk17 jdk17
@ -18,9 +16,11 @@
libGL, libGL,
libjack2, libjack2,
libpulseaudio, libpulseaudio,
modrinth-app-unwrapped,
pipewire, pipewire,
symlinkJoin,
udev, udev,
wrapGAppsHook3, wrapGAppsHook4,
xorg, xorg,
}: }:
@ -31,7 +31,7 @@ symlinkJoin rec {
paths = [ modrinth-app-unwrapped ]; paths = [ modrinth-app-unwrapped ];
nativeBuildInputs = [ wrapGAppsHook3 ]; nativeBuildInputs = [ wrapGAppsHook4 ];
buildInputs = [ glib-networking ]; buildInputs = [ glib-networking ];

View File

@ -10,7 +10,7 @@
, nix-output-monitor , nix-output-monitor
}: }:
let let
version = "3.5.26"; version = "3.6.0";
runtimeDeps = [ nvd nix-output-monitor ]; runtimeDeps = [ nvd nix-output-monitor ];
in in
rustPlatform.buildRustPackage { rustPlatform.buildRustPackage {
@ -21,7 +21,7 @@ rustPlatform.buildRustPackage {
owner = "viperML"; owner = "viperML";
repo = "nh"; repo = "nh";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-p38Uini6lChBCF0mZndHXTAy7ZH/OQLY696BFCHg92g="; hash = "sha256-k8rz5RF1qi7RXzQYWGbw5pJRNRFIdX85SIYN+IHiVL4=";
}; };
strictDeps = true; strictDeps = true;
@ -47,7 +47,7 @@ rustPlatform.buildRustPackage {
--prefix PATH : ${lib.makeBinPath runtimeDeps} --prefix PATH : ${lib.makeBinPath runtimeDeps}
''; '';
cargoHash = "sha256-ejjgtjDNB7XBKi83R48xG3HLhTmm26Sdqdgh0xRVtNA="; cargoHash = "sha256-HfPzoAai6wK5IqNQY7yFVXatMcia9z0I84QNmNzHRoc=";
passthru.updateScript = nix-update-script { }; passthru.updateScript = nix-update-script { };

View File

@ -0,0 +1,47 @@
{
lib,
stdenv,
boost,
cmake,
fetchFromGitHub,
ninja,
unstableGitUpdater,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "nihstro";
version = "0-unstable-2024-05-05";
src = fetchFromGitHub {
owner = "neobrain";
repo = "nihstro";
rev = "f4d8659decbfe5d234f04134b5002b82dc515a44";
hash = "sha256-ZHgWyZFW7t2VTibH7WeuU8+I12bb95I9NcHI5s4U3VU=";
};
strictDeps = true;
nativeBuildInputs = [
cmake
ninja
];
buildInputs = [ boost ];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
passthru = {
updateScript = unstableGitUpdater {
hardcodeZeroVersion = true;
};
};
meta = {
description = "3DS shader assembler and disassembler";
homepage = "https://github.com/neobrain/nihstro";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ getchoo ];
mainProgram = "nihstro-assemble";
platforms = lib.platforms.unix ++ lib.platforms.windows;
};
})

View File

@ -2,13 +2,13 @@
stdenvNoCC.mkDerivation rec { stdenvNoCC.mkDerivation rec {
pname = "numix-icon-theme-circle"; pname = "numix-icon-theme-circle";
version = "24.10.01"; version = "24.10.22";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "numixproject"; owner = "numixproject";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-6+JzTVhhQBbEjQ85ZIBh04KZUFcHwDo8tdA0ruUEqT8="; sha256 = "sha256-x5K0f+JBzke+37xrjkAza+FCig/kE5mMa2iUTf6UKNY=";
}; };
nativeBuildInputs = [ gtk3 ]; nativeBuildInputs = [ gtk3 ];

View File

@ -21,13 +21,13 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "pmix"; pname = "pmix";
version = "5.0.3"; version = "5.0.4";
src = fetchFromGitHub { src = fetchFromGitHub {
repo = "openpmix"; repo = "openpmix";
owner = "openpmix"; owner = "openpmix";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
hash = "sha256-5qBZj4L0Qu/RvNj8meL0OlLCdfGvBP0D916Mr+0XOCQ="; hash = "sha256-QsJm+4GnV5qrXVG3AwQxWas51AHcqycKjTpSG2/oOGU=";
fetchSubmodules = true; fetchSubmodules = true;
}; };

View File

@ -0,0 +1,37 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "prometheus-nvidia-gpu-exporter";
version = "1.2.1";
src = fetchFromGitHub {
owner = "utkuozdemir";
repo = "nvidia_gpu_exporter";
rev = "v${version}";
hash = "sha256-+YmZ25OhOeIulkOH/Apqh3jGQ4Vanv0GIuc/EjBiZ+w=";
};
vendorHash = "sha256-Dsp98EWRiRaawYmdr3KR2YTteeD9cmHUHQoq5CnH9gA=";
ldflags = [
"-s"
"-w"
"-X=github.com/prometheus/common/version.Version=${version}"
"-X=github.com/prometheus/common/version.Revision=${src.rev}"
"-X=github.com/prometheus/common/version.Branch=${src.rev}"
"-X=github.com/prometheus/common/version.BuildUser=goreleaser"
"-X=github.com/prometheus/common/version.BuildDate=1970-01-01T00:00:00Z"
];
meta = {
description = "Nvidia GPU exporter for prometheus using nvidia-smi binary";
homepage = "https://github.com/utkuozdemir/nvidia_gpu_exporter";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ ck3d ];
mainProgram = "nvidia_gpu_exporter";
};
}

View File

@ -1,9 +1,9 @@
# Generated by ./update.sh - do not update manually! # Generated by ./update.sh - do not update manually!
# Last updated: 2024-10-25 # Last updated: 2024-11-17
{ {
version = "3.2.13-2024.10.23"; version = "3.2.13-2024.11.12";
amd64_url = "https://dldir1.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.13_241023_amd64_01.deb"; amd64_url = "https://dldir1.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.13_241112_amd64_01.deb";
arm64_url = "https://dldir1.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.13_241023_arm64_01.deb"; arm64_url = "https://dldir1.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.13_241112_arm64_01.deb";
arm64_hash = "sha256-n2ezKgLfmugUZYvGzDvaLKy+Tf8ooUC6Oc6xCDp5rYA="; arm64_hash = "sha256-eAWneMK6aJUVudQemganaRiDnEGtDcJB9z0OIehlD48=";
amd64_hash = "sha256-H5ACKFVV4AQ3de9UV4i9ejL1WjuuPJhTLTVqK5EcssM="; amd64_hash = "sha256-ycGNihLYcemA37PGpGT5hCaiq5nD4KumqSMF7TKk4iI=";
} }

View File

@ -1,28 +1,28 @@
{ lib {
, stdenv lib,
, fetchFromGitHub stdenv,
, alsa-lib fetchFromGitHub,
, appstream alsa-lib,
, appstream-glib appstream,
, cargo appstream-glib,
, cmake cargo,
, desktop-file-utils cmake,
, dos2unix desktop-file-utils,
, glib dos2unix,
, gst_all_1 glib,
, gtk4 gst_all_1,
, libadwaita gtk4,
, libxml2 libadwaita,
, meson libxml2,
, ninja meson,
, pkg-config ninja,
, poppler pkg-config,
, python3 poppler,
, rustPlatform python3,
, rustc rustPlatform,
, shared-mime-info rustc,
, wrapGAppsHook4 shared-mime-info,
, darwin wrapGAppsHook4,
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -67,33 +67,39 @@ stdenv.mkDerivation rec {
(lib.mesonBool "cli" true) (lib.mesonBool "cli" true)
]; ];
buildInputs = [ buildInputs =
appstream [
glib appstream
gst_all_1.gstreamer glib
gtk4 gst_all_1.gstreamer
libadwaita gtk4
libxml2 libadwaita
poppler libxml2
] ++ lib.optionals stdenv.hostPlatform.isLinux [ poppler
alsa-lib ]
] ++ lib.optionals stdenv.hostPlatform.isDarwin [ ++ lib.optionals stdenv.hostPlatform.isLinux [
darwin.apple_sdk.frameworks.AudioUnit alsa-lib
]; ];
postPatch = '' postPatch = ''
chmod +x build-aux/*.py chmod +x build-aux/*.py
patchShebangs build-aux patchShebangs build-aux
''; '';
env = lib.optionalAttrs stdenv.cc.isClang {
NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-function-pointer-types";
};
meta = with lib; { meta = with lib; {
homepage = "https://github.com/flxzt/rnote"; homepage = "https://github.com/flxzt/rnote";
changelog = "https://github.com/flxzt/rnote/releases/tag/${src.rev}"; changelog = "https://github.com/flxzt/rnote/releases/tag/${src.rev}";
description = "Simple drawing application to create handwritten notes"; description = "Simple drawing application to create handwritten notes";
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
maintainers = with maintainers; [ dotlambda gepbird yrd ]; maintainers = with maintainers; [
dotlambda
gepbird
yrd
];
platforms = platforms.unix; platforms = platforms.unix;
# compiler error since 2023-11-17
broken = stdenv.hostPlatform.isDarwin;
}; };
} }

View File

@ -13,13 +13,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "rsgain"; pname = "rsgain";
version = "3.5.2"; version = "3.5.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "complexlogic"; owner = "complexlogic";
repo = "rsgain"; repo = "rsgain";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-kTvIMsRI99U2ovkN5pC4OUS/bJWpRYSuRcvObvQRnbQ="; hash = "sha256-4LEvcuP2Eyco3iQvT6rZhbfY02Y70rW2n5PaS+rGDkQ=";
}; };
nativeBuildInputs = [pkg-config cmake]; nativeBuildInputs = [pkg-config cmake];

View File

@ -1,30 +1,39 @@
{ lib {
, stdenv lib,
, callPackage stdenv,
, fetchFromGitHub fetchFromGitHub,
, rustPlatform rustPlatform,
, CoreServices cmake,
, cmake libiconv,
, libiconv useMimalloc ? false,
, useMimalloc ? false doCheck ? true,
, doCheck ? true nix-update-script,
, nix-update-script
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "rust-analyzer-unwrapped"; pname = "rust-analyzer-unwrapped";
version = "2024-09-02"; version = "2024-11-11";
cargoHash = "sha256-t45RzYkuywGByGWwUON3dW0aKjLYcFXB8uy4CybPuf4="; cargoHash = "sha256-lzbk/APerZih7+1ZxBKl0rUHCJJA8W8RIqalEfu+MFI=";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "rust-lang"; owner = "rust-lang";
repo = "rust-analyzer"; repo = "rust-analyzer";
rev = version; rev = version;
hash = "sha256-YH0kH5CSOnAuPUB1BUzUqvnKiv5SgDhfMNjrkki9Ahk="; hash = "sha256-TDI1s2Sc/rpMLwful1NcTjYBbqzbQ4Mjw5PPOuOXVfg=";
}; };
cargoBuildFlags = [ "--bin" "rust-analyzer" "--bin" "rust-analyzer-proc-macro-srv" ]; cargoBuildFlags = [
cargoTestFlags = [ "--package" "rust-analyzer" "--package" "proc-macro-srv-cli" ]; "--bin"
"rust-analyzer"
"--bin"
"rust-analyzer-proc-macro-srv"
];
cargoTestFlags = [
"--package"
"rust-analyzer"
"--package"
"proc-macro-srv-cli"
];
# Code format check requires more dependencies but don't really matter for packaging. # Code format check requires more dependencies but don't really matter for packaging.
# So just ignore it. # So just ignore it.
@ -33,7 +42,6 @@ rustPlatform.buildRustPackage rec {
nativeBuildInputs = lib.optional useMimalloc cmake; nativeBuildInputs = lib.optional useMimalloc cmake;
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
CoreServices
libiconv libiconv
]; ];
@ -58,13 +66,18 @@ rustPlatform.buildRustPackage rec {
passthru = { passthru = {
updateScript = nix-update-script { }; updateScript = nix-update-script { };
# FIXME: Pass overrided `rust-analyzer` once `buildRustPackage` also implements #119942 # FIXME: Pass overrided `rust-analyzer` once `buildRustPackage` also implements #119942
tests.neovim-lsp = callPackage ./test-neovim-lsp.nix { }; # FIXME: test script can't find rust std lib so hover doesn't return expected result
# https://github.com/NixOS/nixpkgs/pull/354304
# tests.neovim-lsp = callPackage ./test-neovim-lsp.nix { };
}; };
meta = with lib; { meta = with lib; {
description = "Modular compiler frontend for the Rust language"; description = "Modular compiler frontend for the Rust language";
homepage = "https://rust-analyzer.github.io"; homepage = "https://rust-analyzer.github.io";
license = with licenses; [ mit asl20 ]; license = with licenses; [
mit
asl20
];
maintainers = with maintainers; [ oxalica ]; maintainers = with maintainers; [ oxalica ];
mainProgram = "rust-analyzer"; mainProgram = "rust-analyzer";
}; };

View File

@ -0,0 +1,75 @@
{
runCommand,
cargo,
neovim,
rust-analyzer,
rustc,
}:
runCommand "test-neovim-rust-analyzer"
{
nativeBuildInputs = [
cargo
neovim
rust-analyzer
rustc
];
testRustSrc = ''
fn main() {
let mut var = vec![None];
var.push(Some("hello".to_owned()));
}
'';
# NB. Wait for server done type calculations before sending `hover` request,
# otherwise it would return `{unknown}`.
# Ref: https://github.com/rust-lang/rust-analyzer/blob/7b11fdeb681c12002861b9804a388efde81c9647/docs/dev/lsp-extensions.md#server-status
nvimConfig = ''
local caps = vim.lsp.protocol.make_client_capabilities()
caps["experimental"] = { serverStatusNotification = true }
vim.lsp.buf_attach_client(vim.api.nvim_get_current_buf(), vim.lsp.start_client({
cmd = { "rust-analyzer" },
capabilities = caps,
handlers = {
["experimental/serverStatus"] = function(_, msg, ctx)
if msg.health == "ok" then
if msg.quiescent then
vim.cmd("goto 23") -- let mut |var =...
vim.lsp.buf.hover()
end
else
print("error: server status is not ok: ")
vim.cmd("q")
end
end,
["textDocument/hover"] = function(_, msg, ctx)
if msg then
-- Keep newlines.
io.write(msg.contents.value)
vim.cmd("q")
end
end,
},
on_error = function(code)
print("error: " .. code)
vim.cmd("q")
end
}))
'';
}
''
# neovim requires a writable HOME.
export HOME="$(pwd)"
cargo new --bin test-rust-analyzer
cd test-rust-analyzer
cat <<<"$testRustSrc" >src/main.rs
cat <<<"$nvimConfig" >script.lua
# `-u` doesn't work
result="$(nvim --headless +'lua dofile("script.lua")' src/main.rs)"
echo "$result"
[[ "$result" == *"var: Vec<Option<String>>"* ]]
touch $out
''

View File

@ -0,0 +1,21 @@
{
rustPlatform,
runCommand,
makeWrapper,
rust-analyzer-unwrapped,
pname ? "rust-analyzer",
version ? rust-analyzer-unwrapped.version,
# Use name from `RUST_SRC_PATH`
rustSrc ? rustPlatform.rustLibSrc,
}:
runCommand "${pname}-${version}"
{
inherit pname version;
inherit (rust-analyzer-unwrapped) src meta;
nativeBuildInputs = [ makeWrapper ];
}
''
mkdir -p $out/bin
makeWrapper ${rust-analyzer-unwrapped}/bin/rust-analyzer $out/bin/rust-analyzer \
--set-default RUST_SRC_PATH "${rustSrc}"
''

View File

@ -1,28 +1,30 @@
{ lib {
, python3Packages lib,
, fetchFromGitHub python3Packages,
fetchFromGitHub,
}: }:
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "snallygaster"; pname = "snallygaster";
version = "0.0.12"; version = "0.0.13";
pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "hannob"; owner = "hannob";
repo = pname; repo = "snallygaster";
rev = "v${version}"; rev = "refs/tags/v${version}";
sha256 = "sha256-JXuRCUWpoGhBbU38XMEQovCiVfbyBMJ+SIrt3iqFuAo="; hash = "sha256-d94Z/vLOcOa9N8WIgCkiZAciNUzdI4qbGXQOc8KNDEE=";
}; };
propagatedBuildInputs = with python3Packages; [ build-system = with python3Packages; [ setuptools ];
urllib3
dependencies = with python3Packages; [
beautifulsoup4 beautifulsoup4
dnspython dnspython
urllib3
]; ];
nativeCheckInputs = with python3Packages; [ nativeCheckInputs = with python3Packages; [ pytestCheckHook ];
pytestCheckHook
];
pytestFlagsArray = [ pytestFlagsArray = [
# we are not interested in linting the project # we are not interested in linting the project
@ -31,9 +33,9 @@ python3Packages.buildPythonApplication rec {
meta = with lib; { meta = with lib; {
description = "Tool to scan for secret files on HTTP servers"; description = "Tool to scan for secret files on HTTP servers";
mainProgram = "snallygaster";
homepage = "https://github.com/hannob/snallygaster"; homepage = "https://github.com/hannob/snallygaster";
license = licenses.cc0; license = licenses.bsd0;
maintainers = [ ]; maintainers = with maintainers; [ fab ];
mainProgram = "snallygaster";
}; };
} }

View File

@ -1,36 +1,72 @@
{ lib, stdenv, fetchFromGitHub {
, autoreconfHook, pkg-config, docbook_xsl, libxslt, docbook_xml_dtd_45 lib,
, acl, attr, boost, btrfs-progs, coreutils, dbus, diffutils, e2fsprogs, libxml2 stdenv,
, lvm2, pam, util-linux, json_c, nixosTests fetchFromGitHub,
, ncurses, zlib }: autoreconfHook,
pkg-config,
docbook_xsl,
libxslt,
docbook_xml_dtd_45,
acl,
attr,
boost,
btrfs-progs,
coreutils,
dbus,
diffutils,
e2fsprogs,
libxml2,
lvm2,
pam,
util-linux,
json_c,
nixosTests,
ncurses,
zlib,
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "snapper"; pname = "snapper";
version = "0.11.2"; version = "0.12.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "openSUSE"; owner = "openSUSE";
repo = "snapper"; repo = "snapper";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-U948AmyQ6c5+FCrDijOVLc/p2wwbq5IWwS66x+O960Y="; sha256 = "sha256-Hh5etDx7nLBYC6VLeZS4F52w2VpaA4aZRvGUQ0QGBJc=";
}; };
strictDeps = true; strictDeps = true;
nativeBuildInputs = [ nativeBuildInputs = [
autoreconfHook pkg-config autoreconfHook
docbook_xsl libxslt docbook_xml_dtd_45 pkg-config
docbook_xsl
libxslt
docbook_xml_dtd_45
]; ];
buildInputs = [ buildInputs = [
acl attr boost btrfs-progs dbus diffutils e2fsprogs libxml2 acl
lvm2 pam util-linux json_c ncurses zlib attr
boost
btrfs-progs
dbus
diffutils
e2fsprogs
libxml2
lvm2
pam
util-linux
json_c
ncurses
zlib
]; ];
passthru.tests.snapper = nixosTests.snapper; passthru.tests.snapper = nixosTests.snapper;
postPatch = '' postPatch = ''
# Hard-coded root paths, hard-coded root paths everywhere... # Hard-coded root paths, hard-coded root paths everywhere...
for file in {client,data,pam,scripts,zypp-plugin}/Makefile.am; do for file in {client,client/installation-helper,client/systemd-helper,data,pam,scripts,zypp-plugin}/Makefile.am; do
substituteInPlace $file \ substituteInPlace $file \
--replace '$(DESTDIR)/usr' "$out" \ --replace '$(DESTDIR)/usr' "$out" \
--replace "DESTDIR" "out" \ --replace "DESTDIR" "out" \
@ -41,15 +77,13 @@ stdenv.mkDerivation rec {
''; '';
configureFlags = [ configureFlags = [
"--disable-ext4" # requires patched kernel & e2fsprogs "--disable-ext4" # requires patched kernel & e2fsprogs
"DIFFBIN=${diffutils}/bin/diff" "DIFFBIN=${diffutils}/bin/diff"
"RMBIN=${coreutils}/bin/rm" "RMBIN=${coreutils}/bin/rm"
]; ];
enableParallelBuilding = true; enableParallelBuilding = true;
env.NIX_CFLAGS_COMPILE = "-I${libxml2.dev}/include/libxml2";
postInstall = '' postInstall = ''
rm -r $out/etc/cron.* rm -r $out/etc/cron.*
patchShebangs $out/lib/zypp/plugins/commit/* patchShebangs $out/lib/zypp/plugins/commit/*
@ -62,12 +96,12 @@ stdenv.mkDerivation rec {
done done
''; '';
meta = with lib; { meta = {
description = "Tool for Linux filesystem snapshot management"; description = "Tool for Linux filesystem snapshot management";
homepage = "http://snapper.io"; homepage = "http://snapper.io";
license = licenses.gpl2Only; license = lib.licenses.gpl2Only;
mainProgram = "snapper"; mainProgram = "snapper";
maintainers = with maintainers; [ markuskowa ]; maintainers = with lib.maintainers; [ markuskowa ];
platforms = platforms.linux; platforms = lib.platforms.linux;
}; };
} }

View File

@ -1,39 +1,50 @@
{ lib {
, rustPlatform lib,
, fetchFromGitHub rustPlatform,
, pkg-config fetchFromGitHub,
, openssl pkg-config,
, cmake openssl,
# deps for audio backends cmake,
, alsa-lib # deps for audio backends
, libpulseaudio alsa-lib,
, portaudio libpulseaudio,
, libjack2 portaudio,
, SDL2 libjack2,
, gst_all_1 SDL2,
, dbus gst_all_1,
, fontconfig dbus,
, libsixel fontconfig,
libsixel,
apple-sdk_11,
# build options # build options
, withStreaming ? true withStreaming ? true,
, withDaemon ? true withDaemon ? true,
, withAudioBackend ? "rodio" # alsa, pulseaudio, rodio, portaudio, jackaudio, rodiojack, sdl withAudioBackend ? "rodio", # alsa, pulseaudio, rodio, portaudio, jackaudio, rodiojack, sdl
, withMediaControl ? true withMediaControl ? true,
, withLyrics ? true withLyrics ? true,
, withImage ? true withImage ? true,
, withNotify ? true withNotify ? true,
, withSixel ? true withSixel ? true,
, withFuzzy ? true withFuzzy ? true,
, stdenv stdenv,
, darwin makeBinaryWrapper,
, makeBinaryWrapper
# passthru # passthru
, nix-update-script nix-update-script,
}: }:
assert lib.assertOneOf "withAudioBackend" withAudioBackend [ "" "alsa" "pulseaudio" "rodio" "portaudio" "jackaudio" "rodiojack" "sdl" "gstreamer" ]; assert lib.assertOneOf "withAudioBackend" withAudioBackend [
""
"alsa"
"pulseaudio"
"rodio"
"portaudio"
"jackaudio"
"rodiojack"
"sdl"
"gstreamer"
];
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "spotify-player"; pname = "spotify-player";
@ -48,38 +59,47 @@ rustPlatform.buildRustPackage rec {
cargoHash = "sha256-VlJ8Bz4EY2rERyOn6ifC7JAL5Mvjt0ZOzlPBOwiH6WA="; cargoHash = "sha256-VlJ8Bz4EY2rERyOn6ifC7JAL5Mvjt0ZOzlPBOwiH6WA=";
nativeBuildInputs = [ nativeBuildInputs =
pkg-config [
cmake pkg-config
rustPlatform.bindgenHook cmake
] ++ lib.optionals stdenv.hostPlatform.isDarwin [ rustPlatform.bindgenHook
makeBinaryWrapper ]
]; ++ lib.optionals stdenv.hostPlatform.isDarwin [
makeBinaryWrapper
];
buildInputs = [ buildInputs =
openssl [
dbus openssl
fontconfig dbus
] fontconfig
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
apple-sdk_11 # can be removed once x86_64-darwin defaults to a newer SDK
]
++ lib.optionals withSixel [ libsixel ] ++ lib.optionals withSixel [ libsixel ]
++ lib.optionals (withAudioBackend == "alsa") [ alsa-lib ] ++ lib.optionals (withAudioBackend == "alsa") [ alsa-lib ]
++ lib.optionals (withAudioBackend == "pulseaudio") [ libpulseaudio ] ++ lib.optionals (withAudioBackend == "pulseaudio") [ libpulseaudio ]
++ lib.optionals (withAudioBackend == "rodio" && stdenv.hostPlatform.isLinux) [ alsa-lib ] ++ lib.optionals (withAudioBackend == "rodio" && stdenv.hostPlatform.isLinux) [ alsa-lib ]
++ lib.optionals (withAudioBackend == "portaudio") [ portaudio ] ++ lib.optionals (withAudioBackend == "portaudio") [ portaudio ]
++ lib.optionals (withAudioBackend == "jackaudio") [ libjack2 ] ++ lib.optionals (withAudioBackend == "jackaudio") [ libjack2 ]
++ lib.optionals (withAudioBackend == "rodiojack") [ alsa-lib libjack2 ] ++ lib.optionals (withAudioBackend == "rodiojack") [
alsa-lib
libjack2
]
++ lib.optionals (withAudioBackend == "sdl") [ SDL2 ] ++ lib.optionals (withAudioBackend == "sdl") [ SDL2 ]
++ lib.optionals (withAudioBackend == "gstreamer") [ gst_all_1.gstreamer gst_all_1.gst-devtools gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good ] ++ lib.optionals (withAudioBackend == "gstreamer") [
++ lib.optionals (stdenv.hostPlatform.isDarwin && withMediaControl) [ darwin.apple_sdk.frameworks.MediaPlayer ] gst_all_1.gstreamer
++ lib.optionals stdenv.hostPlatform.isDarwin (with darwin.apple_sdk.frameworks; [ gst_all_1.gst-devtools
AppKit gst_all_1.gst-plugins-base
AudioUnit gst_all_1.gst-plugins-good
Cocoa ];
]);
buildNoDefaultFeatures = true; buildNoDefaultFeatures = true;
buildFeatures = [ ] buildFeatures =
[ ]
++ lib.optionals (withAudioBackend != "") [ "${withAudioBackend}-backend" ] ++ lib.optionals (withAudioBackend != "") [ "${withAudioBackend}-backend" ]
++ lib.optionals withMediaControl [ "media-control" ] ++ lib.optionals withMediaControl [ "media-control" ]
++ lib.optionals withImage [ "image" ] ++ lib.optionals withImage [ "image" ]
@ -93,7 +113,7 @@ rustPlatform.buildRustPackage rec {
# sixel-sys is dynamically linked to libsixel # sixel-sys is dynamically linked to libsixel
postInstall = lib.optionals (stdenv.hostPlatform.isDarwin && withSixel) '' postInstall = lib.optionals (stdenv.hostPlatform.isDarwin && withSixel) ''
wrapProgram $out/bin/spotify_player \ wrapProgram $out/bin/spotify_player \
--prefix DYLD_LIBRARY_PATH : "${lib.makeLibraryPath [libsixel]}" --prefix DYLD_LIBRARY_PATH : "${lib.makeLibraryPath [ libsixel ]}"
''; '';
passthru = { passthru = {
@ -106,6 +126,11 @@ rustPlatform.buildRustPackage rec {
changelog = "https://github.com/aome510/spotify-player/releases/tag/v${version}"; changelog = "https://github.com/aome510/spotify-player/releases/tag/v${version}";
mainProgram = "spotify_player"; mainProgram = "spotify_player";
license = lib.licenses.mit; license = lib.licenses.mit;
maintainers = with lib.maintainers; [ dit7ya xyven1 _71zenith caperren ]; maintainers = with lib.maintainers; [
dit7ya
xyven1
_71zenith
caperren
];
}; };
} }

View File

@ -2,74 +2,25 @@
lib, lib,
stdenv, stdenv,
fetchFromGitLab, fetchFromGitLab,
rustPlatform,
rustc,
wasm-pack,
wasm-bindgen-cli,
binaryen,
fetchYarnDeps, fetchYarnDeps,
yarn, yarn,
fixup-yarn-lock, fixup-yarn-lock,
nodejs, nodejs,
asar, asar,
tpsecore,
tetrio-desktop, tetrio-desktop,
}: }:
let let
version = "0.27.4"; version = "0.27.5";
rev = "electron-v${version}-tetrio-v${tetrio-desktop.version}"; rev = "electron-v${version}-tetrio-v${tetrio-desktop.version}";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "UniQMG"; owner = "UniQMG";
repo = "tetrio-plus"; repo = "tetrio-plus";
inherit rev; inherit rev;
hash = "sha256-HwGFg8dxqtqghdP+PXWXr6Fi5vfgopThs+QNa3N1awk="; hash = "sha256-hbHofrC2dJOh2kh3VLb/d0dHrcszyqTyID1PAaGApxY=";
fetchSubmodules = true;
};
wasm-bindgen-82 = wasm-bindgen-cli.override {
version = "0.2.82";
hash = "sha256-BQ8v3rCLUvyCCdxo5U+NHh30l9Jwvk9Sz8YQv6fa0SU=";
cargoHash = "sha256-mP85+qi2KA0GieaBzbrQOBqYxBZNRJipvd2brCRGyOM=";
};
tpsecore = rustPlatform.buildRustPackage {
pname = "tpsecore";
inherit version src;
sourceRoot = "${src.name}/tpsecore";
cargoHash = "sha256-zqeoPeGZvSz7W3c7MXnvvq73hvavg1RGzPc3iTqAjBo=";
nativeBuildInputs = [
wasm-pack
wasm-bindgen-82
binaryen
rustc.llvmPackages.lld
];
buildPhase = ''
HOME=$(mktemp -d) wasm-pack build --target web --release
'';
installPhase = ''
cp -r pkg/ $out
'';
doCheck = false;
meta = {
description = "Self contained toolkit for creating, editing, and previewing TPSE files";
homepage = "https://gitlab.com/UniQMG/tpsecore";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
huantian
wackbyte
];
platforms = lib.platforms.linux;
};
}; };
offlineCache = fetchYarnDeps { offlineCache = fetchYarnDeps {
@ -119,16 +70,12 @@ stdenv.mkDerivation (finalAttrs: {
# Actually install tetrio-plus where the above patch script expects # Actually install tetrio-plus where the above patch script expects
cp -r $src out/tetrioplus cp -r $src out/tetrioplus
chmod -R u+w out/tetrioplus chmod -R u+w out/tetrioplus
# Install tpsecore # Install tpsecore
cp ${tpsecore}/{tpsecore_bg.wasm,tpsecore.js} out/tetrioplus/source/lib/ cp ${tpsecore}/{tpsecore_bg.wasm,tpsecore.js} out/tetrioplus/source/lib/
# Remove uneeded tpsecore source code
rm -rf out/tetrioplus/tpsecore/
# Disable useless uninstall button in the tetrio-plus popup # Disable useless uninstall button in the tetrio-plus popup
substituteInPlace out/tetrioplus/desktop-manifest.js \ substituteInPlace out/tetrioplus/desktop-manifest.js \
--replace-fail '"show_uninstaller_button": true' '"show_uninstaller_button": false' --replace-fail '"show_uninstaller_button": true' '"show_uninstaller_button": false'
# Display 'nixpkgs' next to version in tetrio-plus popup # Display 'nixpkgs' next to version in tetrio-plus popup
echo "nixpkgs" > out/tetrioplus/resources/override-commit echo "nixpkgs" > out/tetrioplus/resources/override-commit

View File

@ -0,0 +1,68 @@
{
lib,
fetchFromGitLab,
rustPlatform,
rustc,
wasm-pack,
wasm-bindgen-cli,
binaryen,
}:
let
version = "0.1.1";
wasm-bindgen-cli-95 = wasm-bindgen-cli.override {
version = "0.2.95";
hash = "sha256-prMIreQeAcbJ8/g3+pMp1Wp9H5u+xLqxRxL+34hICss=";
cargoHash = "sha256-6iMebkD7FQvixlmghGGIvpdGwFNLfnUcFke/Rg8nPK4=";
};
in
rustPlatform.buildRustPackage {
pname = "tpsecore";
inherit version;
src = fetchFromGitLab {
owner = "UniQMG";
repo = "tpsecore";
rev = "v${version}";
hash = "sha256-+OynnLMBEiYwdFzxGzgkcBN6xrHoH1Q6O5i+OW7RBLo=";
};
cargoHash = "sha256-mPaWXiDjJd/uTBpktauKWg8X9sNBb3FXw5BSGB33NxI=";
nativeBuildInputs = [
wasm-pack
wasm-bindgen-cli-95
binaryen
rustc.llvmPackages.lld
];
buildPhase = ''
runHook preBuild
HOME=$(mktemp -d) wasm-pack build --target web --release
runHook postBuild
'';
installPhase = ''
runHook preInstall
cp -r pkg/ $out
runHook postInstall
'';
doCheck = false;
meta = {
description = "Self contained toolkit for creating, editing, and previewing TPSE files";
homepage = "https://gitlab.com/UniQMG/tpsecore";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
huantian
wackbyte
];
platforms = lib.platforms.linux;
};
}

View File

@ -3,12 +3,12 @@
let let
generator = pkgsBuildBuild.buildGoModule rec { generator = pkgsBuildBuild.buildGoModule rec {
pname = "v2ray-domain-list-community"; pname = "v2ray-domain-list-community";
version = "20241013063848"; version = "20241112092643";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "v2fly"; owner = "v2fly";
repo = "domain-list-community"; repo = "domain-list-community";
rev = version; rev = version;
hash = "sha256-YFsz+fT2LPU4TakQ2V1PtETmnXI5r3qAaERAqM9mX5g="; hash = "sha256-+S93tyYzkEMous+PkpR1yMAZmfSEc/HRqxUjXOeWIGk=";
}; };
vendorHash = "sha256-NLh14rXRci4hgDkBJVJDIDvobndB7KYRKAX7UjyqSsg="; vendorHash = "sha256-NLh14rXRci4hgDkBJVJDIDvobndB7KYRKAX7UjyqSsg=";
meta = with lib; { meta = with lib; {

View File

@ -45,12 +45,12 @@ in
{ {
alex = buildStyle rec { alex = buildStyle rec {
name = "alex"; name = "alex";
version = "0.2.2"; version = "0.2.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "errata-ai"; owner = "errata-ai";
repo = "alex"; repo = "alex";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-mfeMa+KlkqwyS+h+oo5p5+P2bsmZ0BOph2nbQiaoNqM="; hash = "sha256-p0CQg6ZLusSKr57SugwlnoDEoPNVY3UIM8rHHxOL2l0=";
}; };
meta = { meta = {
description = "Vale-compatible implementation of the guidelines enforced by the alex linter"; description = "Vale-compatible implementation of the guidelines enforced by the alex linter";
@ -61,12 +61,12 @@ in
google = buildStyle rec { google = buildStyle rec {
name = "Google"; name = "Google";
version = "0.6.1"; version = "0.6.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "errata-ai"; owner = "errata-ai";
repo = "Google"; repo = "Google";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-jSmfUgzlIbDVh2zLtnTNpM/z6dHMp358F9adLZ5+qcw="; hash = "sha256-ldwK9tMA04H/jTd3dQeRX/sZOwZcyPb+I56cDg0vZDg=";
}; };
meta = { meta = {
description = "Vale-compatible implementation of the Google Developer Documentation Style Guide"; description = "Vale-compatible implementation of the Google Developer Documentation Style Guide";

View File

@ -0,0 +1,60 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
cmake,
pkg-config,
vapoursynth,
ffmpeg,
xxHash,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "vapoursynth-bestsource";
version = "6";
outputs = [
"out"
"dev"
];
src = fetchFromGitHub {
fetchSubmodules = true;
owner = "vapoursynth";
repo = "bestsource";
rev = "refs/tags/R${finalAttrs.version}";
hash = "sha256-ICkdIomlkHUdK6kMeui45fvUn4OMxSrP8svB2IN+GCg=";
};
nativeBuildInputs = [
meson
ninja
cmake
pkg-config
];
buildInputs = [
vapoursynth
ffmpeg
xxHash
];
postPatch = ''
substituteInPlace meson.build \
--replace-fail "vapoursynth_dep.get_variable(pkgconfig: 'libdir')" "get_option('libdir')"
'';
meta = {
description = "Wrapper library around FFmpeg that ensures sample and frame accurate access to audio and video";
homepage = "https://github.com/vapoursynth/bestsource";
license = with lib.licenses; [
mit
wtfpl
gpl2Plus
];
maintainers = with lib.maintainers; [ snaki ];
platforms = lib.platforms.x86_64;
};
})

View File

@ -0,0 +1,56 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
pkg-config,
boost,
vapoursynth,
opencl-headers,
ocl-icd,
openclSupport ? true,
}:
stdenv.mkDerivation {
pname = "vapoursynth-eedi3";
version = "unstable-2019-09-30";
src = fetchFromGitHub {
owner = "HomeOfVapourSynthEvolution";
repo = "VapourSynth-EEDI3";
rev = "d11bdb37c7a7118cd095b53d9f8fbbac02a06ac0";
hash = "sha256-MIUf6sOnJ2uqGw3ixEHy1ijzlLFkQauwtm1vfgmYmcg=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs =
[
boost
vapoursynth
]
++ lib.optionals openclSupport [
ocl-icd
opencl-headers
];
postPatch = ''
substituteInPlace meson.build \
--replace-fail "vapoursynth_dep.get_pkgconfig_variable('libdir')" "get_option('libdir')"
'';
mesonFlags = [ (lib.mesonBool "opencl" openclSupport) ];
meta = {
description = "Filter for VapourSynth";
homepage = "https://github.com/HomeOfVapourSynthEvolution/VapourSynth-EEDI3";
license = with lib.licenses; [ gpl2Plus ];
maintainers = with lib.maintainers; [ snaki ];
platforms = lib.platforms.x86_64;
};
}

View File

@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
vapoursynth,
yasm,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "vapoursynth-nnedi3";
version = "12";
src = fetchFromGitHub {
owner = "dubhater";
repo = "vapoursynth-nnedi3";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-jd/PCXhbCZGMsoXjekbeqMSRVBJAy4INdpkTbZFjVO0=";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
vapoursynth
yasm
];
configureFlags = [ "--libdir=$(out)/lib/vapoursynth" ];
postInstall = ''
rm -f $out/lib/vapoursynth/*.la
'';
meta = {
description = "Filter for VapourSynth";
homepage = "https://github.com/dubhater/vapoursynth-nnedi3";
license = with lib.licenses; [ gpl2Plus ];
maintainers = with lib.maintainers; [ snaki ];
platforms = with lib.platforms; x86_64 ++ aarch64;
};
})

View File

@ -0,0 +1,50 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
pkg-config,
boost,
vapoursynth,
opencl-headers,
ocl-icd,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "vapoursynth-nnedi3cl";
version = "8";
src = fetchFromGitHub {
owner = "HomeOfVapourSynthEvolution";
repo = "VapourSynth-NNEDI3CL";
rev = "refs/tags/r${finalAttrs.version}";
hash = "sha256-zW/qEtZTDJOTarXbXhv+nks25eePutLDpLck4TuMKUk=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [
boost
vapoursynth
ocl-icd
opencl-headers
];
postPatch = ''
substituteInPlace meson.build \
--replace-fail "vapoursynth_dep.get_pkgconfig_variable('libdir')" "get_option('libdir')"
'';
meta = {
description = "Filter for VapourSynth";
homepage = "https://github.com/HomeOfVapourSynthEvolution/VapourSynth-NNEDI3CL";
license = with lib.licenses; [ gpl2Plus ];
maintainers = with lib.maintainers; [ snaki ];
platforms = lib.platforms.x86_64;
};
})

View File

@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchFromGitHub,
vapoursynth,
}:
stdenv.mkDerivation {
pname = "vapoursynth-znedi3";
version = "unstable-2023-07-09";
src = fetchFromGitHub {
fetchSubmodules = true;
owner = "sekrit-twc";
repo = "znedi3";
rev = "68dc130bc37615fd912d1dc1068261f00f54b146";
hash = "sha256-QC+hMMfp6XwW4PqsN6sip1Y7ttiYn/xuxq/pUg/trog=";
};
buildInputs = [ vapoursynth ];
postPatch = ''
rm -rf vsxx/vapoursynth
ln -s ${vapoursynth}/include/vapoursynth vsxx/vapoursynth
'';
makeFlags =
[ "CPPFLAGS=-DNNEDI3_WEIGHTS_PATH='\"$(out)/share/nnedi3/nnedi3_weights.bin\"'" ]
++ lib.optionals stdenv.hostPlatform.isx86 [
"X86=1"
"X86_AVX512=1"
];
installPhase = ''
runHook preInstall
install -D -t $out/lib/vapoursynth vsznedi3${stdenv.hostPlatform.extensions.sharedLibrary}
install -D -m644 -t $out/share/nnedi3 nnedi3_weights.bin
runHook postInstall
'';
meta = {
inherit (vapoursynth.meta) platforms;
description = "Filter for VapourSynth";
homepage = "https://github.com/sekrit-twc/znedi3";
license = with lib.licenses; [
gpl2Plus
wtfpl
lgpl21
];
maintainers = with lib.maintainers; [ snaki ];
};
}

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation { stdenv.mkDerivation {
pname = "libcxxrt"; pname = "libcxxrt";
version = "4.0.10-unstable-2024-09-24"; version = "4.0.10-unstable-2024-10-30";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "libcxxrt"; owner = "libcxxrt";
repo = "libcxxrt"; repo = "libcxxrt";
rev = "40e4fa2049930412a2c43cdf0c39b6b5aa735341"; rev = "6f2fdfebcd6291d763de8b17740d636f01761890";
sha256 = "2rEbRTr8RLl8EKrDq210baCPDt9OppdL7zloNjGOZME="; sha256 = "iUuIhwFg1Ys9DDoyDFTjEIlCVDdA1TACwtYXSRr5+2g=";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];

View File

@ -11,14 +11,14 @@ php.buildComposerProject2 (finalAttrs: {
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vimeo"; owner = "vimeo";
repo = "psalm"; repo = "psalm";
rev = finalAttrs.version; rev = "refs/tags/${finalAttrs.version}";
hash = "sha256-ecORCwTnTKzy/pgfODu9W9I/5xL+8Fo4OgZ5LsYDYLQ="; hash = "sha256-ecORCwTnTKzy/pgfODu9W9I/5xL+8Fo4OgZ5LsYDYLQ=";
}; };
# Missing `composer.lock` from the repository. # Missing `composer.lock` from the repository.
# Issue open at https://github.com/vimeo/psalm/issues/10446 # Issue open at https://github.com/vimeo/psalm/issues/10446
composerLock = ./composer.lock; composerLock = ./composer.lock;
vendorHash = "sha256-8SsGwKeE4b9sRD2STRMjWW50UVy9x8HZsZhT0sIC/Cg="; vendorHash = "sha256-lPUwhEUFIyFZPHFxQTE0l7GkkJxGCcSGSYqaVOohSgs=";
meta = { meta = {
changelog = "https://github.com/vimeo/psalm/releases/tag/${finalAttrs.version}"; changelog = "https://github.com/vimeo/psalm/releases/tag/${finalAttrs.version}";

View File

@ -10,14 +10,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "amqp"; pname = "amqp";
version = "5.2.0"; version = "5.3.0";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-oez/QlrQY61CpIbJAoB9FIIxFIHIrZWnJpSyl1519/0="; hash = "sha256-ET5mMQai+wEjyQMNQr85WbliSSg/8UI6sH9crQYtNvc=";
}; };
propagatedBuildInputs = [ vine ]; propagatedBuildInputs = [ vine ];

View File

@ -105,7 +105,10 @@ buildPythonPackage rec {
__darwinAllowLocalNetworking = true; __darwinAllowLocalNetworking = true;
passthru.updateScript = nix-update-script { passthru.updateScript = nix-update-script {
extraArgs = [ "--version-regex" "gradio_client@(.*)" ]; extraArgs = [
"--version-regex"
"gradio_client@(.*)"
];
}; };
meta = { meta = {

View File

@ -87,6 +87,7 @@ buildPythonPackage rec {
"tomlkit" "tomlkit"
"aiofiles" "aiofiles"
"markupsafe" "markupsafe"
"pillow"
]; ];
pythonRemoveDeps = [ pythonRemoveDeps = [
@ -169,87 +170,89 @@ buildPythonPackage rec {
ulimit -n 4096 ulimit -n 4096
''; '';
disabledTests = [ disabledTests =
# Actually broken [
"test_mount_gradio_app" # Actually broken
"test_processing_utils_backwards_compatibility" # type error "test_mount_gradio_app"
"test_processing_utils_backwards_compatibility" # type error
# requires network, it caught our xfail exception # requires network, it caught our xfail exception
"test_error_analytics_successful" "test_error_analytics_successful"
# Flaky, tries to pin dependency behaviour. Sensitive to dep versions # Flaky, tries to pin dependency behaviour. Sensitive to dep versions
# These error only affect downstream use of the check dependencies. # These error only affect downstream use of the check dependencies.
"test_no_color" "test_no_color"
"test_in_interface_as_output" "test_in_interface_as_output"
"test_should_warn_url_not_having_version" "test_should_warn_url_not_having_version"
# Flaky, unknown reason # Flaky, unknown reason
"test_in_interface" "test_in_interface"
# shap is too often broken in nixpkgs # shap is too often broken in nixpkgs
"test_shapley_text" "test_shapley_text"
# fails without network # fails without network
"test_download_if_url_correct_parse" "test_download_if_url_correct_parse"
# flaky: OSError: Cannot find empty port in range: 7860-7959 # flaky: OSError: Cannot find empty port in range: 7860-7959
"test_docs_url" "test_docs_url"
"test_orjson_serialization" "test_orjson_serialization"
"test_dataset_is_updated" "test_dataset_is_updated"
"test_multimodal_api" "test_multimodal_api"
# tests if pip and other tools are installed # tests if pip and other tools are installed
"test_get_executable_path" "test_get_executable_path"
] ++ lib.optionals stdenv.hostPlatform.isDarwin [ ]
# flaky on darwin (depend on port availability) ++ lib.optionals stdenv.hostPlatform.isDarwin [
"test_all_status_messages" # flaky on darwin (depend on port availability)
"test_async_generators" "test_all_status_messages"
"test_async_generators_interface" "test_async_generators"
"test_async_iterator_update_with_new_component" "test_async_generators_interface"
"test_concurrency_limits" "test_async_iterator_update_with_new_component"
"test_default_concurrency_limits" "test_concurrency_limits"
"test_default_flagging_callback" "test_default_concurrency_limits"
"test_end_to_end" "test_default_flagging_callback"
"test_end_to_end_cache_examples" "test_end_to_end"
"test_event_data" "test_end_to_end_cache_examples"
"test_every_does_not_block_queue" "test_event_data"
"test_example_caching_relaunch" "test_every_does_not_block_queue"
"test_example_caching_relaunch" "test_example_caching_relaunch"
"test_exit_called_at_launch" "test_example_caching_relaunch"
"test_file_component_uploads" "test_exit_called_at_launch"
"test_files_saved_as_file_paths" "test_file_component_uploads"
"test_flagging_does_not_create_unnecessary_directories" "test_files_saved_as_file_paths"
"test_flagging_no_permission_error_with_flagging_disabled" "test_flagging_does_not_create_unnecessary_directories"
"test_info_and_warning_alerts" "test_flagging_no_permission_error_with_flagging_disabled"
"test_info_isolation" "test_info_and_warning_alerts"
"test_launch_analytics_does_not_error_with_invalid_blocks" "test_info_isolation"
"test_no_empty_audio_files" "test_launch_analytics_does_not_error_with_invalid_blocks"
"test_no_empty_image_files" "test_no_empty_audio_files"
"test_no_empty_video_files" "test_no_empty_image_files"
"test_non_streaming_api" "test_no_empty_video_files"
"test_non_streaming_api_async" "test_non_streaming_api"
"test_pil_images_hashed" "test_non_streaming_api_async"
"test_progress_bar" "test_pil_images_hashed"
"test_progress_bar_track_tqdm" "test_progress_bar"
"test_queue_when_using_auth" "test_progress_bar_track_tqdm"
"test_restart_after_close" "test_queue_when_using_auth"
"test_set_share_in_colab" "test_restart_after_close"
"test_show_error" "test_set_share_in_colab"
"test_simple_csv_flagging_callback" "test_show_error"
"test_single_request" "test_simple_csv_flagging_callback"
"test_socket_reuse" "test_single_request"
"test_start_server" "test_socket_reuse"
"test_state_holder_is_used_in_postprocess" "test_start_server"
"test_state_stored_up_to_capacity" "test_state_holder_is_used_in_postprocess"
"test_static_files_single_app" "test_state_stored_up_to_capacity"
"test_streaming_api" "test_static_files_single_app"
"test_streaming_api_async" "test_streaming_api"
"test_streaming_api_with_additional_inputs" "test_streaming_api_async"
"test_sync_generators" "test_streaming_api_with_additional_inputs"
"test_time_to_live_and_delete_callback_for_state" "test_sync_generators"
"test_updates_stored_up_to_capacity" "test_time_to_live_and_delete_callback_for_state"
"test_varying_output_forms_with_generators" "test_updates_stored_up_to_capacity"
]; "test_varying_output_forms_with_generators"
];
disabledTestPaths = [ disabledTestPaths = [
# 100% touches network # 100% touches network
"test/test_networking.py" "test/test_networking.py"

View File

@ -9,7 +9,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "immutabledict"; pname = "immutabledict";
version = "4.2.0"; version = "4.2.1";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -18,7 +18,7 @@ buildPythonPackage rec {
owner = "corenting"; owner = "corenting";
repo = "immutabledict"; repo = "immutabledict";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-NpNS8HAacgXm3rFtyd5uFgSURNbDf+YVS1aFx51kwEA="; hash = "sha256-v2oOzvAa8KONZDQuxouai2B9d1RY4kZG/px2wl0KAyM=";
}; };
nativeBuildInputs = [ poetry-core ]; nativeBuildInputs = [ poetry-core ];

View File

@ -16,14 +16,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pyee"; pname = "pyee";
version = "12.0.0"; version = "12.1.1";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-xIBgP0qikn1HZutB+oJ5P+YKgsv9uNaI4NCMVaU04UU="; hash = "sha256-u8M8CeL/gn90GR4+W7xr59oC9ie37DDYb1zhpvskJKM=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -10,7 +10,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pyslurm"; pname = "pyslurm";
version = "23.11.0"; version = "24.5.0";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
@ -19,7 +19,7 @@ buildPythonPackage rec {
repo = "pyslurm"; repo = "pyslurm";
owner = "PySlurm"; owner = "PySlurm";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-Qi0XftneKj7hdDiLY2hoRONRrPv49mfQlvlNkudH54Y="; hash = "sha256-EJTzaoHBidnaHxFLw8FrjJITUxioRGEhl1yvm/QDpXc=";
}; };
nativeBuildInputs = [ setuptools ]; nativeBuildInputs = [ setuptools ];

View File

@ -34,15 +34,26 @@ buildPythonPackage rec {
# asked to relax this in https://github.com/quantumlib/Stim/issues/623 # asked to relax this in https://github.com/quantumlib/Stim/issues/623
substituteInPlace pyproject.toml \ substituteInPlace pyproject.toml \
--replace-quiet "pybind11~=" "pybind11>=" --replace-quiet "pybind11~=" "pybind11>="
# Simple workgroud about https://github.com/networkx/networkx/pull/4829
# https://github.com/quantumlib/Stim/commit/c0dd0b1c8125b2096cd54b6f72884a459e47fe3e
substituteInPlace glue/lattice_surgery/stimzx/_zx_graph_solver.py \
--replace-fail "networkx.testing.assert_graphs_equal" "assert networkx.utils.edges_equal"
substituteInPlace glue/lattice_surgery/stimzx/_text_diagram_parsing.py \
--replace-fail "nx.testing.assert_graphs_equal" "assert nx.utils.edges_equal"
substituteInPlace glue/lattice_surgery/stimzx/_text_diagram_parsing_test.py \
--replace-fail "nx.testing.assert_graphs_equal" "assert nx.utils.edges_equal"
''; '';
nativeBuildInputs = [ build-system = [
pybind11 pybind11
setuptools setuptools
wheel wheel
]; ];
propagatedBuildInputs = [ numpy ]; dependencies = [ numpy ];
nativeCheckInputs = [ nativeCheckInputs = [
cirq-core cirq-core
@ -58,17 +69,18 @@ buildPythonPackage rec {
enableParallelBuilding = true; enableParallelBuilding = true;
disabledTestPaths = [ pytestFlagsArray = [
# Don't test sample # From .github/workflows
"glue/sample/" "src/"
"glue/cirq"
]; ];
meta = with lib; { meta = {
description = "Tool for high performance simulation and analysis of quantum stabilizer circuits, especially quantum error correction (QEC) circuits"; description = "Tool for high performance simulation and analysis of quantum stabilizer circuits, especially quantum error correction (QEC) circuits";
mainProgram = "stim"; mainProgram = "stim";
homepage = "https://github.com/quantumlib/stim"; homepage = "https://github.com/quantumlib/stim";
changelog = "https://github.com/quantumlib/Stim/releases/tag/v${version}"; changelog = "https://github.com/quantumlib/Stim/releases/tag/v${version}";
license = licenses.asl20; license = lib.licenses.asl20;
maintainers = with maintainers; [ chrispattison ]; maintainers = with lib.maintainers; [ chrispattison ];
}; };
} }

File diff suppressed because it is too large Load Diff

View File

@ -1,62 +0,0 @@
{ runCommand, cargo, neovim, rust-analyzer, rustc }:
runCommand "test-neovim-rust-analyzer" {
nativeBuildInputs = [ cargo neovim rust-analyzer rustc ];
testRustSrc = /* rust */ ''
fn main() {
let mut var = vec![None];
var.push(Some("hello".to_owned()));
}
'';
# NB. Wait for server done type calculations before sending `hover` request,
# otherwise it would return `{unknown}`.
# Ref: https://github.com/rust-lang/rust-analyzer/blob/7b11fdeb681c12002861b9804a388efde81c9647/docs/dev/lsp-extensions.md#server-status
nvimConfig = /* lua */ ''
local caps = vim.lsp.protocol.make_client_capabilities()
caps["experimental"] = { serverStatusNotification = true }
vim.lsp.buf_attach_client(vim.api.nvim_get_current_buf(), vim.lsp.start_client({
cmd = { "rust-analyzer" },
capabilities = caps,
handlers = {
["experimental/serverStatus"] = function(_, msg, ctx)
if msg.health == "ok" then
if msg.quiescent then
vim.cmd("goto 23") -- let mut |var =...
vim.lsp.buf.hover()
end
else
print("error: server status is not ok: ")
vim.cmd("q")
end
end,
["textDocument/hover"] = function(_, msg, ctx)
if msg then
-- Keep newlines.
io.write(msg.contents.value)
vim.cmd("q")
end
end,
},
on_error = function(code)
print("error: " .. code)
vim.cmd("q")
end
}))
'';
} ''
# neovim requires a writable HOME.
export HOME="$(pwd)"
cargo new --bin test-rust-analyzer
cd test-rust-analyzer
cat <<<"$testRustSrc" >src/main.rs
cat <<<"$nvimConfig" >script.lua
# `-u` doesn't work
result="$(nvim --headless +'lua dofile("script.lua")' src/main.rs)"
echo "$result"
[[ "$result" == *"var: Vec<Option<String>>"* ]]
touch $out
''

View File

@ -1,15 +0,0 @@
{ rustPlatform, runCommand, makeWrapper, rust-analyzer-unwrapped
, pname ? "rust-analyzer"
, version ? rust-analyzer-unwrapped.version
# Use name from `RUST_SRC_PATH`
, rustSrc ? rustPlatform.rustLibSrc
}:
runCommand "${pname}-${version}" {
inherit pname version;
inherit (rust-analyzer-unwrapped) src meta;
nativeBuildInputs = [ makeWrapper ];
} ''
mkdir -p $out/bin
makeWrapper ${rust-analyzer-unwrapped}/bin/rust-analyzer $out/bin/rust-analyzer \
--set-default RUST_SRC_PATH "${rustSrc}"
''

View File

@ -1,4 +1,6 @@
self: super: { self: super: let
inherit (self) lib config;
in {
age = super.callPackage ./age.nix { }; age = super.callPackage ./age.nix { };
@ -26,8 +28,6 @@ self: super: {
pg_ed25519 = super.callPackage ./pg_ed25519.nix { }; pg_ed25519 = super.callPackage ./pg_ed25519.nix { };
pg_embedding = super.callPackage ./pg_embedding.nix { };
pg_hint_plan = super.callPackage ./pg_hint_plan.nix { }; pg_hint_plan = super.callPackage ./pg_hint_plan.nix { };
pg_ivm = super.callPackage ./pg_ivm.nix { }; pg_ivm = super.callPackage ./pg_ivm.nix { };
@ -107,7 +107,11 @@ self: super: {
rum = super.callPackage ./rum.nix { }; rum = super.callPackage ./rum.nix { };
sqlite_fdw = super.callPackage ./sqlite_fdw.nix { };
tsja = super.callPackage ./tsja.nix { }; tsja = super.callPackage ./tsja.nix { };
wal2json = super.callPackage ./wal2json.nix { }; wal2json = super.callPackage ./wal2json.nix { };
} // lib.optionalAttrs config.allowAliases {
pg_embedding = throw "PostgreSQL extension `pg_embedding` has been removed since the project has been abandoned. Upstream's recommendation is to use pgvector instead (https://neon.tech/docs/extensions/pg_embedding#migrate-from-pg_embedding-to-pgvector)";
} }

View File

@ -1,22 +0,0 @@
{ lib, stdenv, fetchFromGitHub, postgresql, buildPostgresqlExtension }:
buildPostgresqlExtension rec {
pname = "pg_embedding";
version = "0.3.6";
src = fetchFromGitHub {
owner = "neondatabase";
repo = pname;
rev = version;
hash = "sha256-NTBxsQB8mR7e/CWwkCEyDiYhi3Nxl/aKgRBwqc0THcI=";
};
meta = with lib; {
description = "PostgreSQL extension implementing the HNSW algorithm for vector similarity search";
homepage = "https://github.com/neondatabase/pg_embedding";
maintainers = with maintainers; [ ];
platforms = postgresql.meta.platforms;
license = licenses.asl20;
knownVulnerabilities = [ "As of Sept 29, 2023, the authors have abandoned the project and strongly encourage using pgvector, which is faster, has more functionality, and is actively maintained: check out the author's instructions to migrate at https://neon.tech/docs/extensions/pg_embedding#migrate-from-pg_embedding-to-pgvector" ];
};
}

View File

@ -0,0 +1,34 @@
{
lib,
fetchFromGitHub,
sqlite,
postgresql,
buildPostgresqlExtension,
}:
buildPostgresqlExtension rec {
pname = "sqlite_fdw";
# TODO: Check whether PostgreSQL 17 is still broken after next update.
version = "2.4.0";
src = fetchFromGitHub {
owner = "pgspider";
repo = "sqlite_fdw";
rev = "v${version}";
hash = "sha256-u51rcKUH2nZyZbI2g3crzHt5jiacbTq4xmfP3JgqnnM=";
};
buildInputs = [ sqlite ];
makeFlags = [ "USE_PGXS=1" ];
meta = {
description = "SQLite Foreign Data Wrapper for PostgreSQL";
homepage = "https://github.com/pgspider/sqlite_fdw";
changelog = "https://github.com/pgspider/sqlite_fdw/releases/tag/v${version}";
maintainers = with lib.maintainers; [ apfelkuchen6 ];
platforms = lib.platforms.unix;
license = lib.licenses.postgresql;
broken = lib.versionAtLeast postgresql.version "17";
};
}

View File

@ -1,8 +1,8 @@
{ {
"serverVersion": "0.19.5", "serverVersion": "0.19.7",
"uiVersion": "0.19.5", "uiVersion": "0.19.7",
"serverHash": "sha256-ellHimZdbB5EQSHVsppBNYyZOODpUADvUn7u6JOu1ns=", "serverHash": "sha256-f1KpjXfGIOzO4L6sjohq2EBJEAqZaPS7osu05RwDs6M=",
"serverCargoHash": "sha256-UdFw8RPKYLqY98So8z9kiaVCl3b8KaqIoUMK/EV2uNM=", "serverCargoHash": "sha256-vpjRZ1bFa6If8XX2lfn5QJLpwxeRs8CJui6i/KwozH0=",
"uiHash": "sha256-bhbZQ8tDnJ6TWYj+ki/JQW8cbVjRfLzxaXRDX9JAIm4=", "uiHash": "sha256-nDO+Cp/DHgw9JuRRAx3IBFIrmhtYDidNKOdtiwZk0N8=",
"uiPNPMDepsHash": "sha256-+L6evDPMlEwWk/5qedvITHYRzu1jzB1cLiCTsauPbUI=" "uiPNPMDepsHash": "sha256-sEN8NUlXWuvfmuAaoy/Vx3X+xG/TbeAdYG2LfctcOGc="
} }

View File

@ -53,7 +53,7 @@ rustPlatform.buildRustPackage rec {
# tests require network access # tests require network access
"--skip=scheduled_tasks::tests::test_nodeinfo_mastodon_social" "--skip=scheduled_tasks::tests::test_nodeinfo_mastodon_social"
"--skip=scheduled_tasks::tests::test_nodeinfo_voyager_lemmy_ml" "--skip=scheduled_tasks::tests::test_nodeinfo_lemmy_ml"
]; ];
passthru.updateScript = ./update.py; passthru.updateScript = ./update.py;

View File

@ -6,22 +6,21 @@
, git , git
, zlib , zlib
, sparsehash , sparsehash
, CoreServices
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "afsctool"; pname = "afsctool";
version = "1.7.0"; version = "1.7.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "RJVB"; owner = "RJVB";
repo = pname; repo = pname;
rev = version; rev = "v${version}";
hash = "sha256-rqca7gpH46hk4MEPMHqYnteYJnGpLS/gu4XP7xWqDzo="; hash = "sha256-cZ0P9cygj+5GgkDRpQk7P9z8zh087fpVfrYXMRRVUAI=";
}; };
nativeBuildInputs = [ pkg-config cmake git ]; nativeBuildInputs = [ pkg-config cmake git ];
buildInputs = [ zlib sparsehash CoreServices ]; buildInputs = [ zlib sparsehash ];
meta = with lib; { meta = with lib; {
description = "Utility that allows end-users to leverage HFS+/APFS compression"; description = "Utility that allows end-users to leverage HFS+/APFS compression";

View File

@ -58,13 +58,13 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ibus"; pname = "ibus";
version = "1.5.30"; version = "1.5.31";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ibus"; owner = "ibus";
repo = "ibus"; repo = "ibus";
rev = version; rev = version;
sha256 = "sha256-VgSjeKF9DCkDfE9lHEaWpgZb6ibdgoDf/I6qeJf8Ah4="; sha256 = "sha256-YMCtLIK/9iUdS37Oiow7WMhFFPKhomNXvzWbLzlUkdQ=";
}; };
patches = [ patches = [

View File

@ -2,12 +2,13 @@ diff --git a/configure.ac b/configure.ac
index a3cdb2da..cade9466 100644 index a3cdb2da..cade9466 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -469,11 +469,11 @@ PKG_CHECK_EXISTS([pygobject-3.0 >= $PYGOBJECT_REQUIRED], @@ -531,12 +531,12 @@
if test "x$enable_pygobject" = "xyes"; then
PKG_CHECK_MODULES(PYTHON, [pygobject-3.0 >= $PYGOBJECT_REQUIRED]) PKG_CHECK_MODULES(PYTHON, [pygobject-3.0 >= $PYGOBJECT_REQUIRED])
- pyoverridesdir=`$PYTHON -c "import gi; print(gi._overridesdir)"` if test x"$pyoverridesdir" = x""; then
+ pyoverridesdir="$prefix/@pythonSitePackages@/gi/overrides" - pyoverridesdir=`$PYTHON -c "import gi; print(gi._overridesdir)"`
+ pyoverridesdir="$prefix/@pythonSitePackages@/gi/overrides"
fi
AC_SUBST(pyoverridesdir) AC_SUBST(pyoverridesdir)
if test x"$enable_python2" = x"yes"; then if test x"$enable_python2" = x"yes"; then

View File

@ -946,9 +946,7 @@ with pkgs;
libdislocator = callPackage ../tools/security/aflplusplus/libdislocator.nix { }; libdislocator = callPackage ../tools/security/aflplusplus/libdislocator.nix { };
afsctool = callPackage ../tools/filesystems/afsctool { afsctool = callPackage ../tools/filesystems/afsctool { };
inherit (darwin.apple_sdk.frameworks) CoreServices;
};
aioblescan = with python3Packages; toPythonApplication aioblescan; aioblescan = with python3Packages; toPythonApplication aioblescan;
@ -7075,10 +7073,6 @@ with pkgs;
opensyclWithRocm = opensycl.override { rocmSupport = true; }; opensyclWithRocm = opensycl.override { rocmSupport = true; };
rustfmt = rustPackages.rustfmt; rustfmt = rustPackages.rustfmt;
rust-analyzer-unwrapped = callPackage ../development/tools/rust/rust-analyzer {
inherit (darwin.apple_sdk.frameworks) CoreServices;
};
rust-analyzer = callPackage ../development/tools/rust/rust-analyzer/wrapper.nix { };
rust-bindgen-unwrapped = callPackage ../development/tools/rust/bindgen/unwrapped.nix { }; rust-bindgen-unwrapped = callPackage ../development/tools/rust/bindgen/unwrapped.nix { };
rust-bindgen = callPackage ../development/tools/rust/bindgen { }; rust-bindgen = callPackage ../development/tools/rust/bindgen { };
rust-cbindgen = callPackage ../development/tools/rust/cbindgen { rust-cbindgen = callPackage ../development/tools/rust/cbindgen {