mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-09-11 07:15:54 +03:00
Merge master into staging-next
This commit is contained in:
commit
c904e6bf24
@ -651,6 +651,66 @@ buildPythonPackage rec {
|
||||
}
|
||||
```
|
||||
|
||||
#### Rust package built with `meson` {#rust-package-built-with-meson}
|
||||
|
||||
Some projects, especially GNOME applications, are built with the Meson Build System instead of calling Cargo directly. Using `rustPlatform.buildRustPackage` may successfully build the main program, but related files will be missing. Instead, you need to set up Cargo dependencies with `fetchCargoTarball` and `cargoSetupHook` and leave the rest to Meson. `rust` and `cargo` are still needed in `nativeBuildInputs` for Meson to use.
|
||||
|
||||
```nix
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitLab
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, rustPlatform
|
||||
, rustc
|
||||
, cargo
|
||||
, wrapGAppsHook4
|
||||
, blueprint-compiler
|
||||
, libadwaita
|
||||
, libsecret
|
||||
, tracker
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "health";
|
||||
version = "0.95.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "World";
|
||||
repo = "health";
|
||||
rev = version;
|
||||
hash = "sha256-PrNPprSS98yN8b8yw2G6hzTSaoE65VbsM3q7FVB4mds=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
name = "${pname}-${version}";
|
||||
hash = "sha256-8fa3fa+sFi5H+49B5sr2vYPkp9C9s6CcE0zv4xB8gww=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
rustPlatform.cargoSetupHook
|
||||
rustc
|
||||
cargo
|
||||
wrapGAppsHook4
|
||||
blueprint-compiler
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libadwaita
|
||||
libsecret
|
||||
tracker
|
||||
];
|
||||
|
||||
# ...
|
||||
}
|
||||
```
|
||||
|
||||
## `buildRustCrate`: Compiling Rust crates using Nix instead of Cargo {#compiling-rust-crates-using-nix-instead-of-cargo}
|
||||
|
||||
### Simple operation {#simple-operation}
|
||||
|
@ -392,6 +392,12 @@ in mkLicense lset) ({
|
||||
fullName = "Common Public Attribution License 1.0";
|
||||
};
|
||||
|
||||
commons-clause = {
|
||||
fullName = "Commons Clause License";
|
||||
url = "https://commonsclause.com/";
|
||||
free = false;
|
||||
};
|
||||
|
||||
cpl10 = {
|
||||
spdxId = "CPL-1.0";
|
||||
fullName = "Common Public License 1.0";
|
||||
|
@ -2958,6 +2958,12 @@
|
||||
github = "bycEEE";
|
||||
githubId = 8891115;
|
||||
name = "Brian Choy";
|
||||
};
|
||||
ByteSudoer = {
|
||||
email = "bytesudoer@gmail.com";
|
||||
github = "bytesudoer";
|
||||
githubId = 88513682;
|
||||
name = "ByteSudoer";
|
||||
};
|
||||
bzizou = {
|
||||
email = "Bruno@bzizou.net";
|
||||
@ -12556,6 +12562,15 @@
|
||||
githubId = 15093162;
|
||||
name = "Melanie B. Sigl";
|
||||
};
|
||||
melvyn2 = {
|
||||
email = "melvyn2@dnsense.pub";
|
||||
github = "melvyn2";
|
||||
githubId = 9157412;
|
||||
name = "melvyn";
|
||||
keys = [{
|
||||
fingerprint = "232B 9F00 2153 CA86 849C 9224 25A2 B728 0CE3 AFF6";
|
||||
}];
|
||||
};
|
||||
mephistophiles = {
|
||||
email = "mussitantesmortem@gmail.com";
|
||||
name = "Maxim Zhukov";
|
||||
@ -16541,6 +16556,11 @@
|
||||
githubId = 61013287;
|
||||
name = "Ricardo Steijn";
|
||||
};
|
||||
richar = {
|
||||
github = "ri-char";
|
||||
githubId = 17962023;
|
||||
name = "richar";
|
||||
};
|
||||
richardipsum = {
|
||||
email = "richardipsum@fastmail.co.uk";
|
||||
github = "richardipsum";
|
||||
|
@ -456,6 +456,12 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
||||
|
||||
- The module `services.github-runner` has been removed. To configure a single GitHub Actions Runner refer to `services.github-runners.*`. Note that this will trigger a new runner registration.
|
||||
|
||||
- The `services.slskd` has been refactored to include more configuation options in
|
||||
the freeform `services.slskd.settings` option, and some defaults (including listen ports)
|
||||
have been changed to match the upstream defaults. Additionally, disk logging is now
|
||||
disabled by default, and the log rotation timer has been removed.
|
||||
The nginx virtualhost option is now of the `vhost-options` type.
|
||||
|
||||
- The `btrbk` module now automatically selects and provides required compression
|
||||
program depending on the configured `stream_compress` option. Since this
|
||||
replaces the need for the `extraPackages` option, this option will be
|
||||
|
@ -32,6 +32,8 @@ in {
|
||||
|
||||
security.polkit.enable = true;
|
||||
|
||||
fonts.fontDir.enable = true;
|
||||
|
||||
services.dbus.packages = [ pkgs.flatpak ];
|
||||
|
||||
systemd.packages = [ pkgs.flatpak ];
|
||||
|
@ -2,122 +2,250 @@
|
||||
|
||||
let
|
||||
settingsFormat = pkgs.formats.yaml {};
|
||||
defaultUser = "slskd";
|
||||
in {
|
||||
options.services.slskd = with lib; with types; {
|
||||
enable = mkEnableOption "enable slskd";
|
||||
|
||||
rotateLogs = mkEnableOption "enable an unit and timer that will rotate logs in /var/slskd/logs";
|
||||
package = mkPackageOptionMD pkgs "slskd" { };
|
||||
|
||||
package = mkPackageOption pkgs "slskd" { };
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = defaultUser;
|
||||
description = "User account under which slskd runs.";
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
default = defaultUser;
|
||||
description = "Group under which slskd runs.";
|
||||
};
|
||||
|
||||
domain = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
description = ''
|
||||
If non-null, enables an nginx reverse proxy virtual host at this FQDN,
|
||||
at the path configurated with `services.slskd.web.url_base`.
|
||||
'';
|
||||
example = "slskd.example.com";
|
||||
};
|
||||
|
||||
nginx = mkOption {
|
||||
description = lib.mdDoc "options for nginx";
|
||||
example = {
|
||||
enable = true;
|
||||
domain = "example.com";
|
||||
contextPath = "/slskd";
|
||||
};
|
||||
type = submodule ({name, config, ...}: {
|
||||
options = {
|
||||
enable = mkEnableOption "enable nginx as a reverse proxy";
|
||||
|
||||
domainName = mkOption {
|
||||
type = str;
|
||||
description = "Domain you want to use";
|
||||
};
|
||||
contextPath = mkOption {
|
||||
type = types.path;
|
||||
default = "/";
|
||||
description = lib.mdDoc ''
|
||||
The context path, i.e., the last part of the slskd
|
||||
URL. Typically '/' or '/slskd'. Default '/'
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
type = types.submodule (import ../web-servers/nginx/vhost-options.nix { inherit config lib; });
|
||||
default = {};
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
enableACME = true;
|
||||
forceHttps = true;
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
This option customizes the nginx virtual host set up for slskd.
|
||||
'';
|
||||
};
|
||||
|
||||
environmentFile = mkOption {
|
||||
type = path;
|
||||
description = ''
|
||||
Path to a file containing secrets.
|
||||
It must at least contain the variable `SLSKD_SLSK_PASSWORD`
|
||||
Path to the environment file sourced on startup.
|
||||
It must at least contain the variables `SLSKD_SLSK_USERNAME` and `SLSKD_SLSK_PASSWORD`.
|
||||
Web interface credentials should also be set here in `SLSKD_USERNAME` and `SLSKD_PASSWORD`.
|
||||
Other, optional credentials like SOCKS5 with `SLSKD_SLSK_PROXY_USERNAME` and `SLSKD_SLSK_PROXY_PASSWORD`
|
||||
should all reside here instead of in the world-readable nix store.
|
||||
Variables are documented at https://github.com/slskd/slskd/blob/master/docs/config.md
|
||||
'';
|
||||
};
|
||||
|
||||
openFirewall = mkOption {
|
||||
type = bool;
|
||||
description = ''
|
||||
Whether to open the firewall for services.slskd.settings.listen_port";
|
||||
'';
|
||||
description = "Whether to open the firewall for the soulseek network listen port (not the web interface port).";
|
||||
default = false;
|
||||
};
|
||||
|
||||
settings = mkOption {
|
||||
description = lib.mdDoc ''
|
||||
Configuration for slskd, see
|
||||
[available options](https://github.com/slskd/slskd/blob/master/docs/config.md)
|
||||
`APP_DIR` is set to /var/lib/slskd, where default download & incomplete directories,
|
||||
log and databases will be created.
|
||||
description = ''
|
||||
Application configuration for slskd. See
|
||||
[documentation](https://github.com/slskd/slskd/blob/master/docs/config.md).
|
||||
'';
|
||||
default = {};
|
||||
type = submodule {
|
||||
freeformType = settingsFormat.type;
|
||||
options = {
|
||||
remote_file_management = mkEnableOption "modification of share contents through the web ui";
|
||||
|
||||
soulseek = {
|
||||
username = mkOption {
|
||||
type = str;
|
||||
description = "Username on the Soulseek Network";
|
||||
flags = {
|
||||
force_share_scan = mkOption {
|
||||
type = bool;
|
||||
description = "Force a rescan of shares on every startup.";
|
||||
};
|
||||
listen_port = mkOption {
|
||||
type = port;
|
||||
description = "Port to use for communication on the Soulseek Network";
|
||||
default = 50000;
|
||||
};
|
||||
};
|
||||
|
||||
web = {
|
||||
port = mkOption {
|
||||
type = port;
|
||||
default = 5001;
|
||||
description = "The HTTP listen port";
|
||||
};
|
||||
url_base = mkOption {
|
||||
type = path;
|
||||
default = config.services.slskd.nginx.contextPath;
|
||||
defaultText = "config.services.slskd.nginx.contextPath";
|
||||
description = lib.mdDoc ''
|
||||
The context path, i.e., the last part of the slskd URL
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
shares = {
|
||||
directories = mkOption {
|
||||
type = listOf str;
|
||||
description = lib.mdDoc ''
|
||||
Paths to your shared directories. See
|
||||
[documentation](https://github.com/slskd/slskd/blob/master/docs/config.md#directories)
|
||||
for advanced usage
|
||||
'';
|
||||
no_version_check = mkOption {
|
||||
type = bool;
|
||||
default = true;
|
||||
visible = false;
|
||||
description = "Don't perform a version check on startup.";
|
||||
};
|
||||
};
|
||||
|
||||
directories = {
|
||||
incomplete = mkOption {
|
||||
type = nullOr path;
|
||||
description = "Directory where downloading files are stored";
|
||||
defaultText = "<APP_DIR>/incomplete";
|
||||
description = "Directory where incomplete downloading files are stored.";
|
||||
defaultText = "/var/lib/slskd/incomplete";
|
||||
default = null;
|
||||
};
|
||||
downloads = mkOption {
|
||||
type = nullOr path;
|
||||
description = "Directory where downloaded files are stored";
|
||||
defaultText = "<APP_DIR>/downloads";
|
||||
description = "Directory where downloaded files are stored.";
|
||||
defaultText = "/var/lib/slskd/downloads";
|
||||
default = null;
|
||||
};
|
||||
};
|
||||
|
||||
shares = {
|
||||
directories = mkOption {
|
||||
type = listOf str;
|
||||
description = ''
|
||||
Paths to shared directories. See
|
||||
[documentation](https://github.com/slskd/slskd/blob/master/docs/config.md#directories)
|
||||
for advanced usage.
|
||||
'';
|
||||
example = lib.literalExpression ''[ "/home/John/Music" "!/home/John/Music/Recordings" "[Music Drive]/mnt" ]'';
|
||||
};
|
||||
filters = mkOption {
|
||||
type = listOf str;
|
||||
example = lib.literalExpression ''[ "\.ini$" "Thumbs.db$" "\.DS_Store$" ]'';
|
||||
description = "Regular expressions of files to exclude from sharing.";
|
||||
};
|
||||
};
|
||||
|
||||
rooms = mkOption {
|
||||
type = listOf str;
|
||||
description = "Chat rooms to join on startup.";
|
||||
};
|
||||
|
||||
soulseek = {
|
||||
description = mkOption {
|
||||
type = str;
|
||||
description = "The user description for the Soulseek network.";
|
||||
defaultText = "A slskd user. https://github.com/slskd/slskd";
|
||||
};
|
||||
listen_port = mkOption {
|
||||
type = port;
|
||||
description = "The port on which to listen for incoming connections.";
|
||||
default = 50300;
|
||||
};
|
||||
};
|
||||
|
||||
global = {
|
||||
# TODO speed units
|
||||
upload = {
|
||||
slots = mkOption {
|
||||
type = ints.unsigned;
|
||||
description = "Limit of the number of concurrent upload slots.";
|
||||
};
|
||||
speed_limit = mkOption {
|
||||
type = ints.unsigned;
|
||||
description = "Total upload speed limit.";
|
||||
};
|
||||
};
|
||||
download = {
|
||||
slots = mkOption {
|
||||
type = ints.unsigned;
|
||||
description = "Limit of the number of concurrent download slots.";
|
||||
};
|
||||
speed_limit = mkOption {
|
||||
type = ints.unsigned;
|
||||
description = "Total upload download limit";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
filters.search.request = mkOption {
|
||||
type = listOf str;
|
||||
example = lib.literalExpression ''[ "^.{1,2}$" ]'';
|
||||
description = "Incoming search requests which match this filter are ignored.";
|
||||
};
|
||||
|
||||
web = {
|
||||
port = mkOption {
|
||||
type = port;
|
||||
default = 5030;
|
||||
description = "The HTTP listen port.";
|
||||
};
|
||||
url_base = mkOption {
|
||||
type = path;
|
||||
default = "/";
|
||||
description = "The base path in the url for web requests.";
|
||||
};
|
||||
# Users should use a reverse proxy instead for https
|
||||
https.disabled = mkOption {
|
||||
type = bool;
|
||||
default = true;
|
||||
description = "Disable the built-in HTTPS server";
|
||||
};
|
||||
};
|
||||
|
||||
retention = {
|
||||
transfers = {
|
||||
upload = {
|
||||
succeeded = mkOption {
|
||||
type = ints.unsigned;
|
||||
description = "Lifespan of succeeded upload tasks.";
|
||||
defaultText = "(indefinite)";
|
||||
};
|
||||
errored = mkOption {
|
||||
type = ints.unsigned;
|
||||
description = "Lifespan of errored upload tasks.";
|
||||
defaultText = "(indefinite)";
|
||||
};
|
||||
cancelled = mkOption {
|
||||
type = ints.unsigned;
|
||||
description = "Lifespan of cancelled upload tasks.";
|
||||
defaultText = "(indefinite)";
|
||||
};
|
||||
};
|
||||
download = {
|
||||
succeeded = mkOption {
|
||||
type = ints.unsigned;
|
||||
description = "Lifespan of succeeded download tasks.";
|
||||
defaultText = "(indefinite)";
|
||||
};
|
||||
errored = mkOption {
|
||||
type = ints.unsigned;
|
||||
description = "Lifespan of errored download tasks.";
|
||||
defaultText = "(indefinite)";
|
||||
};
|
||||
cancelled = mkOption {
|
||||
type = ints.unsigned;
|
||||
description = "Lifespan of cancelled download tasks.";
|
||||
defaultText = "(indefinite)";
|
||||
};
|
||||
};
|
||||
};
|
||||
files = {
|
||||
complete = mkOption {
|
||||
type = ints.unsigned;
|
||||
description = "Lifespan of completely downloaded files in minutes.";
|
||||
example = 20160;
|
||||
defaultText = "(indefinite)";
|
||||
};
|
||||
incomplete = mkOption {
|
||||
type = ints.unsigned;
|
||||
description = "Lifespan of incomplete downloading files in minutes.";
|
||||
defaultText = "(indefinite)";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
logger = {
|
||||
# Disable by default, journald already retains as needed
|
||||
disk = mkOption {
|
||||
type = bool;
|
||||
description = "Whether to log to the application directory.";
|
||||
default = false;
|
||||
visible = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -126,38 +254,25 @@ in {
|
||||
config = let
|
||||
cfg = config.services.slskd;
|
||||
|
||||
confWithoutNullValues = (lib.filterAttrs (key: value: value != null) cfg.settings);
|
||||
confWithoutNullValues = (lib.filterAttrsRecursive (key: value: (builtins.tryEval value).success && value != null) cfg.settings);
|
||||
|
||||
configurationYaml = settingsFormat.generate "slskd.yml" confWithoutNullValues;
|
||||
|
||||
in lib.mkIf cfg.enable {
|
||||
|
||||
users = {
|
||||
users.slskd = {
|
||||
# Force off, configuration file is in nix store and is immutable
|
||||
services.slskd.settings.remote_configuration = lib.mkForce false;
|
||||
|
||||
users.users = lib.optionalAttrs (cfg.user == defaultUser) {
|
||||
"${defaultUser}" = {
|
||||
group = cfg.group;
|
||||
isSystemUser = true;
|
||||
group = "slskd";
|
||||
};
|
||||
groups.slskd = {};
|
||||
};
|
||||
|
||||
# Reverse proxy configuration
|
||||
services.nginx.enable = true;
|
||||
services.nginx.virtualHosts."${cfg.nginx.domainName}" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations = {
|
||||
"${cfg.nginx.contextPath}" = {
|
||||
proxyPass = "http://localhost:${toString cfg.settings.web.port}";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Hide state & logs
|
||||
systemd.tmpfiles.rules = [
|
||||
"d /var/lib/slskd/data 0750 slskd slskd - -"
|
||||
"d /var/lib/slskd/logs 0750 slskd slskd - -"
|
||||
];
|
||||
users.groups = lib.optionalAttrs (cfg.group == defaultUser) {
|
||||
"${defaultUser}" = {};
|
||||
};
|
||||
|
||||
systemd.services.slskd = {
|
||||
description = "A modern client-server application for the Soulseek file sharing network";
|
||||
@ -165,12 +280,16 @@ in {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
User = "slskd";
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
EnvironmentFile = lib.mkIf (cfg.environmentFile != null) cfg.environmentFile;
|
||||
StateDirectory = "slskd";
|
||||
StateDirectory = "slskd"; # Creates /var/lib/slskd and manages permissions
|
||||
ExecStart = "${cfg.package}/bin/slskd --app-dir /var/lib/slskd --config ${configurationYaml}";
|
||||
Restart = "on-failure";
|
||||
ReadOnlyPaths = map (d: builtins.elemAt (builtins.split "[^/]*(/.+)" d) 1) cfg.settings.shares.directories;
|
||||
ReadWritePaths =
|
||||
(lib.optional (cfg.settings.directories.incomplete != null) cfg.settings.directories.incomplete) ++
|
||||
(lib.optional (cfg.settings.directories.downloads != null) cfg.settings.directories.downloads);
|
||||
LockPersonality = true;
|
||||
NoNewPrivileges = true;
|
||||
PrivateDevices = true;
|
||||
@ -194,18 +313,21 @@ in {
|
||||
|
||||
networking.firewall.allowedTCPPorts = lib.optional cfg.openFirewall cfg.settings.soulseek.listen_port;
|
||||
|
||||
systemd.services.slskd-rotatelogs = lib.mkIf cfg.rotateLogs {
|
||||
description = "Rotate slskd logs";
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
User = "slskd";
|
||||
ExecStart = [
|
||||
"${pkgs.findutils}/bin/find /var/lib/slskd/logs/ -type f -mtime +10 -delete"
|
||||
"${pkgs.findutils}/bin/find /var/lib/slskd/logs/ -type f -mtime +1 -exec ${pkgs.gzip}/bin/gzip -q {} ';'"
|
||||
];
|
||||
};
|
||||
startAt = "daily";
|
||||
services.nginx = lib.mkIf (cfg.domain != null) {
|
||||
enable = lib.mkDefault true;
|
||||
virtualHosts."${cfg.domain}" = lib.mkMerge [
|
||||
cfg.nginx
|
||||
{
|
||||
locations."${cfg.settings.web.url_base}" = {
|
||||
proxyPass = "http://127.0.0.1:${toString cfg.settings.web.port}";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
maintainers = with lib.maintainers; [ ppom melvyn2 ];
|
||||
};
|
||||
}
|
||||
|
@ -1,8 +1,80 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.virtualisation.incus;
|
||||
preseedFormat = pkgs.formats.yaml { };
|
||||
|
||||
serverBinPath = ''${pkgs.qemu_kvm}/libexec:${
|
||||
lib.makeBinPath (
|
||||
with pkgs;
|
||||
[
|
||||
cfg.package
|
||||
|
||||
acl
|
||||
attr
|
||||
bash
|
||||
btrfs-progs
|
||||
cdrkit
|
||||
coreutils
|
||||
criu
|
||||
dnsmasq
|
||||
e2fsprogs
|
||||
findutils
|
||||
getent
|
||||
gnugrep
|
||||
gnused
|
||||
gnutar
|
||||
gptfdisk
|
||||
gzip
|
||||
iproute2
|
||||
iptables
|
||||
kmod
|
||||
lvm2
|
||||
minio
|
||||
nftables
|
||||
qemu_kvm
|
||||
qemu-utils
|
||||
rsync
|
||||
squashfsTools
|
||||
systemd
|
||||
thin-provisioning-tools
|
||||
util-linux
|
||||
virtiofsd
|
||||
xz
|
||||
|
||||
(writeShellScriptBin "apparmor_parser" ''
|
||||
exec '${apparmor-parser}/bin/apparmor_parser' -I '${apparmor-profiles}/etc/apparmor.d' "$@"
|
||||
'')
|
||||
]
|
||||
++ lib.optionals config.boot.zfs.enabled [
|
||||
config.boot.zfs.package
|
||||
"${config.boot.zfs.package}/lib/udev"
|
||||
]
|
||||
++ lib.optionals config.virtualisation.vswitch.enable [ config.virtualisation.vswitch.package ]
|
||||
)
|
||||
}'';
|
||||
|
||||
# https://github.com/lxc/incus/blob/cff35a29ee3d7a2af1f937cbb6cf23776941854b/internal/server/instance/drivers/driver_qemu.go#L123
|
||||
ovmf-prefix = if pkgs.stdenv.hostPlatform.isAarch64 then "AAVMF" else "OVMF";
|
||||
ovmf = pkgs.linkFarm "incus-ovmf" [
|
||||
{
|
||||
name = "OVMF_CODE.4MB.fd";
|
||||
path = "${pkgs.OVMFFull.fd}/FV/${ovmf-prefix}_CODE.fd";
|
||||
}
|
||||
{
|
||||
name = "OVMF_VARS.4MB.fd";
|
||||
path = "${pkgs.OVMFFull.fd}/FV/${ovmf-prefix}_VARS.fd";
|
||||
}
|
||||
{
|
||||
name = "OVMF_VARS.4MB.ms.fd";
|
||||
path = "${pkgs.OVMFFull.fd}/FV/${ovmf-prefix}_VARS.fd";
|
||||
}
|
||||
];
|
||||
in
|
||||
{
|
||||
meta = {
|
||||
@ -11,26 +83,29 @@ in
|
||||
|
||||
options = {
|
||||
virtualisation.incus = {
|
||||
enable = lib.mkEnableOption (lib.mdDoc ''
|
||||
enable = lib.mkEnableOption ''
|
||||
incusd, a daemon that manages containers and virtual machines.
|
||||
|
||||
Users in the "incus-admin" group can interact with
|
||||
the daemon (e.g. to start or stop containers) using the
|
||||
{command}`incus` command line tool, among others.
|
||||
'');
|
||||
'';
|
||||
|
||||
package = lib.mkPackageOption pkgs "incus" { };
|
||||
|
||||
lxcPackage = lib.mkPackageOption pkgs "lxc" { };
|
||||
|
||||
clientPackage = lib.mkPackageOption pkgs [
|
||||
"incus"
|
||||
"client"
|
||||
] { };
|
||||
|
||||
preseed = lib.mkOption {
|
||||
type = lib.types.nullOr (
|
||||
lib.types.submodule { freeformType = preseedFormat.type; }
|
||||
);
|
||||
type = lib.types.nullOr (lib.types.submodule { freeformType = preseedFormat.type; });
|
||||
|
||||
default = null;
|
||||
|
||||
description = lib.mdDoc ''
|
||||
description = ''
|
||||
Configuration for Incus preseed, see
|
||||
<https://linuxcontainers.org/incus/docs/main/howto/initialize/#non-interactive-configuration>
|
||||
for supported values.
|
||||
@ -80,18 +155,16 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
socketActivation = lib.mkEnableOption (
|
||||
lib.mdDoc ''
|
||||
socket-activation for starting incus.service. Enabling this option
|
||||
will stop incus.service from starting automatically on boot.
|
||||
''
|
||||
);
|
||||
socketActivation = lib.mkEnableOption (''
|
||||
socket-activation for starting incus.service. Enabling this option
|
||||
will stop incus.service from starting automatically on boot.
|
||||
'');
|
||||
|
||||
startTimeout = lib.mkOption {
|
||||
type = lib.types.ints.unsigned;
|
||||
default = 600;
|
||||
apply = toString;
|
||||
description = lib.mdDoc ''
|
||||
description = ''
|
||||
Time to wait (in seconds) for incusd to become ready to process requests.
|
||||
If incusd does not reply within the configured time, `incus.service` will be
|
||||
considered failed and systemd will attempt to restart it.
|
||||
@ -99,9 +172,12 @@ in
|
||||
};
|
||||
|
||||
ui = {
|
||||
enable = lib.mkEnableOption (lib.mdDoc "(experimental) Incus UI");
|
||||
enable = lib.mkEnableOption "(experimental) Incus UI";
|
||||
|
||||
package = lib.mkPackageOption pkgs [ "incus" "ui" ] { };
|
||||
package = lib.mkPackageOption pkgs [
|
||||
"incus"
|
||||
"ui"
|
||||
] { };
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -109,7 +185,12 @@ in
|
||||
config = lib.mkIf cfg.enable {
|
||||
assertions = [
|
||||
{
|
||||
assertion = !(config.networking.firewall.enable && !config.networking.nftables.enable && config.virtualisation.incus.enable);
|
||||
assertion =
|
||||
!(
|
||||
config.networking.firewall.enable
|
||||
&& !config.networking.nftables.enable
|
||||
&& config.virtualisation.incus.enable
|
||||
);
|
||||
message = "Incus on NixOS is unsupported using iptables. Set `networking.nftables.enable = true;`";
|
||||
}
|
||||
];
|
||||
@ -137,7 +218,12 @@ in
|
||||
"vhost_vsock"
|
||||
] ++ lib.optionals (!config.networking.nftables.enable) [ "iptable_mangle" ];
|
||||
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
environment.systemPackages = [
|
||||
cfg.clientPackage
|
||||
|
||||
# gui console support
|
||||
pkgs.spice-gtk
|
||||
];
|
||||
|
||||
# Note: the following options are also declared in virtualisation.lxc, but
|
||||
# the latter can't be simply enabled to reuse the formers, because it
|
||||
@ -164,32 +250,24 @@ in
|
||||
"network-online.target"
|
||||
"lxcfs.service"
|
||||
"incus.socket"
|
||||
]
|
||||
++ lib.optional config.virtualisation.vswitch.enable "ovs-vswitchd.service";
|
||||
] ++ lib.optionals config.virtualisation.vswitch.enable [ "ovs-vswitchd.service" ];
|
||||
|
||||
requires = [
|
||||
"lxcfs.service"
|
||||
"incus.socket"
|
||||
]
|
||||
++ lib.optional config.virtualisation.vswitch.enable "ovs-vswitchd.service";
|
||||
] ++ lib.optionals config.virtualisation.vswitch.enable [ "ovs-vswitchd.service" ];
|
||||
|
||||
wants = [
|
||||
"network-online.target"
|
||||
wants = [ "network-online.target" ];
|
||||
|
||||
environment = lib.mkMerge [
|
||||
{
|
||||
INCUS_LXC_TEMPLATE_CONFIG = "${pkgs.lxcfs}/share/lxc/config";
|
||||
INCUS_OVMF_PATH = ovmf;
|
||||
PATH = lib.mkForce serverBinPath;
|
||||
}
|
||||
(lib.mkIf (cfg.ui.enable) { "INCUS_UI" = cfg.ui.package; })
|
||||
];
|
||||
|
||||
path = lib.optionals config.boot.zfs.enabled [
|
||||
config.boot.zfs.package
|
||||
"${config.boot.zfs.package}/lib/udev"
|
||||
]
|
||||
++ lib.optional config.virtualisation.vswitch.enable config.virtualisation.vswitch.package;
|
||||
|
||||
environment = lib.mkMerge [ {
|
||||
# Override Path to the LXC template configuration directory
|
||||
INCUS_LXC_TEMPLATE_CONFIG = "${pkgs.lxcfs}/share/lxc/config";
|
||||
} (lib.mkIf (cfg.ui.enable) {
|
||||
"INCUS_UI" = cfg.ui.package;
|
||||
}) ];
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${cfg.package}/bin/incusd --group incus-admin";
|
||||
ExecStartPost = "${cfg.package}/bin/incusd waitready --timeout=${cfg.startTimeout}";
|
||||
@ -222,15 +300,13 @@ in
|
||||
systemd.services.incus-preseed = lib.mkIf (cfg.preseed != null) {
|
||||
description = "Incus initialization with preseed file";
|
||||
|
||||
wantedBy = ["incus.service"];
|
||||
after = ["incus.service"];
|
||||
bindsTo = ["incus.service"];
|
||||
partOf = ["incus.service"];
|
||||
wantedBy = [ "incus.service" ];
|
||||
after = [ "incus.service" ];
|
||||
bindsTo = [ "incus.service" ];
|
||||
partOf = [ "incus.service" ];
|
||||
|
||||
script = ''
|
||||
${cfg.package}/bin/incus admin init --preseed <${
|
||||
preseedFormat.generate "incus-preseed.yaml" cfg.preseed
|
||||
}
|
||||
${cfg.package}/bin/incus admin init --preseed <${preseedFormat.generate "incus-preseed.yaml" cfg.preseed}
|
||||
'';
|
||||
|
||||
serviceConfig = {
|
||||
|
@ -309,6 +309,7 @@ in {
|
||||
firefox-devedition = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox-devedition; };
|
||||
firefox-esr = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox-esr; }; # used in `tested` job
|
||||
firefox-esr-115 = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox-esr-115; };
|
||||
firefoxpwa = handleTest ./firefoxpwa.nix {};
|
||||
firejail = handleTest ./firejail.nix {};
|
||||
firewall = handleTest ./firewall.nix { nftables = false; };
|
||||
firewall-nftables = handleTest ./firewall.nix { nftables = true; };
|
||||
|
36
nixos/tests/firefoxpwa.nix
Normal file
36
nixos/tests/firefoxpwa.nix
Normal file
@ -0,0 +1,36 @@
|
||||
import ./make-test-python.nix ({ lib, ... }:
|
||||
|
||||
{
|
||||
name = "firefoxpwa";
|
||||
meta.maintainers = with lib.maintainers; [ camillemndn ];
|
||||
|
||||
nodes.machine =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
imports = [ ./common/x11.nix ];
|
||||
environment.systemPackages = with pkgs; [ firefoxpwa jq ];
|
||||
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
nativeMessagingHosts.packages = [ pkgs.firefoxpwa ];
|
||||
};
|
||||
|
||||
services.jellyfin.enable = true;
|
||||
};
|
||||
|
||||
enableOCR = true;
|
||||
|
||||
testScript = ''
|
||||
machine.start()
|
||||
|
||||
with subtest("Install a progressive web app"):
|
||||
machine.wait_for_unit("jellyfin.service")
|
||||
machine.wait_for_open_port(8096)
|
||||
machine.succeed("firefoxpwa site install http://localhost:8096/web/manifest.json >&2")
|
||||
|
||||
with subtest("Launch the progressive web app"):
|
||||
machine.succeed("firefoxpwa site launch $(jq -r < ~/.local/share/firefoxpwa/config.json '.sites | keys[0]') >&2")
|
||||
machine.wait_for_window("Jellyfin")
|
||||
machine.wait_for_text("Jellyfin")
|
||||
'';
|
||||
})
|
@ -1,20 +1,21 @@
|
||||
import ../make-test-python.nix ({ pkgs, lib, extra ? {}, ... } :
|
||||
import ../make-test-python.nix ({ pkgs, lib, extra ? {}, name ? "incus-container", ... } :
|
||||
|
||||
let
|
||||
releases = import ../../release.nix {
|
||||
configuration = {
|
||||
# Building documentation makes the test unnecessarily take a longer time:
|
||||
documentation.enable = lib.mkForce false;
|
||||
configuration = lib.recursiveUpdate {
|
||||
# Building documentation makes the test unnecessarily take a longer time:
|
||||
documentation.enable = lib.mkForce false;
|
||||
|
||||
boot.kernel.sysctl."net.ipv4.ip_forward" = "1";
|
||||
} // extra;
|
||||
boot.kernel.sysctl."net.ipv4.ip_forward" = "1";
|
||||
}
|
||||
extra;
|
||||
};
|
||||
|
||||
container-image-metadata = releases.lxdContainerMeta.${pkgs.stdenv.hostPlatform.system};
|
||||
container-image-rootfs = releases.lxdContainerImage.${pkgs.stdenv.hostPlatform.system};
|
||||
in
|
||||
{
|
||||
name = "incus-container";
|
||||
inherit name;
|
||||
|
||||
meta = {
|
||||
maintainers = lib.teams.lxc.members;
|
||||
|
@ -5,16 +5,22 @@
|
||||
handleTestOn,
|
||||
}:
|
||||
{
|
||||
container-old-init = import ./container.nix { inherit system pkgs; };
|
||||
container-new-init = import ./container.nix { inherit system pkgs; extra = {
|
||||
# Enable new systemd init
|
||||
boot.initrd.systemd.enable = true;
|
||||
}; };
|
||||
container-legacy-init = import ./container.nix {
|
||||
name = "container-legacy-init";
|
||||
inherit system pkgs;
|
||||
};
|
||||
container-systemd-init = import ./container.nix {
|
||||
name = "container-systemd-init";
|
||||
inherit system pkgs;
|
||||
extra = {
|
||||
boot.initrd.systemd.enable = true;
|
||||
};
|
||||
};
|
||||
lxd-to-incus = import ./lxd-to-incus.nix { inherit system pkgs; };
|
||||
openvswitch = import ./openvswitch.nix { inherit system pkgs; };
|
||||
preseed = import ./preseed.nix { inherit system pkgs; };
|
||||
socket-activated = import ./socket-activated.nix { inherit system pkgs; };
|
||||
storage = import ./storage.nix { inherit system pkgs; };
|
||||
ui = import ./ui.nix {inherit system pkgs;};
|
||||
ui = import ./ui.nix { inherit system pkgs; };
|
||||
virtual-machine = handleTestOn [ "x86_64-linux" ] ./virtual-machine.nix { inherit system pkgs; };
|
||||
}
|
||||
|
@ -95,7 +95,7 @@ import ../make-test-python.nix (
|
||||
machine.wait_for_unit("incus.service")
|
||||
|
||||
with machine.nested("run migration"):
|
||||
machine.succeed("lxd-to-incus --yes")
|
||||
machine.succeed("${pkgs.incus}/bin/lxd-to-incus --yes")
|
||||
|
||||
with machine.nested("verify resources migrated to incus"):
|
||||
machine.succeed("incus config show container")
|
||||
|
@ -12,14 +12,14 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xedit";
|
||||
version = "1.2.3";
|
||||
version = "1.2.4";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.freedesktop.org";
|
||||
owner = "xorg/app";
|
||||
repo = "xedit";
|
||||
rev = "${pname}-${version}";
|
||||
sha256 = "sha256-WF+4avzRRL0+OA3KxzK7JwmArkPu9fEl+728R6ouXmg=";
|
||||
sha256 = "sha256-0vP+aR8QBXAqbULOLEs7QXsehk18BJ405qoelrcepwE=";
|
||||
};
|
||||
|
||||
# ./lisp/mathimp.c:493:10: error: implicitly declaring library function 'finite' with type 'int (double)'
|
||||
|
@ -1,37 +0,0 @@
|
||||
{ lib, stdenv, graphicsmagick }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "graphicsmagick-imagemagick-compat";
|
||||
inherit (graphicsmagick) version;
|
||||
|
||||
dontUnpack = true;
|
||||
buildPhase = "true";
|
||||
|
||||
utils = [
|
||||
"composite"
|
||||
"conjure"
|
||||
"convert"
|
||||
"identify"
|
||||
"mogrify"
|
||||
"montage"
|
||||
"animate"
|
||||
"display"
|
||||
"import"
|
||||
];
|
||||
|
||||
# TODO: symlink libraries?
|
||||
installPhase = ''
|
||||
mkdir -p "$out"/bin
|
||||
mkdir -p "$out"/share/man/man1
|
||||
for util in ''${utils[@]}; do
|
||||
ln -s ${graphicsmagick}/bin/gm "$out/bin/$util"
|
||||
ln -s ${graphicsmagick}/share/man/man1/gm.1.gz "$out/share/man/man1/$util.1.gz"
|
||||
done
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "ImageMagick interface for GraphicsMagick";
|
||||
license = lib.licenses.free;
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
@ -1,67 +0,0 @@
|
||||
{ lib, stdenv, fetchurl, bzip2, freetype, graphviz, ghostscript
|
||||
, libjpeg, libpng, libtiff, libxml2, zlib, libtool, xz, libX11
|
||||
, libwebp, quantumdepth ? 8, fixDarwinDylibNames, nukeReferences
|
||||
, coreutils
|
||||
, runCommand
|
||||
, graphicsmagick # for passthru.tests
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "graphicsmagick";
|
||||
version = "1.3.42";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/graphicsmagick/GraphicsMagick-${version}.tar.xz";
|
||||
sha256 = "sha256-SE/M/Ssvr2wrqRUUaezlByvLkbpO1z517T2ORsdZ1Vc=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./disable-popen.patch
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
# specify delegates explicitly otherwise `gm` will invoke the build
|
||||
# coreutils for filetypes it doesn't natively support.
|
||||
"MVDelegate=${lib.getExe' coreutils "mv"}"
|
||||
"--enable-shared"
|
||||
"--with-frozenpaths"
|
||||
"--with-quantum-depth=${toString quantumdepth}"
|
||||
"--with-gslib=yes"
|
||||
];
|
||||
|
||||
buildInputs =
|
||||
[ bzip2 freetype ghostscript graphviz libjpeg libpng libtiff libX11 libxml2
|
||||
zlib libtool libwebp
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ xz nukeReferences ]
|
||||
++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
|
||||
|
||||
# Remove CFLAGS from the binaries to avoid closure bloat.
|
||||
# In the past we have had -dev packages in the closure of the binaries soley due to the string references.
|
||||
postConfigure = ''
|
||||
nuke-refs -e $out ./magick/magick_config.h
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
sed -i 's/-ltiff.*'\'/\'/ $out/bin/*
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
tests = {
|
||||
issue-157920 = runCommand "issue-157920-regression-test" {
|
||||
buildInputs = [ graphicsmagick ];
|
||||
} ''
|
||||
gm convert ${graphviz}/share/doc/graphviz/neatoguide.pdf jpg:$out
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "http://www.graphicsmagick.org";
|
||||
description = "Swiss army knife of image processing";
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.all;
|
||||
mainProgram = "gm";
|
||||
};
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
http://permalink.gmane.org/gmane.comp.security.oss.general/19669
|
||||
|
||||
--- a/magick/blob.c Sat Nov 07 14:49:16 2015 -0600
|
||||
+++ b/magick/blob.c Sun May 29 14:12:57 2016 -0500
|
||||
@@ -68,6 +68,7 @@
|
||||
*/
|
||||
#define DefaultBlobQuantum 65541
|
||||
|
||||
+#undef HAVE_POPEN
|
||||
|
||||
/*
|
||||
Enum declarations.
|
@ -6,13 +6,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "glooctl";
|
||||
version = "1.16.8";
|
||||
version = "1.16.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "solo-io";
|
||||
repo = "gloo";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-M8ZNDt+sO8ZtVM1PyISOsFwXrD6q9ACPG0T99bqwk1c=";
|
||||
hash = "sha256-9zGtMfVZL+VIpEw2D5n4LzyTYNLCJFKf7Q++QiUKPxA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-UyzqKpF2WBj25Bm4MtkF6yjl87A61vGsteBNCjJV178=";
|
||||
|
@ -2,27 +2,27 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "vcluster";
|
||||
version = "0.19.4";
|
||||
version = "0.19.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "loft-sh";
|
||||
repo = "vcluster";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-fzHaB+EeS8Gr1EVlxAZzKDYgv3Jij4LwmYaXN4tjYBg=";
|
||||
hash = "sha256-V+Y2LekBYlKZU53BsYCW6ADSMJOxkwSK9hbFGXBaa9o=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
||||
subPackages = [ "cmd/vclusterctl" ];
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
ldflags = [
|
||||
"-s" "-w"
|
||||
"-X main.version=${version}"
|
||||
"-X main.goVersion=${lib.getVersion go}"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
# Test is disabled because e2e tests expect k8s.
|
||||
doCheck = false;
|
||||
|
||||
@ -48,10 +48,10 @@ buildGoModule rec {
|
||||
meta = {
|
||||
changelog = "https://github.com/loft-sh/vcluster/releases/tag/v${version}";
|
||||
description = "Create fully functional virtual Kubernetes clusters";
|
||||
mainProgram = "vcluster";
|
||||
downloadPage = "https://github.com/loft-sh/vcluster";
|
||||
homepage = "https://www.vcluster.com/";
|
||||
license = lib.licenses.asl20;
|
||||
mainProgram = "vcluster";
|
||||
maintainers = with lib.maintainers; [ berryp peterromfeldhk qjoly superherointj ];
|
||||
};
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
, fetchYarnDeps
|
||||
, nodejs
|
||||
, yarn
|
||||
, fixup_yarn_lock
|
||||
, prefetch-yarn-deps
|
||||
, python3
|
||||
, npmHooks
|
||||
, darwin
|
||||
@ -38,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
hash = "sha256-MM6SgVT7Pjdu96A4eWRucEzT7uNPxBqUDgHKl8mH2C0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ nodejs yarn fixup_yarn_lock python3 npmHooks.npmInstallHook ] ++ lib.optional stdenv.isDarwin darwin.cctools;
|
||||
nativeBuildInputs = [ nodejs yarn prefetch-yarn-deps python3 npmHooks.npmInstallHook ] ++ lib.optional stdenv.isDarwin darwin.cctools;
|
||||
buildInputs = [ sqlite ];
|
||||
|
||||
configurePhase = ''
|
||||
@ -46,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
export HOME="$PWD"
|
||||
|
||||
fixup_yarn_lock yarn.lock
|
||||
fixup-yarn-lock yarn.lock
|
||||
yarn config --offline set yarn-offline-mirror ${finalAttrs.offlineCache}
|
||||
yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
|
||||
patchShebangs node_modules
|
||||
|
@ -29,12 +29,12 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "2.6.1";
|
||||
version = "2.6.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "onionshare";
|
||||
repo = "onionshare";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-LR3Ao4Q8kEDwrFV+gYdMSEeYF4hDtEa1rJgvRRrJMwc=";
|
||||
hash = "sha256-J8Hdriy8eWpHuMCI87a9a/zCR6xafM3A/Tkyom0Ktko=";
|
||||
};
|
||||
meta = with lib; {
|
||||
description = "Securely and anonymously send and receive files";
|
||||
|
@ -49,16 +49,16 @@ let
|
||||
in
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "alacritty";
|
||||
version = "0.13.1";
|
||||
version = "0.13.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "alacritty";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-Nn/G7SkRuHXRSRgNjlmdX1G07sp7FPx8UyAn63Nivfg=";
|
||||
hash = "sha256-MrlzAZWLgfwIoTdxY+fjWbrv7tygAjnxXebiEgwOM9A=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-vCoKaDd0mQRF6NNfK679FhEXuAdn/1o3F1gTfT8NK+0=";
|
||||
cargoHash = "sha256-7HPTELRlmyjj7CXNbgqrzxW548BgbxybWi+tT3rOCX0=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
|
@ -26,7 +26,7 @@
|
||||
, numactl
|
||||
, writeText
|
||||
# Processing, video codecs, containers
|
||||
, ffmpeg_5-full
|
||||
, ffmpeg-full
|
||||
, nv-codec-headers
|
||||
, libogg
|
||||
, x264
|
||||
@ -69,6 +69,10 @@
|
||||
# for now we disable GTK GUI support on Darwin. (It may be possible to remove
|
||||
# this restriction later.)
|
||||
, useGtk ? !stdenv.isDarwin
|
||||
, bzip2
|
||||
, desktop-file-utils
|
||||
, meson
|
||||
, ninja
|
||||
, wrapGAppsHook
|
||||
, intltool
|
||||
, glib
|
||||
@ -86,64 +90,70 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "1.6.1";
|
||||
version = "1.7.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "HandBrake";
|
||||
repo = "HandBrake";
|
||||
rev = version;
|
||||
sha256 = "sha256-0MJ1inMNA6s8l2S0wnpM2c7FxOoOHxs9u4E/rgKfjJo=";
|
||||
hash = "sha256-4Q//UU/CPgWvhtpROfNPLzBvZlB02hbFe9Z9FA7mX04=";
|
||||
};
|
||||
|
||||
# Handbrake maintains a set of ffmpeg patches. In particular, these
|
||||
# patches are required for subtitle timing to work correctly. See:
|
||||
# https://github.com/HandBrake/HandBrake/issues/4029
|
||||
ffmpeg-version = "5.1.2";
|
||||
ffmpeg-hb = ffmpeg_5-full.overrideAttrs (old: {
|
||||
# base ffmpeg version is specified in:
|
||||
# https://github.com/HandBrake/HandBrake/blob/master/contrib/ffmpeg/module.defs
|
||||
ffmpeg-version = "6.1";
|
||||
ffmpeg-hb = ffmpeg-full.overrideAttrs (old: {
|
||||
version = ffmpeg-version;
|
||||
src = fetchurl {
|
||||
url = "https://www.ffmpeg.org/releases/ffmpeg-${ffmpeg-version}.tar.bz2";
|
||||
hash = "sha256-OaC8yNmFSfFsVwYkZ4JGpqxzbAZs69tAn5UC6RWyLys=";
|
||||
hash = "sha256-632j3n3TzkiplGq0R6c0a9EaOoXm77jyws5jfn9UdhE=";
|
||||
};
|
||||
patches = old.patches or [ ] ++ [
|
||||
"${src}/contrib/ffmpeg/A01-qsv-libavfilter-qsvvpp-change-the-output-frame-s-width-a.patch"
|
||||
"${src}/contrib/ffmpeg/A02-qsv-configure-ensure-enable-libmfx-uses-libmfx-1.x.patch"
|
||||
"${src}/contrib/ffmpeg/A03-qsv-configure-fix-the-check-for-MFX_CODEC_VP9.patch"
|
||||
"${src}/contrib/ffmpeg/A04-qsv-remove-mfx-prefix-from-mfx-headers.patch"
|
||||
"${src}/contrib/ffmpeg/A05-qsv-load-user-plugin-for-MFX_VERSION-2.0.patch"
|
||||
"${src}/contrib/ffmpeg/A06-qsv-build-audio-related-code-when-MFX_VERSION-2.0.patch"
|
||||
"${src}/contrib/ffmpeg/A07-qsvenc-support-multi-frame-encode-when-MFX_VERSION-2.patch"
|
||||
"${src}/contrib/ffmpeg/A08-qsvenc-support-MFX_RATECONTROL_LA_EXT-when-MFX_VERSI.patch"
|
||||
"${src}/contrib/ffmpeg/A09-qsv-support-OPAQUE-memory-when-MFX_VERSION-2.0.patch"
|
||||
"${src}/contrib/ffmpeg/A10-qsv-configure-add-enable-libvpl-option.patch"
|
||||
"${src}/contrib/ffmpeg/A11-qsv-use-a-new-method-to-create-mfx-session-when-usin.patch"
|
||||
"${src}/contrib/ffmpeg/A12-qsv-fix-decode-10bit-hdr.patch"
|
||||
"${src}/contrib/ffmpeg/A13-mov-read-name-track-tag-written-by-movenc.patch"
|
||||
"${src}/contrib/ffmpeg/A14-movenc-write-3gpp-track-titl-tag.patch"
|
||||
"${src}/contrib/ffmpeg/A15-mov-read-3gpp-udta-tags.patch"
|
||||
"${src}/contrib/ffmpeg/A16-movenc-write-3gpp-track-names-tags-for-all-available.patch"
|
||||
"${src}/contrib/ffmpeg/A17-FFmpeg-devel-amfenc-Add-support-for-pict_type-field.patch"
|
||||
"${src}/contrib/ffmpeg/A18-dvdsubdec-fix-processing-of-partial-packets.patch"
|
||||
"${src}/contrib/ffmpeg/A19-ccaption_dec-return-number-of-bytes-used.patch"
|
||||
"${src}/contrib/ffmpeg/A20-dvdsubdec-return-number-of-bytes-used.patch"
|
||||
"${src}/contrib/ffmpeg/A21-dvdsubdec-use-pts-of-initial-packet.patch"
|
||||
"${src}/contrib/ffmpeg/A22-matroskaenc-aac-extradata-updated.patch"
|
||||
"${src}/contrib/ffmpeg/A23-ccaption_dec-fix-pts-in-real_time-mode.patch"
|
||||
"${src}/contrib/ffmpeg/A24-fix-eac3-dowmix.patch"
|
||||
"${src}/contrib/ffmpeg/A25-enable-truehd-pass.patch"
|
||||
"${src}/contrib/ffmpeg/A26-Update-the-min-version-to-1.4.23.0-for-AMF-SDK.patch"
|
||||
"${src}/contrib/ffmpeg/A27-avcodec-amfenc-Fixes-the-color-information-in-the-ou.patch"
|
||||
"${src}/contrib/ffmpeg/A28-avcodec-amfenc-HDR-metadata.patch"
|
||||
# This patch is not applying since ffmpeg 5.1.1, probably it was backported by upstream
|
||||
# "${src}/contrib/ffmpeg/A30-svt-av1-backports.patch"
|
||||
(fetchpatch {
|
||||
name = "vulkan-remove-extensions.patch";
|
||||
url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff_plain/eb0455d64690";
|
||||
hash = "sha256-qvLrb7b+9/bel8A2lZuSmBiJtHXsABw0Lvgn1ggnmCU=";
|
||||
})
|
||||
patches = (old.patches or [ ]) ++ [
|
||||
"${src}/contrib/ffmpeg/A01-mov-read-name-track-tag-written-by-movenc.patch"
|
||||
"${src}/contrib/ffmpeg/A02-movenc-write-3gpp-track-titl-tag.patch"
|
||||
"${src}/contrib/ffmpeg/A03-mov-read-3gpp-udta-tags.patch"
|
||||
"${src}/contrib/ffmpeg/A04-movenc-write-3gpp-track-names-tags-for-all-available.patch"
|
||||
"${src}/contrib/ffmpeg/A05-dvdsubdec-fix-processing-of-partial-packets.patch"
|
||||
"${src}/contrib/ffmpeg/A06-dvdsubdec-return-number-of-bytes-used.patch"
|
||||
"${src}/contrib/ffmpeg/A07-dvdsubdec-use-pts-of-initial-packet.patch"
|
||||
"${src}/contrib/ffmpeg/A08-ccaption_dec-fix-pts-in-real_time-mode.patch"
|
||||
"${src}/contrib/ffmpeg/A09-matroskaenc-aac-extradata-updated.patch"
|
||||
"${src}/contrib/ffmpeg/A10-amfenc-Add-support-for-pict_type-field.patch"
|
||||
"${src}/contrib/ffmpeg/A11-amfenc-Fixes-the-color-information-in-the-ou.patch"
|
||||
"${src}/contrib/ffmpeg/A12-amfenc-HDR-metadata.patch"
|
||||
"${src}/contrib/ffmpeg/A13-libavcodec-amfenc-Fix-issue-with-missing-headers-in-.patch"
|
||||
"${src}/contrib/ffmpeg/A14-avcodec-add-ambient-viewing-environment-packet-side-.patch"
|
||||
"${src}/contrib/ffmpeg/A15-avformat-mov-add-support-for-amve-ambient-viewing-en.patch"
|
||||
"${src}/contrib/ffmpeg/A16-videotoolbox-dec-h264.patch"
|
||||
|
||||
# patch to fix <https://github.com/HandBrake/HandBrake/issues/5011>
|
||||
# commented out because it causes ffmpeg's filter-pixdesc-p010le test to fail.
|
||||
# "${src}/contrib/ffmpeg/A17-libswscale-fix-yuv420p-to-p01xle-color-conversion-bu.patch"
|
||||
|
||||
"${src}/contrib/ffmpeg/A18-qsv-fix-decode-10bit-hdr.patch"
|
||||
"${src}/contrib/ffmpeg/A19-ffbuild-common-use-gzip-n-flag-for-cuda.patch"
|
||||
];
|
||||
});
|
||||
|
||||
x265-hb = x265.overrideAttrs (old: {
|
||||
# nixpkgs' x265 sourceRoot is x265-.../source whereas handbrake's x265 patches
|
||||
# are written with respect to the parent directory instead of that source directory.
|
||||
# patches which don't cleanly apply are commented out.
|
||||
postPatch = (old.postPatch or "") + ''
|
||||
pushd ..
|
||||
# patch -p1 < ${src}/contrib/x265/A00-crosscompile-fix.patch
|
||||
patch -p1 < ${src}/contrib/x265/A01-threads-priority.patch
|
||||
patch -p1 < ${src}/contrib/x265/A02-threads-pool-adjustments.patch
|
||||
patch -p1 < ${src}/contrib/x265/A03-sei-length-crash-fix.patch
|
||||
patch -p1 < ${src}/contrib/x265/A04-ambient-viewing-enviroment-sei.patch
|
||||
# patch -p1 < ${src}/contrib/x265/A05-memory-leaks.patch
|
||||
popd
|
||||
'';
|
||||
});
|
||||
|
||||
versionFile = writeText "version.txt" ''
|
||||
BRANCH=${versions.majorMinor version}.x
|
||||
DATE=1970-01-01 00:00:01 +0000
|
||||
@ -189,6 +199,17 @@ let
|
||||
# Use the Nix-provided libxml2 instead of the system-provided one.
|
||||
substituteInPlace libhb/module.defs \
|
||||
--replace /usr/include/libxml2 ${libxml2.dev}/include/libxml2
|
||||
'' + optionalString useGtk ''
|
||||
substituteInPlace gtk/module.rules \
|
||||
--replace-fail '$(MESON.exe)' 'meson' \
|
||||
--replace-fail '$(NINJA.exe)' 'ninja' \
|
||||
# Force using nixpkgs dependencies
|
||||
substituteInPlace gtk/meson.build \
|
||||
--replace-fail "cc.find_library('bz2', dirs: hb_libdirs)" "cc.find_library('bz2')" \
|
||||
--replace-fail "cc.find_library('mp3lame', dirs: hb_libdirs)" "cc.find_library('mp3lame')" \
|
||||
--replace-fail \
|
||||
"hb_incdirs = include_directories(hb_dir / 'libhb', hb_dir / 'contrib/include')" \
|
||||
"hb_incdirs = include_directories(hb_dir / 'libhb')" \
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
@ -199,7 +220,7 @@ let
|
||||
pkg-config
|
||||
python3
|
||||
]
|
||||
++ optionals useGtk [ intltool wrapGAppsHook ];
|
||||
++ optionals useGtk [ desktop-file-utils intltool meson ninja wrapGAppsHook ];
|
||||
|
||||
buildInputs = [
|
||||
a52dec
|
||||
@ -228,12 +249,13 @@ let
|
||||
speex
|
||||
svt-av1
|
||||
x264
|
||||
x265
|
||||
x265-hb
|
||||
xz
|
||||
zimg
|
||||
]
|
||||
++ optional (!stdenv.isDarwin) numactl
|
||||
++ optionals useGtk [
|
||||
bzip2
|
||||
dbus-glib
|
||||
glib
|
||||
gst_all_1.gst-plugins-base
|
||||
@ -254,7 +276,6 @@ let
|
||||
configureFlags = [
|
||||
"--disable-df-fetch"
|
||||
"--disable-df-verify"
|
||||
"--disable-gtk-update-checks"
|
||||
]
|
||||
++ optional (!useGtk) "--disable-gtk"
|
||||
++ optional useFdk "--enable-fdk-aac"
|
||||
@ -264,10 +285,19 @@ let
|
||||
# NOTE: 2018-12-27: Check NixOS HandBrake test if changing
|
||||
NIX_LDFLAGS = [ "-lx265" ];
|
||||
|
||||
# meson/ninja are used only for the subprojects, not the toplevel
|
||||
dontUseMesonConfigure = true;
|
||||
dontUseMesonInstall = true;
|
||||
dontUseNinjaBuild = true;
|
||||
dontUseNinjaInstall = true;
|
||||
|
||||
makeFlags = [ "--directory=build" ];
|
||||
|
||||
passthru.tests = {
|
||||
basic-conversion =
|
||||
passthru = {
|
||||
# for convenience
|
||||
inherit ffmpeg-hb x265-hb;
|
||||
|
||||
tests.basic-conversion =
|
||||
let
|
||||
# Big Buck Bunny example, licensed under CC Attribution 3.0.
|
||||
testMkv = fetchurl {
|
||||
@ -283,7 +313,8 @@ let
|
||||
HandBrakeCLI -i ${testMkv} -o test.mkv -e x264 -q 20 -B 160
|
||||
test -e test.mkv
|
||||
'';
|
||||
version = testers.testVersion { package = self; command = "HandBrakeCLI --version"; };
|
||||
|
||||
tests.version = testers.testVersion { package = self; command = "HandBrakeCLI --version"; };
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
@ -300,7 +331,7 @@ let
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = with maintainers; [ Anton-Latukha wmertens ];
|
||||
platforms = with platforms; unix;
|
||||
broken = stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13";
|
||||
broken = stdenv.isDarwin; # https://github.com/NixOS/nixpkgs/pull/297984#issuecomment-2016503434
|
||||
};
|
||||
};
|
||||
in
|
||||
|
@ -2,11 +2,11 @@
|
||||
buildKodiAddon rec {
|
||||
pname = "trakt";
|
||||
namespace = "script.trakt";
|
||||
version = "3.5.0";
|
||||
version = "3.6.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "sha256-OyU6S5r/y3vqW6Wg6OP0+Zn4YchBy8x1i++hzCQHyx0=";
|
||||
sha256 = "sha256-ZlBucYYRA1cL5c0H1jhXeKE1itReZe2gAJYFFxuUebo=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -116,11 +116,11 @@ in stdenv.mkDerivation {
|
||||
# we don't take any chances and only apply it if people actually want to use KVM support.
|
||||
++ optional enableKvm (fetchpatch
|
||||
(let
|
||||
patchVersion = "20240226";
|
||||
patchVersion = "20240325";
|
||||
in {
|
||||
name = "virtualbox-${version}-kvm-dev-${patchVersion}.patch";
|
||||
url = "https://github.com/cyberus-technology/virtualbox-kvm/releases/download/dev-${patchVersion}/virtualbox-${version}-kvm-dev-${patchVersion}.patch";
|
||||
hash = "sha256-3YT1ZN/TwoNWNb2eqOcPF8GTrVGfOPaPb8vpGoPNISY=";
|
||||
url = "https://github.com/cyberus-technology/virtualbox-kvm/releases/download/dev-${patchVersion}/kvm-backend-${version}-dev-${patchVersion}.patch";
|
||||
hash = "sha256-D1ua8X5Iyw/I89PtskiGdnGr4NhdFtI93ThltiOcu8w=";
|
||||
}))
|
||||
++ [
|
||||
./qt-dependency-paths.patch
|
||||
@ -281,7 +281,7 @@ in stdenv.mkDerivation {
|
||||
];
|
||||
license = licenses.gpl2;
|
||||
homepage = "https://www.virtualbox.org/";
|
||||
maintainers = with maintainers; [ sander friedrichaltheide ];
|
||||
maintainers = with maintainers; [ sander friedrichaltheide blitz ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
mainProgram = "VirtualBox";
|
||||
};
|
||||
|
68
pkgs/by-name/af/affine/package.nix
Normal file
68
pkgs/by-name/af/affine/package.nix
Normal file
@ -0,0 +1,68 @@
|
||||
{ lib
|
||||
, writeText
|
||||
, fetchurl
|
||||
, stdenvNoCC
|
||||
, copyDesktopItems
|
||||
, makeDesktopItem
|
||||
, makeWrapper
|
||||
, unzip
|
||||
, bash
|
||||
, electron
|
||||
, commandLineArgs ? ""
|
||||
}:
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: let
|
||||
icon = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/toeverything/AFFiNE/v${finalAttrs.version}/packages/frontend/core/public/favicon-192.png";
|
||||
hash = "sha256-smZ5W7fy3TK3bvjwV4i71j2lVmKSZcyhMhcWfPxNnN4=";
|
||||
};
|
||||
in {
|
||||
pname = "affine";
|
||||
version = "0.13.1";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/toeverything/AFFiNE/releases/download/v${finalAttrs.version}/affine-${finalAttrs.version}-stable-linux-x64.zip";
|
||||
hash = "sha256-2Du5g/I82iTr8Bwb+qkLzyfbk1OrOlXqx6FHImVoAoE=";
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
copyDesktopItems
|
||||
makeWrapper
|
||||
unzip
|
||||
];
|
||||
postInstall = ''
|
||||
mkdir -p $out/lib
|
||||
cp -r ./resources/* -t $out/lib/
|
||||
cp LICENSE* $out/
|
||||
install -Dm644 ${icon} $out/share/pixmaps/affine.png
|
||||
makeWrapper "${electron}/bin/electron" $out/bin/affine \
|
||||
--inherit-argv0 \
|
||||
--add-flags $out/lib/app.asar \
|
||||
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
|
||||
--add-flags ${lib.escapeShellArg commandLineArgs}
|
||||
'';
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
name = "affine";
|
||||
desktopName = "AFFiNE";
|
||||
exec = "affine %U";
|
||||
terminal = false;
|
||||
icon = "affine";
|
||||
startupWMClass = "affine";
|
||||
categories = ["Utility"];
|
||||
})
|
||||
];
|
||||
meta = with lib; {
|
||||
description = "A workspace with fully merged docs, whiteboards and databases";
|
||||
longDescription = ''
|
||||
AFFiNE is an open-source, all-in-one workspace and an operating
|
||||
system for all the building blocks that assemble your knowledge
|
||||
base and much more -- wiki, knowledge management, presentation
|
||||
and digital assets
|
||||
'';
|
||||
homepage = "https://affine.pro/";
|
||||
downloadPage = "https://affine.pro/download";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [richar];
|
||||
mainProgram = "affine";
|
||||
platforms = ["x86_64-linux"];
|
||||
};
|
||||
})
|
92
pkgs/by-name/ba/backgroundremover/package.nix
Normal file
92
pkgs/by-name/ba/backgroundremover/package.nix
Normal file
@ -0,0 +1,92 @@
|
||||
{ python3
|
||||
, lib
|
||||
, runCommand
|
||||
, fetchFromGitHub
|
||||
, fetchurl
|
||||
}:
|
||||
|
||||
let
|
||||
p = python3.pkgs;
|
||||
self = p.buildPythonApplication rec {
|
||||
pname = "backgroundremover";
|
||||
version = "0.2.6";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nadermx";
|
||||
repo = "backgroundremover";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-dDOo7NPwvdfV+ae2oMUytCGC+2HF6xUI7dyKk2we23w=";
|
||||
};
|
||||
|
||||
models = runCommand "background-remover-models" {} ''
|
||||
mkdir $out
|
||||
cat ${src}/models/u2a{a,b,c,d} > $out/u2net.pth
|
||||
cat ${src}/models/u2ha{a,b,c,d} > $out/u2net_human_seg.pth
|
||||
cp ${src}/models/u2netp.pth $out
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace backgroundremover/bg.py backgroundremover/u2net/detect.py \
|
||||
--replace 'os.path.expanduser(os.path.join("~", ".u2net", model_name + ".pth"))' "os.path.join(\"$models\", model_name + \".pth\")"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ p.setuptools p.wheel ];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
p.certifi
|
||||
p.charset-normalizer
|
||||
p.ffmpeg-python
|
||||
p.filelock
|
||||
p.filetype
|
||||
p.hsh
|
||||
p.idna
|
||||
p.more-itertools
|
||||
p.moviepy
|
||||
p.numpy
|
||||
p.pillow
|
||||
p.pymatting
|
||||
p.pysocks
|
||||
p.requests
|
||||
p.scikit-image
|
||||
p.scipy
|
||||
p.six
|
||||
p.torch
|
||||
p.torchvision
|
||||
p.tqdm
|
||||
p.urllib3
|
||||
p.waitress
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "backgroundremover" ];
|
||||
|
||||
passthru = {
|
||||
inherit models;
|
||||
tests = {
|
||||
image = let
|
||||
# random no copyright car image from the internet
|
||||
demoImage = fetchurl {
|
||||
url = "https://pics.craiyon.com/2023-07-16/38653769ac3b4e068181cb5ab1e542a1.webp";
|
||||
hash = "sha256-Kvd06eZdibgDbabVVe0+cNTeS1rDnMXIZZpPlHIlfBo=";
|
||||
};
|
||||
in runCommand "backgroundremover-image-test.png" {
|
||||
buildInputs = [ self ];
|
||||
} ''
|
||||
export NUMBA_CACHE_DIR=$(mktemp -d)
|
||||
backgroundremover -i ${demoImage} -o $out
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
doCheck = false; # no tests
|
||||
|
||||
meta = with lib; {
|
||||
mainProgram = "backgroundremover";
|
||||
description = "Command line tool to remove background from image and video, made by nadermx to power";
|
||||
homepage = "https://BackgroundRemoverAI.com";
|
||||
downloadPage = "https://github.com/nadermx/backgroundremover/releases";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.lucasew ];
|
||||
};
|
||||
};
|
||||
in self
|
20
pkgs/by-name/ba/backgroundremover/test-script.py
Normal file
20
pkgs/by-name/ba/backgroundremover/test-script.py
Normal file
@ -0,0 +1,20 @@
|
||||
from argparse import ArgumentParser
|
||||
from pathlib import Path
|
||||
|
||||
import backgroundremover.utilities as utilities
|
||||
from backgroundremover import bg
|
||||
|
||||
parser = ArgumentParser()
|
||||
|
||||
parser.add_argument('input', type=Path)
|
||||
parser.add_argument('output', type=Path)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
input_bytes = args.input.read_bytes()
|
||||
|
||||
output_bytes = bg.remove(
|
||||
input_bytes,
|
||||
)
|
||||
|
||||
args.output.write_bytes(output_bytes)
|
@ -1,14 +1,18 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, openssl
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, makeWrapper
|
||||
, rustPlatform
|
||||
, testers
|
||||
|
||||
, cachix
|
||||
, darwin
|
||||
, libgit2
|
||||
, makeWrapper
|
||||
, nix
|
||||
, openssl
|
||||
, pkg-config
|
||||
, rustPlatform
|
||||
, cachix
|
||||
, fetchFromGitHub
|
||||
|
||||
, devenv # required to run version test
|
||||
}:
|
||||
|
||||
let
|
||||
@ -37,9 +41,7 @@ in rustPlatform.buildRustPackage {
|
||||
hash = "sha256-JCxjmWr2+75KMPOoVybNZhy9zhhrg9BAKA8D+J6MNBc=";
|
||||
};
|
||||
|
||||
cargoLock = {
|
||||
lockFile = ./Cargo.lock;
|
||||
};
|
||||
cargoHash = "sha256-FGB8p9ClGokYDrV0b47PnjeSlOv7p+IgThNajve3yms=";
|
||||
|
||||
nativeBuildInputs = [ makeWrapper pkg-config ];
|
||||
|
||||
@ -51,6 +53,13 @@ in rustPlatform.buildRustPackage {
|
||||
wrapProgram $out/bin/devenv --set DEVENV_NIX ${devenv_nix} --prefix PATH ":" "$out/bin:${cachix}/bin"
|
||||
'';
|
||||
|
||||
passthru.tests = {
|
||||
version = testers.testVersion {
|
||||
package = devenv;
|
||||
command = "export XDG_DATA_HOME=$PWD; devenv version";
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/cachix/devenv/releases/tag/v${version}";
|
||||
description = "Fast, Declarative, Reproducible, and Composable Developer Environments";
|
||||
|
40
pkgs/by-name/ep/epub-thumbnailer/package.nix
Normal file
40
pkgs/by-name/ep/epub-thumbnailer/package.nix
Normal file
@ -0,0 +1,40 @@
|
||||
{ lib
|
||||
, python3
|
||||
, fetchFromGitHub
|
||||
, unstableGitUpdater
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication {
|
||||
pname = "epub-thumbnailer";
|
||||
version = "0-unstable-2024-03-16";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "marianosimone";
|
||||
repo = "epub-thumbnailer";
|
||||
rev = "035c31e9269bcb30dcc20fed31b6dc54e9bfed63";
|
||||
hash = "sha256-G/CeYmr+wgJidbavfvIuCbRLJGQzoxAnpo3t4YFJq0c=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with python3.pkgs; [
|
||||
setuptools
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
pillow
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
mv $out/bin/epub-thumbnailer.py $out/bin/epub-thumbnailer
|
||||
'';
|
||||
|
||||
passthru.updateScript = unstableGitUpdater { };
|
||||
|
||||
meta = with lib; {
|
||||
description = "Script to extract the cover of an epub book and create a thumbnail for it";
|
||||
homepage = "https://github.com/marianosimone/epub-thumbnailer";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ GaetanLepage ];
|
||||
mainProgram = "epub-thumbnailer";
|
||||
};
|
||||
}
|
File diff suppressed because it is too large
Load Diff
133
pkgs/by-name/fi/firefoxpwa/package.nix
Normal file
133
pkgs/by-name/fi/firefoxpwa/package.nix
Normal file
@ -0,0 +1,133 @@
|
||||
{ lib
|
||||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
, makeWrapper
|
||||
, pkg-config
|
||||
, installShellFiles
|
||||
, firefox-unwrapped
|
||||
, openssl
|
||||
, stdenv
|
||||
, udev
|
||||
, libva
|
||||
, mesa
|
||||
, libnotify
|
||||
, xorg
|
||||
, cups
|
||||
, pciutils
|
||||
, libcanberra-gtk3
|
||||
, extraLibs ? [ ]
|
||||
, nixosTests
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "firefoxpwa";
|
||||
version = "2.11.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "filips123";
|
||||
repo = "PWAsForFirefox";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-ZD/bTziVmHtQVKejzj+fUXVazCm2PaulS2NZjTribSk=";
|
||||
};
|
||||
|
||||
sourceRoot = "${src.name}/native";
|
||||
buildFeatures = [ "immutable-runtime" ];
|
||||
|
||||
cargoLock = {
|
||||
lockFile = ./Cargo.lock;
|
||||
outputHashes = {
|
||||
"mime-0.4.0-a.0" = "sha256-LjM7LH6rL3moCKxVsA+RUL9lfnvY31IrqHa9pDIAZNE=";
|
||||
"web_app_manifest-0.0.0" = "sha256-G+kRN8AEmAY1TxykhLmgoX8TG8y2lrv7SCRJlNy0QzA=";
|
||||
};
|
||||
};
|
||||
|
||||
preConfigure = ''
|
||||
sed -i 's;version = "0.0.0";version = "${version}";' Cargo.toml
|
||||
sed -zi 's;name = "firefoxpwa"\nversion = "0.0.0";name = "firefoxpwa"\nversion = "${version}";' Cargo.lock
|
||||
sed -i $'s;DISTRIBUTION_VERSION = \'0.0.0\';DISTRIBUTION_VERSION = \'${version}\';' userchrome/profile/chrome/pwa/chrome.jsm
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ makeWrapper pkg-config installShellFiles ];
|
||||
buildInputs = [ openssl ];
|
||||
|
||||
FFPWA_EXECUTABLES = ""; # .desktop entries generated without any store path references
|
||||
FFPWA_SYSDATA = "${placeholder "out"}/share/firefoxpwa";
|
||||
completions = "target/${stdenv.targetPlatform.config}/release/completions";
|
||||
|
||||
gtk_modules = map (x: x + x.gtkModule) [ libcanberra-gtk3 ];
|
||||
libs = let libs = lib.optionals stdenv.isLinux [ udev libva mesa libnotify xorg.libXScrnSaver cups pciutils ] ++ gtk_modules ++ extraLibs; in lib.makeLibraryPath libs + ":" + lib.makeSearchPathOutput "lib" "lib64" libs;
|
||||
|
||||
postInstall = ''
|
||||
# Runtime
|
||||
mkdir -p $out/share/firefoxpwa
|
||||
cp -Lr ${firefox-unwrapped}/lib/firefox $out/share/firefoxpwa/runtime
|
||||
chmod -R +w $out/share/firefoxpwa
|
||||
|
||||
# UserChrome
|
||||
cp -r userchrome $out/share/firefoxpwa
|
||||
|
||||
# Runtime patching
|
||||
FFPWA_USERDATA=$out/share/firefoxpwa $out/bin/firefoxpwa runtime patch
|
||||
|
||||
# Manifest
|
||||
sed -i "s!/usr/libexec!$out/bin!" manifests/linux.json
|
||||
install -Dm644 manifests/linux.json $out/lib/mozilla/native-messaging-hosts/firefoxpwa.json
|
||||
|
||||
installShellCompletion --cmd firefoxpwa \
|
||||
--bash $completions/firefoxpwa.bash \
|
||||
--fish $completions/firefoxpwa.fish \
|
||||
--zsh $completions/_firefoxpwa
|
||||
|
||||
# AppStream Metadata
|
||||
install -Dm644 packages/appstream/si.filips.FirefoxPWA.metainfo.xml $out/share/metainfo/si.filips.FirefoxPWA.metainfo.xml
|
||||
install -Dm644 packages/appstream/si.filips.FirefoxPWA.svg $out/share/icons/hicolor/scalable/apps/si.filips.FirefoxPWA.svg
|
||||
|
||||
wrapProgram $out/bin/firefoxpwa \
|
||||
--prefix FFPWA_SYSDATA : "$out/share/firefoxpwa" \
|
||||
--prefix LD_LIBRARY_PATH : "$libs" \
|
||||
--suffix-each GTK_PATH : "$gtk_modules"
|
||||
|
||||
wrapProgram $out/bin/firefoxpwa-connector \
|
||||
--prefix FFPWA_SYSDATA : "$out/share/firefoxpwa" \
|
||||
--prefix LD_LIBRARY_PATH : "$libs" \
|
||||
--suffix-each GTK_PATH : "$gtk_modules"
|
||||
'';
|
||||
|
||||
passthru.tests.firefoxpwa = nixosTests.firefoxpwa;
|
||||
|
||||
meta = with lib; {
|
||||
description = "A tool to install, manage and use Progressive Web Apps (PWAs) in Mozilla Firefox (native component)";
|
||||
longDescription = ''
|
||||
Progressive Web Apps (PWAs) are web apps that use web APIs and features along
|
||||
with progressive enhancement strategy to bring a native app-like user experience
|
||||
to cross-platform web applications. Although Firefox supports many of Progressive
|
||||
Web App APIs, it does not support functionality to install them as a standalone
|
||||
system app with an app-like experience.
|
||||
|
||||
This project creates a custom modified Firefox runtime to allow websites to be
|
||||
installed as standalone apps and provides a console tool and browser extension
|
||||
to install, manage and use them.
|
||||
|
||||
This package contains only the native part of the PWAsForFirefox project. You
|
||||
should also install the browser extension if you haven't already. You can download
|
||||
it from the [Firefox Add-ons](https://addons.mozilla.org/firefox/addon/pwas-for-firefox/)
|
||||
website.
|
||||
|
||||
To install the package on NixOS, you need to add the following options:
|
||||
|
||||
```
|
||||
programs.firefox.nativeMessagingHosts.packages = [ pkgs.firefoxpwa ];
|
||||
environment.systemPackages = [ pkgs.firefoxpwa ];
|
||||
```
|
||||
|
||||
As it needs to be both in the `PATH` and in the `nativeMessagingHosts` to make it
|
||||
possible for the extension to detect and use it.
|
||||
'';
|
||||
homepage = "https://pwasforfirefox.filips.si/";
|
||||
changelog = "https://github.com/filips123/PWAsForFirefox/releases/tag/v${version}";
|
||||
license = licenses.mpl20;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ camillemndn pasqui23 ];
|
||||
mainProgram = "firefoxpwa";
|
||||
};
|
||||
}
|
51
pkgs/by-name/fo/forbidden/package.nix
Normal file
51
pkgs/by-name/fo/forbidden/package.nix
Normal file
@ -0,0 +1,51 @@
|
||||
{ lib
|
||||
, fetchFromGitHub
|
||||
, python3
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "forbidden";
|
||||
version = "10.8";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ivan-sincek";
|
||||
repo = "forbidden";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-jitmgN+We6m5CTgRc1NYwZkg5GYvD6ZlJ8FKtTa+rAY=";
|
||||
};
|
||||
|
||||
pythonRemoveDeps = [
|
||||
# https://github.com/ivan-sincek/forbidden/pull/3
|
||||
"argparse"
|
||||
];
|
||||
|
||||
build-system = with python3.pkgs; [
|
||||
pythonRelaxDepsHook
|
||||
setuptools
|
||||
];
|
||||
|
||||
dependencies = with python3.pkgs; [
|
||||
colorama
|
||||
datetime
|
||||
pycurl
|
||||
pyjwt
|
||||
regex
|
||||
requests
|
||||
tabulate
|
||||
termcolor
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"forbidden"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Tool to bypass 4xx HTTP response status code";
|
||||
homepage = "https://github.com/ivan-sincek/forbidden";
|
||||
changelog = "https://github.com/ivan-sincek/forbidden/releases/tag/v${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
mainProgram = "forbidden";
|
||||
};
|
||||
}
|
@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
propagatedBuildInputs = selectedPlugins;
|
||||
|
||||
phases = [ "installPhase" "fixupPhase" ];
|
||||
dontUnpack = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
|
48
pkgs/by-name/gr/graphicsmagick/imagemagick-compat.nix
Normal file
48
pkgs/by-name/gr/graphicsmagick/imagemagick-compat.nix
Normal file
@ -0,0 +1,48 @@
|
||||
{ lib
|
||||
, graphicsmagick
|
||||
, stdenvNoCC
|
||||
}:
|
||||
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "graphicsmagick-imagemagick-compat";
|
||||
inherit (graphicsmagick) version;
|
||||
|
||||
outputs = [ "out" "man" ];
|
||||
|
||||
dontUnpack = true;
|
||||
dontBuild = true;
|
||||
|
||||
# TODO: symlink libraries?
|
||||
installPhase = let
|
||||
utilities = [
|
||||
"animate"
|
||||
"composite"
|
||||
"conjure"
|
||||
"convert"
|
||||
"display"
|
||||
"identify"
|
||||
"import"
|
||||
"mogrify"
|
||||
"montage"
|
||||
];
|
||||
linkUtilityBin = utility: ''
|
||||
ln -s ${lib.getExe graphicsmagick} "$out/bin/${utility}"
|
||||
'';
|
||||
linkUtilityMan = utility: ''
|
||||
ln -s ${lib.getMan graphicsmagick}/share/man/man1/gm.1.gz "$man/share/man/man1/${utility}.1.gz"
|
||||
'';
|
||||
in ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p "$out"/bin
|
||||
${lib.concatStringsSep "\n" (map linkUtilityBin utilities)}
|
||||
mkdir -p "$man"/share/man/man1
|
||||
${lib.concatStringsSep "\n" (map linkUtilityMan utilities)}
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = graphicsmagick.meta // {
|
||||
description = "A repack of GraphicsMagick that provides compatibility with ImageMagick interfaces";
|
||||
};
|
||||
}
|
105
pkgs/by-name/gr/graphicsmagick/package.nix
Normal file
105
pkgs/by-name/gr/graphicsmagick/package.nix
Normal file
@ -0,0 +1,105 @@
|
||||
{ lib
|
||||
, bzip2
|
||||
, callPackage
|
||||
, coreutils
|
||||
, fetchurl
|
||||
, fixDarwinDylibNames
|
||||
, freetype
|
||||
, ghostscript
|
||||
, graphviz
|
||||
, libX11
|
||||
, libjpeg
|
||||
, libpng
|
||||
, libtiff
|
||||
, libtool
|
||||
, libwebp
|
||||
, libxml2
|
||||
, nukeReferences
|
||||
, quantumdepth ? 8
|
||||
, runCommand
|
||||
, stdenv
|
||||
, xz
|
||||
, zlib
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "graphicsmagick";
|
||||
version = "1.3.43";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/graphicsmagick/GraphicsMagick-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-K4hYBzLNfkCdniLGEWI4vvSuBvzaEUUb8z0ln5y/OZ8=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "man" ];
|
||||
|
||||
buildInputs = [
|
||||
bzip2
|
||||
freetype
|
||||
ghostscript
|
||||
graphviz
|
||||
libX11
|
||||
libjpeg
|
||||
libpng
|
||||
libtiff
|
||||
libtool
|
||||
libwebp
|
||||
libxml2
|
||||
zlib
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
nukeReferences
|
||||
xz
|
||||
] ++ lib.optionals stdenv.hostPlatform.isDarwin [ fixDarwinDylibNames ];
|
||||
|
||||
configureFlags = [
|
||||
# specify delegates explicitly otherwise `gm` will invoke the build
|
||||
# coreutils for filetypes it doesn't natively support.
|
||||
"MVDelegate=${lib.getExe' coreutils "mv"}"
|
||||
(lib.enableFeature true "shared")
|
||||
(lib.withFeature true "frozenpaths")
|
||||
(lib.withFeatureAs true "quantum-depth" (toString quantumdepth))
|
||||
(lib.withFeatureAs true "gslib" "yes")
|
||||
];
|
||||
|
||||
# Remove CFLAGS from the binaries to avoid closure bloat.
|
||||
# In the past we have had -dev packages in the closure of the binaries soley
|
||||
# due to the string references.
|
||||
postConfigure = ''
|
||||
nuke-refs -e $out ./magick/magick_config.h
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
sed -i 's/-ltiff.*'\'/\'/ $out/bin/*
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
imagemagick-compat = callPackage ./imagemagick-compat.nix {
|
||||
graphicsmagick = finalAttrs.finalPackage;
|
||||
};
|
||||
tests = {
|
||||
issue-157920 = runCommand "issue-157920-regression-test" {
|
||||
buildInputs = [ finalAttrs.finalPackage ];
|
||||
} ''
|
||||
gm convert ${graphviz}/share/doc/graphviz/neatoguide.pdf jpg:$out
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "http://www.graphicsmagick.org";
|
||||
description = "Swiss army knife of image processing";
|
||||
longDescription = ''
|
||||
GraphicsMagick is the swiss army knife of image processing, providing a
|
||||
robust and efficient collection of tools and libraries which support
|
||||
reading, writing, and manipulating an image in over 92 major formats
|
||||
including important formats like DPX, GIF, JPEG, JPEG-2000, JXL, PNG, PDF,
|
||||
PNM, TIFF, and WebP.
|
||||
'';
|
||||
license = with lib.licenses; [ mit ];
|
||||
maintainers = with lib.maintainers; [ AndersonTorres ];
|
||||
mainProgram = "gm";
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
})
|
29
pkgs/by-name/in/incus/529.patch
Normal file
29
pkgs/by-name/in/incus/529.patch
Normal file
@ -0,0 +1,29 @@
|
||||
From 32a4beecbf8098fdbb15ef5f36088956922630f7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber@stgraber.org>
|
||||
Date: Fri, 23 Feb 2024 18:47:15 -0500
|
||||
Subject: [PATCH] incusd/device/disk: Fix incorrect block volume usage
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
|
||||
---
|
||||
internal/server/device/disk.go | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/internal/server/device/disk.go b/internal/server/device/disk.go
|
||||
index 0d19e21139..4f9a3e7c1b 100644
|
||||
--- a/internal/server/device/disk.go
|
||||
+++ b/internal/server/device/disk.go
|
||||
@@ -339,6 +339,11 @@ func (d *disk) validateConfig(instConf instance.ConfigReader) error {
|
||||
var usedBy []string
|
||||
|
||||
err = storagePools.VolumeUsedByInstanceDevices(d.state, d.pool.Name(), storageProjectName, &dbVolume.StorageVolume, true, func(inst db.InstanceArgs, project api.Project, usedByDevices []string) error {
|
||||
+ // Don't count the current instance.
|
||||
+ if d.inst != nil && d.inst.Project().Name == inst.Project && d.inst.Name() == inst.Name {
|
||||
+ return nil
|
||||
+ }
|
||||
+
|
||||
usedBy = append(usedBy, inst.Name)
|
||||
|
||||
return nil
|
@ -1,28 +1,28 @@
|
||||
{
|
||||
lts ? false,
|
||||
meta,
|
||||
patches,
|
||||
src,
|
||||
vendorHash,
|
||||
version,
|
||||
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchpatch,
|
||||
fetchFromGitHub,
|
||||
installShellFiles,
|
||||
}:
|
||||
let
|
||||
releaseFile = if lts then ./lts.nix else ./latest.nix;
|
||||
inherit (import releaseFile { inherit fetchpatch; }) version hash vendorHash;
|
||||
pname = "incus${lib.optionalString lts "-lts"}-client";
|
||||
in
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "incus-client";
|
||||
|
||||
inherit vendorHash version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lxc";
|
||||
repo = "incus";
|
||||
rev = "refs/tags/v${version}";
|
||||
inherit hash;
|
||||
};
|
||||
buildGoModule {
|
||||
inherit
|
||||
meta
|
||||
patches
|
||||
pname
|
||||
src
|
||||
vendorHash
|
||||
version
|
||||
;
|
||||
|
||||
CGO_ENABLED = 0;
|
||||
|
||||
@ -41,14 +41,4 @@ buildGoModule rec {
|
||||
|
||||
# don't run the full incus test suite
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
description = "Powerful system container and virtual machine manager";
|
||||
homepage = "https://linuxcontainers.org/incus";
|
||||
changelog = "https://github.com/lxc/incus/releases/tag/v${version}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = lib.teams.lxc.members;
|
||||
platforms = lib.platforms.unix;
|
||||
mainProgram = "incus";
|
||||
};
|
||||
}
|
||||
|
@ -1,10 +1,18 @@
|
||||
{
|
||||
hash,
|
||||
lts ? false,
|
||||
patches,
|
||||
updateScriptArgs ? "",
|
||||
vendorHash,
|
||||
version,
|
||||
}:
|
||||
|
||||
{
|
||||
callPackage,
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchpatch,
|
||||
fetchFromGitHub,
|
||||
writeScript,
|
||||
writeShellScript,
|
||||
acl,
|
||||
cowsql,
|
||||
@ -19,31 +27,28 @@
|
||||
}:
|
||||
|
||||
let
|
||||
releaseFile = if lts then ./lts.nix else ./latest.nix;
|
||||
inherit (import releaseFile { inherit fetchpatch; })
|
||||
version
|
||||
hash
|
||||
patches
|
||||
vendorHash
|
||||
;
|
||||
name = "incus${lib.optionalString lts "-lts"}";
|
||||
pname = "incus${lib.optionalString lts "-lts"}";
|
||||
in
|
||||
|
||||
buildGoModule {
|
||||
pname = "${name}-unwrapped";
|
||||
|
||||
inherit patches vendorHash version;
|
||||
buildGoModule rec {
|
||||
inherit
|
||||
patches
|
||||
pname
|
||||
vendorHash
|
||||
version
|
||||
;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lxc";
|
||||
repo = "incus";
|
||||
rev = "v${version}";
|
||||
rev = "refs/tags/v${version}";
|
||||
inherit hash;
|
||||
};
|
||||
|
||||
# replace with env var > 0.6 https://github.com/lxc/incus/pull/610
|
||||
postPatch = ''
|
||||
substituteInPlace internal/usbid/load.go \
|
||||
--replace "/usr/share/misc/usb.ids" "${hwdata}/share/hwdata/usb.ids"
|
||||
--replace-fail "/usr/share/misc/usb.ids" "${hwdata}/share/hwdata/usb.ids"
|
||||
'';
|
||||
|
||||
excludedPackages = [
|
||||
@ -107,12 +112,23 @@ buildGoModule {
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
tests.incus = nixosTests.incus;
|
||||
client = callPackage ./client.nix {
|
||||
inherit
|
||||
lts
|
||||
meta
|
||||
patches
|
||||
src
|
||||
vendorHash
|
||||
version
|
||||
;
|
||||
};
|
||||
|
||||
updateScript = writeShellScript "update-incus" ''
|
||||
nix-update ${name}.unwrapped -vr 'v(.*)' --override-filename pkgs/by-name/in/incus/${
|
||||
if lts then "lts" else "latest"
|
||||
}.nix
|
||||
tests = nixosTests.incus;
|
||||
|
||||
ui = callPackage ./ui.nix { };
|
||||
|
||||
updateScript = writeScript "ovs-update.nu" ''
|
||||
${./update.nu} ${updateScriptArgs}
|
||||
'';
|
||||
};
|
||||
|
||||
@ -123,5 +139,6 @@ buildGoModule {
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = lib.teams.lxc.members;
|
||||
platforms = lib.platforms.linux;
|
||||
mainProgram = "incus";
|
||||
};
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{ fetchpatch }:
|
||||
{
|
||||
hash = "sha256-tGuAS0lZvoYb+TvmCklQ8TADZhbm4w/lhdI0ycS4/0o=";
|
||||
version = "0.6.0";
|
||||
vendorHash = "sha256-+WmgLOEBJ/7GF596iiTgyTPxn8l+hE6RVqjLKfCi5rs=";
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/lxc/incus/pull/529.patch";
|
||||
hash = "sha256-2aaPrzW/LVJidWeom0rqYOGpT2gvuV1yHLJN/TwQ1fk=";
|
||||
})
|
||||
];
|
||||
}
|
@ -1,3 +1,3 @@
|
||||
# this release doesn't exist yet, but satisfay the by-name checks
|
||||
# will be added as incus-lts in all-packages.nix once ready
|
||||
_: { }
|
||||
import ./generic.nix { }
|
||||
|
@ -1,157 +1,9 @@
|
||||
{
|
||||
lts ? false,
|
||||
|
||||
lib,
|
||||
callPackage,
|
||||
linkFarm,
|
||||
makeWrapper,
|
||||
stdenv,
|
||||
symlinkJoin,
|
||||
writeShellScriptBin,
|
||||
acl,
|
||||
apparmor-parser,
|
||||
apparmor-profiles,
|
||||
attr,
|
||||
bash,
|
||||
btrfs-progs,
|
||||
cdrkit,
|
||||
criu,
|
||||
dnsmasq,
|
||||
e2fsprogs,
|
||||
getent,
|
||||
gnutar,
|
||||
gptfdisk,
|
||||
gzip,
|
||||
iproute2,
|
||||
iptables,
|
||||
kmod,
|
||||
lvm2,
|
||||
minio,
|
||||
nftables,
|
||||
OVMF,
|
||||
qemu_kvm,
|
||||
qemu-utils,
|
||||
rsync,
|
||||
spice-gtk,
|
||||
squashfsTools,
|
||||
thin-provisioning-tools,
|
||||
util-linux,
|
||||
virtiofsd,
|
||||
xz,
|
||||
}:
|
||||
let
|
||||
unwrapped = callPackage ./unwrapped.nix { inherit lts; };
|
||||
client = callPackage ./client.nix { inherit lts; };
|
||||
name = "incus${lib.optionalString lts "-lts"}";
|
||||
|
||||
binPath = lib.makeBinPath [
|
||||
acl
|
||||
attr
|
||||
bash
|
||||
btrfs-progs
|
||||
cdrkit
|
||||
criu
|
||||
dnsmasq
|
||||
e2fsprogs
|
||||
getent
|
||||
gnutar
|
||||
gptfdisk
|
||||
gzip
|
||||
iproute2
|
||||
iptables
|
||||
kmod
|
||||
lvm2
|
||||
minio
|
||||
nftables
|
||||
qemu_kvm
|
||||
qemu-utils
|
||||
rsync
|
||||
squashfsTools
|
||||
thin-provisioning-tools
|
||||
util-linux
|
||||
virtiofsd
|
||||
xz
|
||||
|
||||
(writeShellScriptBin "apparmor_parser" ''
|
||||
exec '${apparmor-parser}/bin/apparmor_parser' -I '${apparmor-profiles}/etc/apparmor.d' "$@"
|
||||
'')
|
||||
import ./generic.nix {
|
||||
hash = "sha256-tGuAS0lZvoYb+TvmCklQ8TADZhbm4w/lhdI0ycS4/0o=";
|
||||
version = "0.6.0";
|
||||
vendorHash = "sha256-+WmgLOEBJ/7GF596iiTgyTPxn8l+hE6RVqjLKfCi5rs=";
|
||||
patches = [
|
||||
# fix storage bug, fixed in > 0.6
|
||||
./529.patch
|
||||
];
|
||||
|
||||
clientBinPath = [ spice-gtk ];
|
||||
|
||||
ovmf-2mb = OVMF.override {
|
||||
secureBoot = true;
|
||||
fdSize2MB = true;
|
||||
};
|
||||
|
||||
ovmf-4mb = OVMF.override {
|
||||
secureBoot = true;
|
||||
fdSize4MB = true;
|
||||
};
|
||||
|
||||
ovmf-prefix = if stdenv.hostPlatform.isAarch64 then "AAVMF" else "OVMF";
|
||||
|
||||
# mimic ovmf from https://github.com/canonical/incus-pkg-snap/blob/3abebe1dfeb20f9b7729556960c7e9fe6ad5e17c/snapcraft.yaml#L378
|
||||
# also found in /snap/incus/current/share/qemu/ on a snap install
|
||||
ovmf = linkFarm "incus-ovmf" [
|
||||
{
|
||||
name = "OVMF_CODE.2MB.fd";
|
||||
path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_CODE.fd";
|
||||
}
|
||||
{
|
||||
name = "OVMF_CODE.4MB.fd";
|
||||
path = "${ovmf-4mb.fd}/FV/${ovmf-prefix}_CODE.fd";
|
||||
}
|
||||
{
|
||||
name = "OVMF_CODE.fd";
|
||||
path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_CODE.fd";
|
||||
}
|
||||
|
||||
{
|
||||
name = "OVMF_VARS.2MB.fd";
|
||||
path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_VARS.fd";
|
||||
}
|
||||
{
|
||||
name = "OVMF_VARS.2MB.ms.fd";
|
||||
path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_VARS.fd";
|
||||
}
|
||||
{
|
||||
name = "OVMF_VARS.4MB.fd";
|
||||
path = "${ovmf-4mb.fd}/FV/${ovmf-prefix}_VARS.fd";
|
||||
}
|
||||
{
|
||||
name = "OVMF_VARS.4MB.ms.fd";
|
||||
path = "${ovmf-4mb.fd}/FV/${ovmf-prefix}_VARS.fd";
|
||||
}
|
||||
{
|
||||
name = "OVMF_VARS.fd";
|
||||
path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_VARS.fd";
|
||||
}
|
||||
{
|
||||
name = "OVMF_VARS.ms.fd";
|
||||
path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_VARS.fd";
|
||||
}
|
||||
];
|
||||
in
|
||||
symlinkJoin {
|
||||
name = "${name}-${unwrapped.version}";
|
||||
|
||||
paths = [ unwrapped ];
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/incusd --prefix PATH : ${lib.escapeShellArg binPath}:${qemu_kvm}/libexec:$out/bin --set INCUS_OVMF_PATH ${ovmf}
|
||||
|
||||
wrapProgram $out/bin/incus --prefix PATH : ${lib.makeBinPath clientBinPath}
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit client unwrapped;
|
||||
ui = callPackage ./ui.nix {};
|
||||
|
||||
inherit (unwrapped) tests;
|
||||
};
|
||||
|
||||
inherit (unwrapped) meta pname version;
|
||||
}
|
||||
|
22
pkgs/by-name/in/incus/update.nu
Executable file
22
pkgs/by-name/in/incus/update.nu
Executable file
@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i nu -p nushell common-updater-scripts gnused
|
||||
|
||||
def main [--lts = false, --regex: string] {
|
||||
let attr = $"incus(if $lts {"-lts"})"
|
||||
let file = $"(pwd)/pkgs/by-name/in/incus/(if $lts { "lts" } else { "package" }).nix"
|
||||
|
||||
let tags = list-git-tags --url=https://github.com/lxc/incus | lines | sort --natural | str replace v ''
|
||||
let latest_tag = if $regex == null { $tags } else { $tags | find --regex $regex } | last
|
||||
let current_version = nix eval --raw -f default.nix $"($attr).version" | str trim
|
||||
|
||||
if $latest_tag != $current_version {
|
||||
update-source-version $attr $latest_tag $"--file=($file)"
|
||||
|
||||
let oldVendorHash = nix-instantiate . --eval --strict -A $"($attr).goModules.drvAttrs.outputHash" --json | from json
|
||||
let vendorHash = do { nix-build -A $"($attr).goModules" } | complete | get stderr | lines | str trim | find --regex 'got:[[:space:]]*sha256' | split row ' ' | last
|
||||
open $file | str replace $oldVendorHash $vendorHash | save --force $file
|
||||
|
||||
}
|
||||
|
||||
{"lts?": $lts, before: $current_version, after: $latest_tag}
|
||||
}
|
@ -1,22 +1,27 @@
|
||||
{ lib
|
||||
, writeShellScript
|
||||
, buildFHSEnvBubblewrap
|
||||
, buildFHSEnv
|
||||
, stdenvNoCC
|
||||
, fetchurl
|
||||
, autoPatchelfHook
|
||||
, dpkg
|
||||
, nss
|
||||
, cacert
|
||||
, alsa-lib
|
||||
, libvorbis
|
||||
, libdrm
|
||||
, libGL
|
||||
, wayland
|
||||
, xkeyboard_config
|
||||
, libthai
|
||||
, libsForQt5
|
||||
}:
|
||||
|
||||
let
|
||||
pname = "insync";
|
||||
version = "3.8.6.50504";
|
||||
# Find a binary from https://www.insynchq.com/downloads/linux#ubuntu.
|
||||
version = "3.8.7.50516";
|
||||
ubuntu-dist = "mantic_amd64";
|
||||
meta = with lib; {
|
||||
platforms = ["x86_64-linux"];
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
@ -35,7 +40,6 @@ let
|
||||
Known bug(s):
|
||||
|
||||
1) Currently the system try icon does not render correctly.
|
||||
2) libqtvirtualkeyboardplugin does not have necessary Qt library shipped from vendor.
|
||||
'';
|
||||
mainProgram = "insync";
|
||||
};
|
||||
@ -45,22 +49,27 @@ let
|
||||
inherit version meta;
|
||||
|
||||
src = fetchurl {
|
||||
# Find a binary from https://www.insynchq.com/downloads/linux#ubuntu.
|
||||
url = "https://cdn.insynchq.com/builds/linux/insync_${version}-lunar_amd64.deb";
|
||||
sha256 = "sha256-BxTFtQ1rAsOuhKnH5vsl3zkM7WOd+vjA4LKZGxl4jk0=";
|
||||
url = "https://cdn.insynchq.com/builds/linux/insync_${version}-${ubuntu-dist}.deb";
|
||||
sha256 = "sha256-U7BcgghbdR7r9WiZpEOka+BzXwnxrzL6p4imGESuB/k=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
dpkg
|
||||
autoPatchelfHook
|
||||
libsForQt5.qt5.wrapQtAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
nss
|
||||
alsa-lib
|
||||
libvorbis
|
||||
libdrm
|
||||
libGL
|
||||
wayland
|
||||
libthai
|
||||
libsForQt5.qt5.qtvirtualkeyboard
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ autoPatchelfHook dpkg ];
|
||||
|
||||
unpackPhase = ''
|
||||
dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner
|
||||
'';
|
||||
@ -71,15 +80,6 @@ let
|
||||
mkdir -p $out
|
||||
cp -R usr/* $out/
|
||||
|
||||
# use system glibc
|
||||
rm $out/lib/insync/{libgcc_s.so.1,libstdc++.so.6}
|
||||
|
||||
# remove badly packaged plugins
|
||||
rm $out/lib/insync/PySide2/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so
|
||||
|
||||
# remove the unused vendor wrapper
|
||||
rm $out/bin/insync
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
@ -87,29 +87,25 @@ let
|
||||
dontStrip = true;
|
||||
};
|
||||
|
||||
in buildFHSEnvBubblewrap {
|
||||
in buildFHSEnv {
|
||||
name = pname;
|
||||
inherit meta;
|
||||
|
||||
targetPkgs = pkgs: with pkgs; [
|
||||
insync-pkg
|
||||
libudev0-shim
|
||||
insync-pkg
|
||||
];
|
||||
|
||||
runScript = writeShellScript "insync-wrapper.sh" ''
|
||||
# QT_STYLE_OVERRIDE was used to suppress a QT warning, it should have no actual effect for this binary.
|
||||
echo Unsetting QT_STYLE_OVERRIDE=$QT_STYLE_OVERRIDE
|
||||
echo Unsetting QT_QPA_PLATFORMTHEME=$QT_QPA_PLATFORMTHEME
|
||||
unset QT_STYLE_OVERRIDE
|
||||
unset QPA_PLATFORMTHEME
|
||||
extraInstallCommands = ''
|
||||
cp -rsHf "${insync-pkg}"/share $out
|
||||
'';
|
||||
|
||||
runScript = writeShellScript "insync-wrapper.sh" ''
|
||||
# xkb configuration needed: https://github.com/NixOS/nixpkgs/issues/236365
|
||||
export XKB_CONFIG_ROOT=${xkeyboard_config}/share/X11/xkb/
|
||||
echo XKB_CONFIG_ROOT=$XKB_CONFIG_ROOT
|
||||
|
||||
# For debuging:
|
||||
# For debugging:
|
||||
# export QT_DEBUG_PLUGINS=1
|
||||
# find -L /usr/share -name "*insync*"
|
||||
|
||||
exec /usr/lib/insync/insync "$@"
|
||||
'';
|
||||
@ -121,6 +117,6 @@ in buildFHSEnvBubblewrap {
|
||||
unshareNet = false;
|
||||
unshareUts = false;
|
||||
unshareCgroup = false;
|
||||
# Since "insync start" command starts a daemon, this daemon should die with it.
|
||||
dieWithParent = false;
|
||||
|
||||
dieWithParent = true;
|
||||
}
|
46
pkgs/by-name/li/libhttpserver/package.nix
Normal file
46
pkgs/by-name/li/libhttpserver/package.nix
Normal file
@ -0,0 +1,46 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, autoconf
|
||||
, automake
|
||||
, libtool
|
||||
, gnutls
|
||||
, libmicrohttpd
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libhttpserver";
|
||||
version = "0.19.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "etr";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-Pc3Fvd8D4Ymp7dG9YgU58mDceOqNfhWE1JtnpVaNx/Y=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoconf automake libtool ];
|
||||
|
||||
buildInputs = [ gnutls libmicrohttpd ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs ./bootstrap
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
./bootstrap
|
||||
'';
|
||||
|
||||
configureFlags = [ "--enable-same-directory-build" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "C++ library for creating an embedded Rest HTTP server (and more)";
|
||||
homepage = "https://github.com/etr/libhttpserver";
|
||||
license = licenses.lgpl21Plus;
|
||||
maintainers = with maintainers; [ pongo1231 ];
|
||||
platforms = platforms.unix;
|
||||
broken = stdenv.isDarwin; # configure: error: cannot find required auxiliary files: ltmain.sh
|
||||
};
|
||||
}
|
@ -2,16 +2,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "minijinja";
|
||||
version = "1.0.13";
|
||||
version = "1.0.15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mitsuhiko";
|
||||
repo = "minijinja";
|
||||
rev = version;
|
||||
hash = "sha256-VVd90j8ZOubtHX15jMGAIA3LF4tg4SzFxO046QVwDjc=";
|
||||
hash = "sha256-ync0MkLi+CV1g9eBDLcV1dnV101H5Gc6K0NrnVeh8Jw=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-f9hXH0c8vVpexYyuQuS0D8jzEqJSrHOwp/FropTKTJg=";
|
||||
cargoHash = "sha256-j8GLpMU7xwc3BWkjcFmGODiKieedNIB8VbHjJcrq8z4=";
|
||||
|
||||
# The tests relies on the presence of network connection
|
||||
doCheck = false;
|
||||
|
42
pkgs/by-name/pu/puncia/package.nix
Normal file
42
pkgs/by-name/pu/puncia/package.nix
Normal file
@ -0,0 +1,42 @@
|
||||
{ lib
|
||||
, fetchFromGitHub
|
||||
, python3
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "puncia";
|
||||
version = "0.15-unstable-2024-03-23";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ARPSyndicate";
|
||||
repo = "puncia";
|
||||
# https://github.com/ARPSyndicate/puncia/issues/5
|
||||
rev = "c70ed93ea1e7e42e12dd9c14713cab71bb0e0fe9";
|
||||
hash = "sha256-xGJk8y26tluHUPm9ikrBBiWGuzq6MKl778BF8wNDmps=";
|
||||
};
|
||||
|
||||
build-system = with python3.pkgs; [
|
||||
setuptools
|
||||
];
|
||||
|
||||
dependencies = with python3.pkgs; [
|
||||
requests
|
||||
];
|
||||
|
||||
# Project has no tests
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [
|
||||
"puncia"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "CLI utility for Subdomain Center & Exploit Observer";
|
||||
homepage = "https://github.com/ARPSyndicate/puncia";
|
||||
# https://github.com/ARPSyndicate/puncia/issues/6
|
||||
license = licenses.unfree;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
mainProgram = "puncia";
|
||||
};
|
||||
}
|
@ -13,13 +13,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "ricochet-refresh";
|
||||
version = "3.0.18";
|
||||
version = "3.0.22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "blueprint-freespeech";
|
||||
repo = "ricochet-refresh";
|
||||
rev = "v${finalAttrs.version}-release";
|
||||
hash = "sha256-QN2cxcYWGoszPdrWv+4FoTGNjQViK/OwxbBC6uoDhfA=";
|
||||
hash = "sha256-xPOAtH+K3WTPjbDw4ZhwpO2+wUYe5JdqKdtfNKQbgSM=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@ -75,6 +75,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
homepage = "https://www.ricochetrefresh.net/";
|
||||
downloadPage = "https://github.com/blueprint-freespeech/ricochet-refresh/releases";
|
||||
license = lib.licenses.bsd3;
|
||||
platforms = lib.platforms.unix;
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
|
52
pkgs/by-name/tu/tunnelgraf/package.nix
Normal file
52
pkgs/by-name/tu/tunnelgraf/package.nix
Normal file
@ -0,0 +1,52 @@
|
||||
{ lib
|
||||
, fetchFromGitHub
|
||||
, python3
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "tunnelgraf";
|
||||
version = "0.6.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "denniswalker";
|
||||
repo = "tunnelgraf";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-CsrbSpp1VszEAKpmHx8GbB7vfZCOvB+tDFNFwWKexEw=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = [
|
||||
"click"
|
||||
"pydantic"
|
||||
];
|
||||
|
||||
build-system = with python3.pkgs; [
|
||||
hatchling
|
||||
pythonRelaxDepsHook
|
||||
];
|
||||
|
||||
dependencies = with python3.pkgs; [
|
||||
click
|
||||
deepmerge
|
||||
paramiko
|
||||
pydantic
|
||||
python-hosts
|
||||
pyyaml
|
||||
sshtunnel
|
||||
];
|
||||
|
||||
# Project has no tests
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [
|
||||
"tunnelgraf"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Tool to manage SSH tunnel hops to many endpoints";
|
||||
homepage = "https://github.com/denniswalker/tunnelgraf";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
mainProgram = "tunnelgraf";
|
||||
};
|
||||
}
|
750
pkgs/by-name/vi/vidmerger/Cargo.lock
generated
Normal file
750
pkgs/by-name/vi/vidmerger/Cargo.lock
generated
Normal file
@ -0,0 +1,750 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "aho-corasick"
|
||||
version = "1.1.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "anstyle"
|
||||
version = "1.0.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
|
||||
|
||||
[[package]]
|
||||
name = "anyhow"
|
||||
version = "1.0.81"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
|
||||
|
||||
[[package]]
|
||||
name = "assert_cmd"
|
||||
version = "2.0.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8"
|
||||
dependencies = [
|
||||
"anstyle",
|
||||
"bstr",
|
||||
"doc-comment",
|
||||
"predicates",
|
||||
"predicates-core",
|
||||
"predicates-tree",
|
||||
"wait-timeout",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "atty"
|
||||
version = "0.2.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
|
||||
dependencies = [
|
||||
"hermit-abi 0.1.19",
|
||||
"libc",
|
||||
"winapi 0.3.9",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "autocfg"
|
||||
version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
|
||||
|
||||
[[package]]
|
||||
name = "bitflags"
|
||||
version = "1.3.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
||||
|
||||
[[package]]
|
||||
name = "bitflags"
|
||||
version = "2.4.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
|
||||
|
||||
[[package]]
|
||||
name = "bstr"
|
||||
version = "1.9.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
"regex-automata",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cfg-if"
|
||||
version = "1.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
||||
|
||||
[[package]]
|
||||
name = "clap"
|
||||
version = "3.2.25"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123"
|
||||
dependencies = [
|
||||
"atty",
|
||||
"bitflags 1.3.2",
|
||||
"clap_derive",
|
||||
"clap_lex",
|
||||
"indexmap",
|
||||
"once_cell",
|
||||
"strsim",
|
||||
"termcolor",
|
||||
"textwrap",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "clap_derive"
|
||||
version = "3.2.25"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008"
|
||||
dependencies = [
|
||||
"heck",
|
||||
"proc-macro-error",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 1.0.109",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "clap_lex"
|
||||
version = "0.2.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
|
||||
dependencies = [
|
||||
"os_str_bytes",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "colored"
|
||||
version = "1.9.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5a5f741c91823341bebf717d4c71bda820630ce065443b58bd1b7451af008355"
|
||||
dependencies = [
|
||||
"is-terminal",
|
||||
"lazy_static",
|
||||
"winapi 0.3.9",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ctor"
|
||||
version = "0.1.26"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"
|
||||
dependencies = [
|
||||
"quote",
|
||||
"syn 1.0.109",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "diff"
|
||||
version = "0.1.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
|
||||
|
||||
[[package]]
|
||||
name = "difflib"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
|
||||
|
||||
[[package]]
|
||||
name = "doc-comment"
|
||||
version = "0.3.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
|
||||
|
||||
[[package]]
|
||||
name = "either"
|
||||
version = "1.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
|
||||
|
||||
[[package]]
|
||||
name = "errno"
|
||||
version = "0.3.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"windows-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "getrandom"
|
||||
version = "0.2.12"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"libc",
|
||||
"wasi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "hashbrown"
|
||||
version = "0.12.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
|
||||
|
||||
[[package]]
|
||||
name = "heck"
|
||||
version = "0.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
|
||||
|
||||
[[package]]
|
||||
name = "hermit-abi"
|
||||
version = "0.1.19"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
|
||||
dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "hermit-abi"
|
||||
version = "0.3.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
|
||||
|
||||
[[package]]
|
||||
name = "home"
|
||||
version = "0.5.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
|
||||
dependencies = [
|
||||
"windows-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "indexmap"
|
||||
version = "1.9.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"hashbrown",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "is-terminal"
|
||||
version = "0.4.12"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
|
||||
dependencies = [
|
||||
"hermit-abi 0.3.9",
|
||||
"libc",
|
||||
"windows-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "k9"
|
||||
version = "0.11.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "32ddb58b0079a063218472916af599f2753ccb40942cdaba9d1f3fefccef17a9"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"colored",
|
||||
"diff",
|
||||
"lazy_static",
|
||||
"libc",
|
||||
"proc-macro2",
|
||||
"regex",
|
||||
"syn 1.0.109",
|
||||
"term_size",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "kernel32-sys"
|
||||
version = "0.2.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
|
||||
dependencies = [
|
||||
"winapi 0.2.8",
|
||||
"winapi-build",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "lazy_static"
|
||||
version = "1.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
version = "0.2.153"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
|
||||
|
||||
[[package]]
|
||||
name = "linux-raw-sys"
|
||||
version = "0.4.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
|
||||
|
||||
[[package]]
|
||||
name = "memchr"
|
||||
version = "2.7.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
|
||||
|
||||
[[package]]
|
||||
name = "nanoid"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8"
|
||||
dependencies = [
|
||||
"rand",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "once_cell"
|
||||
version = "1.19.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
|
||||
|
||||
[[package]]
|
||||
name = "os_str_bytes"
|
||||
version = "6.6.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1"
|
||||
|
||||
[[package]]
|
||||
name = "path-slash"
|
||||
version = "0.1.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "498a099351efa4becc6a19c72aa9270598e8fd274ca47052e37455241c88b696"
|
||||
|
||||
[[package]]
|
||||
name = "ppv-lite86"
|
||||
version = "0.2.17"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
|
||||
|
||||
[[package]]
|
||||
name = "predicates"
|
||||
version = "3.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8"
|
||||
dependencies = [
|
||||
"anstyle",
|
||||
"difflib",
|
||||
"predicates-core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "predicates-core"
|
||||
version = "1.0.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174"
|
||||
|
||||
[[package]]
|
||||
name = "predicates-tree"
|
||||
version = "1.0.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf"
|
||||
dependencies = [
|
||||
"predicates-core",
|
||||
"termtree",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro-error"
|
||||
version = "1.0.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
|
||||
dependencies = [
|
||||
"proc-macro-error-attr",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 1.0.109",
|
||||
"version_check",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro-error-attr"
|
||||
version = "1.0.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"version_check",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro2"
|
||||
version = "1.0.79"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
|
||||
dependencies = [
|
||||
"unicode-ident",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "quote"
|
||||
version = "1.0.35"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand"
|
||||
version = "0.8.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"rand_chacha",
|
||||
"rand_core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_chacha"
|
||||
version = "0.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
|
||||
dependencies = [
|
||||
"ppv-lite86",
|
||||
"rand_core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_core"
|
||||
version = "0.6.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
||||
dependencies = [
|
||||
"getrandom",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "regex"
|
||||
version = "1.10.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
|
||||
dependencies = [
|
||||
"aho-corasick",
|
||||
"memchr",
|
||||
"regex-automata",
|
||||
"regex-syntax",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "regex-automata"
|
||||
version = "0.4.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
|
||||
dependencies = [
|
||||
"aho-corasick",
|
||||
"memchr",
|
||||
"regex-syntax",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "regex-syntax"
|
||||
version = "0.8.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
|
||||
|
||||
[[package]]
|
||||
name = "rustix"
|
||||
version = "0.38.31"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
|
||||
dependencies = [
|
||||
"bitflags 2.4.2",
|
||||
"errno",
|
||||
"libc",
|
||||
"linux-raw-sys",
|
||||
"windows-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.197"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
version = "1.0.197"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.53",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "stdext"
|
||||
version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4a61b4ae487cb43d0479907e74d36f8813e9940bd3b1adcbecc69fe8a0cee3ec"
|
||||
|
||||
[[package]]
|
||||
name = "strsim"
|
||||
version = "0.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "1.0.109"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"unicode-ident",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "2.0.53"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"unicode-ident",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "system_shutdown"
|
||||
version = "3.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "035e081d603551d8d78db27d2232913269c749ea67648c369100049820406a14"
|
||||
dependencies = [
|
||||
"winapi 0.3.9",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "term"
|
||||
version = "0.4.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fa63644f74ce96fbeb9b794f66aff2a52d601cbd5e80f4b97123e3899f4570f1"
|
||||
dependencies = [
|
||||
"kernel32-sys",
|
||||
"winapi 0.2.8",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "term-painter"
|
||||
version = "0.2.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dcaa948f0e3e38470cd8dc8dcfe561a75c9e43f28075bb183845be2b9b3c08cf"
|
||||
dependencies = [
|
||||
"term",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "term_size"
|
||||
version = "0.3.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1e4129646ca0ed8f45d09b929036bafad5377103edd06e50bf574b353d2b08d9"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"winapi 0.3.9",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "termcolor"
|
||||
version = "1.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
|
||||
dependencies = [
|
||||
"winapi-util",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "termtree"
|
||||
version = "0.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
|
||||
|
||||
[[package]]
|
||||
name = "textwrap"
|
||||
version = "0.16.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-ident"
|
||||
version = "1.0.12"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
|
||||
|
||||
[[package]]
|
||||
name = "version_check"
|
||||
version = "0.9.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
|
||||
|
||||
[[package]]
|
||||
name = "vidmerger"
|
||||
version = "0.3.2"
|
||||
dependencies = [
|
||||
"assert_cmd",
|
||||
"clap",
|
||||
"ctor",
|
||||
"k9",
|
||||
"nanoid",
|
||||
"path-slash",
|
||||
"regex",
|
||||
"stdext",
|
||||
"system_shutdown",
|
||||
"term-painter",
|
||||
"which",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wait-timeout"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
|
||||
dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wasi"
|
||||
version = "0.11.0+wasi-snapshot-preview1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
|
||||
|
||||
[[package]]
|
||||
name = "which"
|
||||
version = "4.4.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
|
||||
dependencies = [
|
||||
"either",
|
||||
"home",
|
||||
"once_cell",
|
||||
"rustix",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "winapi"
|
||||
version = "0.2.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
|
||||
|
||||
[[package]]
|
||||
name = "winapi"
|
||||
version = "0.3.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
|
||||
dependencies = [
|
||||
"winapi-i686-pc-windows-gnu",
|
||||
"winapi-x86_64-pc-windows-gnu",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "winapi-build"
|
||||
version = "0.1.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
|
||||
|
||||
[[package]]
|
||||
name = "winapi-i686-pc-windows-gnu"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
||||
|
||||
[[package]]
|
||||
name = "winapi-util"
|
||||
version = "0.1.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
|
||||
dependencies = [
|
||||
"winapi 0.3.9",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "winapi-x86_64-pc-windows-gnu"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
||||
|
||||
[[package]]
|
||||
name = "windows-sys"
|
||||
version = "0.52.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
|
||||
dependencies = [
|
||||
"windows-targets",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-targets"
|
||||
version = "0.52.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
|
||||
dependencies = [
|
||||
"windows_aarch64_gnullvm",
|
||||
"windows_aarch64_msvc",
|
||||
"windows_i686_gnu",
|
||||
"windows_i686_msvc",
|
||||
"windows_x86_64_gnu",
|
||||
"windows_x86_64_gnullvm",
|
||||
"windows_x86_64_msvc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows_aarch64_gnullvm"
|
||||
version = "0.52.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
|
||||
|
||||
[[package]]
|
||||
name = "windows_aarch64_msvc"
|
||||
version = "0.52.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
|
||||
|
||||
[[package]]
|
||||
name = "windows_i686_gnu"
|
||||
version = "0.52.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
|
||||
|
||||
[[package]]
|
||||
name = "windows_i686_msvc"
|
||||
version = "0.52.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
|
||||
|
||||
[[package]]
|
||||
name = "windows_x86_64_gnu"
|
||||
version = "0.52.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
|
||||
|
||||
[[package]]
|
||||
name = "windows_x86_64_gnullvm"
|
||||
version = "0.52.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
|
||||
|
||||
[[package]]
|
||||
name = "windows_x86_64_msvc"
|
||||
version = "0.52.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
|
40
pkgs/by-name/vi/vidmerger/package.nix
Normal file
40
pkgs/by-name/vi/vidmerger/package.nix
Normal file
@ -0,0 +1,40 @@
|
||||
{ lib
|
||||
, ffmpeg
|
||||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "vidmerger";
|
||||
version = "0.3.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "TGotwig";
|
||||
repo = "vidmerger";
|
||||
rev = version;
|
||||
hash = "sha256-E3Y1UaYXl6NdCMM7IepqFzWNuHaMGLCN5BvQ/lxjFoc=";
|
||||
};
|
||||
|
||||
cargoLock = {
|
||||
lockFile = ./Cargo.lock;
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
cp ${./Cargo.lock} Cargo.lock
|
||||
'';
|
||||
|
||||
# Running cargo test -- . fails because it expects to have two mp4 files so that it can test the video merging functionalities
|
||||
doCheck = false;
|
||||
|
||||
buildInputs = [
|
||||
ffmpeg
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Merge video & audio files via CLI ";
|
||||
homepage = "https://github.com/TGotwig/vidmerger";
|
||||
license = with licenses; [ mit commons-clause ];
|
||||
maintainers = with maintainers; [ ByteSudoer ];
|
||||
mainProgram = "vidmerger";
|
||||
};
|
||||
}
|
@ -1,9 +1,8 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, SDL2
|
||||
, SDL2_image
|
||||
, copyDesktopItems
|
||||
, fetchFromGitHub
|
||||
, gettext
|
||||
, glib
|
||||
, gtk3
|
||||
@ -20,7 +19,8 @@
|
||||
, openssl
|
||||
, perl
|
||||
, pkg-config
|
||||
, python3
|
||||
, python3Packages
|
||||
, stdenv
|
||||
, vte
|
||||
, which
|
||||
, wrapGAppsHook
|
||||
@ -34,8 +34,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "xemu-project";
|
||||
repo = "xemu";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-FFxYp53LLDOPZ1Inr70oyQXhNjJO23G+gNmXd/lvrYs=";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-FFxYp53LLDOPZ1Inr70oyQXhNjJO23G+gNmXd/lvrYs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@ -44,11 +44,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
ninja
|
||||
perl
|
||||
pkg-config
|
||||
python3
|
||||
python3.pkgs.pyyaml
|
||||
which
|
||||
wrapGAppsHook
|
||||
];
|
||||
] ++ (with python3Packages; [
|
||||
python
|
||||
pyyaml
|
||||
]);
|
||||
|
||||
buildInputs = [
|
||||
SDL2
|
||||
@ -91,13 +92,18 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
})
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
postPatch = ''
|
||||
patchShebangs .
|
||||
configureFlagsArray+=("--extra-cflags=-DXBOX=1 -Wno-error=redundant-decls")
|
||||
substituteInPlace ./scripts/xemu-version.sh \
|
||||
--replace 'date -u' "date -d @$SOURCE_DATE_EPOCH '+%Y-%m-%d %H:%M:%S'"
|
||||
# When the data below can't be obtained through git, the build process tries
|
||||
# to run `XEMU_COMMIT=$(cat XEMU_COMMIT)` (and similar)
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
configureFlagsArray+=("--extra-cflags=-DXBOX=1 -Wno-error=redundant-decls")
|
||||
'' +
|
||||
# When the data below can't be obtained through git, the build process tries
|
||||
# to run `XEMU_COMMIT=$(cat XEMU_COMMIT)` (and similar)
|
||||
''
|
||||
echo '${finalAttrs.version}' > XEMU_VERSION
|
||||
'';
|
||||
|
||||
@ -106,18 +112,19 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
substituteInPlace ./build.ninja --replace /usr/bin/env $(which env)
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
installPhase = let
|
||||
installIcon = resolution: ''
|
||||
install -Dm644 -T ../ui/icons/xemu_${resolution}.png \
|
||||
$out/share/icons/hicolor/${resolution}/apps/xemu.png
|
||||
'';
|
||||
in ''
|
||||
runHook preInstall
|
||||
|
||||
install -Dm755 -T qemu-system-i386 $out/bin/xemu
|
||||
'' +
|
||||
# Generate code to install the icons
|
||||
(lib.concatMapStringsSep ";\n"
|
||||
(res:
|
||||
"install -Dm644 -T ../ui/icons/xemu_${res}.png $out/share/icons/hicolor/${res}/apps/xemu.png")
|
||||
[ "16x16" "24x24" "32x32" "48x48" "128x128" "256x256" "512x512" ]) +
|
||||
(lib.concatMapStringsSep "\n" installIcon
|
||||
[ "16x16" "24x24" "32x32" "48x48" "128x128" "256x256" "512x512" ]) + "\n" +
|
||||
''
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
@ -131,8 +138,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
changelog = "https://github.com/xemu-project/xemu/releases/tag/v${finalAttrs.version}";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
maintainers = with lib.maintainers; [ AndersonTorres genericnerdyusername ];
|
||||
platforms = lib.platforms.linux;
|
||||
mainProgram = "xemu";
|
||||
maintainers = with lib.maintainers; [ AndersonTorres ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
@ -97,6 +97,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# The icon validator needs to access the gdk-pixbuf loaders in the Nix store
|
||||
# and cannot bind FHS paths since those are not available on NixOS.
|
||||
finalAttrs.passthru.icon-validator-patch
|
||||
|
||||
# Try mounting fonts and icons from NixOS locations if FHS locations don't exist.
|
||||
# https://github.com/NixOS/nixpkgs/issues/119433
|
||||
./fix-fonts-icons.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
87
pkgs/development/libraries/flatpak/fix-fonts-icons.patch
Normal file
87
pkgs/development/libraries/flatpak/fix-fonts-icons.patch
Normal file
@ -0,0 +1,87 @@
|
||||
diff --git a/common/flatpak-run.c b/common/flatpak-run.c
|
||||
index 94ad013..5c9f55e 100644
|
||||
--- a/common/flatpak-run.c
|
||||
+++ b/common/flatpak-run.c
|
||||
@@ -871,6 +871,49 @@ out:
|
||||
return res;
|
||||
}
|
||||
|
||||
+static void
|
||||
+get_nix_closure (GHashTable *closure, const gchar *source_path)
|
||||
+{
|
||||
+ if (g_file_test (source_path, G_FILE_TEST_IS_SYMLINK))
|
||||
+ {
|
||||
+ g_autofree gchar *path = g_malloc(PATH_MAX);
|
||||
+ realpath(source_path, path);
|
||||
+ if (g_str_has_prefix(path, "/nix/store/"))
|
||||
+ {
|
||||
+ *strchr(path + strlen("/nix/store/"), '/') = 0;
|
||||
+ g_hash_table_add(closure, g_steal_pointer (&path));
|
||||
+ }
|
||||
+ }
|
||||
+ else if (g_file_test (source_path, G_FILE_TEST_IS_DIR))
|
||||
+ {
|
||||
+ g_autoptr(GDir) dir = g_dir_open(source_path, 0, NULL);
|
||||
+ const gchar *file_name;
|
||||
+ while ((file_name = g_dir_read_name(dir)))
|
||||
+ {
|
||||
+ g_autofree gchar *path = g_build_filename (source_path, file_name, NULL);
|
||||
+ get_nix_closure (closure, path);
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+add_nix_store_symlink_targets (FlatpakBwrap *bwrap, const gchar *source_path)
|
||||
+{
|
||||
+ GHashTable *closure = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
|
||||
+
|
||||
+ get_nix_closure(closure, source_path);
|
||||
+
|
||||
+ GHashTableIter iter;
|
||||
+ gpointer path;
|
||||
+ g_hash_table_iter_init(&iter, closure);
|
||||
+ while (g_hash_table_iter_next(&iter, &path, NULL))
|
||||
+ {
|
||||
+ flatpak_bwrap_add_args (bwrap, "--ro-bind", path, path, NULL);
|
||||
+ }
|
||||
+
|
||||
+ g_hash_table_destroy(closure);
|
||||
+}
|
||||
+
|
||||
static void
|
||||
add_font_path_args (FlatpakBwrap *bwrap)
|
||||
{
|
||||
@@ -898,6 +946,18 @@ add_font_path_args (FlatpakBwrap *bwrap)
|
||||
"\t<remap-dir as-path=\"%s\">/run/host/fonts</remap-dir>\n",
|
||||
SYSTEM_FONTS_DIR);
|
||||
}
|
||||
+ else if (g_file_test ("/run/current-system/sw/share/X11/fonts", G_FILE_TEST_EXISTS))
|
||||
+ {
|
||||
+ add_nix_store_symlink_targets (bwrap, "/run/current-system/sw/share/X11/fonts");
|
||||
+ flatpak_bwrap_add_args (bwrap,
|
||||
+ "--ro-bind",
|
||||
+ "/run/current-system/sw/share/X11/fonts",
|
||||
+ "/run/host/fonts",
|
||||
+ NULL);
|
||||
+ g_string_append_printf (xml_snippet,
|
||||
+ "\t<remap-dir as-path=\"%s\">/run/host/fonts</remap-dir>\n",
|
||||
+ "/run/current-system/sw/share/X11/fonts");
|
||||
+ }
|
||||
|
||||
if (g_file_test ("/usr/local/share/fonts", G_FILE_TEST_EXISTS))
|
||||
{
|
||||
@@ -998,6 +1058,13 @@ add_icon_path_args (FlatpakBwrap *bwrap)
|
||||
"--ro-bind", "/usr/share/icons", "/run/host/share/icons",
|
||||
NULL);
|
||||
}
|
||||
+ else if (g_file_test ("/run/current-system/sw/share/icons", G_FILE_TEST_IS_DIR))
|
||||
+ {
|
||||
+ add_nix_store_symlink_targets (bwrap, "/run/current-system/sw/share/icons");
|
||||
+ flatpak_bwrap_add_args (bwrap,
|
||||
+ "--ro-bind", "/run/current-system/sw/share/icons", "/run/host/share/icons",
|
||||
+ NULL);
|
||||
+ }
|
||||
|
||||
user_icons_path = g_build_filename (g_get_user_data_dir (), "icons", NULL);
|
||||
user_icons = g_file_new_for_path (user_icons_path);
|
@ -1,5 +1,5 @@
|
||||
{ lib, stdenv, fetchFromGitiles, meson, ninja, pkg-config, python3
|
||||
, aemu, libdrm, libglvnd, vulkan-headers, vulkan-loader, xorg
|
||||
{ lib, stdenv, fetchFromGitiles, fetchpatch, meson, ninja, pkg-config, python3
|
||||
, aemu, darwin, libdrm, libglvnd, vulkan-headers, vulkan-loader, xorg
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
@ -12,14 +12,45 @@ stdenv.mkDerivation {
|
||||
hash = "sha256-IYXkaHZPEYIE9KW731GN6x6yRS+FYtP1zyHcaSofhIM=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Make libdrm an optional dependency, which is required to build on Darwin.
|
||||
(fetchpatch {
|
||||
url = "https://android.googlesource.com/platform/hardware/google/gfxstream/+/a8df2a3eb099b419a7b3638e68ea30b4cffb751b%5E%21/?format=TEXT";
|
||||
decode = "base64 -d";
|
||||
hash = "sha256-shjeNuxtQokscCGBKEUbOPKOWRELBAnHFNj3Y5w87Nw=";
|
||||
})
|
||||
];
|
||||
|
||||
# Ensure that meson can find an Objective-C compiler on Darwin.
|
||||
postPatch = lib.optionalString stdenv.isDarwin ''
|
||||
substituteInPlace meson.build \
|
||||
--replace-fail "project('gfxstream_backend', 'cpp', 'c'" "project('gfxstream_backend', 'cpp', 'c', 'objc'"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ meson ninja pkg-config python3 ];
|
||||
buildInputs = [ aemu libglvnd vulkan-headers vulkan-loader xorg.libX11 ]
|
||||
++ lib.optional (lib.meta.availableOn stdenv.hostPlatform libdrm) libdrm;
|
||||
++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform libdrm) [ libdrm ]
|
||||
++ lib.optionals stdenv.isDarwin [
|
||||
darwin.apple_sdk.frameworks.Cocoa
|
||||
darwin.apple_sdk.frameworks.CoreGraphics
|
||||
darwin.apple_sdk.frameworks.IOKit
|
||||
darwin.apple_sdk.frameworks.IOSurface
|
||||
darwin.apple_sdk.frameworks.OpenGL
|
||||
darwin.apple_sdk.frameworks.QuartzCore
|
||||
];
|
||||
|
||||
env = lib.optionalAttrs stdenv.isDarwin {
|
||||
NIX_LDFLAGS = toString [
|
||||
"-framework Cocoa"
|
||||
"-framework IOKit"
|
||||
"-framework IOSurface"
|
||||
"-framework OpenGL"
|
||||
"-framework QuartzCore"
|
||||
"-needed-lvulkan"
|
||||
];
|
||||
};
|
||||
|
||||
# dlopens libvulkan.
|
||||
#
|
||||
# XXX: Unsure if this is required on Darwin. If it is, it probably
|
||||
# needs to be done using install_name_tool.
|
||||
preConfigure = lib.optionalString (!stdenv.isDarwin) ''
|
||||
mesonFlagsArray=(-Dcpp_link_args="-Wl,--push-state -Wl,--no-as-needed -lvulkan -Wl,--pop-state")
|
||||
'';
|
||||
|
@ -1,40 +1,66 @@
|
||||
{ lib, stdenv, fetchFromGitHub, jdk, jre, ant, libffi, texinfo, pkg-config }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, ant
|
||||
, jdk
|
||||
, libffi
|
||||
, pkg-config
|
||||
, texinfo
|
||||
, stripJavaArchivesHook
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "jffi";
|
||||
version = "1.3.13";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jnr";
|
||||
repo = "jffi";
|
||||
rev = "jffi-${version}";
|
||||
sha256 = "sha256-aBQkkZyXZkaJc4sr/jHnIRaJYP116u4Jqsr9XXzfOBA=";
|
||||
rev = "jffi-${finalAttrs.version}";
|
||||
hash = "sha256-aBQkkZyXZkaJc4sr/jHnIRaJYP116u4Jqsr9XXzfOBA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ jdk ant texinfo pkg-config ];
|
||||
buildInputs = [ libffi ] ;
|
||||
nativeBuildInputs = [
|
||||
ant
|
||||
jdk
|
||||
pkg-config
|
||||
texinfo
|
||||
stripJavaArchivesHook
|
||||
];
|
||||
|
||||
buildInputs = [ libffi ];
|
||||
|
||||
# The pkg-config script in the build.xml doesn't work propery
|
||||
# set the lib path manually to work around this.
|
||||
env.LIBFFI_LIBS = "${libffi}/lib/libffi${stdenv.hostPlatform.extensions.sharedLibrary}";
|
||||
env.ANT_ARGS = "-Duse.system.libffi=1";
|
||||
|
||||
buildPhase = ''
|
||||
# The pkg-config script in the build.xml doesn't work propery
|
||||
# set the lib path manually to work around this.
|
||||
export LIBFFI_LIBS="${libffi}/lib/libffi.so"
|
||||
|
||||
ant -Duse.system.libffi=1 jar
|
||||
ant -Duse.system.libffi=1 archive-platform-jar
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/java
|
||||
cp -r dist/* $out/share/java
|
||||
runHook preBuild
|
||||
ant jar
|
||||
ant archive-platform-jar
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
checkPhase = ''
|
||||
# The pkg-config script in the build.xml doesn't work propery
|
||||
# set the lib path manually to work around this.
|
||||
export LIBFFI_LIBS="${libffi}/lib/libffi.so"
|
||||
|
||||
ant -Duse.system.libffi=1 test
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
ant test
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -Dm644 dist/*.jar -t $out/share/java
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# nix can't detect libffi as a dependency inside the jar file, so we create
|
||||
# a dummy file with the path to libffi, to make sure that nix knows about it
|
||||
postFixup = ''
|
||||
mkdir -p $out/nix-support
|
||||
echo ${libffi} > $out/nix-support/depends
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
@ -45,4 +71,4 @@ stdenv.mkDerivation rec {
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ bachp ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
@ -25,13 +25,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "raylib";
|
||||
version = "4.5.0";
|
||||
version = "5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "raysan5";
|
||||
repo = "raylib";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-Uqqzq5shDp0AgSBT5waHBNUkEu0LRj70SNOlR5R2yAM=";
|
||||
hash = "sha256-gEstNs3huQ1uikVXOW4uoYnIDr5l8O9jgZRTX1mkRww=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
@ -56,20 +56,17 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
passthru.tests = [ raylib-games ];
|
||||
|
||||
patches = [
|
||||
# Patch version in CMakeList to 4.5.0
|
||||
# Remove this when updating to a new revision
|
||||
# Patch version in CMakeLists.txt to 5.0.0
|
||||
# The library author doesn't use cmake, so when updating this package please
|
||||
# check that the resulting library extension matches the version
|
||||
# and remove/update this patch (resulting library name should match
|
||||
# libraylib.so.${finalAttrs.version}
|
||||
(fetchpatch {
|
||||
url = "https://github.com/raysan5/raylib/commit/0d4db7ad7f6fd442ed165ebf8ab8b3f4033b04e7.patch";
|
||||
hash = "sha256-RGokbQAwJAZm2FU2VNwraE3xko8E+RLLFjUfDRXeKhA=";
|
||||
url = "https://github.com/raysan5/raylib/commit/032cc497ca5aaca862dc926a93c2a45ed8017737.patch";
|
||||
hash = "sha256-qsX5AwyQaGoRsbdszOO7tUF9dR+AkEFi4ebNkBVHNEY=";
|
||||
})
|
||||
];
|
||||
|
||||
# fix libasound.so/libpulse.so not being found
|
||||
preFixup = ''
|
||||
${lib.optionalString alsaSupport "patchelf --add-needed ${alsa-lib}/lib/libasound.so $out/lib/libraylib.so.${finalAttrs.version}"}
|
||||
${lib.optionalString pulseSupport "patchelf --add-needed ${libpulseaudio}/lib/libpulse.so $out/lib/libraylib.so.${finalAttrs.version}"}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A simple and easy-to-use library to enjoy videogames programming";
|
||||
homepage = "https://www.raylib.com/";
|
||||
|
31
pkgs/development/libraries/rutabaga_gfx/darwin-install.patch
Normal file
31
pkgs/development/libraries/rutabaga_gfx/darwin-install.patch
Normal file
@ -0,0 +1,31 @@
|
||||
diff --git a/rutabaga_gfx/ffi/Makefile b/rutabaga_gfx/ffi/Makefile
|
||||
index f8c7820bf..e88a6c308 100644
|
||||
--- a/rutabaga_gfx/ffi/Makefile
|
||||
+++ b/rutabaga_gfx/ffi/Makefile
|
||||
@@ -47,24 +47,16 @@ build:
|
||||
cargo build $(gfxstream_feature) $(release)
|
||||
|
||||
install: build
|
||||
-ifeq ($(UNAME), Linux)
|
||||
install -D -m 755 $(OUT)/$(LIB_NAME) $(DESTDIR)$(libdir)/$(LIB_NAME).$(RUTABAGA_VERSION)
|
||||
-endif
|
||||
ifeq ($(UNAME), Darwin)
|
||||
- install_name_tool -id $(DESTDIR)$(libdir)/$(LIB_NAME).$(RUTABAGA_VERSION) $(DESTDIR)$(libdir)/$(LIB_NAME)
|
||||
+ install_name_tool -id $(DESTDIR)$(libdir)/$(LIB_NAME).$(RUTABAGA_VERSION) $(DESTDIR)$(libdir)/$(LIB_NAME).$(RUTABAGA_VERSION)
|
||||
endif
|
||||
|
||||
ln -sf $(LIB_NAME).$(RUTABAGA_VERSION) $(DESTDIR)$(libdir)/$(LIB_NAME).$(RUTABAGA_VERSION_MAJOR)
|
||||
ln -sf $(LIB_NAME).$(RUTABAGA_VERSION) $(DESTDIR)$(libdir)/$(LIB_NAME)
|
||||
|
||||
-ifeq ($(UNAME), Linux)
|
||||
install -D -m 0644 $(SRC)/share/rutabaga_gfx_ffi.pc $(DESTDIR)$(libdir)/pkgconfig/rutabaga_gfx_ffi.pc
|
||||
install -D -m 0644 $(SRC)/include/rutabaga_gfx_ffi.h $(DESTDIR)$(includedir)/rutabaga_gfx_ffi.h
|
||||
-endif
|
||||
-ifeq ($(UNAME), Darwin)
|
||||
- install -m 0644 $(SRC)/share/rutabaga_gfx_ffi.pc $(DESTDIR)$(libdir)/pkgconfig/rutabaga_gfx_ffi.pc
|
||||
- install -m 0644 $(SRC)/include/rutabaga_gfx_ffi.h $(DESTDIR)$(includedir)/rutabaga_gfx_ffi.h
|
||||
-endif
|
||||
|
||||
clean:
|
||||
cargo clean $(release)
|
||||
|
@ -8,6 +8,7 @@
|
||||
, aemu
|
||||
, gfxstream
|
||||
, libdrm
|
||||
, libiconv
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@ -29,10 +30,19 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
decode = "base64 -d";
|
||||
hash = "sha256-Ji1bK7jnRlg0OpDfCLcTHfPSiz3zYcdgsWL4n3EoIYI=";
|
||||
})
|
||||
# Fix error in Makefile where it uses eight spaces instead of a tab
|
||||
# https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4863380
|
||||
(fetchpatch {
|
||||
url = "https://chromium.googlesource.com/crosvm/crosvm/+/fc415bccc43d36f63a2fd4c28878591bb1053450%5E%21/?format=TEXT";
|
||||
decode = "base64 -d";
|
||||
hash = "sha256-SLzlZ4o1+R2bGTPvA0a5emq97hOIIIHrubFhcQjqYwg=";
|
||||
})
|
||||
# Install the dylib on Darwin.
|
||||
./darwin-install.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ cargo pkg-config rustPlatform.cargoSetupHook ];
|
||||
buildInputs = lib.optionals (lib.meta.availableOn stdenv.hostPlatform gfxstream) ([
|
||||
buildInputs = [ libiconv ] ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform gfxstream) ([
|
||||
aemu
|
||||
gfxstream
|
||||
] ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform libdrm) [
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "bc-detect-secrets";
|
||||
version = "1.5.4";
|
||||
version = "1.5.5";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@ -25,14 +25,14 @@ buildPythonPackage rec {
|
||||
owner = "bridgecrewio";
|
||||
repo = "detect-secrets";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-Gm8PYN9vqYkGaGKpLZkx0Ehd1P3G2d5LkSjWXxpPerI=";
|
||||
hash = "sha256-05hxc34ecSoAp0GBVf9yq2BC928wxZOLZJHAbJ7cdtk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
build-system = [
|
||||
setuptools
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
dependencies = [
|
||||
pyyaml
|
||||
requests
|
||||
unidiff
|
||||
|
@ -1,10 +1,11 @@
|
||||
{ lib, buildPythonPackage, fetchPypi }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "CJKwrap";
|
||||
pname = "cjkwrap";
|
||||
version = "2.2";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
pname = "CJKwrap";
|
||||
inherit version;
|
||||
sha256 = "1b603sg6c2gv9vmlxwr6r1qvhadqk3qp6vifmijris504zjx5ix2";
|
||||
};
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
||||
}:
|
||||
buildPythonPackage rec {
|
||||
pname = "clickhouse-connect";
|
||||
version = "0.7.3";
|
||||
version = "0.7.4";
|
||||
|
||||
format = "setuptools";
|
||||
|
||||
@ -33,7 +33,7 @@ buildPythonPackage rec {
|
||||
repo = "clickhouse-connect";
|
||||
owner = "ClickHouse";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-MA902Dyx3a8GTZ52LYY0UrWqNEFmibqIsdz6PFZIkIY=";
|
||||
hash = "sha256-YEtcM9+GO8mYv2pyaBYmXdmWLXVuteKtQIJR4H+Xsd4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cython_3 ];
|
||||
|
@ -5,11 +5,12 @@
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "CppHeaderParser";
|
||||
pname = "cppheaderparser";
|
||||
version = "2.7.4";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
pname = "CppHeaderParser";
|
||||
inherit version;
|
||||
hash = "sha256-OCswQW2VsKXoUCshSBDcrCpWQykX4mUUR9Or4lPjzEI=";
|
||||
};
|
||||
|
||||
|
@ -9,12 +9,13 @@
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "Delorean";
|
||||
pname = "delorean";
|
||||
version = "1.0.0";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
pname = "Delorean";
|
||||
inherit version;
|
||||
hash = "sha256-/md4bhIzhSOEi+xViKZYxNQl4S1T61HP74cL7I9XYTQ=";
|
||||
};
|
||||
|
||||
|
@ -9,8 +9,8 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "dnfile";
|
||||
version = "0.14.1";
|
||||
format = "pyproject";
|
||||
version = "0.15.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
@ -18,15 +18,15 @@ buildPythonPackage rec {
|
||||
owner = "malwarefrank";
|
||||
repo = "dnfile";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-5xkoG7c9Piwrv+9qour7MZ+rabdngtd05b0T+AU8tSo=";
|
||||
hash = "sha256-HzlMJ4utBHyLLhO+u0uiTfqtk8jX80pEyO75QvpJ3yg=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
build-system = [
|
||||
setuptools
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
dependencies = [
|
||||
pefile
|
||||
];
|
||||
|
||||
|
@ -1,11 +1,12 @@
|
||||
{ lib, fetchPypi, buildPythonPackage, isPy3k, future }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "ECPy";
|
||||
pname = "ecpy";
|
||||
version = "1.2.5";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
pname = "ECPy";
|
||||
inherit version;
|
||||
sha256 = "9635cffb9b6ecf7fd7f72aea1665829ac74a1d272006d0057d45a621aae20228";
|
||||
};
|
||||
|
||||
|
47
pkgs/development/python-modules/enterpriseattack/default.nix
Normal file
47
pkgs/development/python-modules/enterpriseattack/default.nix
Normal file
@ -0,0 +1,47 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, pythonOlder
|
||||
, requests
|
||||
, setuptools
|
||||
, ujson
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "enterpriseattack";
|
||||
version = "0.1.8";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xakepnz";
|
||||
repo = "enterpriseattack";
|
||||
rev = "refs/tags/v.${version}";
|
||||
hash = "sha256-cxbGc9iQe94Th6MSUldI17oVCclFhUM78h1w+6KXzm4=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
requests
|
||||
ujson
|
||||
];
|
||||
|
||||
# Tests require network access
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [
|
||||
"enterpriseattack"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Module to interact with the Mitre Att&ck Enterprise dataset";
|
||||
homepage = "https://github.com/xakepnz/enterpriseattack";
|
||||
changelog = "https://github.com/xakepnz/enterpriseattack/releases/tag/v.${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
@ -1,11 +1,12 @@
|
||||
{ lib, buildPythonPackage, fetchPypi, isPy3k }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "HeapDict";
|
||||
pname = "heapdict";
|
||||
version = "1.0.1";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
pname = "HeapDict";
|
||||
inherit version;
|
||||
sha256 = "8495f57b3e03d8e46d5f1b2cc62ca881aca392fd5cc048dc0aa2e1a6d23ecdb6";
|
||||
};
|
||||
|
||||
|
42
pkgs/development/python-modules/hsh/default.nix
Normal file
42
pkgs/development/python-modules/hsh/default.nix
Normal file
@ -0,0 +1,42 @@
|
||||
{ buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, lib
|
||||
, commandlines
|
||||
, unittestCheckHook
|
||||
, pexpect
|
||||
, naked
|
||||
, nix-update-script
|
||||
, setuptools
|
||||
, wheel
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "hsh";
|
||||
version = "1.1.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "chrissimpkins";
|
||||
repo = "hsh";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-bAAytoidFHH2dSXqN9aqBd2H4p/rwTWXIZa1t5Djdz0=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ commandlines ];
|
||||
|
||||
nativeBuildInputs = [ setuptools wheel ];
|
||||
|
||||
nativeCheckInputs = [ unittestCheckHook pexpect naked ];
|
||||
|
||||
preCheck = "cd tests";
|
||||
|
||||
pythonImportsCheck = [ "hsh" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Cross-platform command line application that generates file hash digests and performs file integrity checks via file hash digest comparisons";
|
||||
homepage = "https://github.com/chrissimpkins/hsh";
|
||||
downloadPage = "https://github.com/chrissimpkins/hsh/releases";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.lucasew ];
|
||||
};
|
||||
}
|
@ -38,7 +38,7 @@ buildPythonPackage rec {
|
||||
owner = "google";
|
||||
repo = "jax";
|
||||
# google/jax contains tags for jax and jaxlib. Only use jax tags!
|
||||
rev = "refs/tags/jaxlib-v${version}";
|
||||
rev = "refs/tags/jax-v${version}";
|
||||
hash = "sha256-poQQo2ZgEhPYzK3aCs+BjaHTNZbezJAECd+HOdY1Yok=";
|
||||
};
|
||||
|
||||
@ -144,6 +144,9 @@ buildPythonPackage rec {
|
||||
};
|
||||
};
|
||||
|
||||
# updater fails to pick the correct branch
|
||||
passthru.skipBulkUpdate = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Differentiate, compile, and transform Numpy code";
|
||||
homepage = "https://github.com/google/jax";
|
||||
|
@ -1,11 +1,12 @@
|
||||
{ lib, buildPythonPackage, fetchPypi, numpy, h5py }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "Keras_Applications";
|
||||
pname = "keras-applications";
|
||||
version = "1.0.8";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
pname = "Keras_Applications";
|
||||
inherit version;
|
||||
sha256 = "5579f9a12bcde9748f4a12233925a59b93b73ae6947409ff34aa2ba258189fe5";
|
||||
};
|
||||
|
||||
|
@ -1,11 +1,12 @@
|
||||
{ lib, buildPythonPackage, fetchPypi, numpy, six, scipy, pillow, pytest, keras }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "Keras_Preprocessing";
|
||||
pname = "keras-preprocessing";
|
||||
version = "1.1.2";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
pname = "Keras_Preprocessing";
|
||||
inherit version;
|
||||
sha256 = "add82567c50c8bc648c14195bf544a5ce7c1f76761536956c3d2978970179ef3";
|
||||
};
|
||||
|
||||
|
@ -1,34 +1,50 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, fetchPypi
|
||||
, llama-index-core
|
||||
, llama-index-embeddings-openai
|
||||
, llama-index-llms-openai
|
||||
, llama-index-vector-stores-chroma
|
||||
, poetry-core
|
||||
, pythonOlder
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "llama-index-cli";
|
||||
|
||||
inherit (llama-index-core) version src meta;
|
||||
|
||||
version = "0.1.11";
|
||||
pyproject = true;
|
||||
|
||||
sourceRoot = "${src.name}/${pname}";
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
nativeBuildInputs = [
|
||||
src = fetchPypi {
|
||||
pname = "llama_index_cli";
|
||||
inherit version;
|
||||
hash = "sha256-XecH4SWqh31wxh2nDMRP6nKp9623f0E7Ufc7He/911A=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
poetry-core
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
dependencies = [
|
||||
llama-index-core
|
||||
llama-index-embeddings-openai
|
||||
llama-index-llms-openai
|
||||
llama-index-vector-stores-chroma
|
||||
];
|
||||
|
||||
# Tests are only available in the mono repo
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [
|
||||
"llama_index.cli"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "LlamaIndex CLI";
|
||||
homepage = "https://github.com/run-llama/llama_index/tree/main/llama-index-cli";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -1,36 +1,52 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, fetchPypi
|
||||
, google-generativeai
|
||||
, llama-index-core
|
||||
, poetry-core
|
||||
, pytestCheckHook
|
||||
, pythonRelaxDepsHook
|
||||
, pythonOlder
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "llama-index-embeddings-gemini";
|
||||
version = "0.1.3";
|
||||
|
||||
inherit (llama-index-core) src meta;
|
||||
|
||||
version = "0.1.5";
|
||||
pyproject = true;
|
||||
|
||||
sourceRoot = "${src.name}/llama-index-integrations/embeddings/${pname}";
|
||||
disabled = pythonOlder "3.9";
|
||||
|
||||
nativeBuildInputs = [
|
||||
poetry-core
|
||||
src = fetchPypi {
|
||||
pname = "llama_index_embeddings_gemini";
|
||||
inherit version;
|
||||
hash = "sha256-FQzZ+MjuAApOImpxQhuaCFDIKdojzD5zqDOepo8fCNo=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = [
|
||||
"google-generativeai"
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
build-system = [
|
||||
poetry-core
|
||||
pythonRelaxDepsHook
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
google-generativeai
|
||||
llama-index-core
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
# Tests are only available in the mono repo
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [
|
||||
"llama_index.embeddings.gemini"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "LlamaIndex Llms Integration for Gemini";
|
||||
homepage = "https://github.com/run-llama/llama_index/tree/main/llama-index-integrations/embeddings/llama-index-embeddings-gemini";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
||||
|
@ -1,27 +1,30 @@
|
||||
{ lib
|
||||
, beautifulsoup4
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, fetchPypi
|
||||
, llama-index-core
|
||||
, poetry-core
|
||||
, pymupdf
|
||||
, pypdf
|
||||
, pytestCheckHook
|
||||
, pythonOlder
|
||||
, pythonRelaxDepsHook
|
||||
, striprtf
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "llama-index-readers-file";
|
||||
version = "0.1.7";
|
||||
|
||||
inherit (llama-index-core) src meta;
|
||||
|
||||
version = "0.1.12";
|
||||
pyproject = true;
|
||||
|
||||
sourceRoot = "${src.name}/llama-index-integrations/readers/${pname}";
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "llama_index_readers_file";
|
||||
inherit version;
|
||||
hash = "sha256-YGXL+AsPtdGJVYuLkK273JKsuGFH/KGS2I/MJwStKvM=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = [
|
||||
"beautifulsoup4"
|
||||
"pymupdf"
|
||||
"pypdf"
|
||||
];
|
||||
@ -30,23 +33,30 @@ buildPythonPackage rec {
|
||||
"bs4"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
build-system = [
|
||||
poetry-core
|
||||
pythonRelaxDepsHook
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
dependencies = [
|
||||
beautifulsoup4
|
||||
llama-index-core
|
||||
pymupdf
|
||||
pypdf
|
||||
striprtf
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
# Tests are only available in the mono repo
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [
|
||||
"llama_index.readers.file"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "LlamaIndex Readers Integration for files";
|
||||
homepage = "https://github.com/run-llama/llama_index/tree/main/llama-index-integrations/readers/llama-index-readers-file";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
||||
|
@ -1,34 +1,43 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, fetchPypi
|
||||
, llama-index-core
|
||||
, poetry-core
|
||||
, pytestCheckHook
|
||||
, pythonOlder
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "llama-index-readers-json";
|
||||
version = "0.1.2";
|
||||
|
||||
inherit (llama-index-core) src meta;
|
||||
|
||||
version = "0.1.5";
|
||||
pyproject = true;
|
||||
|
||||
sourceRoot = "${src.name}/llama-index-integrations/readers/${pname}";
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
nativeBuildInputs = [
|
||||
src = fetchPypi {
|
||||
pname = "llama_index_readers_json";
|
||||
inherit version;
|
||||
hash = "sha256-H+CG+2FtoOF/DUG6EuAWzY2xe1upLX0pakVutJTZFE0=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
poetry-core
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
dependencies = [
|
||||
llama-index-core
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
# Tests are only available in the mono repo
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [
|
||||
"llama_index.readers.json"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "LlamaIndex Readers Integration for Json";
|
||||
homepage = "https://github.com/run-llama/llama_index/tree/main/llama-index-integrations/readers/llama-index-readers-json";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
||||
|
@ -1,24 +1,26 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, cython
|
||||
, cython_3
|
||||
, fetchPypi
|
||||
, pythonOlder
|
||||
, setuptools
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "lupa";
|
||||
version = "2.0";
|
||||
format = "setuptools";
|
||||
version = "2.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-rT/vSGvnrd3TSf6anDk3iQYTEs+Y68UztIm+NPSEy3k=";
|
||||
hash = "sha256-dgAwcS1SczlvXpY92HMa77WsZdku/4v4/UEkwWMP6VA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cython
|
||||
build-system = [
|
||||
cython_3
|
||||
setuptools
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "mkdocs-swagger-ui-tag";
|
||||
version = "0.6.8";
|
||||
version = "0.6.9";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -20,7 +20,7 @@ buildPythonPackage rec {
|
||||
owner = "Blueswen";
|
||||
repo = "mkdocs-swagger-ui-tag";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-TV7V1PttzyLeVQ/Ag/tMV2aqtCys1mlYpj6i0x+ko/w=";
|
||||
hash = "sha256-4cRElwF8AOvTLZJq1NF9Yqa7g44uiT96giyhqKZKp5M=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -6,12 +6,13 @@
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "ModestMaps";
|
||||
pname = "modestmaps";
|
||||
version = "1.4.7";
|
||||
disabled = !isPy27;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
pname = "ModestMaps";
|
||||
inherit version;
|
||||
sha256 = "698442a170f02923f8ea55f18526b56c17178162e44304f896a8a5fd65ab4457";
|
||||
};
|
||||
|
||||
|
@ -4,11 +4,12 @@
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "MutatorMath";
|
||||
pname = "mutatormath";
|
||||
version = "3.0.1";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
pname = "MutatorMath";
|
||||
inherit version;
|
||||
sha256 = "0r1qq45np49x14zz1zwkaayqrn7m8dn2jlipjldg2ihnmpzw29w1";
|
||||
extension = "zip";
|
||||
};
|
||||
|
103
pkgs/development/python-modules/naked/default.nix
Normal file
103
pkgs/development/python-modules/naked/default.nix
Normal file
@ -0,0 +1,103 @@
|
||||
{ buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, lib
|
||||
, requests
|
||||
, pyyaml
|
||||
, setuptools
|
||||
, wheel
|
||||
, nodejs
|
||||
, ruby
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "naked";
|
||||
version = "0.1.32";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "chrissimpkins";
|
||||
repo = "naked";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-KhygnURFggvUTR9wwWtORtfQES8ANd5sIaCONvIhfRM=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
# fix hardcoded absolute paths
|
||||
substituteInPlace **/*.* \
|
||||
--replace /Users/ces/Desktop/code/naked /build/source
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ wheel setuptools ];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
requests
|
||||
pyyaml
|
||||
];
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook nodejs ruby ];
|
||||
|
||||
preCheck =''
|
||||
cd tests
|
||||
|
||||
PATH=$PATH:$out/bin
|
||||
'';
|
||||
|
||||
disabledTestPaths = [ "testfiles" ];
|
||||
|
||||
disabledTests = [
|
||||
# test_NETWORK.py
|
||||
"test_http_get"
|
||||
"test_http_get_binary_file_absent"
|
||||
"test_http_get_binary_file_exists"
|
||||
"test_http_get_bin_type"
|
||||
"test_http_get_follow_redirects"
|
||||
"test_http_get_follow_redirects_false_content"
|
||||
"test_http_get_follow_redirects_false_on_nofollow_arg"
|
||||
"test_http_get_response_check_200"
|
||||
"test_http_get_response_check_301"
|
||||
"test_http_get_response_check_404"
|
||||
"test_http_get_response_obj_present"
|
||||
"test_http_get_ssl"
|
||||
"test_http_get_status_check_true"
|
||||
"test_http_get_status_ssl"
|
||||
"test_http_get_status_ssl_redirect"
|
||||
"test_http_get_text_absent"
|
||||
"test_http_get_text_exists_request_overwrite"
|
||||
"test_http_get_type"
|
||||
"test_http_post"
|
||||
"test_http_post_binary_file_absent"
|
||||
"test_http_post_binary_file_present"
|
||||
"test_http_post_binary_file_present_request_overwrite"
|
||||
"test_http_post_reponse_status_200"
|
||||
"test_http_post_response_status_200_ssl"
|
||||
"test_http_post_ssl"
|
||||
"test_http_post_status_check_true"
|
||||
"test_http_post_text_file_absent"
|
||||
"test_http_post_text_file_present_request_overwrite"
|
||||
"test_http_post_type"
|
||||
# test_SHELL.py
|
||||
"test_muterun_missing_option_exitcode"
|
||||
# test_SYSTEM.py
|
||||
"test_sys_list_all_files"
|
||||
"test_sys_list_all_files_cwd"
|
||||
"test_sys_list_all_files_emptydir"
|
||||
"test_sys_list_filter_files"
|
||||
"test_sys_match_files"
|
||||
"test_sys_match_files_fullpath"
|
||||
"test_sys_meta_file_mod"
|
||||
# test_TYPES.py
|
||||
"test_xdict_key_random"
|
||||
"test_xdict_key_random_sample"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "Naked" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A Python command line application framework";
|
||||
homepage = "https://github.com/chrissimpkins/naked";
|
||||
downloadPage = "https://github.com/chrissimpkins/naked/tags";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.lucasew ];
|
||||
};
|
||||
}
|
@ -18,14 +18,15 @@
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "netCDF4";
|
||||
pname = "netcdf4";
|
||||
version = "1.6.2";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = isPyPy;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
pname = "netCDF4";
|
||||
inherit version;
|
||||
hash = "sha256-A4KwL/aiiEGfb/7IXexA9FH0G4dVVHFUxXXd2fD0rlM=";
|
||||
};
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "niaclass";
|
||||
version = "0.1.4";
|
||||
version = "0.2.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
@ -23,7 +23,7 @@ buildPythonPackage rec {
|
||||
owner = "lukapecnik";
|
||||
repo = "NiaClass";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-md1e/cOIOQKoB760E5hjzjCsC5tS1CzgqAPTeVtrmuo=";
|
||||
hash = "sha256-C3EF18lzheE+dXHJA6WJNFECAH4HfPiCDo7QxtHvOLI=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = [
|
||||
|
@ -10,23 +10,23 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "oracledb";
|
||||
version = "2.1.0";
|
||||
version = "2.1.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-HJpEjJhD2zPxC3d9aSD7k5XqsLD9wX8WIPrHw+7NtXo=";
|
||||
hash = "sha256-4ugXz6bf82xxMXNvNOKq7HXXJv040ZENgxgGGieCKPo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
build-system = [
|
||||
cython_3
|
||||
setuptools
|
||||
wheel
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
dependencies = [
|
||||
cryptography
|
||||
];
|
||||
|
||||
|
@ -16,13 +16,13 @@
|
||||
}:
|
||||
buildPythonPackage rec {
|
||||
pname = "pinecone-client";
|
||||
version = "3.1.0";
|
||||
version = "3.2.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "pinecone_client";
|
||||
inherit version;
|
||||
hash = "sha256-RbggYBP5GpgrmU8fuqOefoyZ0w7zd4qfMZxDuMmS/EI=";
|
||||
hash = "sha256-hWD/r7E7nEWpLrnrd6LbMtWh+nkDodsX969Y7hBYu2A=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -6,12 +6,13 @@
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "PyAudio";
|
||||
pname = "pyaudio";
|
||||
version = "0.2.14";
|
||||
disabled = isPyPy;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
pname = "PyAudio";
|
||||
inherit version;
|
||||
hash = "sha256-eN//OHm0mU0fT8ZIVkald1XG7jwZZHpJH3kKCJW9L4c=";
|
||||
};
|
||||
|
||||
|
@ -2,11 +2,12 @@
|
||||
, requests, mock }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "PyBrowserID";
|
||||
pname = "pybrowserid";
|
||||
version = "0.14.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
pname = "PyBrowserID";
|
||||
inherit version;
|
||||
sha256 = "1qvi79kfb8x9kxkm5lw2mp42hm82cpps1xknmsb5ghkwx1lpc8kc";
|
||||
};
|
||||
|
||||
@ -21,4 +22,3 @@ buildPythonPackage rec {
|
||||
maintainers = with maintainers; [ ];
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -1,11 +1,12 @@
|
||||
{ lib, buildPythonPackage, fetchPypi, pytest }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "PyMeeus";
|
||||
pname = "pymeeus";
|
||||
version = "0.5.12";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
pname = "PyMeeus";
|
||||
inherit version;
|
||||
hash = "sha256-VI9xhr2LlsvAac9kmo6ON33OSax0SGcJhJ/mOpnK1oQ=";
|
||||
};
|
||||
|
||||
|
@ -30,7 +30,12 @@
|
||||
|
||||
let
|
||||
# PyMuPDF needs the C++ bindings generated
|
||||
mupdf-cxx = mupdf.override { enableOcr = true; enableCxx = true; enablePython = true; python3 = python; };
|
||||
mupdf-cxx = mupdf.override {
|
||||
enableOcr = true;
|
||||
enableCxx = true;
|
||||
enablePython = true;
|
||||
python3 = python;
|
||||
};
|
||||
in buildPythonPackage rec {
|
||||
pname = "pymupdf";
|
||||
version = "1.23.26";
|
||||
@ -45,12 +50,12 @@ in buildPythonPackage rec {
|
||||
hash = "sha256-m2zq04+PDnlzFuqeSt27UhdHXTHxpHdMPIg5RQl/5bQ=";
|
||||
};
|
||||
|
||||
# swig is not wrapped as python package
|
||||
# swig is not wrapped as Python package
|
||||
# libclang calls itself just clang in wheel metadata
|
||||
postPatch = ''
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace '"swig",' "" \
|
||||
--replace "libclang" "clang"
|
||||
--replace-fail '"swig",' "" \
|
||||
--replace-fail "libclang" "clang"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
@ -95,16 +100,79 @@ in buildPythonPackage rec {
|
||||
fonttools
|
||||
];
|
||||
|
||||
preCheck = ''
|
||||
export PATH="$PATH:$out/bin";
|
||||
'';
|
||||
|
||||
disabledTests = [
|
||||
# fails for indeterminate reasons
|
||||
"test_color_count"
|
||||
"test_2753"
|
||||
"test_2548"
|
||||
"test_2753"
|
||||
"test_3020"
|
||||
"test_3050"
|
||||
"test_3058"
|
||||
"test_3177"
|
||||
"test_3186"
|
||||
"test_color_count"
|
||||
"test_pilsave"
|
||||
"test_fz_write_pixmap_as_jpeg"
|
||||
# NotImplementedError
|
||||
"test_1824"
|
||||
"test_2093"
|
||||
"test_2093"
|
||||
"test_2108"
|
||||
"test_2182"
|
||||
"test_2182"
|
||||
"test_2246"
|
||||
"test_2270"
|
||||
"test_2270"
|
||||
"test_2391"
|
||||
"test_2788"
|
||||
"test_2861"
|
||||
"test_2871"
|
||||
"test_2886"
|
||||
"test_2904"
|
||||
"test_2922"
|
||||
"test_2934"
|
||||
"test_2957"
|
||||
"test_2969"
|
||||
"test_3070"
|
||||
"test_3131"
|
||||
"test_3140"
|
||||
"test_3209"
|
||||
"test_3209"
|
||||
"test_caret"
|
||||
"test_deletion"
|
||||
"test_file_info"
|
||||
"test_line"
|
||||
"test_page_links_generator"
|
||||
"test_polyline"
|
||||
"test_redact"
|
||||
"test_techwriter_append"
|
||||
"test_text2"
|
||||
# Issue with FzArchive
|
||||
"test_htmlbox"
|
||||
"test_2246"
|
||||
"test_3140"
|
||||
"test_fit_springer"
|
||||
"test_write_stabilized_with_links"
|
||||
"test_textbox"
|
||||
"test_delete_image"
|
||||
# Fonts not available
|
||||
"test_fontarchive"
|
||||
"test_subset_fonts"
|
||||
# Exclude lint tests
|
||||
"test_flake8"
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
# darwin does not support OCR right now
|
||||
"test_tesseract"
|
||||
];
|
||||
|
||||
disabledTestPaths = [
|
||||
# Issue with FzArchive
|
||||
"tests/test_docs_samples.py"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"fitz"
|
||||
"fitz_old"
|
||||
|
@ -5,7 +5,7 @@
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "PyNamecheap";
|
||||
pname = "pynamecheap";
|
||||
version = "0.0.3";
|
||||
|
||||
propagatedBuildInputs = [ requests ];
|
||||
@ -15,7 +15,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Bemmu";
|
||||
repo = pname;
|
||||
repo = "PyNamecheap";
|
||||
rev = "v${version}";
|
||||
sha256 = "1g1cd2yc6rpdsc5ax7s93y5nfkf91gcvbgcaqyl9ida6srd9hr97";
|
||||
};
|
||||
|
@ -1,11 +1,12 @@
|
||||
{ stdenv, lib, fetchPypi, buildPythonPackage, libvorbis, flac, libogg, libopus, opusfile, substituteAll }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "PyOgg";
|
||||
pname = "pyogg";
|
||||
version = "0.6.9a1";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
pname = "PyOgg";
|
||||
inherit version;
|
||||
sha256 = "0xabqwyknpvfc53s7il5pq6b07fcaqvz5bi5vbs3pbaw8602qvim";
|
||||
};
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyoverkiz";
|
||||
version = "1.13.8";
|
||||
version = "1.13.9";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -25,7 +25,7 @@ buildPythonPackage rec {
|
||||
owner = "iMicknl";
|
||||
repo = "python-overkiz-api";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-tvS7aPfBTs75Rq1WGslWDMv1pOTVt7MtwpXPRJtqbuk=";
|
||||
hash = "sha256-J1nsRB9KYg3yUuxQV79/Udjjkux+BE4YcawpRJcSYHI=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -8,13 +8,14 @@
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "PyPDF2";
|
||||
pname = "pypdf2";
|
||||
version = "3.0.1";
|
||||
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
pname = "PyPDF2";
|
||||
inherit version;
|
||||
hash = "sha256-p0QI9pumJx9xuTUu9O0D3FOjGqQE0ptdMfU7/s/uFEA=";
|
||||
};
|
||||
|
||||
|
@ -5,11 +5,12 @@
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "PyPlatec";
|
||||
pname = "pyplatec";
|
||||
version = "1.4.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
pname = "PyPlatec";
|
||||
inherit version;
|
||||
sha256 = "0kqx33flcrrlipccmqs78d14pj5749bp85b6k5fgaq2c7yzz02jg";
|
||||
};
|
||||
|
||||
|
@ -3,11 +3,12 @@
|
||||
, pytest }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "PyPrind";
|
||||
pname = "pyprind";
|
||||
version = "2.11.3";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
pname = "PyPrind";
|
||||
inherit version;
|
||||
sha256 = "e37dcab6e1a9c8e0a7f0fce65fde7a79e2deda1c75aa015910a49e2137b54cbf";
|
||||
};
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyReaderWriterLock";
|
||||
pname = "pyreaderwriterlock";
|
||||
version = "1.0.9";
|
||||
format = "setuptools";
|
||||
|
||||
@ -19,7 +19,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elarivie";
|
||||
repo = pname;
|
||||
repo = "pyReaderWriterLock";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-8FC+4aDgGpF1BmOdlkFtMy7OfWdSmvn9fjKXSmmeJlg=";
|
||||
};
|
||||
|
@ -17,7 +17,7 @@
|
||||
}:
|
||||
|
||||
buildPythonPackage {
|
||||
pname = "PySC2";
|
||||
pname = "pysc2";
|
||||
version = "1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
|
@ -9,7 +9,7 @@
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyScss";
|
||||
pname = "pyscss";
|
||||
version = "1.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
|
@ -14,12 +14,13 @@
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "PySpice";
|
||||
pname = "pyspice";
|
||||
version = "1.5";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
pname = "PySpice";
|
||||
inherit version;
|
||||
sha256 = "d28448accad98959e0f5932af8736e90a1f3f9ff965121c6881d24cdfca23d22";
|
||||
};
|
||||
|
||||
|
@ -1,11 +1,12 @@
|
||||
{ lib, buildPythonPackage, fetchPypi, requests, requests-cache, beautifulsoup4 }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "PySychonaut";
|
||||
pname = "pysychonaut";
|
||||
version = "0.6.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
pname = "PySychonaut";
|
||||
inherit version;
|
||||
sha256 = "1wgk445gmi0x7xmd8qvnyxy1ka0n72fr6nrhzdm29q6687dqyi7h";
|
||||
};
|
||||
|
||||
|
@ -9,11 +9,12 @@
|
||||
, pontos
|
||||
, pytestCheckHook
|
||||
, pythonOlder
|
||||
, typing-extensions
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "python-gvm";
|
||||
version = "24.1.0";
|
||||
version = "24.3.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
@ -22,17 +23,18 @@ buildPythonPackage rec {
|
||||
owner = "greenbone";
|
||||
repo = "python-gvm";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-1MJajawm/QdioZM+/efnXOAFcuDOk/xJ1acPrxKp700=";
|
||||
hash = "sha256-GIEsP8+RJMIehsBbZWpIRXCdqxm042lPbYTHY7/fknM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
build-system = [
|
||||
poetry-core
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
dependencies = [
|
||||
defusedxml
|
||||
lxml
|
||||
paramiko
|
||||
typing-extensions
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user