Merge staging-next into staging
This commit is contained in:
commit
339816cfdf
1
.gitignore
vendored
1
.gitignore
vendored
@ -17,7 +17,6 @@ tags
|
||||
/doc/NEWS.txt
|
||||
/doc/manual.html
|
||||
/doc/manual.pdf
|
||||
/result
|
||||
/source/
|
||||
.version-suffix
|
||||
|
||||
|
@ -9423,6 +9423,13 @@
|
||||
githubId = 392720;
|
||||
name = "Jon Banafato";
|
||||
};
|
||||
jonas-w = {
|
||||
email = "nixpkgs@03j.de";
|
||||
github = "jonas-w";
|
||||
githubId = 32615971;
|
||||
name = "Jonas Wunderlich";
|
||||
matrix = "@matrix:03j.de";
|
||||
};
|
||||
jonathanmarler = {
|
||||
email = "johnnymarler@gmail.com";
|
||||
github = "marler8997";
|
||||
@ -10596,6 +10603,12 @@
|
||||
githubId = 449813;
|
||||
name = "Roman Kuznetsov";
|
||||
};
|
||||
kuznetsss = {
|
||||
email = "kuzzz99@gmail.com";
|
||||
github = "kuznetsss";
|
||||
githubId = 15742918;
|
||||
name = "Sergey Kuznetsov";
|
||||
};
|
||||
kwohlfahrt = {
|
||||
email = "kai.wohlfahrt@gmail.com";
|
||||
github = "kwohlfahrt";
|
||||
@ -19227,6 +19240,12 @@
|
||||
githubId = 3105057;
|
||||
name = "Jan Beinke";
|
||||
};
|
||||
themaxmur = {
|
||||
name = "Maxim Muravev";
|
||||
email = "muravjev.mak@yandex.ru";
|
||||
github = "TheMaxMur";
|
||||
githubId = 31189199;
|
||||
};
|
||||
thenonameguy = {
|
||||
email = "thenonameguy24@gmail.com";
|
||||
name = "Krisztian Szabo";
|
||||
|
@ -377,6 +377,9 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
||||
|
||||
- [Nginx virtual hosts](#opt-services.nginx.virtualHosts) using `forceSSL` or
|
||||
`globalRedirect` can now have redirect codes other than 301 through
|
||||
|
||||
- `bacula` now allows to configure `TLS` for encrypted communication.
|
||||
|
||||
`redirectCode`.
|
||||
|
||||
- `libjxl` 0.9.0 [dropped support for the butteraugli API](https://github.com/libjxl/libjxl/pull/2576). You will no longer be able to set `enableButteraugli` on `libaom`.
|
||||
|
@ -4,11 +4,36 @@
|
||||
# TODO: test configuration when building nixexpr (use -t parameter)
|
||||
# TODO: support sqlite3 (it's deprecate?) and mysql
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
inherit (lib)
|
||||
concatStringsSep
|
||||
literalExpression
|
||||
mapAttrsToList
|
||||
mdDoc
|
||||
mkIf
|
||||
mkOption
|
||||
optional
|
||||
optionalString
|
||||
types
|
||||
;
|
||||
libDir = "/var/lib/bacula";
|
||||
|
||||
yes_no = bool: if bool then "yes" else "no";
|
||||
tls_conf = tls_cfg: optionalString tls_cfg.enable (
|
||||
concatStringsSep
|
||||
"\n"
|
||||
(
|
||||
["TLS Enable = yes;"]
|
||||
++ optional (tls_cfg.require != null) "TLS Require = ${yes_no tls_cfg.require};"
|
||||
++ optional (tls_cfg.certificate != null) ''TLS Certificate = "${tls_cfg.certificate}";''
|
||||
++ [''TLS Key = "${tls_cfg.key}";'']
|
||||
++ optional (tls_cfg.verifyPeer != null) "TLS Verify Peer = ${yes_no tls_cfg.verifyPeer};"
|
||||
++ optional (tls_cfg.allowedCN != [ ]) "TLS Allowed CN = ${concatStringsSep " " (tls_cfg.allowedCN)};"
|
||||
++ optional (tls_cfg.caCertificateFile != null) ''TLS CA Certificate File = "${tls_cfg.caCertificateFile}";''
|
||||
)
|
||||
);
|
||||
|
||||
fd_cfg = config.services.bacula-fd;
|
||||
fd_conf = pkgs.writeText "bacula-fd.conf"
|
||||
''
|
||||
@ -18,6 +43,7 @@ let
|
||||
WorkingDirectory = ${libDir};
|
||||
Pid Directory = /run;
|
||||
${fd_cfg.extraClientConfig}
|
||||
${tls_conf fd_cfg.tls}
|
||||
}
|
||||
|
||||
${concatStringsSep "\n" (mapAttrsToList (name: value: ''
|
||||
@ -25,6 +51,7 @@ let
|
||||
Name = "${name}";
|
||||
Password = ${value.password};
|
||||
Monitor = ${value.monitor};
|
||||
${tls_conf value.tls}
|
||||
}
|
||||
'') fd_cfg.director)}
|
||||
|
||||
@ -44,6 +71,7 @@ let
|
||||
WorkingDirectory = ${libDir};
|
||||
Pid Directory = /run;
|
||||
${sd_cfg.extraStorageConfig}
|
||||
${tls_conf sd_cfg.tls}
|
||||
}
|
||||
|
||||
${concatStringsSep "\n" (mapAttrsToList (name: value: ''
|
||||
@ -70,6 +98,7 @@ let
|
||||
Name = "${name}";
|
||||
Password = ${value.password};
|
||||
Monitor = ${value.monitor};
|
||||
${tls_conf value.tls}
|
||||
}
|
||||
'') sd_cfg.director)}
|
||||
|
||||
@ -90,6 +119,7 @@ let
|
||||
Working Directory = ${libDir};
|
||||
Pid Directory = /run/;
|
||||
QueryFile = ${pkgs.bacula}/etc/query.sql;
|
||||
${tls_conf dir_cfg.tls}
|
||||
${dir_cfg.extraDirectorConfig}
|
||||
}
|
||||
|
||||
@ -108,13 +138,99 @@ let
|
||||
${dir_cfg.extraConfig}
|
||||
'';
|
||||
|
||||
directorOptions = {...}:
|
||||
linkOption = name: destination: "[${name}](#opt-${builtins.replaceStrings [ "<" ">"] ["_" "_"] destination})";
|
||||
tlsLink = destination: submodulePath: linkOption "${submodulePath}.${destination}" "${submodulePath}.${destination}";
|
||||
|
||||
tlsOptions = submodulePath: {...}:
|
||||
{
|
||||
options = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = mdDoc ''
|
||||
Specifies if TLS should be enabled.
|
||||
If this set to `false` TLS will be completely disabled, even if ${tlsLink "tls.require" submodulePath} is true.
|
||||
'';
|
||||
};
|
||||
require = mkOption {
|
||||
type = types.nullOr types.bool;
|
||||
default = null;
|
||||
description = mdDoc ''
|
||||
Require TLS or TLS-PSK encryption.
|
||||
This directive is ignored unless one of ${tlsLink "tls.enable" submodulePath} is true or TLS PSK Enable is set to `yes`.
|
||||
If TLS is not required while TLS or TLS-PSK are enabled, then the Bacula component
|
||||
will connect with other components either with or without TLS or TLS-PSK
|
||||
|
||||
If ${tlsLink "tls.enable" submodulePath} or TLS-PSK is enabled and TLS is required, then the Bacula
|
||||
component will refuse any connection request that does not use TLS.
|
||||
'';
|
||||
};
|
||||
certificate = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = mdDoc ''
|
||||
The full path to the PEM encoded TLS certificate.
|
||||
It will be used as either a client or server certificate,
|
||||
depending on the connection direction.
|
||||
This directive is required in a server context, but it may
|
||||
not be specified in a client context if ${tlsLink "tls.verifyPeer" submodulePath} is
|
||||
`false` in the corresponding server context.
|
||||
'';
|
||||
};
|
||||
key = mkOption {
|
||||
type = types.path;
|
||||
description = mdDoc ''
|
||||
The path of a PEM encoded TLS private key.
|
||||
It must correspond to the TLS certificate.
|
||||
'';
|
||||
};
|
||||
verifyPeer = mkOption {
|
||||
type = types.nullOr types.bool;
|
||||
default = null;
|
||||
description = mdDoc ''
|
||||
Verify peer certificate.
|
||||
Instructs server to request and verify the client's X.509 certificate.
|
||||
Any client certificate signed by a known-CA will be accepted.
|
||||
Additionally, the client's X509 certificate Common Name must meet the value of the Address directive.
|
||||
If ${tlsLink "tls.allowedCN" submodulePath} is used,
|
||||
the client's x509 certificate Common Name must also correspond to
|
||||
one of the CN specified in the ${tlsLink "tls.allowedCN" submodulePath} directive.
|
||||
This directive is valid only for a server and not in client context.
|
||||
|
||||
Standard from Bacula is `true`.
|
||||
'';
|
||||
};
|
||||
allowedCN = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ ];
|
||||
description = mdDoc ''
|
||||
Common name attribute of allowed peer certificates.
|
||||
This directive is valid for a server and in a client context.
|
||||
If this directive is specified, the peer certificate will be verified against this list.
|
||||
In the case this directive is configured on a server side, the allowed
|
||||
CN list will not be checked if ${tlsLink "tls.verifyPeer" submodulePath} is false.
|
||||
'';
|
||||
};
|
||||
caCertificateFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = mdDoc ''
|
||||
The path specifying a PEM encoded TLS CA certificate(s).
|
||||
Multiple certificates are permitted in the file.
|
||||
One of TLS CA Certificate File or TLS CA Certificate Dir are required in a server context, unless
|
||||
${tlsLink "tls.verifyPeer" submodulePath} is false, and are always required in a client context.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
directorOptions = submodulePath:{...}:
|
||||
{
|
||||
options = {
|
||||
password = mkOption {
|
||||
type = types.str;
|
||||
# TODO: required?
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Specifies the password that must be supplied for the default Bacula
|
||||
Console to be authorized. The same password must appear in the
|
||||
Director resource of the Console configuration file. For added
|
||||
@ -135,7 +251,7 @@ let
|
||||
type = types.enum [ "no" "yes" ];
|
||||
default = "no";
|
||||
example = "yes";
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
If Monitor is set to `no`, this director will have
|
||||
full access to this Storage daemon. If Monitor is set to
|
||||
`yes`, this director will only be able to fetch the
|
||||
@ -146,6 +262,13 @@ let
|
||||
security problems.
|
||||
'';
|
||||
};
|
||||
|
||||
tls = mkOption {
|
||||
type = types.submodule (tlsOptions "${submodulePath}.director.<name>");
|
||||
description = mdDoc ''
|
||||
TLS Options for the Director in this Configuration.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@ -154,7 +277,7 @@ let
|
||||
options = {
|
||||
changerDevice = mkOption {
|
||||
type = types.str;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
The specified name-string must be the generic SCSI device name of the
|
||||
autochanger that corresponds to the normal read/write Archive Device
|
||||
specified in the Device resource. This generic SCSI device name
|
||||
@ -173,7 +296,7 @@ let
|
||||
|
||||
changerCommand = mkOption {
|
||||
type = types.str;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
The name-string specifies an external program to be called that will
|
||||
automatically change volumes as required by Bacula. Normally, this
|
||||
directive will be specified only in the AutoChanger resource, which
|
||||
@ -195,14 +318,14 @@ let
|
||||
};
|
||||
|
||||
devices = mkOption {
|
||||
description = lib.mdDoc "";
|
||||
description = mdDoc "";
|
||||
type = types.listOf types.str;
|
||||
};
|
||||
|
||||
extraAutochangerConfig = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Extra configuration to be passed in Autochanger directive.
|
||||
'';
|
||||
example = ''
|
||||
@ -219,7 +342,7 @@ let
|
||||
archiveDevice = mkOption {
|
||||
# TODO: required?
|
||||
type = types.str;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
The specified name-string gives the system file name of the storage
|
||||
device managed by this storage daemon. This will usually be the
|
||||
device file name of a removable storage device (tape drive), for
|
||||
@ -236,7 +359,7 @@ let
|
||||
mediaType = mkOption {
|
||||
# TODO: required?
|
||||
type = types.str;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
The specified name-string names the type of media supported by this
|
||||
device, for example, `DLT7000`. Media type names are
|
||||
arbitrary in that you set them to anything you want, but they must be
|
||||
@ -274,7 +397,7 @@ let
|
||||
extraDeviceConfig = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Extra configuration to be passed in Device directive.
|
||||
'';
|
||||
example = ''
|
||||
@ -295,7 +418,7 @@ in {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Whether to enable the Bacula File Daemon.
|
||||
'';
|
||||
};
|
||||
@ -304,7 +427,7 @@ in {
|
||||
default = "${config.networking.hostName}-fd";
|
||||
defaultText = literalExpression ''"''${config.networking.hostName}-fd"'';
|
||||
type = types.str;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
The client name that must be used by the Director when connecting.
|
||||
Generally, it is a good idea to use a name related to the machine so
|
||||
that error messages can be easily identified if you have multiple
|
||||
@ -315,7 +438,7 @@ in {
|
||||
port = mkOption {
|
||||
default = 9102;
|
||||
type = types.port;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
This specifies the port number on which the Client listens for
|
||||
Director connections. It must agree with the FDPort specified in
|
||||
the Client resource of the Director's configuration file.
|
||||
@ -324,16 +447,26 @@ in {
|
||||
|
||||
director = mkOption {
|
||||
default = {};
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
This option defines director resources in Bacula File Daemon.
|
||||
'';
|
||||
type = with types; attrsOf (submodule directorOptions);
|
||||
type = types.attrsOf (types.submodule (directorOptions "services.bacula-fd"));
|
||||
};
|
||||
|
||||
|
||||
tls = mkOption {
|
||||
type = types.submodule (tlsOptions "services.bacula-fd");
|
||||
default = { };
|
||||
description = mdDoc ''
|
||||
TLS Options for the File Daemon.
|
||||
Important notice: The backup won't be encrypted.
|
||||
'';
|
||||
};
|
||||
|
||||
extraClientConfig = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Extra configuration to be passed in Client directive.
|
||||
'';
|
||||
example = ''
|
||||
@ -345,7 +478,7 @@ in {
|
||||
extraMessagesConfig = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Extra configuration to be passed in Messages directive.
|
||||
'';
|
||||
example = ''
|
||||
@ -358,7 +491,7 @@ in {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Whether to enable Bacula Storage Daemon.
|
||||
'';
|
||||
};
|
||||
@ -367,7 +500,7 @@ in {
|
||||
default = "${config.networking.hostName}-sd";
|
||||
defaultText = literalExpression ''"''${config.networking.hostName}-sd"'';
|
||||
type = types.str;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Specifies the Name of the Storage daemon.
|
||||
'';
|
||||
};
|
||||
@ -375,7 +508,7 @@ in {
|
||||
port = mkOption {
|
||||
default = 9103;
|
||||
type = types.port;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Specifies port number on which the Storage daemon listens for
|
||||
Director connections.
|
||||
'';
|
||||
@ -383,32 +516,32 @@ in {
|
||||
|
||||
director = mkOption {
|
||||
default = {};
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
This option defines Director resources in Bacula Storage Daemon.
|
||||
'';
|
||||
type = with types; attrsOf (submodule directorOptions);
|
||||
type = types.attrsOf (types.submodule (directorOptions "services.bacula-sd"));
|
||||
};
|
||||
|
||||
device = mkOption {
|
||||
default = {};
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
This option defines Device resources in Bacula Storage Daemon.
|
||||
'';
|
||||
type = with types; attrsOf (submodule deviceOptions);
|
||||
type = types.attrsOf (types.submodule deviceOptions);
|
||||
};
|
||||
|
||||
autochanger = mkOption {
|
||||
default = {};
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
This option defines Autochanger resources in Bacula Storage Daemon.
|
||||
'';
|
||||
type = with types; attrsOf (submodule autochangerOptions);
|
||||
type = types.attrsOf (types.submodule autochangerOptions);
|
||||
};
|
||||
|
||||
extraStorageConfig = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Extra configuration to be passed in Storage directive.
|
||||
'';
|
||||
example = ''
|
||||
@ -420,13 +553,21 @@ in {
|
||||
extraMessagesConfig = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Extra configuration to be passed in Messages directive.
|
||||
'';
|
||||
example = ''
|
||||
console = all
|
||||
'';
|
||||
};
|
||||
tls = mkOption {
|
||||
type = types.submodule (tlsOptions "services.bacula-sd");
|
||||
default = { };
|
||||
description = mdDoc ''
|
||||
TLS Options for the Storage Daemon.
|
||||
Important notice: The backup won't be encrypted.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
@ -434,7 +575,7 @@ in {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Whether to enable Bacula Director Daemon.
|
||||
'';
|
||||
};
|
||||
@ -443,7 +584,7 @@ in {
|
||||
default = "${config.networking.hostName}-dir";
|
||||
defaultText = literalExpression ''"''${config.networking.hostName}-dir"'';
|
||||
type = types.str;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
The director name used by the system administrator. This directive is
|
||||
required.
|
||||
'';
|
||||
@ -452,7 +593,7 @@ in {
|
||||
port = mkOption {
|
||||
default = 9101;
|
||||
type = types.port;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Specify the port (a positive integer) on which the Director daemon
|
||||
will listen for Bacula Console connections. This same port number
|
||||
must be specified in the Director resource of the Console
|
||||
@ -465,7 +606,7 @@ in {
|
||||
password = mkOption {
|
||||
# TODO: required?
|
||||
type = types.str;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Specifies the password that must be supplied for a Director.
|
||||
'';
|
||||
};
|
||||
@ -473,7 +614,7 @@ in {
|
||||
extraMessagesConfig = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Extra configuration to be passed in Messages directive.
|
||||
'';
|
||||
example = ''
|
||||
@ -484,7 +625,7 @@ in {
|
||||
extraDirectorConfig = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Extra configuration to be passed in Director directive.
|
||||
'';
|
||||
example = ''
|
||||
@ -496,13 +637,22 @@ in {
|
||||
extraConfig = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Extra configuration for Bacula Director Daemon.
|
||||
'';
|
||||
example = ''
|
||||
TODO
|
||||
'';
|
||||
};
|
||||
|
||||
tls = mkOption {
|
||||
type = types.submodule (tlsOptions "services.bacula-dir");
|
||||
default = { };
|
||||
description = mdDoc ''
|
||||
TLS Options for the Director.
|
||||
Important notice: The backup won't be encrypted.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -686,6 +686,7 @@ in {
|
||||
pgbouncer = handleTest ./pgbouncer.nix {};
|
||||
pgjwt = handleTest ./pgjwt.nix {};
|
||||
pgmanage = handleTest ./pgmanage.nix {};
|
||||
pgvecto-rs = handleTest ./pgvecto-rs.nix {};
|
||||
phosh = handleTest ./phosh.nix {};
|
||||
photoprism = handleTest ./photoprism.nix {};
|
||||
php = handleTest ./php {};
|
||||
|
76
nixos/tests/pgvecto-rs.nix
Normal file
76
nixos/tests/pgvecto-rs.nix
Normal file
@ -0,0 +1,76 @@
|
||||
# mostly copied from ./timescaledb.nix which was copied from ./postgresql.nix
|
||||
# as it seemed unapproriate to test additional extensions for postgresql there.
|
||||
|
||||
{ system ? builtins.currentSystem
|
||||
, config ? { }
|
||||
, pkgs ? import ../.. { inherit system config; }
|
||||
}:
|
||||
|
||||
with import ../lib/testing-python.nix { inherit system pkgs; };
|
||||
with pkgs.lib;
|
||||
|
||||
let
|
||||
postgresql-versions = import ../../pkgs/servers/sql/postgresql pkgs;
|
||||
# Test cases from https://docs.pgvecto.rs/use-cases/hybrid-search.html
|
||||
test-sql = pkgs.writeText "postgresql-test" ''
|
||||
CREATE EXTENSION vectors;
|
||||
|
||||
CREATE TABLE items (
|
||||
id bigserial PRIMARY KEY,
|
||||
content text NOT NULL,
|
||||
embedding vectors.vector(3) NOT NULL -- 3 dimensions
|
||||
);
|
||||
|
||||
INSERT INTO items (content, embedding) VALUES
|
||||
('a fat cat sat on a mat and ate a fat rat', '[1, 2, 3]'),
|
||||
('a fat dog sat on a mat and ate a fat rat', '[4, 5, 6]'),
|
||||
('a thin cat sat on a mat and ate a thin rat', '[7, 8, 9]'),
|
||||
('a thin dog sat on a mat and ate a thin rat', '[10, 11, 12]');
|
||||
'';
|
||||
make-postgresql-test = postgresql-name: postgresql-package: makeTest {
|
||||
name = postgresql-name;
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ diogotcorreia ];
|
||||
};
|
||||
|
||||
nodes.machine = { ... }:
|
||||
{
|
||||
services.postgresql = {
|
||||
enable = true;
|
||||
package = postgresql-package;
|
||||
extraPlugins = ps: with ps; [
|
||||
pgvecto-rs
|
||||
];
|
||||
settings.shared_preload_libraries = "vectors";
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
def check_count(statement, lines):
|
||||
return 'test $(sudo -u postgres psql postgres -tAc "{}"|wc -l) -eq {}'.format(
|
||||
statement, lines
|
||||
)
|
||||
|
||||
|
||||
machine.start()
|
||||
machine.wait_for_unit("postgresql")
|
||||
|
||||
with subtest("Postgresql with extension vectors is available just after unit start"):
|
||||
machine.succeed(check_count("SELECT * FROM pg_available_extensions WHERE name = 'vectors' AND default_version = '${postgresql-package.pkgs.pgvecto-rs.version}';", 1))
|
||||
|
||||
machine.succeed("sudo -u postgres psql -f ${test-sql}")
|
||||
|
||||
machine.succeed(check_count("SELECT content, embedding FROM items WHERE to_tsvector('english', content) @@ 'cat & rat'::tsquery;", 2))
|
||||
|
||||
machine.shutdown()
|
||||
'';
|
||||
|
||||
};
|
||||
applicablePostgresqlVersions = filterAttrs (_: value: versionAtLeast value.version "12") postgresql-versions;
|
||||
in
|
||||
mapAttrs'
|
||||
(name: package: {
|
||||
inherit name;
|
||||
value = make-postgresql-test name package;
|
||||
})
|
||||
applicablePostgresqlVersions
|
@ -1,6 +1,6 @@
|
||||
{ lib, stdenv, vscode-utils, callPackage }:
|
||||
let
|
||||
version = "1.42.0";
|
||||
version = "1.48.0";
|
||||
rescript-editor-analysis = callPackage ./rescript-editor-analysis.nix { inherit version; };
|
||||
arch =
|
||||
if stdenv.isLinux then "linux"
|
||||
@ -13,7 +13,7 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
|
||||
name = "rescript-vscode";
|
||||
publisher = "chenglou92";
|
||||
inherit version;
|
||||
sha256 = "sha256-Po7zuppr8EHSfg2sDzkNn0KARncsiNVPoRsd25zc/xg=";
|
||||
sha256 = "sha256-/1nDuj/kSdkV6PlbdlOLfUKQeuvyL2VhPjUAr9kq2NM=";
|
||||
};
|
||||
postPatch = ''
|
||||
rm -r ${analysisDir}
|
||||
|
@ -1986,6 +1986,22 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
hashicorp.hcl = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "HCL";
|
||||
publisher = "HashiCorp";
|
||||
version = "0.3.2";
|
||||
sha256 = "sha256-cxF3knYY29PvT3rkRS8SGxMn9vzt56wwBXpk2PqO0mo=";
|
||||
};
|
||||
meta = {
|
||||
description = "HashiCorp HCL syntax";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=HashiCorp.HCL";
|
||||
homepage = "https://github.com/hashicorp/vscode-hcl";
|
||||
license = lib.licenses.mpl20;
|
||||
maintainers = [ lib.maintainers.themaxmur ];
|
||||
};
|
||||
};
|
||||
|
||||
hashicorp.terraform = callPackage ./hashicorp.terraform { };
|
||||
|
||||
haskell.haskell = buildVscodeMarketplaceExtension {
|
||||
@ -2971,6 +2987,22 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
naumovs.theme-oceanicnext = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "theme-oceanicnext";
|
||||
publisher = "naumovs";
|
||||
version = "0.0.4";
|
||||
sha256 = "sha256-romhWL3s0NVZ3kptSNT4/X9WkgakgNNfFElaBCo6jj4=";
|
||||
};
|
||||
meta = {
|
||||
description = "Oceanic Next theme for VSCode + dimmed bg version for better looking UI";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=naumovs.theme-oceanicnext";
|
||||
homepage = "https://github.com/voronianski/oceanic-next-color-scheme";
|
||||
license = lib.licenses.unlicense;
|
||||
maintainers = [ lib.maintainers.themaxmur ];
|
||||
};
|
||||
};
|
||||
|
||||
njpwerner.autodocstring = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "autodocstring";
|
||||
@ -3447,8 +3479,8 @@ let
|
||||
mktplcRef = {
|
||||
publisher = "shd101wyy";
|
||||
name = "markdown-preview-enhanced";
|
||||
version = "0.8.10";
|
||||
sha256 = "sha256-BjTV2uH9QqCS1VJ94XXgzNMJb4FB4Ee+t/5uAQfJCuM=";
|
||||
version = "0.8.12";
|
||||
sha256 = "sha256-4Iq6idux029i7cBV3x79ZRAbSk3ymqx+Q2jv0zV9ZTI=";
|
||||
};
|
||||
meta = {
|
||||
description = "Provides a live preview of markdown using either markdown-it or pandoc";
|
||||
@ -3730,6 +3762,22 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
tal7aouy.icons = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "icons";
|
||||
publisher = "tal7aouy";
|
||||
version = "3.8.0";
|
||||
sha256 = "sha256-PdhNFyVUWcOfli/ZlT+6TmtWrV31fBP1E1Vd4QWOY+A=";
|
||||
};
|
||||
meta = {
|
||||
description = "Icons for Visual Studio Code.";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=tal7aouy.icons";
|
||||
homepage = "https://github.com/tal7aouy/vscode-icons";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.themaxmur ];
|
||||
};
|
||||
};
|
||||
|
||||
tamasfe.even-better-toml = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "even-better-toml";
|
||||
@ -4063,6 +4111,22 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
vlanguage.vscode-vlang = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "vscode-vlang";
|
||||
publisher = "vlanguage";
|
||||
version = "0.1.14";
|
||||
sha256 = "sha256-hlBALxBs5wZZFk4lgAkdkGs731Xuc2p0qxffOW6mMWQ=";
|
||||
};
|
||||
meta = {
|
||||
description = "V language support (syntax highlighting, formatter, snippets) for Visual Studio Code.";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=vlanguage.vscode-vlang";
|
||||
homepage = "https://github.com/vlang/vscode-vlang";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.themaxmur ];
|
||||
};
|
||||
};
|
||||
|
||||
vscjava.vscode-gradle = buildVscodeMarketplaceExtension rec {
|
||||
mktplcRef = {
|
||||
name = "vscode-gradle";
|
||||
|
@ -55,20 +55,20 @@
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "beetle-pce-libretro",
|
||||
"rev": "95b5ea18a694f5a05b1c0cda20928c825d981238",
|
||||
"hash": "sha256-4Y2dyELUGWycCQ1UA0Ov6Ijh1t+KgSL1AtDefbRmjbA="
|
||||
"rev": "96a654ae2b2df1cc12dc7f1f2d1822db562aa51f",
|
||||
"hash": "sha256-Tz9FA2Kqu8R2pXSTgbr5Mxu4VKrURWWpy+J3R3/CHpk="
|
||||
},
|
||||
"version": "unstable-2024-03-01"
|
||||
"version": "unstable-2024-03-08"
|
||||
},
|
||||
"beetle-pce-fast": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "beetle-pce-fast-libretro",
|
||||
"rev": "28180934e9d7f1a6ec655adde0b81f0b167732ad",
|
||||
"hash": "sha256-Kt1Bh32zoJynbqp/0ARngPTYHlvp6k/Ya09l8/736gk="
|
||||
"rev": "f450a7118a3b4e8524cdd915aa610bd364e64dde",
|
||||
"hash": "sha256-VHW+MJT68wIoSV8H24484uyGK7/cySFMITcpu6zqo3A="
|
||||
},
|
||||
"version": "unstable-2024-03-01"
|
||||
"version": "unstable-2024-03-08"
|
||||
},
|
||||
"beetle-pcfx": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
@ -85,10 +85,10 @@
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "beetle-psx-libretro",
|
||||
"rev": "680bbf0e2a4f9bc2b534d213416456baa9c95212",
|
||||
"hash": "sha256-QmiCokeMtQC2+cwWFovve2+c3pahD+IdOFBRAXEPV0k="
|
||||
"rev": "b9018ad9776de0d92d05f6d6c1017f1ac07e9238",
|
||||
"hash": "sha256-1xxJ33IiTgmqbH4vzEGBc3eKe1Wz67TI1RTiipr9/Cg="
|
||||
},
|
||||
"version": "unstable-2024-03-01"
|
||||
"version": "unstable-2024-03-08"
|
||||
},
|
||||
"beetle-saturn": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
@ -115,10 +115,10 @@
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "beetle-supergrafx-libretro",
|
||||
"rev": "29ff9e00a85db3d462cca42543a84597c421c99c",
|
||||
"hash": "sha256-UZt1yFcwgdY/TbDs+GQ73Nu5KRA1R8gdKs73IQC1mCg="
|
||||
"rev": "239d25f4c2bbb6e66d3e48502907d3d611119a22",
|
||||
"hash": "sha256-8SP/SOJR/5tDkpysYTAuDPeQJCaAVgXE9CieSj1H4ZQ="
|
||||
},
|
||||
"version": "unstable-2024-03-01"
|
||||
"version": "unstable-2024-03-08"
|
||||
},
|
||||
"beetle-vb": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
@ -165,10 +165,10 @@
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "bsnes-libretro",
|
||||
"rev": "9e9b928e0153f663cf4802f266315ab092067b7e",
|
||||
"hash": "sha256-Fn1bz3TC+8CEmGDNcll0yfzBpDPvfS1vknf49ogNCIQ="
|
||||
"rev": "9c688ea5cbbb0e8c586414e07305cfbdffbf83e2",
|
||||
"hash": "sha256-tte90wZfrkkNzjsUhmGGf/eKj6vwskcQAQTdqxg9wkE="
|
||||
},
|
||||
"version": "unstable-2024-03-01"
|
||||
"version": "unstable-2024-03-09"
|
||||
},
|
||||
"bsnes-hd": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
@ -287,10 +287,10 @@
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "fbneo",
|
||||
"rev": "a9c41d1e1132b1a7aad48c0f8e94fcf9c7ba0f9f",
|
||||
"hash": "sha256-H4pJruHqJ4p3tBykm015U+wApHrAeVaZO9nLJ9Rc0NQ="
|
||||
"rev": "6fc8060a75fd75c5b292fbef488ed8dd37c7bc34",
|
||||
"hash": "sha256-Wjh6ab5kLlfX4QVv+d6YgnuvWtDat9wgJ8dQdl7MH2A="
|
||||
},
|
||||
"version": "unstable-2024-03-03"
|
||||
"version": "unstable-2024-03-06"
|
||||
},
|
||||
"fceumm": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
@ -307,11 +307,11 @@
|
||||
"src": {
|
||||
"owner": "flyinghead",
|
||||
"repo": "flycast",
|
||||
"rev": "391da7023f63c2afd32af72ac9f2cfb02bbc7eb6",
|
||||
"hash": "sha256-fcNpFl6VwaoL2mWZOgyVoJWX9CV2KbWctukdxxo797I=",
|
||||
"rev": "464defe0d791795553a6cd2f0dbe05b437ecd068",
|
||||
"hash": "sha256-Gnp8MMerKweUnDg8fIoAF3vkIFVVbQdn3qjxZYLBTEY=",
|
||||
"fetchSubmodules": true
|
||||
},
|
||||
"version": "unstable-2024-03-04"
|
||||
"version": "unstable-2024-03-10"
|
||||
},
|
||||
"fmsx": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
@ -348,20 +348,20 @@
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "gambatte-libretro",
|
||||
"rev": "9806d3f12bc3a831fad3f71c6fbad6f93d83581c",
|
||||
"hash": "sha256-EdqS410TZyRqE/nd/oLJt7dauN0DCtNnhB6k6CPd/tc="
|
||||
"rev": "76c875138f6ffe1b1cf983b49758004cd53785ce",
|
||||
"hash": "sha256-HcZY/0JK+tqvrI70xzzEkDH8hX4Xk7ojLsSp/a3EWnk="
|
||||
},
|
||||
"version": "unstable-2024-03-01"
|
||||
"version": "unstable-2024-03-08"
|
||||
},
|
||||
"genesis-plus-gx": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "Genesis-Plus-GX",
|
||||
"rev": "d434ad9ee418247490a8560b52e0651d25304f35",
|
||||
"hash": "sha256-v6IYku+9hLlGD0sgkzoatdD7Glp/3pgwBE2K4hdsFec="
|
||||
"rev": "541229daa9e8f706135531c28c7abec4efd08d48",
|
||||
"hash": "sha256-0yytgnO6bBt2ssapOu+6S488peeCzKS1fE7Znyk51HA="
|
||||
},
|
||||
"version": "unstable-2024-03-02"
|
||||
"version": "unstable-2024-03-09"
|
||||
},
|
||||
"gpsp": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
@ -438,10 +438,10 @@
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "mame2003-plus-libretro",
|
||||
"rev": "a7cb863de48247c771a0fcc71d519131eae4e9c6",
|
||||
"hash": "sha256-Y/Zyfck5tJ6oVsL/WjNXJZdPE5THeyBD5tNzJQaLSn8="
|
||||
"rev": "f8b0565fd3278f2efbc3e68fc929a912645e211b",
|
||||
"hash": "sha256-jOQxPUTbKQH0PKJSOItEpSHaNPzMlYOJ2CUgzSLHti4="
|
||||
},
|
||||
"version": "unstable-2024-03-02"
|
||||
"version": "unstable-2024-03-10"
|
||||
},
|
||||
"mame2010": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
@ -539,10 +539,10 @@
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "mupen64plus-libretro-nx",
|
||||
"rev": "fa55ddca926d3c3ad2285911646919def4aa6fa3",
|
||||
"hash": "sha256-Fn/qSQDR8FuHG9eLE0I24wUa0sdosrl6+lhnf9cD+yQ="
|
||||
"rev": "3f794eec4dc4af2f22ecce507f2da324381d3d92",
|
||||
"hash": "sha256-xO01TAjW8otnoU8fzmK69BufoQn3eY9BPamc3ISqBn8="
|
||||
},
|
||||
"version": "unstable-2024-02-06"
|
||||
"version": "unstable-2024-03-07"
|
||||
},
|
||||
"neocd": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
@ -662,11 +662,11 @@
|
||||
"src": {
|
||||
"owner": "hrydgard",
|
||||
"repo": "ppsspp",
|
||||
"rev": "0159102a191d43de7ae51775a79846efa2635988",
|
||||
"hash": "sha256-b7QOOpeoVJUComVOlMtZK8B5w5vkE6rxJVEHecJE19k=",
|
||||
"rev": "a0aaab9c47bae66fd834354977a562baec581a54",
|
||||
"hash": "sha256-N+s4BzOsXUMqdOnfy0Th8euaD2EvRoYEie706RNuIoo=",
|
||||
"fetchSubmodules": true
|
||||
},
|
||||
"version": "unstable-2024-02-28"
|
||||
"version": "unstable-2024-03-10"
|
||||
},
|
||||
"prboom": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
@ -793,10 +793,10 @@
|
||||
"src": {
|
||||
"owner": "stella-emu",
|
||||
"repo": "stella",
|
||||
"rev": "a311e1d714db3837ae4c05e2fab0abcf092a2e54",
|
||||
"hash": "sha256-QJirSJleSPezNoyH2DKkaoNmGY3r/5J64IHBp+MeFvI="
|
||||
"rev": "8e8549c1c441e62c2bac0ae5a6489ba3e15412c6",
|
||||
"hash": "sha256-gcIBtLpfmjPHxnixMOF/onNyIclC8sDrmgTi3zHW0Mc="
|
||||
},
|
||||
"version": "unstable-2024-03-03"
|
||||
"version": "unstable-2024-03-08"
|
||||
},
|
||||
"stella2014": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
|
@ -1,9 +1,10 @@
|
||||
{ lib
|
||||
, clangStdenv
|
||||
, fetchurl
|
||||
, gnustep
|
||||
}:
|
||||
|
||||
gnustep.gsmakeDerivation rec {
|
||||
clangStdenv.mkDerivation rec {
|
||||
pname = "pikopixel";
|
||||
version = "1.0-b10";
|
||||
|
||||
@ -14,6 +15,11 @@ gnustep.gsmakeDerivation rec {
|
||||
|
||||
sourceRoot = "PikoPixel.Sources.${version}/PikoPixel";
|
||||
|
||||
nativeBuildInputs = [
|
||||
gnustep.make
|
||||
gnustep.wrapGNUstepAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gnustep.base
|
||||
gnustep.gui
|
||||
|
@ -113,6 +113,8 @@ stdenv.mkDerivation rec {
|
||||
patches = [
|
||||
# Fix for webkitgtk linking
|
||||
./0001-not-for-upstream-CMakeLists-Link-against-webkit2gtk-.patch
|
||||
# Fix build with cgal-5.6.1+
|
||||
./meshboolean-const.patch
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
21
pkgs/applications/misc/bambu-studio/meshboolean-const.patch
Normal file
21
pkgs/applications/misc/bambu-studio/meshboolean-const.patch
Normal file
@ -0,0 +1,21 @@
|
||||
Fix build with cgal 5.6.1+
|
||||
|
||||
diff --git a/src/libslic3r/MeshBoolean.cpp b/src/libslic3r/MeshBoolean.cpp
|
||||
index 50bbc099..b05245d3 100644
|
||||
--- a/src/libslic3r/MeshBoolean.cpp
|
||||
+++ b/src/libslic3r/MeshBoolean.cpp
|
||||
@@ -200,12 +200,12 @@ indexed_triangle_set cgal_to_indexed_triangle_set(const _Mesh &cgalmesh)
|
||||
const auto &vertices = cgalmesh.vertices();
|
||||
int vsize = int(vertices.size());
|
||||
|
||||
- for (auto &vi : vertices) {
|
||||
+ for (const auto &vi : vertices) {
|
||||
auto &v = cgalmesh.point(vi); // Don't ask...
|
||||
its.vertices.emplace_back(to_vec3f(v));
|
||||
}
|
||||
|
||||
- for (auto &face : faces) {
|
||||
+ for (const auto &face : faces) {
|
||||
auto vtc = cgalmesh.vertices_around_face(cgalmesh.halfedge(face));
|
||||
|
||||
int i = 0;
|
@ -4,7 +4,7 @@ let
|
||||
if stdenv.isLinux then {
|
||||
stable = "0.0.44";
|
||||
ptb = "0.0.72";
|
||||
canary = "0.0.285";
|
||||
canary = "0.0.294";
|
||||
development = "0.0.13";
|
||||
} else {
|
||||
stable = "0.0.294";
|
||||
@ -25,7 +25,7 @@ let
|
||||
};
|
||||
canary = fetchurl {
|
||||
url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
|
||||
hash = "sha256-dfBwe/YOzUUAfBrf51mNXtpyGL3Mp235e6TfQM4h04s=";
|
||||
hash = "sha256-3D48+eg8hqToGepFdQznUTTUu37WRcZJ9kgG+wpxFAE=";
|
||||
};
|
||||
development = fetchurl {
|
||||
url = "https://dl-development.discordapp.net/apps/linux/${version}/discord-development-${version}.tar.gz";
|
||||
|
@ -22,6 +22,18 @@ let
|
||||
ln -sf $out/lib/libssl.so $out/lib/libssl.so.1.0.0
|
||||
'';
|
||||
};
|
||||
|
||||
opencv4' = symlinkJoin {
|
||||
name = "opencv4-compat";
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
paths = [ opencv4 ];
|
||||
postBuild = ''
|
||||
for so in ${opencv4}/lib/*.so; do
|
||||
ln -s "$so" $out/lib/$(basename "$so").407
|
||||
done
|
||||
'';
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
@ -97,7 +109,7 @@ stdenv.mkDerivation rec {
|
||||
mesa
|
||||
nspr
|
||||
nss
|
||||
opencv4
|
||||
opencv4'
|
||||
openssl'
|
||||
pango
|
||||
speex
|
||||
|
@ -49,13 +49,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mkvtoolnix";
|
||||
version = "82.0";
|
||||
version = "83.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "mbunkus";
|
||||
repo = "mkvtoolnix";
|
||||
rev = "release-${version}";
|
||||
hash = "sha256-3WULzEkjMH4PUETJeKmDKn9PdanWf581O2mI/IqN8YM=";
|
||||
hash = "sha256-MHi3ewxCn560vpVfOucV34CNj/95U2OFd6bxAjtMBoc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, clangStdenv
|
||||
, fetchFromGitHub
|
||||
, gnustep
|
||||
, libxkbcommon
|
||||
@ -12,9 +12,10 @@
|
||||
assert wayland.withLibraries;
|
||||
|
||||
let
|
||||
mkDerivation = if stdenv.isDarwin then stdenv.mkDerivation else gnustep.gsmakeDerivation;
|
||||
stdenv = clangStdenv;
|
||||
in
|
||||
mkDerivation {
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "owl-compositor";
|
||||
version = "unstable-2021-11-10";
|
||||
|
||||
@ -43,6 +44,7 @@ mkDerivation {
|
||||
darwin.bootstrap_cmds
|
||||
] ++ lib.optionals (!stdenv.isDarwin) [
|
||||
gnustep.make
|
||||
gnustep.wrapGNUstepAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
|
@ -7,13 +7,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "dmarc-report-converter";
|
||||
version = "0.6.5";
|
||||
version = "0.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tierpod";
|
||||
repo = "dmarc-report-converter";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-4rAQhZmqYldilCKomBfuyqS0vcUg5yS4nqp84XSjam4=";
|
||||
hash = "sha256-doipM3SZmU/QUglN0UA2IpRgrhdMnuCmMPRs0OWRxPE=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
@ -21,13 +21,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "feather";
|
||||
version = "2.6.3";
|
||||
version = "2.6.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "feather-wallet";
|
||||
repo = "feather";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-pQnaJbKznK1i8wn7t8ZnxLVu1LV/D47krxZZ0j6Mw6g=";
|
||||
hash = "sha256-NFFIpHyie8jABfmiJP38VbPFjZgaNc+i5JcpbRr+mBU=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
60
pkgs/by-name/fr/frequest/package.nix
Normal file
60
pkgs/by-name/fr/frequest/package.nix
Normal file
@ -0,0 +1,60 @@
|
||||
{ lib, stdenv, fetchFromGitHub, qt5 }:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "frequest";
|
||||
version = "1.2a";
|
||||
|
||||
srcs = [
|
||||
(fetchFromGitHub {
|
||||
owner = "fabiobento512";
|
||||
name = "frequest";
|
||||
repo = "FRequest";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-fdn3MK5GWBOhJjpMtRaytO9EsVzz6KJknDhqWtAyXCc=";
|
||||
})
|
||||
# The application depends on hard-coded relative paths to ../CommonLibs and ../CommonUtils.
|
||||
# See https://github.com/fabiobento512/FRequest/wiki/Building-FRequest for more info.
|
||||
# Upstream provides no tags for these dependencies, use latest commit on their `master` branch.
|
||||
# Changing the name of these srcs will break the build.
|
||||
(fetchFromGitHub {
|
||||
owner = "fabiobento512";
|
||||
name = "CommonLibs";
|
||||
repo = "CommonLibs";
|
||||
rev = "d3906931bb06ddf4194ff711a59e1dcff80fa82f";
|
||||
hash = "sha256-iLJJ95yJ+VjNPuk8fNEDvYBI0db0rcfJF12a9azGv1Y=";
|
||||
})
|
||||
(fetchFromGitHub {
|
||||
owner = "fabiobento512";
|
||||
name = "CommonUtils";
|
||||
repo = "CommonUtils";
|
||||
rev = "53970984f6538d78350be1b9426032bcb5bcf818";
|
||||
hash = "sha256-nRv9DriSOuAiWhy+KkOVNEz5oSgNNNJZqk8sNwgbx8U=";
|
||||
})
|
||||
];
|
||||
sourceRoot = "frequest";
|
||||
|
||||
buildInputs = [
|
||||
qt5.qtbase
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
qt5.wrapQtAppsHook
|
||||
qt5.qmake
|
||||
];
|
||||
|
||||
# Without this, nothing gets installed in $out.
|
||||
postInstall = ''
|
||||
install -D FRequest $out/bin/FRequest
|
||||
install -D LinuxAppImageDeployment/frequest.desktop $out/share/applications/frequest.desktop
|
||||
install -D LinuxAppImageDeployment/frequest_icon.png $out/share/icons/hicolor/128x128/apps/frequest_icon.png
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "A fast, lightweight and opensource desktop application to make HTTP(s) requests";
|
||||
homepage = "https://fabiobento512.github.io/FRequest";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [ eliandoran ];
|
||||
platforms = lib.platforms.linux;
|
||||
mainProgram = "frequest";
|
||||
};
|
||||
})
|
38
pkgs/by-name/gi/git-agecrypt/package.nix
Normal file
38
pkgs/by-name/gi/git-agecrypt/package.nix
Normal file
@ -0,0 +1,38 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, rustPlatform
|
||||
, darwin
|
||||
, libgit2
|
||||
, git
|
||||
, pkg-config
|
||||
, zlib
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage {
|
||||
pname = "git-agecrypt";
|
||||
version = "unstable-2023-07-14";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vlaci";
|
||||
repo = "git-agecrypt";
|
||||
rev = "945b80556d8848f6e85a8cc0053f9020bdc8b359";
|
||||
hash = "sha256-6FjyJRYGyZt+uvYjXWvXI7DGq/+BNZHSSAT/DhOsF/E=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-QCV0DT0kcDRMzVc+9uTn9FYPpf+xvKJbakP6CHRcibo=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config git ];
|
||||
|
||||
buildInputs = [ libgit2 zlib ]
|
||||
++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
|
||||
|
||||
|
||||
meta = with lib; {
|
||||
description = "Alternative to git-crypt using age instead of GPG.";
|
||||
homepage = "https://github.com/vlaci/git-agecrypt";
|
||||
license = licenses.mpl20;
|
||||
maintainers = with maintainers; [ kuznetsss ];
|
||||
mainProgram = "git-agecrypt";
|
||||
};
|
||||
}
|
@ -5,10 +5,10 @@
|
||||
|
||||
let
|
||||
pname = "jan";
|
||||
version = "0.4.7";
|
||||
version = "0.4.8";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/janhq/jan/releases/download/v${version}/jan-linux-x86_64-${version}.AppImage";
|
||||
hash = "sha256-Mn7rIBEf46JbNof8h3z66TGdGKnb0FGMJc46JncA0KM=";
|
||||
hash = "sha256-8Vi2KK+5Wk/K+RJZ0/cbRUb8L25WEiLdo5ay8+ichdw=";
|
||||
};
|
||||
|
||||
appimageContents = appimageTools.extractType2 { inherit pname version src; };
|
||||
|
@ -11,17 +11,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "just";
|
||||
version = "1.25.1";
|
||||
version = "1.25.2";
|
||||
outputs = [ "out" "man" "doc" ];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "casey";
|
||||
repo = pname;
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-CvOnvUez2mfta9aXmdsLFxpVB/TGDw0y0ha3OyNJ2DE=";
|
||||
hash = "sha256-w7tHLjIFnlvyuTw5yG6zxJtQ7oDNdKRXHIRKY638vTo=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-b4hprcYOcY0z0UnUe3pGc87j+X3n52btYlaCemETLYg=";
|
||||
cargoHash = "sha256-VL2uNbEtqOv3xmLukhdCmo3lrfx5yFwOAMGwgBlgAVw=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles mdbook ];
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
|
||||
|
74
pkgs/by-name/ka/kana/package.nix
Normal file
74
pkgs/by-name/ka/kana/package.nix
Normal file
@ -0,0 +1,74 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitLab
|
||||
, rustPlatform
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, rustc
|
||||
, cargo
|
||||
, wrapGAppsHook4
|
||||
, desktop-file-utils
|
||||
, libadwaita
|
||||
, gst_all_1
|
||||
, darwin
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kana";
|
||||
version = "1.4";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "fkinoshita";
|
||||
repo = "Kana";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-/Ri723ub8LMlhbPObC83bay63JuWIQpgxAT5UUYuwZI=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
name = "kana-${version}";
|
||||
hash = "sha256-Z7DpPe8/Tt8AcLjCwKbwzQTsLe6YvWBCG7DlDkkklew=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
rustPlatform.cargoSetupHook
|
||||
rustc
|
||||
cargo
|
||||
wrapGAppsHook4
|
||||
desktop-file-utils
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libadwaita
|
||||
] ++ (with gst_all_1; [
|
||||
gstreamer
|
||||
gst-plugins-base
|
||||
gst-plugins-bad
|
||||
gst-plugins-good
|
||||
]) ++ lib.optionals stdenv.isDarwin [
|
||||
darwin.apple_sdk.frameworks.Foundation
|
||||
];
|
||||
|
||||
# Workaround for the gettext-sys issue
|
||||
# https://github.com/Koka/gettext-rs/issues/114
|
||||
env.NIX_CFLAGS_COMPILE = lib.optionalString
|
||||
(
|
||||
stdenv.cc.isClang &&
|
||||
lib.versionAtLeast stdenv.cc.version "16"
|
||||
)
|
||||
"-Wno-error=incompatible-function-pointer-types";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Learn Japanese hiragana and katakana characters";
|
||||
homepage = "https://gitlab.gnome.org/fkinoshita/kana";
|
||||
license = licenses.gpl3Plus;
|
||||
mainProgram = "kana";
|
||||
maintainers = with maintainers; [ aleksana ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
@ -15,25 +15,27 @@
|
||||
, flex
|
||||
, fontconfig
|
||||
, freetype
|
||||
, ghostscript
|
||||
, glib
|
||||
, glm
|
||||
, gmp
|
||||
, harfbuzz
|
||||
, hidapi
|
||||
, lib3mf
|
||||
, libGL
|
||||
, libGLU
|
||||
, libICE
|
||||
, libSM
|
||||
, libsForQt5
|
||||
, libspnav
|
||||
, libzip
|
||||
, mesa
|
||||
, mpfr
|
||||
, python3
|
||||
, tbb_2021_8
|
||||
, wayland
|
||||
, wayland-protocols
|
||||
, wrapGAppsHook
|
||||
, xorg
|
||||
}:
|
||||
let
|
||||
# get cccl from source to avoid license issues
|
||||
@ -79,24 +81,25 @@ in
|
||||
# clang consume much less RAM than GCC
|
||||
clangStdenv.mkDerivation rec {
|
||||
pname = "openscad-unstable";
|
||||
version = "2024-02-18";
|
||||
version = "2024-03-10";
|
||||
src = fetchFromGitHub {
|
||||
owner = "openscad";
|
||||
repo = "openscad";
|
||||
rev = "f5688998760d6b85d7b280300388448c162edc42";
|
||||
hash = "sha256-rQnih7Am7NvlrTwIGAN4QbZCcziFm6YOOT27wmjcY8A=";
|
||||
rev = "db167b1df31fbd8a2101cf3a13dac148b0c2165d";
|
||||
hash = "sha256-i2ZGYsNfMLDi3wRd/lohs9BuO2KuQ/7kJIXGtV65OQU=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
patches = [ ./test.diff ];
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
cmake
|
||||
ninja
|
||||
(python3.withPackages (ps: with ps; [ numpy pillow ]))
|
||||
bison
|
||||
cmake
|
||||
flex
|
||||
python3
|
||||
libsForQt5.qt5.wrapQtAppsHook
|
||||
llvmPackages.bintools
|
||||
wrapGAppsHook
|
||||
ninja
|
||||
pkg-config
|
||||
];
|
||||
buildInputs = with libsForQt5; with qt5; [
|
||||
# manifold dependencies
|
||||
@ -112,6 +115,7 @@ clangStdenv.mkDerivation rec {
|
||||
eigen
|
||||
fontconfig
|
||||
freetype
|
||||
ghostscript
|
||||
glib
|
||||
gmp
|
||||
harfbuzz
|
||||
@ -124,7 +128,15 @@ clangStdenv.mkDerivation rec {
|
||||
qtbase
|
||||
qtmultimedia
|
||||
]
|
||||
++ lib.optionals clangStdenv.isLinux [ libICE libSM libGLU libGL wayland wayland-protocols qtwayland ]
|
||||
++ lib.optionals clangStdenv.isLinux [
|
||||
xorg.libXdmcp
|
||||
libICE
|
||||
libSM
|
||||
wayland
|
||||
wayland-protocols
|
||||
qtwayland
|
||||
libGLU
|
||||
]
|
||||
++ lib.optional clangStdenv.isDarwin qtmacextras
|
||||
;
|
||||
cmakeFlags = [
|
||||
@ -133,11 +145,18 @@ clangStdenv.mkDerivation rec {
|
||||
"-DUSE_BUILTIN_OPENCSG=ON" # bundled latest opencsg
|
||||
"-DOPENSCAD_VERSION=\"${builtins.replaceStrings ["-"] ["."] version}\""
|
||||
"-DCMAKE_UNITY_BUILD=ON" # faster build
|
||||
"-DENABLE_TESTS=OFF" # tests do not work for now
|
||||
# IPO
|
||||
"-DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=lld"
|
||||
"-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON"
|
||||
];
|
||||
doCheck = true;
|
||||
checkPhase = ''
|
||||
# for running mesa llvmpipe
|
||||
export __EGL_VENDOR_LIBRARY_FILENAMES=${mesa.drivers}/share/glvnd/egl_vendor.d/50_mesa.json
|
||||
export LIBGL_DRIVERS_PATH=${mesa.drivers}/lib:${mesa.drivers}/lib/dri
|
||||
# some fontconfig issues cause pdf output to have wrong font
|
||||
ctest -j$NIX_BUILD_CORES -E pdfexporttest.\*
|
||||
'';
|
||||
meta = with lib; {
|
||||
description = "3D parametric model compiler (unstable)";
|
||||
longDescription = ''
|
||||
|
42
pkgs/by-name/op/openscad-unstable/test.diff
Normal file
42
pkgs/by-name/op/openscad-unstable/test.diff
Normal file
@ -0,0 +1,42 @@
|
||||
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
|
||||
index 5c1b40af4..917451dee 100644
|
||||
--- a/tests/CMakeLists.txt
|
||||
+++ b/tests/CMakeLists.txt
|
||||
@@ -59,13 +59,14 @@ if(USE_IMAGE_COMPARE_PY)
|
||||
|
||||
# Since msys2 on Windows prefers bin/ over Scripts, we need to look for the actual folder to determine
|
||||
# how to utilize the venv
|
||||
- find_path(VENV_BIN_PATH activate PATHS "${VENV_DIR}/bin" "${VENV_DIR}/Scripts" NO_DEFAULT_PATH NO_CACHE)
|
||||
- if(WIN32)
|
||||
- set(IMAGE_COMPARE_EXE "${VENV_BIN_PATH}/python.exe")
|
||||
- else()
|
||||
- set(IMAGE_COMPARE_EXE "${VENV_BIN_PATH}/python")
|
||||
- endif()
|
||||
- if(EXISTS "${IMAGE_COMPARE_EXE}")
|
||||
+ # find_path(VENV_BIN_PATH activate PATHS "${VENV_DIR}/bin" "${VENV_DIR}/Scripts" NO_DEFAULT_PATH NO_CACHE)
|
||||
+ # if(WIN32)
|
||||
+ # set(IMAGE_COMPARE_EXE "${VENV_BIN_PATH}/python.exe")
|
||||
+ # else()
|
||||
+ # set(IMAGE_COMPARE_EXE "${VENV_BIN_PATH}/python")
|
||||
+ # endif()
|
||||
+ set(IMAGE_COMPARE_EXE "python3")
|
||||
+ # if(EXISTS "${IMAGE_COMPARE_EXE}")
|
||||
message(STATUS "venv found, testing libraries")
|
||||
execute_process(
|
||||
COMMAND "${IMAGE_COMPARE_EXE}" "${CCSD}/image_compare.py" "--status"
|
||||
@@ -77,10 +78,10 @@ if(USE_IMAGE_COMPARE_PY)
|
||||
message(STATUS "venv libraries complete")
|
||||
set(BUILD_VENV FALSE)
|
||||
endif()
|
||||
- else()
|
||||
- message(STATUS "venv not found")
|
||||
- set(BUILD_VENV TRUE)
|
||||
- endif()
|
||||
+ # else()
|
||||
+ # message(STATUS "venv not found")
|
||||
+ # set(BUILD_VENV TRUE)
|
||||
+ # endif()
|
||||
if(BUILD_VENV)
|
||||
message(STATUS "Setting up testing venv for image comparison")
|
||||
execute_process(
|
||||
|
37
pkgs/by-name/re/reproxy/package.nix
Normal file
37
pkgs/by-name/re/reproxy/package.nix
Normal file
@ -0,0 +1,37 @@
|
||||
{ lib, stdenv, buildGoModule, fetchFromGitHub }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "reproxy";
|
||||
version = "1.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "umputun";
|
||||
repo = "reproxy";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-/ydpqi7O4z41YxYb/RngPWk/79h3MIxAopzqIDMgw1g=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
||||
ldflags = [
|
||||
"-s" "-w" "-X main.revision=${version}"
|
||||
];
|
||||
|
||||
checkFlags = [
|
||||
# Requires network access or fluky
|
||||
"-skip=^Test(_MainWithPlugin|_MainWithSSL|_Main|Http_matchHandler|Http_withBasicAuth|File_Events|File_Events_BusyListener)$"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
mv $out/bin/{app,reproxy}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Simple edge server / reverse proxy";
|
||||
homepage = "https://reproxy.io/";
|
||||
changelog = "https://github.com/umputun/reproxy/releases/tag/${src.rev}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ sikmir ];
|
||||
mainProgram = "reproxy";
|
||||
};
|
||||
}
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "tippecanoe";
|
||||
version = "2.49.0";
|
||||
version = "2.51.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "felt";
|
||||
repo = "tippecanoe";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-Wu6TSld/mxCb4CFXf2oIZpDvX/j3Ujm7Vli4kp04u7c=";
|
||||
hash = "sha256-5Cu+0Tn+ExxJTO5AjeTnIJtnpBNKR7nxudD77X696H0=";
|
||||
};
|
||||
|
||||
buildInputs = [ sqlite zlib ];
|
||||
|
31
pkgs/by-name/uv/uv/Cargo.lock
generated
31
pkgs/by-name/uv/uv/Cargo.lock
generated
@ -915,6 +915,7 @@ version = "0.0.1"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"cache-key",
|
||||
"chrono",
|
||||
"data-encoding",
|
||||
"distribution-filename",
|
||||
"fs-err",
|
||||
@ -972,6 +973,15 @@ dependencies = [
|
||||
"cfg-if",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "encoding_rs_io"
|
||||
version = "0.1.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1cc3c5651fb62ab8aa3103998dade57efdd028544bd300516baa31840c252a83"
|
||||
dependencies = [
|
||||
"encoding_rs",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "equivalent"
|
||||
version = "1.0.1"
|
||||
@ -2882,16 +2892,6 @@ dependencies = [
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "reqwest-netrc"
|
||||
version = "0.1.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "eca0c58cd4b2978f9697dea94302e772399f559cd175356eb631cb6daaa0b6db"
|
||||
dependencies = [
|
||||
"reqwest-middleware",
|
||||
"rust-netrc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "reqwest-retry"
|
||||
version = "0.3.0"
|
||||
@ -4179,13 +4179,14 @@ checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
|
||||
|
||||
[[package]]
|
||||
name = "uv"
|
||||
version = "0.1.16"
|
||||
version = "0.1.17"
|
||||
dependencies = [
|
||||
"anstream",
|
||||
"anyhow",
|
||||
"assert_cmd",
|
||||
"assert_fs",
|
||||
"base64 0.21.7",
|
||||
"byteorder",
|
||||
"chrono",
|
||||
"clap",
|
||||
"clap_complete_command",
|
||||
@ -4282,7 +4283,6 @@ dependencies = [
|
||||
"tokio",
|
||||
"toml",
|
||||
"tracing",
|
||||
"uv-extract",
|
||||
"uv-fs",
|
||||
"uv-interpreter",
|
||||
"uv-traits",
|
||||
@ -4318,6 +4318,7 @@ dependencies = [
|
||||
"async-trait",
|
||||
"async_http_range_reader",
|
||||
"async_zip",
|
||||
"base64 0.21.7",
|
||||
"cache-key",
|
||||
"chrono",
|
||||
"distribution-filename",
|
||||
@ -4335,10 +4336,10 @@ dependencies = [
|
||||
"pypi-types",
|
||||
"reqwest",
|
||||
"reqwest-middleware",
|
||||
"reqwest-netrc",
|
||||
"reqwest-retry",
|
||||
"rkyv",
|
||||
"rmp-serde",
|
||||
"rust-netrc",
|
||||
"rustc-hash",
|
||||
"serde",
|
||||
"serde_json",
|
||||
@ -4500,10 +4501,12 @@ name = "uv-fs"
|
||||
version = "0.0.1"
|
||||
dependencies = [
|
||||
"dunce",
|
||||
"encoding_rs_io",
|
||||
"fs-err",
|
||||
"fs2",
|
||||
"junction",
|
||||
"tempfile",
|
||||
"tokio",
|
||||
"tracing",
|
||||
"urlencoding",
|
||||
"uv-warnings",
|
||||
@ -4688,7 +4691,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "uv-version"
|
||||
version = "0.1.16"
|
||||
version = "0.1.17"
|
||||
|
||||
[[package]]
|
||||
name = "uv-virtualenv"
|
||||
|
@ -10,13 +10,13 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "uv";
|
||||
version = "0.1.16";
|
||||
version = "0.1.17";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "astral-sh";
|
||||
repo = "uv";
|
||||
rev = version;
|
||||
hash = "sha256-CvaYXtgd8eqzPNoXukjPwaoT/QOlUVKYNzD8Db6on9Q=";
|
||||
hash = "sha256-nXH/9/c2UeG7LOJo0ZnozdI9df5cmVwICvgi0kRjgMU=";
|
||||
};
|
||||
|
||||
cargoLock = {
|
||||
|
@ -1,7 +1,11 @@
|
||||
{ gsmakeDerivation
|
||||
{ lib
|
||||
, stdenv
|
||||
, make
|
||||
, wrapGNUstepAppsHook
|
||||
, cairo
|
||||
, fetchzip
|
||||
, base, gui
|
||||
, base
|
||||
, gui
|
||||
, fontconfig
|
||||
, freetype
|
||||
, pkg-config
|
||||
@ -9,18 +13,23 @@
|
||||
, libXmu
|
||||
}:
|
||||
|
||||
gsmakeDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "gnustep-back";
|
||||
version = "0.30.0";
|
||||
|
||||
src = fetchzip {
|
||||
url = "ftp://ftp.gnustep.org/pub/gnustep/core/${pname}-${version}.tar.gz";
|
||||
url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-back-${finalAttrs.version}.tar.gz";
|
||||
sha256 = "sha256-HD4PLdkE573nPWqFwffUmcHw8VYIl5rLiPKWrbnwpCI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
nativeBuildInputs = [ make pkg-config wrapGNUstepAppsHook ];
|
||||
buildInputs = [ cairo base gui fontconfig freetype libXft libXmu ];
|
||||
|
||||
meta = {
|
||||
description = "A generic backend for GNUstep";
|
||||
homepage = "https://gnustep.github.io/";
|
||||
license = lib.licenses.lgpl2Plus;
|
||||
maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
@ -1,26 +1,40 @@
|
||||
{ aspell, audiofile
|
||||
, gsmakeDerivation
|
||||
{ lib
|
||||
, stdenv
|
||||
, aspell
|
||||
, audiofile
|
||||
, make
|
||||
, wrapGNUstepAppsHook
|
||||
, cups
|
||||
, fetchzip
|
||||
, fetchpatch
|
||||
, gmp, gnutls
|
||||
, libffi, binutils-unwrapped
|
||||
, libjpeg, libtiff, libpng, giflib
|
||||
, libxml2, libxslt, libiconv
|
||||
, libobjc, libgcrypt
|
||||
, gmp
|
||||
, gnutls
|
||||
, libffi
|
||||
, binutils-unwrapped
|
||||
, libjpeg
|
||||
, libtiff
|
||||
, libpng
|
||||
, giflib
|
||||
, libxml2
|
||||
, libxslt
|
||||
, libiconv
|
||||
, libobjc
|
||||
, libgcrypt
|
||||
, icu
|
||||
, pkg-config, portaudio
|
||||
, pkg-config
|
||||
, portaudio
|
||||
, libiberty
|
||||
}:
|
||||
gsmakeDerivation rec {
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "gnustep-base";
|
||||
version = "1.29.0";
|
||||
src = fetchzip {
|
||||
url = "ftp://ftp.gnustep.org/pub/gnustep/core/${pname}-${version}.tar.gz";
|
||||
url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-base-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-4fjdsLBsYEDxLOFrq17dKii2sLKvOaFCu0cw3qQtM5U=";
|
||||
};
|
||||
outputs = [ "out" "dev" "lib" ];
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
nativeBuildInputs = [ pkg-config make wrapGNUstepAppsHook ];
|
||||
propagatedBuildInputs = [
|
||||
aspell audiofile
|
||||
cups
|
||||
@ -55,7 +69,11 @@ gsmakeDerivation rec {
|
||||
];
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/gnustep/libs-base/releases/tag/base-${builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
|
||||
description = "An implementation of AppKit and Foundation libraries of OPENSTEP and Cocoa";
|
||||
changelog = "https://github.com/gnustep/libs-base/releases/tag/base-${builtins.replaceStrings [ "." ] [ "_" ] version}";
|
||||
homepage = "https://gnustep.github.io/";
|
||||
license = lib.licenses.lgpl2Plus;
|
||||
maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
@ -5,18 +5,21 @@
|
||||
let
|
||||
callPackage = newScope self;
|
||||
|
||||
self = rec {
|
||||
self = {
|
||||
stdenv = llvmPackages.stdenv;
|
||||
|
||||
gsmakeDerivation = callPackage ./make/gsmakeDerivation.nix {};
|
||||
wrapGNUstepAppsHook = callPackage ./wrapGNUstepAppsHook.nix {};
|
||||
|
||||
make = callPackage ./make {};
|
||||
|
||||
libobjc = callPackage ./libobjc2 {};
|
||||
base = callPackage ./base {};
|
||||
back = callPackage ./back {};
|
||||
gui = callPackage ./gui {};
|
||||
|
||||
gorm = callPackage ./gorm {};
|
||||
projectcenter = callPackage ./projectcenter {};
|
||||
system_preferences = callPackage ./systempreferences {};
|
||||
libobjc = callPackage ./libobjc2 {};
|
||||
make = callPackage ./make {};
|
||||
back = callPackage ./back {};
|
||||
base = callPackage ./base { };
|
||||
gui = callPackage ./gui {};
|
||||
gworkspace = callPackage ./gworkspace {};
|
||||
};
|
||||
|
||||
|
@ -1,15 +1,31 @@
|
||||
{ fetchzip, base, back, gsmakeDerivation, gui }:
|
||||
gsmakeDerivation rec {
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchzip
|
||||
, base
|
||||
, back
|
||||
, make
|
||||
, wrapGNUstepAppsHook
|
||||
, gui
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "gorm";
|
||||
version = "1.3.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "ftp://ftp.gnustep.org/pub/gnustep/dev-apps/gorm-${version}.tar.gz";
|
||||
url = "ftp://ftp.gnustep.org/pub/gnustep/dev-apps/gorm-${finalAttrs.version}.tar.gz";
|
||||
sha256 = "sha256-W+NgbvLjt1PpDiauhzWFaU1/CUhmDACQz+GoyRUyWB8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ make wrapGNUstepAppsHook ];
|
||||
buildInputs = [ base back gui ];
|
||||
|
||||
meta = {
|
||||
description = "Graphical Object Relationship Modeller is an easy-to-use interface designer for GNUstep";
|
||||
homepage = "https://gnustep.github.io/";
|
||||
license = lib.licenses.lgpl2Plus;
|
||||
mainProgram = "Gorm";
|
||||
maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
@ -1,19 +1,32 @@
|
||||
{ gsmakeDerivation, fetchzip, base }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, make
|
||||
, wrapGNUstepAppsHook
|
||||
, fetchzip
|
||||
, base
|
||||
}:
|
||||
|
||||
gsmakeDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
version = "0.30.0";
|
||||
pname = "gnustep-gui";
|
||||
|
||||
src = fetchzip {
|
||||
url = "ftp://ftp.gnustep.org/pub/gnustep/core/${pname}-${version}.tar.gz";
|
||||
url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-gui-${finalAttrs.version}.tar.gz";
|
||||
sha256 = "sha256-24hL4TeIY6izlhQUcxKI0nXITysAPfRrncRqsDm2zNk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ make wrapGNUstepAppsHook ];
|
||||
buildInputs = [ base ];
|
||||
|
||||
patches = [
|
||||
./fixup-all.patch
|
||||
];
|
||||
meta = {
|
||||
changelog = "https://github.com/gnustep/libs-gui/releases/tag/gui-${builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
|
||||
description = "A GUI class library of GNUstep";
|
||||
changelog = "https://github.com/gnustep/libs-gui/releases/tag/gui-${builtins.replaceStrings [ "." ] [ "_" ] version}";
|
||||
homepage = "https://gnustep.github.io/";
|
||||
license = lib.licenses.lgpl2Plus;
|
||||
maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
@ -1,22 +1,36 @@
|
||||
{ back, base, gui, gsmakeDerivation
|
||||
{ lib
|
||||
, stdenv
|
||||
, back
|
||||
, base
|
||||
, gui
|
||||
, make
|
||||
, wrapGNUstepAppsHook
|
||||
, fetchurl
|
||||
, system_preferences
|
||||
}:
|
||||
let
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "gworkspace";
|
||||
version = "1.0.0";
|
||||
in
|
||||
gsmakeDerivation {
|
||||
name = "gworkspace-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "ftp://ftp.gnustep.org/pub/gnustep/usr-apps/gworkspace-${version}.tar.gz";
|
||||
url = "ftp://ftp.gnustep.org/pub/gnustep/usr-apps/gworkspace-${finalAttrs.version}.tar.gz";
|
||||
sha256 = "sha256-M7dV7RVatw8gdYHQlRi5wNBd6MGT9GqW04R/DoKNu6I=";
|
||||
};
|
||||
|
||||
# additional dependencies:
|
||||
# - PDFKit framework from http://gap.nongnu.org/
|
||||
# - TODO: to --enable-gwmetadata, need libDBKit as well as sqlite!
|
||||
nativeBuildInputs = [ make wrapGNUstepAppsHook ];
|
||||
buildInputs = [ back base gui system_preferences ];
|
||||
configureFlags = [ "--with-inotify" ];
|
||||
|
||||
meta = {
|
||||
description = "A workspace manager for GNUstep";
|
||||
homepage = "https://gnustep.github.io/";
|
||||
license = lib.licenses.lgpl2Plus;
|
||||
mainProgram = "GWorkspace";
|
||||
maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
@ -1,13 +1,17 @@
|
||||
{ stdenv, lib, fetchFromGitHub, cmake }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "libobjc2";
|
||||
version = "2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gnustep";
|
||||
repo = "libobjc2";
|
||||
rev = "v${version}";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-iDOVEDnTAfg9r3/kdHp7hzX2oIjO1ovaqgrlIV7V68M=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
@ -19,9 +23,9 @@ stdenv.mkDerivation rec {
|
||||
meta = with lib; {
|
||||
broken = stdenv.isDarwin;
|
||||
description = "Objective-C runtime for use with GNUstep";
|
||||
homepage = "http://gnustep.org/";
|
||||
homepage = "https://gnustep.github.io/";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ ashalkhakov matthewbauer ];
|
||||
maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
@ -1,127 +0,0 @@
|
||||
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
|
||||
source $stdenv/setup
|
||||
|
||||
providedPreConfigure="$preConfigure";
|
||||
|
||||
preConfigure() {
|
||||
eval "$providedPreConfigure"
|
||||
|
||||
. $GNUSTEP_MAKEFILES/GNUstep.sh
|
||||
}
|
||||
|
||||
wrapGSMake() {
|
||||
local program="$1"
|
||||
local config="$2"
|
||||
local wrapped="$(dirname $program)/.$(basename $program)-wrapped"
|
||||
|
||||
mv "$program" "$wrapped"
|
||||
|
||||
cat > "$program"<<EOF
|
||||
#! $SHELL -e
|
||||
|
||||
export GNUSTEP_CONFIG_FILE="$config"
|
||||
|
||||
exec "$wrapped" "\$@"
|
||||
EOF
|
||||
chmod +x "$program"
|
||||
}
|
||||
|
||||
postInstall() {
|
||||
local conf="$out/share/.GNUstep.conf"
|
||||
|
||||
mkdir -p "$out/share"
|
||||
touch $conf
|
||||
|
||||
# add the current package to the paths
|
||||
local tmp="$out/lib/GNUstep/Applications"
|
||||
if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_APPS" in *"${tmp}"*) false;; *) true;; esac; then
|
||||
addToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$tmp"
|
||||
fi
|
||||
tmp="$out/lib/GNUstep/Applications"
|
||||
if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" in *"${tmp}"*) false;; *) true;; esac; then
|
||||
addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$tmp"
|
||||
fi
|
||||
tmp="$out/lib/GNUstep/WebApplications"
|
||||
if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_WEB_APPS" in *"${tmp}"*) false;; *) true;; esac; then
|
||||
addToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$tmp"
|
||||
fi
|
||||
tmp="$out/bin"
|
||||
if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_TOOLS" in *"${tmp}"*) false;; *) true;; esac; then
|
||||
addToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$tmp"
|
||||
fi
|
||||
tmp="$out/sbin"
|
||||
if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" in *"${tmp}"*) false;; *) true;; esac; then
|
||||
addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$tmp"
|
||||
fi
|
||||
tmp="$out/lib/GNUstep"
|
||||
if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_LIBRARY" in *"${tmp}"*) false;; *) true;; esac; then
|
||||
addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$tmp"
|
||||
fi
|
||||
tmp="$out/include"
|
||||
if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_HEADERS" in *"${tmp}"*) false;; *) true;; esac; then
|
||||
if [ -z "$NIX_GNUSTEP_SYSTEM_HEADERS" ]; then
|
||||
export NIX_GNUSTEP_SYSTEM_HEADERS="$tmp"
|
||||
else
|
||||
export NIX_GNUSTEP_SYSTEM_HEADERS+=" $tmp"
|
||||
fi
|
||||
fi
|
||||
tmp="$out/lib"
|
||||
if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_LIBRARIES" in *"${tmp}"*) false;; *) true;; esac; then
|
||||
addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$tmp"
|
||||
fi
|
||||
tmp="$out/share/GNUstep/Documentation"
|
||||
if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC" in *"${tmp}"*) false;; *) true;; esac; then
|
||||
addToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$tmp"
|
||||
fi
|
||||
tmp="$out/share/man"
|
||||
if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC_MAN" in *"${tmp}"*) false;; *) true;; esac; then
|
||||
addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$tmp"
|
||||
fi
|
||||
tmp="$out/share/info"
|
||||
if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC_INFO" in *"${tmp}"*) false;; *) true;; esac; then
|
||||
addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$tmp"
|
||||
fi
|
||||
|
||||
# write the config file
|
||||
echo GNUSTEP_MAKEFILES=$GNUSTEP_MAKEFILES >> $conf
|
||||
if [ -n "$NIX_GNUSTEP_SYSTEM_APPS" ]; then
|
||||
echo NIX_GNUSTEP_SYSTEM_APPS="$NIX_GNUSTEP_SYSTEM_APPS"
|
||||
fi
|
||||
if [ -n "$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" ]; then
|
||||
echo NIX_GNUSTEP_SYSTEM_ADMIN_APPS="$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" >> $conf
|
||||
fi
|
||||
if [ -n "$NIX_GNUSTEP_SYSTEM_WEB_APPS" ]; then
|
||||
echo NIX_GNUSTEP_SYSTEM_WEB_APPS="$NIX_GNUSTEP_SYSTEM_WEB_APPS" >> $conf
|
||||
fi
|
||||
if [ -n "$NIX_GNUSTEP_SYSTEM_TOOLS" ]; then
|
||||
echo NIX_GNUSTEP_SYSTEM_TOOLS="$NIX_GNUSTEP_SYSTEM_TOOLS" >> $conf
|
||||
fi
|
||||
if [ -n "$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" ]; then
|
||||
echo NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS="$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" >> $conf
|
||||
fi
|
||||
if [ -n "$NIX_GNUSTEP_SYSTEM_LIBRARY" ]; then
|
||||
echo NIX_GNUSTEP_SYSTEM_LIBRARY="$NIX_GNUSTEP_SYSTEM_LIBRARY" >> $conf
|
||||
fi
|
||||
if [ -n "$NIX_GNUSTEP_SYSTEM_HEADERS" ]; then
|
||||
echo NIX_GNUSTEP_SYSTEM_HEADERS="$NIX_GNUSTEP_SYSTEM_HEADERS" >> $conf
|
||||
fi
|
||||
if [ -n "$NIX_GNUSTEP_SYSTEM_LIBRARIES" ]; then
|
||||
echo NIX_GNUSTEP_SYSTEM_LIBRARIES="$NIX_GNUSTEP_SYSTEM_LIBRARIES" >> $conf
|
||||
fi
|
||||
if [ -n "$NIX_GNUSTEP_SYSTEM_DOC" ]; then
|
||||
echo NIX_GNUSTEP_SYSTEM_DOC="$NIX_GNUSTEP_SYSTEM_DOC" >> $conf
|
||||
fi
|
||||
if [ -n "$NIX_GNUSTEP_SYSTEM_DOC_MAN" ]; then
|
||||
echo NIX_GNUSTEP_SYSTEM_DOC_MAN="$NIX_GNUSTEP_SYSTEM_DOC_MAN" >> $conf
|
||||
fi
|
||||
if [ -n "$NIX_GNUSTEP_SYSTEM_DOC_INFO" ]; then
|
||||
echo NIX_GNUSTEP_SYSTEM_DOC_INFO="$NIX_GNUSTEP_SYSTEM_DOC_INFO" >> $conf
|
||||
fi
|
||||
|
||||
for i in $out/bin/*; do
|
||||
echo "wrapping $(basename $i)"
|
||||
wrapGSMake "$i" "$out/share/.GNUstep.conf"
|
||||
done
|
||||
}
|
||||
|
||||
genericBuild
|
@ -1,11 +1,16 @@
|
||||
{ lib, stdenv, fetchurl, clang, which, libobjc }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, which
|
||||
, libobjc
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "gnustep-make";
|
||||
version = "2.9.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-make-${version}.tar.gz";
|
||||
url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-make-${finalAttrs.version}.tar.gz";
|
||||
sha256 = "sha256-w9bnDPFWsn59HtJQHFffP5bidIjOLzUbk+R5xYwB6uc=";
|
||||
};
|
||||
|
||||
@ -22,17 +27,19 @@ stdenv.mkDerivation rec {
|
||||
"GNUSTEP_INSTALLATION_DOMAIN=SYSTEM"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ clang which ];
|
||||
buildInputs = [ libobjc ];
|
||||
|
||||
propagatedBuildInputs = [ which ];
|
||||
|
||||
patches = [ ./fixup-paths.patch ];
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/gnustep/tools-make/releases/tag/make-${builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
|
||||
description = "A build manager for GNUstep";
|
||||
homepage = "http://gnustep.org/";
|
||||
changelog = "https://github.com/gnustep/tools-make/releases/tag/make-${builtins.replaceStrings [ "." ] [ "_" ] version}";
|
||||
homepage = "https://gnustep.github.io/";
|
||||
license = lib.licenses.lgpl2Plus;
|
||||
maintainers = with lib.maintainers; [ ashalkhakov matthewbauer ];
|
||||
maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
@ -1,19 +0,0 @@
|
||||
{ lib, stdenv, make, makeWrapper, which }:
|
||||
{ nativeBuildInputs ? [], ...} @ args:
|
||||
stdenv.mkDerivation (args // {
|
||||
nativeBuildInputs = [ makeWrapper make which ] ++ nativeBuildInputs;
|
||||
|
||||
builder = ./builder.sh;
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
GNUSTEP_MAKEFILES = "${make}/share/GNUstep/Makefiles";
|
||||
|
||||
meta = {
|
||||
homepage = "http://gnustep.org/";
|
||||
|
||||
license = lib.licenses.lgpl2Plus;
|
||||
|
||||
maintainers = with lib.maintainers; [ ashalkhakov matthewbauer ];
|
||||
platforms = lib.platforms.linux;
|
||||
} // (lib.optionalAttrs (builtins.hasAttr "meta" args) args.meta);
|
||||
})
|
@ -20,62 +20,52 @@ addGnustepInstallFlags() {
|
||||
|
||||
preInstallPhases+=" addGnustepInstallFlags"
|
||||
|
||||
addEnvVars() {
|
||||
addGNUstepEnvVars() {
|
||||
local filename
|
||||
|
||||
for filename in $1/share/GNUstep/Makefiles/Additional/*.make ; do
|
||||
if case "${NIX_GNUSTEP_MAKEFILES_ADDITIONAL-}" in *"{$filename}"*) false;; *) true;; esac; then
|
||||
export NIX_GNUSTEP_MAKEFILES_ADDITIONAL+=" $filename"
|
||||
gsAddToSearchPath() {
|
||||
if [[ -d "$2" && "${!1-}" != *"$2"* ]]; then
|
||||
addToSearchPath "$1" "$2"
|
||||
fi
|
||||
}
|
||||
|
||||
gsAddToIncludeSearchPath() {
|
||||
local -n ref="$1"
|
||||
|
||||
# NOTE: contrary to the one in wrapGNUstepAppsHook, use -e here instead of -d since it's also used for the makefiles
|
||||
if [[ -e "$2" && "${ref-}" != *"$2"* ]]; then
|
||||
if [[ "${ref-}" != "" ]]; then
|
||||
ref+=" "
|
||||
fi
|
||||
|
||||
ref+="$2"
|
||||
fi
|
||||
}
|
||||
|
||||
for filename in $1/share/GNUstep/Makefiles/Additional/*.make ; do
|
||||
gsAddToIncludeSearchPath NIX_GNUSTEP_MAKEFILES_ADDITIONAL "$filename"
|
||||
done
|
||||
|
||||
local tmp="$1/lib/GNUstep/Applications"
|
||||
if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_APPS-}" in *"${tmp}"*) false;; *) true;; esac; then
|
||||
addToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$tmp"
|
||||
fi
|
||||
tmp="$1/lib/GNUstep/Applications"
|
||||
if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_ADMIN_APPS-}" in *"${tmp}"*) false;; *) true;; esac; then
|
||||
addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$tmp"
|
||||
fi
|
||||
tmp="$1/lib/GNUstep/WebApplications"
|
||||
if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_WEB_APPS-}" in *"${tmp}"*) false;; *) true;; esac; then
|
||||
addToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$tmp"
|
||||
fi
|
||||
tmp="$1/bin"
|
||||
if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_TOOLS-}" in *"${tmp}"*) false;; *) true;; esac; then
|
||||
addToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$tmp"
|
||||
fi
|
||||
tmp="$1/sbin"
|
||||
if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS-}" in *"${tmp}"*) false;; *) true;; esac; then
|
||||
addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$tmp"
|
||||
fi
|
||||
tmp="$1/lib/GNUstep"
|
||||
if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_LIBRARY-}" in *"${tmp}"*) false;; *) true;; esac; then
|
||||
addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$tmp"
|
||||
fi
|
||||
tmp="$1/include"
|
||||
if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_HEADERS-}" in *"${tmp}"*) false;; *) true;; esac; then
|
||||
if [ -z "${NIX_GNUSTEP_SYSTEM_HEADERS-}" ]; then
|
||||
export NIX_GNUSTEP_SYSTEM_HEADERS="$tmp"
|
||||
else
|
||||
export NIX_GNUSTEP_SYSTEM_HEADERS+=" $tmp"
|
||||
fi
|
||||
fi
|
||||
tmp="$1/lib"
|
||||
if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_LIBRARIES-}" in *"${tmp}"*) false;; *) true;; esac; then
|
||||
addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$tmp"
|
||||
fi
|
||||
tmp="$1/share/GNUstep/Documentation"
|
||||
if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_DOC-}" in *"${tmp}"*) false;; *) true;; esac; then
|
||||
addToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$tmp"
|
||||
fi
|
||||
tmp="$1/share/man"
|
||||
if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_DOC_MAN-}" in *"${tmp}"*) false;; *) true;; esac; then
|
||||
addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$tmp"
|
||||
fi
|
||||
tmp="$1/share/info"
|
||||
if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_DOC_INFO-}" in *"${tmp}"*) false;; *) true;; esac; then
|
||||
addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$tmp"
|
||||
fi
|
||||
export NIX_GNUSTEP_MAKEFILES_ADDITIONAL
|
||||
|
||||
gsAddToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$1/lib/GNUstep/Applications"
|
||||
gsAddToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$1/lib/GNUstep/Applications"
|
||||
gsAddToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$1/lib/GNUstep/WebApplications"
|
||||
gsAddToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$1/bin"
|
||||
gsAddToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$1/sbin"
|
||||
gsAddToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$1/lib/GNUstep"
|
||||
gsAddToIncludeSearchPath NIX_GNUSTEP_SYSTEM_HEADERS "$1/include"
|
||||
gsAddToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$1/lib"
|
||||
gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$1/share/GNUstep/Documentation"
|
||||
gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$1/share/man"
|
||||
gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$1/share/info"
|
||||
}
|
||||
addEnvHooks "$targetOffset" addEnvVars
|
||||
addEnvHooks "$targetOffset" addGNUstepEnvVars
|
||||
|
||||
gsmakeSetup() {
|
||||
export GNUSTEP_MAKEFILES="$(gnustep-config --variable=GNUSTEP_MAKEFILES)"
|
||||
|
||||
. $GNUSTEP_MAKEFILES/GNUstep.sh
|
||||
}
|
||||
|
||||
preConfigureHooks+=(gsmakeSetup)
|
||||
|
@ -1,4 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
. $GNUSTEP_MAKEFILES/GNUstep.sh
|
||||
$1
|
@ -1,21 +1,29 @@
|
||||
{ lib, fetchFromGitHub
|
||||
, base, back, gsmakeDerivation, gui, gorm
|
||||
, gnumake, gdb
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, make
|
||||
, wrapGNUstepAppsHook
|
||||
, base
|
||||
, back
|
||||
, gui
|
||||
, gorm
|
||||
, gnumake
|
||||
, gdb
|
||||
}:
|
||||
let
|
||||
version = "0.7.0";
|
||||
in
|
||||
gsmakeDerivation {
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "projectcenter";
|
||||
inherit version;
|
||||
version = "0.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gnustep";
|
||||
repo = "apps-projectcenter";
|
||||
rev = "projectcenter-${lib.replaceStrings [ "." ] [ "_" ] version}";
|
||||
rev = "projectcenter-${lib.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
|
||||
hash = "sha256-uXT2UUvMZNc6Fqi2BUXQimbZk8b3IqXzB+A2btBOmms=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ make wrapGNUstepAppsHook ];
|
||||
|
||||
# NOTE: need a patch for ProjectCenter to help it locate some necessary tools:
|
||||
# 1. Framework/PCProjectLauncher.m, locate gdb (say among NIX_GNUSTEP_SYSTEM_TOOLS)
|
||||
# 2. Framework/PCProjectBuilder.m, locate gmake (similar)
|
||||
@ -23,5 +31,10 @@ gsmakeDerivation {
|
||||
|
||||
meta = {
|
||||
description = "GNUstep's integrated development environment";
|
||||
homepage = "https://gnustep.github.io/";
|
||||
license = lib.licenses.lgpl2Plus;
|
||||
mainProgram = "ProjectCenter";
|
||||
maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
@ -1,17 +1,31 @@
|
||||
{ back, base, gui, gsmakeDerivation, fetchurl }:
|
||||
let
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, make
|
||||
, wrapGNUstepAppsHook
|
||||
, back
|
||||
, base
|
||||
, gui
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "system-preferences";
|
||||
version = "1.2.0";
|
||||
in
|
||||
gsmakeDerivation {
|
||||
name = "system_preferences-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "ftp://ftp.gnustep.org/pub/gnustep/usr-apps/SystemPreferences-${version}.tar.gz";
|
||||
url = "ftp://ftp.gnustep.org/pub/gnustep/usr-apps/SystemPreferences-${finalAttrs.version}.tar.gz";
|
||||
sha256 = "1fg7c3ihfgvl6n21rd17fs9ivx3l8ps874m80vz86n1callgs339";
|
||||
};
|
||||
# GNUSTEP_MAKEFILES = "${gnustep_make}/share/GNUstep/Makefiles";
|
||||
|
||||
nativeBuildInputs = [ make wrapGNUstepAppsHook ];
|
||||
buildInputs = [ back base gui ];
|
||||
# propagatedBuildInputs = [ gnustep_back gnustep_base gnustep_gui ];
|
||||
|
||||
meta = {
|
||||
description = "The settings manager for the GNUstep environment and its applications";
|
||||
homepage = "https://gnustep.github.io/";
|
||||
license = lib.licenses.lgpl2Plus;
|
||||
mainProgram = "SystemPreferences";
|
||||
maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
8
pkgs/desktops/gnustep/wrapGNUstepAppsHook.nix
Normal file
8
pkgs/desktops/gnustep/wrapGNUstepAppsHook.nix
Normal file
@ -0,0 +1,8 @@
|
||||
{makeBinaryWrapper, makeSetupHook}:
|
||||
|
||||
makeSetupHook
|
||||
{
|
||||
name = "wrapGNUstepAppsHook";
|
||||
propagatedBuildInputs = [makeBinaryWrapper];
|
||||
}
|
||||
./wrapGNUstepAppsHook.sh
|
96
pkgs/desktops/gnustep/wrapGNUstepAppsHook.sh
Normal file
96
pkgs/desktops/gnustep/wrapGNUstepAppsHook.sh
Normal file
@ -0,0 +1,96 @@
|
||||
if [[ -z "${__nix_wrapGNUstepAppsHook-}" ]]; then
|
||||
__nix_wrapGNUstepAppsHook=1 # Don't run this hook more than once.
|
||||
|
||||
# Inherit arguments given in mkDerivation
|
||||
gnustepWrapperArgs=(${gnustepWrapperArgs-})
|
||||
|
||||
gnustepConfigVars+=(
|
||||
GNUSTEP_MAKEFILES
|
||||
NIX_GNUSTEP_SYSTEM_APPS
|
||||
NIX_GNUSTEP_SYSTEM_ADMIN_APPS
|
||||
NIX_GNUSTEP_SYSTEM_WEB_APPS
|
||||
NIX_GNUSTEP_SYSTEM_TOOLS
|
||||
NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS
|
||||
NIX_GNUSTEP_SYSTEM_LIBRARY
|
||||
NIX_GNUSTEP_SYSTEM_HEADERS
|
||||
NIX_GNUSTEP_SYSTEM_LIBRARIES
|
||||
NIX_GNUSTEP_SYSTEM_DOC
|
||||
NIX_GNUSTEP_SYSTEM_DOC_MAN
|
||||
NIX_GNUSTEP_SYSTEM_DOC_INFO
|
||||
)
|
||||
|
||||
wrapGNUstepApp() {
|
||||
wrapProgram "$1" \
|
||||
--set GNUSTEP_CONFIG_FILE "$out/GNUstep.conf" \
|
||||
"${gnustepWrapperArgs[@]}"
|
||||
}
|
||||
|
||||
ensureGNUstepConfig() (
|
||||
if [[ -f "$out/GNUstep.conf" ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
echo "writing GNUstep config file"
|
||||
|
||||
gsAddToSearchPath() {
|
||||
if [[ -d "$2" && "${!1-}" != *"$2"* ]]; then
|
||||
addToSearchPath "$1" "$2"
|
||||
fi
|
||||
}
|
||||
|
||||
gsAddToIncludeSearchPath() {
|
||||
local -n ref="$1"
|
||||
|
||||
if [[ -d "$2" && "${ref-}" != *"$2"* ]]; then
|
||||
if [[ "${ref-}" != "" ]]; then
|
||||
ref+=" "
|
||||
fi
|
||||
|
||||
ref+="$2"
|
||||
fi
|
||||
}
|
||||
|
||||
gsAddToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$out/lib/GNUstep/Applications"
|
||||
gsAddToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$out/lib/GNUstep/Applications"
|
||||
gsAddToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$out/lib/GNUstep/WebApplications"
|
||||
gsAddToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$out/bin"
|
||||
gsAddToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$out/sbin"
|
||||
gsAddToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$out/lib/GNUstep"
|
||||
gsAddToIncludeSearchPath NIX_GNUSTEP_SYSTEM_HEADERS "$out/include"
|
||||
gsAddToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$out/lib"
|
||||
gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$out/share/GNUstep/Documentation"
|
||||
gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$out/share/man"
|
||||
gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$out/share/info"
|
||||
|
||||
for var in "${gnustepConfigVars[@]}"; do
|
||||
if [[ -n "${!var-}" ]]; then
|
||||
printf '%s="%s"\n' "$var" "${!var}"
|
||||
fi
|
||||
done > "$out/GNUstep.conf"
|
||||
)
|
||||
|
||||
# Note: $gnustepWrapperArgs still gets defined even if ${dontWrapGNUstepApps-} is set.
|
||||
wrapGNUstepAppsHook() {
|
||||
# skip this hook when requested
|
||||
[[ -z "${dontWrapGNUstepApps-}" ]] || return 0
|
||||
|
||||
# guard against running multiple times (e.g. due to propagation)
|
||||
[[ -z "$wrapGNUstepAppsHookHasRun" ]] || return 0
|
||||
wrapGNUstepAppsHookHasRun=1
|
||||
|
||||
local targetDirs=("$prefix/bin")
|
||||
echo "wrapping GNUstep applications in ${targetDirs[@]}"
|
||||
|
||||
for targetDir in "${targetDirs[@]}"; do
|
||||
[[ -d "$targetDir" ]] || continue
|
||||
|
||||
while IFS= read -r -d '' file; do
|
||||
ensureGNUstepConfig
|
||||
echo "wrapping $file"
|
||||
wrapGNUstepApp "$file"
|
||||
done < <(find "$targetDir" ! -type d -executable -print0)
|
||||
done
|
||||
}
|
||||
|
||||
fixupOutputHooks+=(wrapGNUstepAppsHook)
|
||||
fi
|
@ -1,4 +1,4 @@
|
||||
{ fetchFromGitHub, idris2Packages, makeWrapper }:
|
||||
{ lib, fetchFromGitHub, idris2Packages, makeWrapper }:
|
||||
|
||||
let
|
||||
globalLibraries = let
|
||||
@ -40,5 +40,12 @@ let
|
||||
wrapProgram $out/bin/idris2-lsp \
|
||||
--suffix IDRIS2_PACKAGE_PATH ':' "${globalLibrariesPath}"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Language Server for Idris2";
|
||||
homepage = "https://github.com/idris-community/idris2-lsp";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ mattpolzin ];
|
||||
};
|
||||
};
|
||||
in lspPkg.executable
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ lib, buildPackages, callPackage, cargo-auditable, stdenv, runCommand }@prev:
|
||||
{ lib, buildPackages, callPackage, callPackages, cargo-auditable, stdenv, runCommand }@prev:
|
||||
|
||||
{ rustc
|
||||
, cargo
|
||||
@ -34,7 +34,7 @@ rec {
|
||||
};
|
||||
|
||||
# Hooks
|
||||
inherit (callPackage ../../../build-support/rust/hooks {
|
||||
inherit (callPackages ../../../build-support/rust/hooks {
|
||||
inherit stdenv cargo rustc;
|
||||
}) cargoBuildHook cargoCheckHook cargoInstallHook cargoNextestHook cargoSetupHook maturinBuildHook bindgenHook;
|
||||
}
|
||||
|
@ -2,17 +2,17 @@
|
||||
|
||||
buildDunePackage rec {
|
||||
pname = "cry";
|
||||
version = "1.0.1";
|
||||
version = "1.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "savonet";
|
||||
repo = "ocaml-cry";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-wn9hLqbydzFTdYsJ1e76dmDLtwcZ7CGjbzFe5o9veYQ=";
|
||||
hash = "sha256-wtilYOUOHElW8ZVxolMNomvT//ho2tACmoubEvU2bpQ=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/dune --replace bytes ""
|
||||
substituteInPlace src/dune --replace-warn bytes ""
|
||||
'';
|
||||
|
||||
minimalOCamlVersion = "4.12";
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ lib
|
||||
, ocaml
|
||||
, version ? if lib.versionAtLeast ocaml.version "5.1" then "0.15" else "0.12"
|
||||
, version ? if lib.versionAtLeast ocaml.version "5.1" then "1.0" else "0.12"
|
||||
, buildDunePackage
|
||||
, bigstringaf
|
||||
, cstruct
|
||||
@ -24,9 +24,9 @@ let
|
||||
minimalOCamlVersion = "5.0";
|
||||
hash = "sha256-2EhHzoX/t4ZBSWrSS+PGq1zCxohc7a1q4lfsrFnZJqA=";
|
||||
};
|
||||
"0.15" = {
|
||||
"1.0" = {
|
||||
minimalOCamlVersion = "5.1";
|
||||
hash = "sha256-gH7O8zfdqEmwXT29F6ko5vXGNudusV4iE2Z8kRJ3GKc=";
|
||||
hash = "sha256-2iYNnaOLPd6fMWZSogsTomHPkLhaJJisZpt9Vk5hlC0=";
|
||||
};
|
||||
}."${version}";
|
||||
in
|
||||
|
@ -17,13 +17,13 @@
|
||||
|
||||
buildDunePackage rec {
|
||||
pname = "eliom";
|
||||
version = "10.1.2";
|
||||
version = "10.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ocsigen";
|
||||
repo = "eliom";
|
||||
rev = version;
|
||||
hash = "sha256-Cxwp534ADUO7AHnxZnGsrqxGDkhcJ314M5wytO4e8/0=";
|
||||
hash = "sha256-REOyxwnQqWOKywVYwN/WP22cNKZv5Nv0OpFVbNBPJN8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -1,5 +1,6 @@
|
||||
{ lib
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, installShellFiles
|
||||
, php
|
||||
, nix-update-script
|
||||
@ -8,16 +9,25 @@
|
||||
|
||||
php.buildComposerProject (finalAttrs: {
|
||||
pname = "castor";
|
||||
version = "0.13.1";
|
||||
version = "0.14.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jolicode";
|
||||
repo = "castor";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-Sm6I306iKVr66sBp+ADeTZAKGToVMc+Y/BCymUdszNc=";
|
||||
hash = "sha256-sSIkXNW6RR1mx15dKouQLMaHBr5FEkTTc/0QIkWV8sg=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-KbmovAnejShyVclF4IcZ9ckUOWysfEz3DFqE8OxlzI0=";
|
||||
patches = [
|
||||
# Upstream lock is invalid. https://github.com/jolicode/castor/issues/319
|
||||
(fetchpatch {
|
||||
name = "fix-invalid-lock.patch";
|
||||
url = "https://github.com/jolicode/castor/commit/5ff0c3ecbdddad20146adbc2f055b83f5aadba0f.patch";
|
||||
hash = "sha256-1a3Dpk/UXp92Ugw9zSoLPsbWOJEuP2FBWc/pQ/EKwaM=";
|
||||
})
|
||||
];
|
||||
|
||||
vendorHash = "sha256-HfEjwlkozeuT4LDnYwiCu7T0spcf4GLhkd7Kc1VRnro=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
php.buildComposerProject (finalAttrs: {
|
||||
pname = "phpstan";
|
||||
version = "1.10.59";
|
||||
version = "1.10.60";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "phpstan";
|
||||
repo = "phpstan-src";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-2+CQtpmh2r2+87zLhx7UkYlZ7sDQdDh4S8v67PGNjLM=";
|
||||
hash = "sha256-DKrlR3ujHWfbhPMzZhhkUCeTtKW6hpGUe4z7xgzJ4qs=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-6Wea4iUSFq0xSWFq4er4lzFn2mgeoYBXG1zMGM3Y390=";
|
||||
vendorHash = "sha256-8CEg1q3K1E9M6gaa5IlSYNPZb+evaY1oxbCnySXuFGE=";
|
||||
composerStrictValidation = false;
|
||||
|
||||
meta = {
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "axis";
|
||||
version = "52";
|
||||
version = "53";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.11";
|
||||
@ -22,7 +22,7 @@ buildPythonPackage rec {
|
||||
owner = "Kane610";
|
||||
repo = "axis";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-L94q3NxnkhYPIiz6p+o071QK2h4u9kSm+EUKdi93JzA=";
|
||||
hash = "sha256-M5uaRiZP66RApSztvgzzpAUBKCcSCqC6fxzmB52mibY=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -45,7 +45,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "mitmproxy";
|
||||
version = "10.2.3";
|
||||
version = "10.2.4";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
@ -54,7 +54,7 @@ buildPythonPackage rec {
|
||||
owner = "mitmproxy";
|
||||
repo = "mitmproxy";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-hlZ5d4J3SDQp80C8lhwZkms/rc0uj8LslRmBqB5eIEw=";
|
||||
hash = "sha256-6TPhxprrP6Bgc1yAhN3pBdr98WpvfGnVNvkNtFxROgE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pypinyin";
|
||||
version = "0.50.0";
|
||||
version = "0.51.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -16,7 +16,7 @@ buildPythonPackage rec {
|
||||
owner = "mozillazg";
|
||||
repo = "python-pinyin";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-9RnuC9AvTlUtZqep6kn5y1xQcq/dzA9jTZXAsMpKZWc=";
|
||||
hash = "sha256-kbUVif3a3L7BHj1b37FME5wicalK/iild0pvwPawr6Q=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -0,0 +1,44 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, setuptools
|
||||
, requests
|
||||
, paho-mqtt
|
||||
, cryptography
|
||||
}:
|
||||
let
|
||||
pname = "tuya-device-sharing-sdk";
|
||||
version = "0.2.0";
|
||||
in
|
||||
buildPythonPackage {
|
||||
inherit pname version;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-fu8zh59wlnxtstNbNL8mIm10tiXy22oPbi6oUy5x8c8=";
|
||||
};
|
||||
|
||||
# workaround needed, upstream issue: https://github.com/tuya/tuya-device-sharing-sdk/issues/10
|
||||
postPatch = ''
|
||||
touch requirements.txt
|
||||
'';
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
requests
|
||||
paho-mqtt
|
||||
cryptography
|
||||
];
|
||||
|
||||
doCheck = false; # no tests
|
||||
|
||||
meta = with lib; {
|
||||
description = "Tuya Device Sharing SDK";
|
||||
homepage = "https://github.com/tuya/tuya-device-sharing-sdk";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ aciceri ];
|
||||
};
|
||||
}
|
@ -17,7 +17,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "xiaomi-ble";
|
||||
version = "0.26.1";
|
||||
version = "0.27.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
@ -26,7 +26,7 @@ buildPythonPackage rec {
|
||||
owner = "Bluetooth-Devices";
|
||||
repo = "xiaomi-ble";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-ENs+n8YgOSQpN+UpYU6CI1McWPyh8hKKMUjPDUYRWjI=";
|
||||
hash = "sha256-D1LqIdnusCs7vzVCPnbhXqRER/+uPKWoVsfeGe2M6b8=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -541,6 +541,7 @@ let
|
||||
bayesWatch = [ pkgs.boost.dev ];
|
||||
clustermq = [ pkgs.pkg-config ];
|
||||
coga = [ pkgs.gsl.dev ];
|
||||
gpg = [ pkgs.gpgme ];
|
||||
webp = [ pkgs.libwebp ];
|
||||
RMark = [ pkgs.which ];
|
||||
RPushbullet = [ pkgs.which ];
|
||||
|
@ -1,41 +0,0 @@
|
||||
diff --git a/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java b/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java
|
||||
index 6fff2af..7e2877e 100644
|
||||
--- a/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java
|
||||
+++ b/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java
|
||||
@@ -47,6 +47,16 @@ public final class PosixLocalEnvProvider implements LocalEnvProvider {
|
||||
Map<String, String> env, BinTools binTools, String fallbackTmpDir) {
|
||||
ImmutableMap.Builder<String, String> result = ImmutableMap.builder();
|
||||
result.putAll(Maps.filterKeys(env, k -> !k.equals("TMPDIR")));
|
||||
+
|
||||
+ // In case we are running on NixOS.
|
||||
+ // If bash is called with an unset PATH on this platform,
|
||||
+ // it will set it to /no-such-path and default tools will be missings.
|
||||
+ // See, https://github.com/NixOS/nixpkgs/issues/94222
|
||||
+ // So we ensure that minimal dependencies are present.
|
||||
+ if (!env.containsKey("PATH")){
|
||||
+ result.put("PATH", "@actionsPathPatch@");
|
||||
+ }
|
||||
+
|
||||
String p = clientEnv.get("TMPDIR");
|
||||
if (Strings.isNullOrEmpty(p)) {
|
||||
// Do not use `fallbackTmpDir`, use `/tmp` instead. This way if the user didn't export TMPDIR
|
||||
index 95642767c6..39d3c62461 100644
|
||||
--- a/src/main/java/com/google/devtools/build/lib/exec/local/XcodeLocalEnvProvider.java
|
||||
+++ b/src/main/java/com/google/devtools/build/lib/exec/local/XcodeLocalEnvProvider.java
|
||||
@@ -74,6 +74,16 @@ public final class XcodeLocalEnvProvider implements LocalEnvProvider {
|
||||
|
||||
ImmutableMap.Builder<String, String> newEnvBuilder = ImmutableMap.builder();
|
||||
newEnvBuilder.putAll(Maps.filterKeys(env, k -> !k.equals("TMPDIR")));
|
||||
+
|
||||
+ // In case we are running on NixOS.
|
||||
+ // If bash is called with an unset PATH on this platform,
|
||||
+ // it will set it to /no-such-path and default tools will be missings.
|
||||
+ // See, https://github.com/NixOS/nixpkgs/issues/94222
|
||||
+ // So we ensure that minimal dependencies are present.
|
||||
+ if (!env.containsKey("PATH")){
|
||||
+ newEnvBuilder.put("PATH", "@actionsPathPatch@");
|
||||
+ }
|
||||
+
|
||||
String p = clientEnv.get("TMPDIR");
|
||||
if (Strings.isNullOrEmpty(p)) {
|
||||
// Do not use `fallbackTmpDir`, use `/tmp` instead. This way if the user didn't export TMPDIR
|
@ -1,662 +0,0 @@
|
||||
{ stdenv, callPackage, lib, fetchurl, fetchpatch, fetchFromGitHub, installShellFiles
|
||||
, runCommand, runCommandCC, makeWrapper, recurseIntoAttrs
|
||||
# this package (through the fixpoint glass)
|
||||
, bazel_self
|
||||
, lr, xe, zip, unzip, bash, writeCBin, coreutils
|
||||
, which, gawk, gnused, gnutar, gnugrep, gzip, findutils
|
||||
# updater
|
||||
, python3, writeScript
|
||||
# Apple dependencies
|
||||
, cctools, libcxx, CoreFoundation, CoreServices, Foundation
|
||||
# Allow to independently override the jdks used to build and run respectively
|
||||
, buildJdk, runJdk
|
||||
, buildJdkName
|
||||
, runtimeShell
|
||||
# Always assume all markers valid (this is needed because we remove markers; they are non-deterministic).
|
||||
# Also, don't clean up environment variables (so that NIX_ environment variables are passed to compilers).
|
||||
, enableNixHacks ? false
|
||||
, gcc-unwrapped
|
||||
, autoPatchelfHook
|
||||
, file
|
||||
, substituteAll
|
||||
, writeTextFile
|
||||
}:
|
||||
|
||||
let
|
||||
version = "4.2.2";
|
||||
sourceRoot = ".";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip";
|
||||
sha256 = "mYHQ1To1bE6HlihHdQqXyegFTkYIVHSABsgPDX4rLTM=";
|
||||
};
|
||||
|
||||
# Update with `eval $(nix-build -A bazel.updater)`,
|
||||
# then add new dependencies from the dict in ./src-deps.json as required.
|
||||
srcDeps = lib.attrsets.attrValues srcDepsSet;
|
||||
srcDepsSet =
|
||||
let
|
||||
srcs = lib.importJSON ./src-deps.json;
|
||||
toFetchurl = d: lib.attrsets.nameValuePair d.name (fetchurl {
|
||||
urls = d.urls;
|
||||
sha256 = d.sha256;
|
||||
});
|
||||
in builtins.listToAttrs (map toFetchurl [
|
||||
srcs.desugar_jdk_libs
|
||||
srcs.io_bazel_skydoc
|
||||
srcs.bazel_skylib
|
||||
srcs.io_bazel_rules_sass
|
||||
srcs.platforms
|
||||
(if stdenv.hostPlatform.isDarwin
|
||||
then srcs."java_tools_javac11_darwin-v10.6.zip"
|
||||
else srcs."java_tools_javac11_linux-v10.6.zip")
|
||||
srcs."coverage_output_generator-v2.5.zip"
|
||||
srcs.build_bazel_rules_nodejs
|
||||
srcs."android_tools_pkg-0.23.0.tar.gz"
|
||||
srcs.bazel_toolchains
|
||||
srcs.com_github_grpc_grpc
|
||||
srcs.upb
|
||||
srcs.com_google_protobuf
|
||||
srcs.rules_pkg
|
||||
srcs.rules_cc
|
||||
srcs.rules_java
|
||||
srcs.rules_proto
|
||||
srcs.com_google_absl
|
||||
srcs.com_github_google_re2
|
||||
srcs.com_github_cares_cares
|
||||
]);
|
||||
|
||||
distDir = runCommand "bazel-deps" {} ''
|
||||
mkdir -p $out
|
||||
for i in ${builtins.toString srcDeps}; do cp $i $out/$(stripHash $i); done
|
||||
'';
|
||||
|
||||
defaultShellUtils =
|
||||
# Keep this list conservative. For more exotic tools, prefer to use
|
||||
# @rules_nixpkgs to pull in tools from the nix repository. Example:
|
||||
#
|
||||
# WORKSPACE:
|
||||
#
|
||||
# nixpkgs_git_repository(
|
||||
# name = "nixpkgs",
|
||||
# revision = "def5124ec8367efdba95a99523dd06d918cb0ae8",
|
||||
# )
|
||||
#
|
||||
# # This defines an external Bazel workspace.
|
||||
# nixpkgs_package(
|
||||
# name = "bison",
|
||||
# repositories = { "nixpkgs": "@nixpkgs//:default.nix" },
|
||||
# )
|
||||
#
|
||||
# some/BUILD.bazel:
|
||||
#
|
||||
# genrule(
|
||||
# ...
|
||||
# cmd = "$(location @bison//:bin/bison) -other -args",
|
||||
# tools = [
|
||||
# ...
|
||||
# "@bison//:bin/bison",
|
||||
# ],
|
||||
# )
|
||||
[
|
||||
bash
|
||||
coreutils
|
||||
file
|
||||
findutils
|
||||
gawk
|
||||
gnugrep
|
||||
gnused
|
||||
gnutar
|
||||
gzip
|
||||
python3
|
||||
unzip
|
||||
which
|
||||
zip
|
||||
];
|
||||
|
||||
defaultShellPath = lib.makeBinPath defaultShellUtils;
|
||||
|
||||
# Java toolchain used for the build and tests
|
||||
javaToolchain = "@bazel_tools//tools/jdk:toolchain_${buildJdkName}";
|
||||
|
||||
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
||||
|
||||
# This repository is fetched by bazel at runtime
|
||||
# however it contains prebuilt java binaries, with wrong interpreter
|
||||
# and libraries path.
|
||||
# We prefetch it, patch it, and override it in a global bazelrc.
|
||||
system = if stdenv.hostPlatform.isDarwin then "darwin" else "linux";
|
||||
|
||||
# on aarch64 Darwin, `uname -m` returns "arm64"
|
||||
arch = with stdenv.hostPlatform; if isDarwin && isAarch64 then "arm64" else parsed.cpu.name;
|
||||
|
||||
remote_java_tools = stdenv.mkDerivation {
|
||||
name = "remote_java_tools_${system}";
|
||||
|
||||
src = srcDepsSet."java_tools_javac11_${system}-v10.6.zip";
|
||||
|
||||
nativeBuildInputs = [ unzip ]
|
||||
++ lib.optional stdenv.isLinux autoPatchelfHook;
|
||||
buildInputs = [ gcc-unwrapped ];
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
mkdir $out;
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
cp -Ra * $out/
|
||||
touch $out/WORKSPACE
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
};
|
||||
|
||||
bazelRC = writeTextFile {
|
||||
name = "bazel-rc";
|
||||
text = ''
|
||||
startup --server_javabase=${runJdk}
|
||||
|
||||
# Can't use 'common'; https://github.com/bazelbuild/bazel/issues/3054
|
||||
# Most commands inherit from 'build' anyway.
|
||||
build --distdir=${distDir}
|
||||
fetch --distdir=${distDir}
|
||||
query --distdir=${distDir}
|
||||
|
||||
build --override_repository=${remote_java_tools.name}=${remote_java_tools}
|
||||
fetch --override_repository=${remote_java_tools.name}=${remote_java_tools}
|
||||
query --override_repository=${remote_java_tools.name}=${remote_java_tools}
|
||||
|
||||
# Provide a default java toolchain, this will be the same as ${runJdk}
|
||||
build --host_javabase='@local_jdk//:jdk'
|
||||
|
||||
# load default location for the system wide configuration
|
||||
try-import /etc/bazel.bazelrc
|
||||
'';
|
||||
};
|
||||
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "bazel";
|
||||
inherit version;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/bazelbuild/bazel/";
|
||||
description = "Build tool that builds code quickly and reliably";
|
||||
sourceProvenance = with sourceTypes; [
|
||||
fromSource
|
||||
binaryBytecode # source bundles dependencies as jars
|
||||
];
|
||||
license = licenses.asl20;
|
||||
maintainers = lib.teams.bazel.members;
|
||||
inherit platforms;
|
||||
};
|
||||
|
||||
inherit src;
|
||||
inherit sourceRoot;
|
||||
patches = [
|
||||
./upb-clang16.patch
|
||||
|
||||
# On Darwin, the last argument to gcc is coming up as an empty string. i.e: ''
|
||||
# This is breaking the build of any C target. This patch removes the last
|
||||
# argument if it's found to be an empty string.
|
||||
../trim-last-argument-to-gcc-if-empty.patch
|
||||
|
||||
# On Darwin, using clang 6 to build fails because of a linker error (see #105573),
|
||||
# but using clang 7 fails because libarclite_macosx.a cannot be found when linking
|
||||
# the xcode_locator tool.
|
||||
# This patch removes using the -fobjc-arc compiler option and makes the code
|
||||
# compile without automatic reference counting. Caveat: this leaks memory, but
|
||||
# we accept this fact because xcode_locator is only a short-lived process used during the build.
|
||||
./no-arc.patch
|
||||
|
||||
# --experimental_strict_action_env (which may one day become the default
|
||||
# see bazelbuild/bazel#2574) hardcodes the default
|
||||
# action environment to a non hermetic value (e.g. "/usr/local/bin").
|
||||
# This is non hermetic on non-nixos systems. On NixOS, bazel cannot find the required binaries.
|
||||
# So we are replacing this bazel paths by defaultShellPath,
|
||||
# improving hermeticity and making it work in nixos.
|
||||
(substituteAll {
|
||||
src = ../strict_action_env.patch;
|
||||
strictActionEnvPatch = defaultShellPath;
|
||||
})
|
||||
|
||||
(substituteAll {
|
||||
src = ./actions_path.patch;
|
||||
actionsPathPatch = defaultShellPath;
|
||||
})
|
||||
|
||||
# bazel reads its system bazelrc in /etc
|
||||
# override this path to a builtin one
|
||||
(substituteAll {
|
||||
src = ../bazel_rc.patch;
|
||||
bazelSystemBazelRCPath = bazelRC;
|
||||
})
|
||||
|
||||
# disable suspend detection during a build inside Nix as this is
|
||||
# not available inside the darwin sandbox
|
||||
../bazel_darwin_sandbox.patch
|
||||
] ++ lib.optional enableNixHacks ../nix-hacks.patch;
|
||||
|
||||
|
||||
# Additional tests that check bazel’s functionality. Execute
|
||||
#
|
||||
# nix-build . -A bazel.tests
|
||||
#
|
||||
# in the nixpkgs checkout root to exercise them locally.
|
||||
passthru.tests =
|
||||
let
|
||||
runLocal = name: attrs: script:
|
||||
let
|
||||
attrs' = removeAttrs attrs [ "buildInputs" ];
|
||||
buildInputs = attrs.buildInputs or [];
|
||||
in
|
||||
runCommandCC name ({
|
||||
inherit buildInputs;
|
||||
preferLocalBuild = true;
|
||||
meta.platforms = platforms;
|
||||
} // attrs') script;
|
||||
|
||||
# bazel wants to extract itself into $install_dir/install every time it runs,
|
||||
# so let’s do that only once.
|
||||
extracted = bazelPkg:
|
||||
let install_dir =
|
||||
# `install_base` field printed by `bazel info`, minus the hash.
|
||||
# yes, this path is kinda magic. Sorry.
|
||||
"$HOME/.cache/bazel/_bazel_nixbld";
|
||||
in runLocal "bazel-extracted-homedir" { passthru.install_dir = install_dir; } ''
|
||||
export HOME=$(mktemp -d)
|
||||
touch WORKSPACE # yeah, everything sucks
|
||||
install_base="$(${bazelPkg}/bin/bazel info | grep install_base)"
|
||||
# assert it’s actually below install_dir
|
||||
[[ "$install_base" =~ ${install_dir} ]] \
|
||||
|| (echo "oh no! $install_base but we are \
|
||||
trying to copy ${install_dir} to $out instead!"; exit 1)
|
||||
cp -R ${install_dir} $out
|
||||
'';
|
||||
|
||||
bazelTest = { name, bazelScript, workspaceDir, bazelPkg, buildInputs ? [] }:
|
||||
let
|
||||
be = extracted bazelPkg;
|
||||
in runLocal name { inherit buildInputs; } (
|
||||
# skip extraction caching on Darwin, because nobody knows how Darwin works
|
||||
(lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
|
||||
# set up home with pre-unpacked bazel
|
||||
export HOME=$(mktemp -d)
|
||||
mkdir -p ${be.install_dir}
|
||||
cp -R ${be}/install ${be.install_dir}
|
||||
|
||||
# https://stackoverflow.com/questions/47775668/bazel-how-to-skip-corrupt-installation-on-centos6
|
||||
# Bazel checks whether the mtime of the install dir files
|
||||
# is >9 years in the future, otherwise it extracts itself again.
|
||||
# see PosixFileMTime::IsUntampered in src/main/cpp/util
|
||||
# What the hell bazel.
|
||||
${lr}/bin/lr -0 -U ${be.install_dir} | ${xe}/bin/xe -N0 -0 touch --date="9 years 6 months" {}
|
||||
'')
|
||||
+
|
||||
''
|
||||
# Note https://github.com/bazelbuild/bazel/issues/5763#issuecomment-456374609
|
||||
# about why to create a subdir for the workspace.
|
||||
cp -r ${workspaceDir} wd && chmod u+w wd && cd wd
|
||||
|
||||
${bazelScript}
|
||||
|
||||
touch $out
|
||||
'');
|
||||
|
||||
bazelWithNixHacks = bazel_self.override { enableNixHacks = true; };
|
||||
|
||||
bazel-examples = fetchFromGitHub {
|
||||
owner = "bazelbuild";
|
||||
repo = "examples";
|
||||
rev = "4183fc709c26a00366665e2d60d70521dc0b405d";
|
||||
sha256 = "1mm4awx6sa0myiz9j4hwp71rpr7yh8vihf3zm15n2ii6xb82r31k";
|
||||
};
|
||||
|
||||
in (lib.optionalAttrs (!stdenv.hostPlatform.isDarwin) {
|
||||
# `extracted` doesn’t work on darwin
|
||||
shebang = callPackage ../shebang-test.nix { inherit runLocal extracted bazelTest distDir; bazel = bazel_self; };
|
||||
}) // {
|
||||
bashTools = callPackage ../bash-tools-test.nix { inherit runLocal bazelTest distDir; bazel = bazel_self; };
|
||||
cpp = callPackage ../cpp-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazel_self; };
|
||||
java = callPackage ../java-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazel_self; };
|
||||
protobuf = callPackage ../protobuf-test.nix { inherit runLocal bazelTest distDir; bazel = bazel_self; };
|
||||
pythonBinPath = callPackage ../python-bin-path-test.nix { inherit runLocal bazelTest distDir; bazel = bazel_self; };
|
||||
|
||||
bashToolsWithNixHacks = callPackage ../bash-tools-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
|
||||
|
||||
cppWithNixHacks = callPackage ../cpp-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazelWithNixHacks; };
|
||||
javaWithNixHacks = callPackage ../java-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazelWithNixHacks; };
|
||||
protobufWithNixHacks = callPackage ../protobuf-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
|
||||
pythonBinPathWithNixHacks = callPackage ../python-bin-path-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
|
||||
};
|
||||
|
||||
src_for_updater = stdenv.mkDerivation rec {
|
||||
name = "updater-sources";
|
||||
inherit src;
|
||||
nativeBuildInputs = [ unzip ];
|
||||
inherit sourceRoot;
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
cp -r . "$out"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
};
|
||||
# update the list of workspace dependencies
|
||||
passthru.updater = writeScript "update-bazel-deps.sh" ''
|
||||
#!${runtimeShell}
|
||||
(cd "${src_for_updater}" &&
|
||||
BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 \
|
||||
"${bazel_self}"/bin/bazel \
|
||||
query 'kind(http_archive, //external:all) + kind(http_file, //external:all) + kind(distdir_tar, //external:all) + kind(git_repository, //external:all)' \
|
||||
--loading_phase_threads=1 \
|
||||
--output build) \
|
||||
| "${python3}"/bin/python3 "${./update-srcDeps.py}" \
|
||||
"${builtins.toString ./src-deps.json}"
|
||||
'';
|
||||
|
||||
# Necessary for the tests to pass on Darwin with sandbox enabled.
|
||||
# Bazel starts a local server and needs to bind a local address.
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
postPatch = let
|
||||
|
||||
darwinPatches = ''
|
||||
bazelLinkFlags () {
|
||||
eval set -- "$NIX_LDFLAGS"
|
||||
local flag
|
||||
for flag in "$@"; do
|
||||
printf ' -Wl,%s' "$flag"
|
||||
done
|
||||
}
|
||||
|
||||
# Disable Bazel's Xcode toolchain detection which would configure compilers
|
||||
# and linkers from Xcode instead of from PATH
|
||||
export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1
|
||||
|
||||
# Explicitly configure gcov since we don't have it on Darwin, so autodetection fails
|
||||
export GCOV=${coreutils}/bin/false
|
||||
|
||||
# Framework search paths aren't added by bintools hook
|
||||
# https://github.com/NixOS/nixpkgs/pull/41914
|
||||
export NIX_LDFLAGS+=" -F${CoreFoundation}/Library/Frameworks -F${CoreServices}/Library/Frameworks -F${Foundation}/Library/Frameworks"
|
||||
|
||||
# libcxx includes aren't added by libcxx hook
|
||||
# https://github.com/NixOS/nixpkgs/pull/41589
|
||||
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -isystem ${lib.getDev libcxx}/include/c++/v1"
|
||||
# for CLang 16 compatibility in third_party/{zlib}, external/{upb} dependencies
|
||||
export NIX_CFLAGS_COMPILE+=" -Wno-implicit-function-declaration -Wno-gnu-offsetof-extensions"
|
||||
|
||||
# don't use system installed Xcode to run clang, use Nix clang instead
|
||||
sed -i -E "s;/usr/bin/xcrun (--sdk macosx )?clang;${stdenv.cc}/bin/clang $NIX_CFLAGS_COMPILE $(bazelLinkFlags) -framework CoreFoundation;g" \
|
||||
scripts/bootstrap/compile.sh \
|
||||
src/tools/xcode/realpath/BUILD \
|
||||
src/tools/xcode/stdredirect/BUILD \
|
||||
tools/osx/BUILD
|
||||
|
||||
substituteInPlace scripts/bootstrap/compile.sh --replace ' -mmacosx-version-min=10.9' ""
|
||||
|
||||
# nixpkgs's libSystem cannot use pthread headers directly, must import GCD headers instead
|
||||
sed -i -e "/#include <pthread\/spawn.h>/i #include <dispatch/dispatch.h>" src/main/cpp/blaze_util_darwin.cc
|
||||
|
||||
# clang installed from Xcode has a compatibility wrapper that forwards
|
||||
# invocations of gcc to clang, but vanilla clang doesn't
|
||||
sed -i -e 's;_find_generic(repository_ctx, "gcc", "CC", overriden_tools);_find_generic(repository_ctx, "clang", "CC", overriden_tools);g' tools/cpp/unix_cc_configure.bzl
|
||||
|
||||
sed -i -e 's;/usr/bin/libtool;${cctools}/bin/libtool;g' tools/cpp/unix_cc_configure.bzl
|
||||
wrappers=( tools/cpp/osx_cc_wrapper.sh tools/cpp/osx_cc_wrapper.sh.tpl )
|
||||
for wrapper in "''${wrappers[@]}"; do
|
||||
sed -i -e "s,/usr/bin/install_name_tool,${cctools}/bin/install_name_tool,g" $wrapper
|
||||
done
|
||||
'';
|
||||
|
||||
genericPatches = ''
|
||||
# Substitute j2objc and objc wrapper's python shebang to plain python path.
|
||||
substituteInPlace tools/j2objc/j2objc_header_map.py --replace "$!/usr/bin/python2.7" "#!${python3.interpreter}"
|
||||
substituteInPlace tools/j2objc/j2objc_wrapper.py --replace "$!/usr/bin/python2.7" "#!${python3.interpreter}"
|
||||
substituteInPlace tools/objc/j2objc_dead_code_pruner.py --replace "$!/usr/bin/python2.7" "#!${python3.interpreter}"
|
||||
|
||||
# md5sum is part of coreutils
|
||||
sed -i 's|/sbin/md5|md5sum|g' \
|
||||
src/BUILD third_party/ijar/test/testenv.sh tools/objc/libtool.sh
|
||||
|
||||
# replace initial value of pythonShebang variable in BazelPythonSemantics.java
|
||||
substituteInPlace src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java \
|
||||
--replace '"#!/usr/bin/env " + pythonExecutableName' "\"#!${python3}/bin/python\""
|
||||
|
||||
# substituteInPlace is rather slow, so prefilter the files with grep
|
||||
grep -rlZ /bin/ src/main/java/com/google/devtools | while IFS="" read -r -d "" path; do
|
||||
# If you add more replacements here, you must change the grep above!
|
||||
# Only files containing /bin are taken into account.
|
||||
substituteInPlace "$path" \
|
||||
--replace /bin/bash ${bash}/bin/bash \
|
||||
--replace "/usr/bin/env bash" ${bash}/bin/bash \
|
||||
--replace "/usr/bin/env python" ${python3}/bin/python \
|
||||
--replace /usr/bin/env ${coreutils}/bin/env \
|
||||
--replace /bin/true ${coreutils}/bin/true
|
||||
done
|
||||
|
||||
# bazel test runner include references to /bin/bash
|
||||
substituteInPlace tools/build_rules/test_rules.bzl \
|
||||
--replace /bin/bash ${bash}/bin/bash
|
||||
|
||||
for i in $(find tools/cpp/ -type f)
|
||||
do
|
||||
substituteInPlace $i \
|
||||
--replace /bin/bash ${bash}/bin/bash
|
||||
done
|
||||
|
||||
# Fixup scripts that generate scripts. Not fixed up by patchShebangs below.
|
||||
substituteInPlace scripts/bootstrap/compile.sh \
|
||||
--replace /bin/bash ${bash}/bin/bash
|
||||
|
||||
# add nix environment vars to .bazelrc
|
||||
cat >> .bazelrc <<EOF
|
||||
# Limit the resources Bazel is allowed to use during the build to 1/2 the
|
||||
# available RAM and 3/4 the available CPU cores. This should help avoid
|
||||
# overwhelming the build machine.
|
||||
build --local_ram_resources=HOST_RAM*.5
|
||||
build --local_cpu_resources=HOST_CPUS*.75
|
||||
|
||||
build --distdir=${distDir}
|
||||
fetch --distdir=${distDir}
|
||||
build --copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt="/g')"
|
||||
build --host_copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt="/g')"
|
||||
build --linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt="/g')"
|
||||
build --host_linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt="/g')"
|
||||
build --linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt="-Wl,/g')"
|
||||
build --host_linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt="-Wl,/g')"
|
||||
build --host_javabase='@local_jdk//:jdk'
|
||||
build --host_java_toolchain='${javaToolchain}'
|
||||
build --verbose_failures
|
||||
build --curses=no
|
||||
EOF
|
||||
|
||||
# add the same environment vars to compile.sh
|
||||
sed -e "/\$command \\\\$/a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" \
|
||||
-e "/\$command \\\\$/a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" \
|
||||
-e "/\$command \\\\$/a --linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt=\"/g')\" \\\\" \
|
||||
-e "/\$command \\\\$/a --host_linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt=\"/g')\" \\\\" \
|
||||
-e "/\$command \\\\$/a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" \
|
||||
-e "/\$command \\\\$/a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" \
|
||||
-e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \
|
||||
-e "/\$command \\\\$/a --host_java_toolchain='${javaToolchain}' \\\\" \
|
||||
-e "/\$command \\\\$/a --verbose_failures \\\\" \
|
||||
-e "/\$command \\\\$/a --curses=no \\\\" \
|
||||
-i scripts/bootstrap/compile.sh
|
||||
|
||||
# This is necessary to avoid:
|
||||
# "error: no visible @interface for 'NSDictionary' declares the selector
|
||||
# 'initWithContentsOfURL:error:'"
|
||||
# This can be removed when the apple_sdk is upgraded beyond 10.13+
|
||||
sed -i '/initWithContentsOfURL:versionPlistUrl/ {
|
||||
N
|
||||
s/error:nil\];/\];/
|
||||
}' tools/osx/xcode_locator.m
|
||||
|
||||
# append the PATH with defaultShellPath in tools/bash/runfiles/runfiles.bash
|
||||
echo "PATH=\$PATH:${defaultShellPath}" >> runfiles.bash.tmp
|
||||
cat tools/bash/runfiles/runfiles.bash >> runfiles.bash.tmp
|
||||
mv runfiles.bash.tmp tools/bash/runfiles/runfiles.bash
|
||||
|
||||
patchShebangs .
|
||||
'';
|
||||
in lib.optionalString stdenv.hostPlatform.isDarwin darwinPatches
|
||||
+ genericPatches;
|
||||
|
||||
buildInputs = [buildJdk] ++ defaultShellUtils;
|
||||
|
||||
# when a command can’t be found in a bazel build, you might also
|
||||
# need to add it to `defaultShellPath`.
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
makeWrapper
|
||||
python3
|
||||
unzip
|
||||
which
|
||||
zip
|
||||
python3.pkgs.absl-py # Needed to build fish completion
|
||||
] ++ lib.optionals (stdenv.isDarwin) [ cctools libcxx CoreFoundation CoreServices Foundation ];
|
||||
|
||||
# Bazel makes extensive use of symlinks in the WORKSPACE.
|
||||
# This causes problems with infinite symlinks if the build output is in the same location as the
|
||||
# Bazel WORKSPACE. This is why before executing the build, the source code is moved into a
|
||||
# subdirectory.
|
||||
# Failing to do this causes "infinite symlink expansion detected"
|
||||
preBuildPhases = ["preBuildPhase"];
|
||||
preBuildPhase = ''
|
||||
mkdir bazel_src
|
||||
shopt -s dotglob extglob
|
||||
mv !(bazel_src) bazel_src
|
||||
'';
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
# Increasing memory during compilation might be necessary.
|
||||
# export BAZEL_JAVAC_OPTS="-J-Xmx2g -J-Xms200m"
|
||||
|
||||
# If EMBED_LABEL isn't set, it'd be auto-detected from CHANGELOG.md
|
||||
# and `git rev-parse --short HEAD` which would result in
|
||||
# "3.7.0- (@non-git)" due to non-git build and incomplete changelog.
|
||||
# Actual bazel releases use scripts/release/common.sh which is based
|
||||
# on branch/tag information which we don't have with tarball releases.
|
||||
# Note that .bazelversion is always correct and is based on bazel-*
|
||||
# executable name, version checks should work fine
|
||||
export EMBED_LABEL="${version}- (@non-git)"
|
||||
${bash}/bin/bash ./bazel_src/compile.sh
|
||||
./bazel_src/scripts/generate_bash_completion.sh \
|
||||
--bazel=./bazel_src/output/bazel \
|
||||
--output=./bazel_src/output/bazel-complete.bash \
|
||||
--prepend=./bazel_src/scripts/bazel-complete-header.bash \
|
||||
--prepend=./bazel_src/scripts/bazel-complete-template.bash
|
||||
${python3}/bin/python3 ./bazel_src/scripts/generate_fish_completion.py \
|
||||
--bazel=./bazel_src/output/bazel \
|
||||
--output=./bazel_src/output/bazel-complete.fish
|
||||
|
||||
# need to change directory for bazel to find the workspace
|
||||
cd ./bazel_src
|
||||
# build execlog tooling
|
||||
export HOME=$(mktemp -d)
|
||||
./output/bazel build src/tools/execlog:parser_deploy.jar
|
||||
cd -
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin
|
||||
|
||||
# official wrapper scripts that searches for $WORKSPACE_ROOT/tools/bazel
|
||||
# if it can’t find something in tools, it calls $out/bin/bazel-{version}-{os_arch}
|
||||
# The binary _must_ exist with this naming if your project contains a .bazelversion
|
||||
# file.
|
||||
cp ./bazel_src/scripts/packages/bazel.sh $out/bin/bazel
|
||||
wrapProgram $out/bin/bazel $wrapperfile --suffix PATH : ${defaultShellPath}
|
||||
mv ./bazel_src/output/bazel $out/bin/bazel-${version}-${system}-${arch}
|
||||
|
||||
mkdir $out/share
|
||||
cp ./bazel_src/bazel-bin/src/tools/execlog/parser_deploy.jar $out/share/parser_deploy.jar
|
||||
cat <<EOF > $out/bin/bazel-execlog
|
||||
#!${runtimeShell} -e
|
||||
${runJdk}/bin/java -jar $out/share/parser_deploy.jar \$@
|
||||
EOF
|
||||
chmod +x $out/bin/bazel-execlog
|
||||
|
||||
# shell completion files
|
||||
installShellCompletion --bash \
|
||||
--name bazel.bash \
|
||||
./bazel_src/output/bazel-complete.bash
|
||||
installShellCompletion --zsh \
|
||||
--name _bazel \
|
||||
./bazel_src/scripts/zsh_completion/_bazel
|
||||
installShellCompletion --fish \
|
||||
--name bazel.fish \
|
||||
./bazel_src/output/bazel-complete.fish
|
||||
'';
|
||||
|
||||
# Install check fails on `aarch64-darwin`
|
||||
# https://github.com/NixOS/nixpkgs/issues/145587
|
||||
doInstallCheck = stdenv.hostPlatform.system != "aarch64-darwin";
|
||||
installCheckPhase = ''
|
||||
export TEST_TMPDIR=$(pwd)
|
||||
|
||||
hello_test () {
|
||||
$out/bin/bazel test \
|
||||
--test_output=errors \
|
||||
--java_toolchain='${javaToolchain}' \
|
||||
examples/cpp:hello-success_test \
|
||||
examples/java-native/src/test/java/com/example/myproject:hello
|
||||
}
|
||||
|
||||
cd ./bazel_src
|
||||
|
||||
# test whether $WORKSPACE_ROOT/tools/bazel works
|
||||
|
||||
mkdir -p tools
|
||||
cat > tools/bazel <<"EOF"
|
||||
#!${runtimeShell} -e
|
||||
exit 1
|
||||
EOF
|
||||
chmod +x tools/bazel
|
||||
|
||||
# first call should fail if tools/bazel is used
|
||||
! hello_test
|
||||
|
||||
cat > tools/bazel <<"EOF"
|
||||
#!${runtimeShell} -e
|
||||
exec "$BAZEL_REAL" "$@"
|
||||
EOF
|
||||
|
||||
# second call succeeds because it defers to $out/bin/bazel-{version}-{os_arch}
|
||||
hello_test
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# Save paths to hardcoded dependencies so Nix can detect them.
|
||||
# This is needed because the templates get tar’d up into a .jar.
|
||||
postFixup = ''
|
||||
mkdir -p $out/nix-support
|
||||
echo "${defaultShellPath}" >> $out/nix-support/depends
|
||||
# The string literal specifying the path to the bazel-rc file is sometimes
|
||||
# stored non-contiguously in the binary due to gcc optimisations, which leads
|
||||
# Nix to miss the hash when scanning for dependencies
|
||||
echo "${bazelRC}" >> $out/nix-support/depends
|
||||
'' + lib.optionalString stdenv.isDarwin ''
|
||||
echo "${cctools}" >> $out/nix-support/depends
|
||||
'';
|
||||
|
||||
dontStrip = true;
|
||||
dontPatchELF = true;
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
--- a/tools/osx/xcode_locator.m 2020-12-10 13:27:29.000000000 +0100
|
||||
+++ b/tools/osx/xcode_locator.m 2021-02-01 09:09:32.159557051 +0100
|
||||
@@ -21,10 +21,6 @@
|
||||
// 6,6.4,6.4.1 = 6.4.1
|
||||
// 6.3,6.3.0 = 6.3
|
||||
|
||||
-#if !defined(__has_feature) || !__has_feature(objc_arc)
|
||||
-#error "This file requires ARC support."
|
||||
-#endif
|
||||
-
|
||||
#import <CoreServices/CoreServices.h>
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
--- a/tools/osx/xcode_configure.bzl 1980-01-01 01:00:00.000000000 +0100
|
||||
+++ b/tools/osx/xcode_configure.bzl 2021-02-01 09:36:57.773418444 +0100
|
||||
@@ -123,7 +123,6 @@
|
||||
"macosx",
|
||||
"clang",
|
||||
"-mmacosx-version-min=10.9",
|
||||
- "-fobjc-arc",
|
||||
"-framework",
|
||||
"CoreServices",
|
||||
"-framework",
|
||||
--- a/tools/osx/BUILD 2021-02-01 11:01:02.191659553 +0100
|
||||
+++ b/tools/osx/BUILD 2021-02-01 11:04:29.735071019 +0100
|
||||
@@ -27,7 +27,7 @@
|
||||
])
|
||||
|
||||
DARWIN_XCODE_LOCATOR_COMPILE_COMMAND = """
|
||||
- /usr/bin/xcrun --sdk macosx clang -mmacosx-version-min=10.9 -fobjc-arc -framework CoreServices \
|
||||
+ /usr/bin/xcrun --sdk macosx clang -mmacosx-version-min=10.9 -framework CoreServices \
|
||||
-framework Foundation -o $@ $<
|
||||
"""
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,57 +0,0 @@
|
||||
diff --git a/WORKSPACE b/WORKSPACE
|
||||
index 2d995f095e..55fddef663 100644
|
||||
--- a/WORKSPACE
|
||||
+++ b/WORKSPACE
|
||||
@@ -1232,7 +1232,7 @@ register_toolchains("//src/main/res:empty_rc_toolchain")
|
||||
http_archive(
|
||||
name = "com_github_grpc_grpc",
|
||||
patch_args = ["-p1"],
|
||||
- patches = ["//third_party/grpc:grpc_1.33.1.patch"],
|
||||
+ patches = ["//third_party/grpc:grpc_1.33.1.patch", "//:grpc-upb-clang16.patch"],
|
||||
sha256 = "58eaee5c0f1bd0b92ebe1fa0606ec8f14798500620e7444726afcaf65041cb63",
|
||||
strip_prefix = "grpc-1.33.1",
|
||||
urls = [
|
||||
diff --git a/grpc-upb-clang16.patch b/grpc-upb-clang16.patch
|
||||
new file mode 100644
|
||||
index 0000000000..ae6a7ad0e0
|
||||
--- /dev/null
|
||||
+++ b/grpc-upb-clang16.patch
|
||||
@@ -0,0 +1,13 @@
|
||||
+diff -r -u a/bazel/grpc_deps.bzl b/bazel/grpc_deps.bzl
|
||||
+--- a/bazel/grpc_deps.bzl
|
||||
++++ b/bazel/grpc_deps.bzl
|
||||
+@@ -285,6 +285,8 @@
|
||||
+ name = "upb",
|
||||
+ sha256 = "7992217989f3156f8109931c1fc6db3434b7414957cb82371552377beaeb9d6c",
|
||||
+ strip_prefix = "upb-382d5afc60e05470c23e8de19b19fc5ad231e732",
|
||||
++ patches = ["//:upb-clang16.patch"],
|
||||
++ patch_args = ["-p1"],
|
||||
+ urls = [
|
||||
+ "https://storage.googleapis.com/grpc-bazel-mirror/github.com/protocolbuffers/upb/archive/382d5afc60e05470c23e8de19b19fc5ad231e732.tar.gz",
|
||||
+ "https://github.com/protocolbuffers/upb/archive/382d5afc60e05470c23e8de19b19fc5ad231e732.tar.gz",
|
||||
+
|
||||
diff --git a/upb-clang16.patch b/upb-clang16.patch
|
||||
new file mode 100644
|
||||
index 0000000000..b799737fac
|
||||
--- /dev/null
|
||||
+++ b/upb-clang16.patch
|
||||
@@ -0,0 +1,18 @@
|
||||
+--- a/BUILD
|
||||
++++ b/BUILD
|
||||
+@@ -34,6 +34,7 @@
|
||||
+ "-Wextra",
|
||||
+ # "-Wshorten-64-to-32", # not in GCC (and my Kokoro images doesn't have Clang)
|
||||
+ "-Werror",
|
||||
++ "-Wno-gnu-offsetof-extensions",
|
||||
+ "-Wno-long-long",
|
||||
+ # copybara:strip_end
|
||||
+ ]
|
||||
+@@ -42,6 +43,7 @@
|
||||
+ # copybara:strip_for_google3_begin
|
||||
+ "-pedantic",
|
||||
+ "-Werror=pedantic",
|
||||
++ "-Wno-gnu-offsetof-extensions",
|
||||
+ "-Wstrict-prototypes",
|
||||
+ # copybara:strip_end
|
||||
+ ]
|
||||
|
@ -1,54 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
import sys
|
||||
import json
|
||||
|
||||
if len(sys.argv) != 2:
|
||||
print("usage: ./this-script src-deps.json < WORKSPACE", file=sys.stderr)
|
||||
print("Takes the bazel WORKSPACE file and reads all archives into a json dict (by evaling it as python code)", file=sys.stderr)
|
||||
print("Hail Eris.", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
http_archives = []
|
||||
|
||||
# just the kw args are the dict { name, sha256, urls … }
|
||||
def http_archive(**kw):
|
||||
http_archives.append(kw)
|
||||
# like http_file
|
||||
def http_file(**kw):
|
||||
http_archives.append(kw)
|
||||
|
||||
# this is inverted from http_archive/http_file and bundles multiple archives
|
||||
def distdir_tar(**kw):
|
||||
for archive_name in kw['archives']:
|
||||
http_archives.append({
|
||||
"name": archive_name,
|
||||
"sha256": kw['sha256'][archive_name],
|
||||
"urls": kw['urls'][archive_name]
|
||||
})
|
||||
|
||||
# TODO?
|
||||
def git_repository(**kw):
|
||||
print(json.dumps(kw, sort_keys=True, indent=4), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
# execute the WORKSPACE like it was python code in this module,
|
||||
# using all the function stubs from above.
|
||||
exec(sys.stdin.read())
|
||||
|
||||
# transform to a dict with the names as keys
|
||||
d = { el['name']: el for el in http_archives }
|
||||
|
||||
def has_urls(el):
|
||||
return ('url' in el and el['url']) or ('urls' in el and el['urls'])
|
||||
def has_sha256(el):
|
||||
return 'sha256' in el and el['sha256']
|
||||
bad_archives = list(filter(lambda el: not has_urls(el) or not has_sha256(el), d.values()))
|
||||
if bad_archives:
|
||||
print('Following bazel dependencies are missing url or sha256', file=sys.stderr)
|
||||
print('Check bazel sources for master or non-checksummed dependencies', file=sys.stderr)
|
||||
for el in bad_archives:
|
||||
print(json.dumps(el, sort_keys=True, indent=4), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
with open(sys.argv[1], "w") as f:
|
||||
print(json.dumps(d, sort_keys=True, indent=4), file=f)
|
@ -9,16 +9,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cargo-deny";
|
||||
version = "0.14.15";
|
||||
version = "0.14.16";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "EmbarkStudios";
|
||||
repo = "cargo-deny";
|
||||
rev = version;
|
||||
hash = "sha256-soDLgxEbeNk8mQHwUzBZK5QqTURzXQKZb2LtJA6fnhc=";
|
||||
hash = "sha256-Evvr9In/ny+yQP77u47uTCWCtRqg/l9B5y79va8oMbw=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-XblrLV3AMmFFXOr3K/Sq4Vb6MknI7H92H/bDvUEUOko=";
|
||||
cargoHash = "sha256-JgI4Tbl0C0lJEOMRwVjo9h6fuUL0u0mICGLsx8/0dMc=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
@ -16,12 +16,12 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "2.3.1";
|
||||
version = "2.4";
|
||||
prebuilt_server = fetchurl {
|
||||
name = "scrcpy-server";
|
||||
inherit version;
|
||||
url = "https://github.com/Genymobile/scrcpy/releases/download/v${version}/scrcpy-server-v${version}";
|
||||
hash = "sha256-9oFIIvwwinpTLyU0hckDgYPGKWpsXfRwqeODtPjnYFs=";
|
||||
hash = "sha256-k8Jyt0OGBcBV4Sf3REBk7Xj6nKSfgRVnd/0gHnnOe6M=";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
|
||||
owner = "Genymobile";
|
||||
repo = "scrcpy";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-RM29WjzsYnn26x/Xr2RKp0p87/v+Jl8skEcAwxhZEtU=";
|
||||
hash = "sha256-x1feZgCR3ZUi40/YZSjDULYk4W9Pjo17cn8RqcOoeoE=";
|
||||
};
|
||||
|
||||
# display.c: When run without a hardware accelerator, this allows the command to continue working rather than failing unexpectedly.
|
||||
|
@ -2,20 +2,16 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ch9344";
|
||||
version = "1.9";
|
||||
version = "2.0";
|
||||
|
||||
src = fetchzip {
|
||||
name = "CH9344SER_LINUX.zip";
|
||||
url = "https://www.wch.cn/downloads/file/386.html#CH9344SER_LINUX.zip";
|
||||
hash = "sha256-g55ftAfjKKlUFzGhI1a/O7Eqbz6rkGf1vWuEJjBZxBE=";
|
||||
hash = "sha256-YKNMYpap7CjhgTIpd/M9+nB11NtpwGYT/P14J6q3XZg=";
|
||||
};
|
||||
|
||||
patches = lib.optionals (lib.versionAtLeast kernel.modDirVersion "6.1") [
|
||||
# https://github.com/torvalds/linux/commit/a8c11c1520347be74b02312d10ef686b01b525f1
|
||||
patches = [
|
||||
./fix-incompatible-pointer-types.patch
|
||||
] ++ lib.optionals (lib.versionAtLeast kernel.modDirVersion "6.3") [
|
||||
# https://github.com/torvalds/linux/commit/5d420399073770134d2b03e004b2c0201c7fa26f
|
||||
./fix-incompatible-pointer-types_6_3.patch
|
||||
];
|
||||
|
||||
sourceRoot = "${src.name}/driver";
|
||||
|
@ -1,22 +1,16 @@
|
||||
diff --git a/ch9344.c b/ch9344.c
|
||||
index 1e37293..a16af82 100644
|
||||
index bfa10bb..76a94a7 100644
|
||||
--- a/ch9344.c
|
||||
+++ b/ch9344.c
|
||||
@@ -79,7 +79,7 @@ static DEFINE_IDR(ch9344_minors);
|
||||
static DEFINE_MUTEX(ch9344_minors_lock);
|
||||
|
||||
static void ch9344_tty_set_termios(struct tty_struct *tty,
|
||||
- struct ktermios *termios_old);
|
||||
+ const struct ktermios *termios_old);
|
||||
|
||||
static int ch9344_get_portnum(int index);
|
||||
|
||||
@@ -1597,7 +1597,7 @@ u8 cal_recv_tmt(__le32 bd)
|
||||
@@ -837,7 +837,11 @@ static void ch9344_tty_close(struct tty_struct *tty, struct file *filp)
|
||||
}
|
||||
}
|
||||
|
||||
static void ch9344_tty_set_termios(struct tty_struct *tty,
|
||||
- struct ktermios *termios_old)
|
||||
+ const struct ktermios *termios_old)
|
||||
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 6, 0))
|
||||
+static ssize_t ch9344_tty_write(struct tty_struct *tty, const u8 *buf, size_t count)
|
||||
+#else
|
||||
static int ch9344_tty_write(struct tty_struct *tty, const unsigned char *buf, int count)
|
||||
+#endif
|
||||
{
|
||||
struct ch9344 *ch9344 = tty->driver_data;
|
||||
struct ktermios *termios = &tty->termios;
|
||||
int stat;
|
||||
|
@ -1,13 +0,0 @@
|
||||
diff --git a/ch9344.c b/ch9344.c
|
||||
index a16af82..8922ed9 100644
|
||||
--- a/ch9344.c
|
||||
+++ b/ch9344.c
|
||||
@@ -774,7 +774,7 @@ static inline void *tty_get_portdata(struct ch9344_ttyport *port)
|
||||
return (port->portdata);
|
||||
}
|
||||
|
||||
-static void ch9344_port_dtr_rts(struct tty_port *port, int raise)
|
||||
+static void ch9344_port_dtr_rts(struct tty_port *port, bool raise)
|
||||
{
|
||||
struct ch9344_ttyport *ttyport = container_of(port, struct ch9344_ttyport, port);
|
||||
struct ch9344 *ch9344 = tty_get_portdata(ttyport);
|
@ -4,9 +4,9 @@ let
|
||||
# comments with variant added for update script
|
||||
# ./update-zen.py zen
|
||||
zenVariant = {
|
||||
version = "6.7.9"; #zen
|
||||
version = "6.8"; #zen
|
||||
suffix = "zen1"; #zen
|
||||
sha256 = "0g20hx5jhs99gm7bc3b99x6cg3hkx6r91dnxjzbplinzgh2kp0pz"; #zen
|
||||
sha256 = "19rsi8747xw5lsq4pwizq2va6inmwrywgy8b5f2ppcd6ny0whn1i"; #zen
|
||||
isLqx = false;
|
||||
};
|
||||
# ./update-zen.py lqx
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ lib, stdenv, fetchFromGitHub, cmake, kernel, installShellFiles, pkg-config
|
||||
, luajit, ncurses, perl, jsoncpp, openssl, curl, jq, gcc, elfutils, tbb, protobuf, grpc
|
||||
, yaml-cpp, nlohmann_json, re2, zstd, uthash, fetchpatch, fetchurl
|
||||
, yaml-cpp, nlohmann_json, re2, zstd, uthash
|
||||
}:
|
||||
|
||||
let
|
||||
@ -26,13 +26,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sysdig";
|
||||
version = "0.35.1";
|
||||
version = "0.35.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "draios";
|
||||
repo = "sysdig";
|
||||
rev = version;
|
||||
hash = "sha256-nSCkKwhdEduepyvcyWEKMQtQ6TfhF3GnTSreRVoarsw=";
|
||||
hash = "sha256-wvCnWzQbkkM8qEG93li22P67WX1bGX9orTk+2vsBHZY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake perl installShellFiles pkg-config ];
|
||||
|
@ -9,11 +9,11 @@ let
|
||||
owner = "superseriousbusiness";
|
||||
repo = "gotosocial";
|
||||
|
||||
version = "0.13.3";
|
||||
version = "0.14.1";
|
||||
|
||||
web-assets = fetchurl {
|
||||
url = "https://github.com/${owner}/${repo}/releases/download/v${version}/${repo}_${version}_web-assets.tar.gz";
|
||||
hash = "sha256-xC1Acm/CJHXTblV8E63vZB+r/ktBH7EytL7x4eWGko8=";
|
||||
hash = "sha256-cNO0LuTzgx3CAP+qjTBZ9Fgs4jrH3ypZREpKKipOJDA=";
|
||||
};
|
||||
in
|
||||
buildGoModule rec {
|
||||
@ -23,7 +23,7 @@ buildGoModule rec {
|
||||
src = fetchFromGitHub {
|
||||
inherit owner repo;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-zjmIa25veVL0ruFow4c1oV+VtgJGgWrRL99GPdaNc4g";
|
||||
hash = "sha256-gXriCpLPFBzIWm0xKE2LdT3+VWLNwJAHtT9ZuYO3sDI=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
@ -5265,7 +5265,8 @@
|
||||
];
|
||||
"tuya" = ps: with ps; [
|
||||
ha-ffmpeg
|
||||
]; # missing inputs: tuya-device-sharing-sdk
|
||||
tuya-device-sharing-sdk
|
||||
];
|
||||
"twentemilieu" = ps: with ps; [
|
||||
twentemilieu
|
||||
];
|
||||
@ -6574,6 +6575,7 @@
|
||||
"transport_nsw"
|
||||
"trend"
|
||||
"tts"
|
||||
"tuya"
|
||||
"twentemilieu"
|
||||
"twilio"
|
||||
"twinkly"
|
||||
|
@ -1,5 +1,5 @@
|
||||
#! /usr/bin/env nix-shell
|
||||
#! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ packaging rich ])" -p nodePackages.pyright ruff isort"
|
||||
#! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ packaging rich ])" -p nodePackages.pyright ruff isort
|
||||
#
|
||||
# This script downloads Home Assistant's source tarball.
|
||||
# Inside the homeassistant/components directory, each integration has an associated manifest.json,
|
||||
|
@ -1,45 +0,0 @@
|
||||
{ lib, stdenv, buildGoModule, fetchFromGitHub }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "reproxy";
|
||||
version = "1.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "umputun";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-ac4fOOMht2WGlrXLN95NEIA8ivqghhVuxHnBumvajx0=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
# Requires network access
|
||||
substituteInPlace app/main_test.go \
|
||||
--replace "Test_Main" "Skip_Main"
|
||||
substituteInPlace app/proxy/proxy_test.go \
|
||||
--replace "TestHttp_matchHandler" "SkipHttp_matchHandler"
|
||||
'' + lib.optionalString stdenv.isDarwin ''
|
||||
# Fails on Darwin.
|
||||
# https://github.com/umputun/reproxy/issues/77
|
||||
substituteInPlace app/discovery/provider/file_test.go \
|
||||
--replace "TestFile_Events" "SkipFile_Events" \
|
||||
--replace "TestFile_Events_BusyListener" "SkipFile_Events_BusyListener"
|
||||
'';
|
||||
|
||||
vendorHash = null;
|
||||
|
||||
ldflags = [
|
||||
"-s" "-w" "-X main.revision=${version}"
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
install -Dm755 $GOPATH/bin/app $out/bin/reproxy
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Simple edge server / reverse proxy";
|
||||
homepage = "https://reproxy.io/";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ sikmir ];
|
||||
mainProgram = "reproxy";
|
||||
};
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
diff --git a/crates/c/build.rs b/crates/c/build.rs
|
||||
index 8d822e5..8b7e371 100644
|
||||
--- a/crates/c/build.rs
|
||||
+++ b/crates/c/build.rs
|
||||
@@ -1,9 +1,13 @@
|
||||
fn main() {
|
||||
println!("cargo:rerun-if-changed=src/c.h");
|
||||
println!("cargo:rerun-if-changed=src/c.c");
|
||||
+ println!("cargo:rerun-if-env-changed=BINDGEN_EXTRA_CLANG_ARGS");
|
||||
cc::Build::new()
|
||||
- .compiler("clang-16")
|
||||
+ .compiler("@clang@")
|
||||
.file("./src/c.c")
|
||||
+ // read env var set by rustPlatform.bindgenHook
|
||||
+ .try_flags_from_environment("BINDGEN_EXTRA_CLANG_ARGS")
|
||||
+ .expect("the BINDGEN_EXTRA_CLANG_ARGS environment variable must be specified and UTF-8")
|
||||
.opt_level(3)
|
||||
.debug(true)
|
||||
.compile("pgvectorsc");
|
3626
pkgs/servers/sql/postgresql/ext/pgvecto-rs/Cargo.lock
generated
Normal file
3626
pkgs/servers/sql/postgresql/ext/pgvecto-rs/Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
118
pkgs/servers/sql/postgresql/ext/pgvecto-rs/default.nix
Normal file
118
pkgs/servers/sql/postgresql/ext/pgvecto-rs/default.nix
Normal file
@ -0,0 +1,118 @@
|
||||
{ lib
|
||||
, buildPgrxExtension
|
||||
, cargo-pgrx
|
||||
, clang_16
|
||||
, fetchCrate
|
||||
, fetchFromGitHub
|
||||
, nix-update-script
|
||||
, nixosTests
|
||||
, openssl
|
||||
, pkg-config
|
||||
, postgresql
|
||||
, rustPlatform
|
||||
, stdenv
|
||||
, substituteAll
|
||||
}:
|
||||
|
||||
let
|
||||
# Upstream only works with clang 16, so we're pinning it here to
|
||||
# avoid future incompatibility.
|
||||
# See https://docs.pgvecto.rs/developers/development.html#environment, step 4
|
||||
clang = clang_16;
|
||||
rustPlatform' = rustPlatform // {
|
||||
bindgenHook = rustPlatform.bindgenHook.override { inherit clang; };
|
||||
};
|
||||
|
||||
# Upstream only works with a fixed version of cargo-pgrx for each release,
|
||||
# so we're pinning it here to avoid future incompatibility.
|
||||
# See https://docs.pgvecto.rs/developers/development.html#environment, step 6
|
||||
cargo-pgrx_0_11_2 = cargo-pgrx.overrideAttrs (old: rec {
|
||||
pname = "cargo-pgrx";
|
||||
version = "0.11.2";
|
||||
|
||||
src = fetchCrate {
|
||||
pname = "cargo-pgrx";
|
||||
inherit version;
|
||||
hash = "sha256-8NlpMDFaltTIA8G4JioYm8LaPJ2RGKH5o6sd6lBHmmM=";
|
||||
};
|
||||
|
||||
cargoDeps = old.cargoDeps.overrideAttrs (_: {
|
||||
inherit src;
|
||||
outputHash = "sha256-qTb3JV3u42EilaK2jP9oa5D09mkuHyRbGGRs9Rg4TzI=";
|
||||
});
|
||||
});
|
||||
|
||||
in
|
||||
(buildPgrxExtension.override {
|
||||
cargo-pgrx = cargo-pgrx_0_11_2;
|
||||
rustPlatform = rustPlatform';
|
||||
}) rec {
|
||||
inherit postgresql;
|
||||
|
||||
pname = "pgvecto-rs";
|
||||
version = "0.2.1";
|
||||
|
||||
buildInputs = [ openssl ];
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
patches = [
|
||||
# Tell the `c` crate to use the flags from the rust bindgen hook
|
||||
(substituteAll {
|
||||
src = ./0001-read-clang-flags-from-environment.diff;
|
||||
clang = lib.getExe clang;
|
||||
})
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tensorchord";
|
||||
repo = "pgvecto.rs";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-kwaGHerEVh6Oxb9jQupSapm7CsKl5CoH6jCv+zbi4FE=";
|
||||
};
|
||||
|
||||
# Package has git dependencies on Cargo.lock (instead of just crate.io dependencies),
|
||||
# so cargoHash does not work, therefore we have to include Cargo.lock in nixpkgs.
|
||||
cargoLock = {
|
||||
lockFile = ./Cargo.lock;
|
||||
outputHashes = {
|
||||
"openai_api_rust-0.1.8" = "sha256-os5Y8KIWXJEYEcNzzT57wFPpEXdZ2Uy9W3j5+hJhhR4=";
|
||||
"std_detect-0.1.5" = "sha256-RwWejfqyGOaeU9zWM4fbb/hiO1wMpxYPKEjLO0rtRmU=";
|
||||
};
|
||||
};
|
||||
|
||||
# Set appropriate version on vectors.control, otherwise it won't show up on PostgreSQL
|
||||
postPatch = ''
|
||||
substituteInPlace ./vectors.control --subst-var-by CARGO_VERSION ${version}
|
||||
'';
|
||||
|
||||
# Include upgrade scripts in the final package
|
||||
# https://github.com/tensorchord/pgvecto.rs/blob/v0.2.0/scripts/ci_package.sh#L6-L8
|
||||
postInstall = ''
|
||||
cp sql/upgrade/* $out/share/postgresql/extension/
|
||||
'';
|
||||
|
||||
env = {
|
||||
# Needed to get openssl-sys to use pkg-config.
|
||||
OPENSSL_NO_VENDOR = 1;
|
||||
|
||||
# Bypass rust nightly features not being available on rust stable
|
||||
RUSTC_BOOTSTRAP = 1;
|
||||
};
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
tests = {
|
||||
pgvecto-rs = nixosTests.pgvecto-rs;
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
# The pgrx 0.11.2 dependency is broken in aarch64-linux: https://github.com/pgcentralfoundation/pgrx/issues/1429
|
||||
# It is fixed in pgrx 0.11.3, but upstream is still using pgrx 0.11.2
|
||||
broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
|
||||
description = "Scalable, Low-latency and Hybrid-enabled Vector Search in Postgres";
|
||||
homepage = "https://github.com/tensorchord/pgvecto.rs";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ diogotcorreia esclear ];
|
||||
};
|
||||
}
|
@ -44,6 +44,8 @@ self: super: {
|
||||
|
||||
pgsql-http = super.callPackage ./ext/pgsql-http.nix { };
|
||||
|
||||
pgvecto-rs = super.callPackage ./ext/pgvecto-rs { };
|
||||
|
||||
pgvector = super.callPackage ./ext/pgvector.nix { };
|
||||
|
||||
plpgsql_check = super.callPackage ./ext/plpgsql_check.nix { };
|
||||
|
@ -5,11 +5,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "squid";
|
||||
version = "6.7";
|
||||
version = "6.8";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.squid-cache.org/Versions/v6/${finalAttrs.pname}-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-4U2qTq5Bkl0a4/COZEOaaqowEb3O1oZii43ml9WrhCg=";
|
||||
hash = "sha256-EcxWULUYCdmUg8z64kdEouUc0WGZ9f8MkX6E/OaVhw8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "Tautulli";
|
||||
version = "2.13.2";
|
||||
version = "2.13.4";
|
||||
format = "other";
|
||||
|
||||
pythonPath = [ setuptools ];
|
||||
@ -12,7 +12,7 @@ buildPythonApplication rec {
|
||||
owner = "Tautulli";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-G1YNOJ2snddhFOWDkRQikQ1qC3G1BHg+qb2j5ffIR8k=";
|
||||
sha256 = "sha256-cOHirjYdfPPv7O9o3vnsKBffvqxoaRN32NaUOK0SmQ8=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
@ -5,7 +5,7 @@
|
||||
hash = "sha256-Jo2/Vlm4Ml24ucPI6ZHs2mkbpY2rZB1dofmGXNPweA8=";
|
||||
};
|
||||
wordpress6_4 = {
|
||||
version = "6.4.2";
|
||||
hash = "sha256-m4KJELf5zs3gwAQPmAhoPe2rhopZFsYN6OzAv6Wzo6c=";
|
||||
version = "6.4.3";
|
||||
hash = "sha256-PwjHHRlwhEH9q94bPq34NnQv3uhm1kOpjRAu0/ECaYY=";
|
||||
};
|
||||
}
|
||||
|
@ -12,13 +12,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "granted";
|
||||
version = "0.21.0";
|
||||
version = "0.21.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "common-fate";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-hNbn1bBC9dNiThwi1+Mh45s/9DAwoI8XC4ZjB6Ls8sw=";
|
||||
sha256 = "sha256-aHqMsEqlD/a/qQEjRKQU/+9Ov5BTnptExuO0eEXvf9k=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-I4sds5r61oGop+EtOpDgTYwLbSVBBSBmNbRU56sCYjo=";
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
let
|
||||
pname = "liquidsoap";
|
||||
version = "2.2.3";
|
||||
version = "2.2.4";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
inherit pname version;
|
||||
@ -16,7 +16,7 @@ stdenv.mkDerivation {
|
||||
owner = "savonet";
|
||||
repo = "liquidsoap";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-oCMSdmdU3oHrq3QFEDQLdb3CLFYcWylxTqKWtGOoQW8=";
|
||||
hash = "sha256-aAW3PeobTRVi5mV321MHZ6RymvOY4DbZITjwcMwGwFo=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@ -76,6 +76,7 @@ stdenv.mkDerivation {
|
||||
ocamlPackages.camomile
|
||||
ocamlPackages.uri
|
||||
ocamlPackages.fileutils
|
||||
ocamlPackages.magic-mime
|
||||
ocamlPackages.menhir # liquidsoap-lang
|
||||
ocamlPackages.menhirLib
|
||||
ocamlPackages.metadata
|
||||
@ -99,7 +100,6 @@ stdenv.mkDerivation {
|
||||
ocamlPackages.frei0r
|
||||
ocamlPackages.gd4o
|
||||
ocamlPackages.graphics
|
||||
ocamlPackages.gstreamer
|
||||
ocamlPackages.imagelib
|
||||
ocamlPackages.inotify
|
||||
ocamlPackages.ladspa
|
||||
@ -108,7 +108,6 @@ stdenv.mkDerivation {
|
||||
ocamlPackages.lilv
|
||||
ocamlPackages.lo
|
||||
ocamlPackages.mad
|
||||
ocamlPackages.magic
|
||||
ocamlPackages.ogg
|
||||
ocamlPackages.opus
|
||||
ocamlPackages.portaudio
|
||||
|
@ -15,13 +15,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rshim-user-space";
|
||||
version = "2.0.12";
|
||||
version = "2.0.20";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Mellanox";
|
||||
repo = pname;
|
||||
rev = "rshim-${version}";
|
||||
hash = "sha256-jR9Q1i2p4weKuGPTAylNIVglgcZH0UtvXBVVCEquxu8=";
|
||||
hash = "sha256-zm1cMTna9o8edl0M7tjUhbnElbUkQZSkh3KOI6tbE6I=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -2,6 +2,7 @@
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, brotli
|
||||
, hatchling
|
||||
, certifi
|
||||
, ffmpeg
|
||||
, rtmpdump
|
||||
@ -9,7 +10,9 @@
|
||||
, pycryptodomex
|
||||
, websockets
|
||||
, mutagen
|
||||
, requests
|
||||
, secretstorage
|
||||
, urllib3
|
||||
, atomicparsleySupport ? true
|
||||
, ffmpegSupport ? true
|
||||
, rtmpSupport ? true
|
||||
@ -22,19 +25,27 @@ buildPythonPackage rec {
|
||||
# The websites yt-dlp deals with are a very moving target. That means that
|
||||
# downloads break constantly. Because of that, updates should always be backported
|
||||
# to the latest stable release.
|
||||
version = "2023.12.30";
|
||||
version = "2024.3.10";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-oRhi5XchsKDwiD3+taTXm6ITotTEXhiA6f1w+OZXDDg=";
|
||||
inherit version;
|
||||
pname = "yt_dlp";
|
||||
hash = "sha256-bnTLFKadvrhyyO9OC4u+0u6EbsYzUTzzEkp0wfrtwHs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
hatchling
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
brotli
|
||||
certifi
|
||||
mutagen
|
||||
pycryptodomex
|
||||
requests
|
||||
secretstorage # "optional", as in not in requirements.txt, needed for `--cookies-from-browser`
|
||||
urllib3
|
||||
websockets
|
||||
];
|
||||
|
||||
@ -48,7 +59,7 @@ buildPythonPackage rec {
|
||||
++ lib.optional atomicparsleySupport atomicparsley
|
||||
++ lib.optional ffmpegSupport ffmpeg
|
||||
++ lib.optional rtmpSupport rtmpdump;
|
||||
in lib.optionalString (packagesToBinPath != [])
|
||||
in lib.optionals (packagesToBinPath != [])
|
||||
[ ''--prefix PATH : "${lib.makeBinPath packagesToBinPath}"'' ];
|
||||
|
||||
setupPyBuildFlags = [
|
||||
|
@ -97,6 +97,7 @@ mapAliases ({
|
||||
bashInteractive_5 = bashInteractive; # Added 2021-08-20
|
||||
bash_5 = bash; # Added 2021-08-20
|
||||
bazel_3 = throw "bazel 3 is past end of life as it is not an lts version"; # Added 2023-02-02
|
||||
bazel_4 = throw "'bazel_4' has been removed from nixpkgs as it has reached end of life"; # Added 2024-01-23
|
||||
bedup = throw "bedup was removed because it was broken and abandoned upstream"; # added 2023-02-04
|
||||
bee-unstable = throw "bee-unstable has been removed, use 'bee' instead"; # Added 2024-02-12
|
||||
bee-clef = throw "bee-clef has been removed as the upstream project was archived"; # Added 2024-02-12
|
||||
|
@ -18330,18 +18330,6 @@ with pkgs;
|
||||
|
||||
bazel = bazel_6;
|
||||
|
||||
bazel_4 = callPackage ../development/tools/build-managers/bazel/bazel_4 {
|
||||
inherit (darwin) cctools;
|
||||
inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Foundation;
|
||||
buildJdk = jdk11_headless;
|
||||
buildJdkName = "java11";
|
||||
runJdk = jdk11_headless;
|
||||
stdenv = if stdenv.cc.isClang then llvmPackages.stdenv
|
||||
else if stdenv.cc.isGNU then gcc10Stdenv
|
||||
else stdenv;
|
||||
bazel_self = bazel_4;
|
||||
};
|
||||
|
||||
bazel_5 = callPackage ../development/tools/build-managers/bazel/bazel_5 {
|
||||
inherit (darwin) cctools sigtool;
|
||||
inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Foundation;
|
||||
@ -26922,8 +26910,6 @@ with pkgs;
|
||||
|
||||
redstore = callPackage ../servers/http/redstore { };
|
||||
|
||||
reproxy = callPackage ../servers/reproxy { };
|
||||
|
||||
repro-get = callPackage ../tools/package-management/repro-get { };
|
||||
|
||||
restic = callPackage ../tools/backup/restic { };
|
||||
|
@ -15034,6 +15034,8 @@ self: super: with self; {
|
||||
|
||||
turnt = callPackage ../development/python-modules/turnt { };
|
||||
|
||||
tuya-device-sharing-sdk = callPackage ../development/python-modules/tuya-device-sharing-sdk { };
|
||||
|
||||
tuya-iot-py-sdk = callPackage ../development/python-modules/tuya-iot-py-sdk { };
|
||||
|
||||
tuyaha = callPackage ../development/python-modules/tuyaha { };
|
||||
|
Loading…
Reference in New Issue
Block a user