Merge master into staging-next
This commit is contained in:
commit
c8a9826fe2
@ -244,12 +244,16 @@ The `master` branch is the main development branch. It should only see non-break
|
||||
|
||||
The `staging` branch is a development branch where mass-rebuilds go. Mass rebuilds are commits that cause rebuilds for many packages, like more than 500 (or perhaps, if it's 'light' packages, 1000). It should only see non-breaking mass-rebuild commits. That means it is not to be used for testing, and changes must have been well tested already. If the branch is already in a broken state, please refrain from adding extra new breakages.
|
||||
|
||||
During the process of a releasing a new NixOS version, this branch or the release-critical packages can be restricted to non-breaking changes.
|
||||
|
||||
### Staging-next branch {#submitting-changes-staging-next-branch}
|
||||
|
||||
The `staging-next` branch is for stabilizing mass-rebuilds submitted to the `staging` branch prior to merging them into `master`. Mass-rebuilds must go via the `staging` branch. It must only see non-breaking commits that are fixing issues blocking it from being merged into the `master` branch.
|
||||
|
||||
If the branch is already in a broken state, please refrain from adding extra new breakages. Stabilize it for a few days and then merge into master.
|
||||
|
||||
During the process of a releasing a new NixOS version, this branch or the release-critical packages can be restricted to non-breaking changes.
|
||||
|
||||
### Stable release branches {#submitting-changes-stable-release-branches}
|
||||
|
||||
The same staging workflow applies to stable release branches, but the main branch is called `release-*` instead of `master`.
|
||||
|
@ -87,8 +87,8 @@ in {
|
||||
};
|
||||
|
||||
packages = mkOption {
|
||||
default = [ pkgs.stdenv pkgs.git pkgs.jdk11 config.programs.ssh.package pkgs.nix ];
|
||||
defaultText = literalExpression "[ pkgs.stdenv pkgs.git pkgs.jdk11 config.programs.ssh.package pkgs.nix ]";
|
||||
default = [ pkgs.stdenv pkgs.git pkgs.jdk17 config.programs.ssh.package pkgs.nix ];
|
||||
defaultText = literalExpression "[ pkgs.stdenv pkgs.git pkgs.jdk17 config.programs.ssh.package pkgs.nix ]";
|
||||
type = types.listOf types.package;
|
||||
description = lib.mdDoc ''
|
||||
Packages to add to PATH for the jenkins process.
|
||||
@ -228,7 +228,7 @@ in {
|
||||
|
||||
# For reference: https://wiki.jenkins.io/display/JENKINS/JenkinsLinuxStartupScript
|
||||
script = ''
|
||||
${pkgs.jdk11}/bin/java ${concatStringsSep " " cfg.extraJavaOptions} -jar ${cfg.package}/webapps/jenkins.war --httpListenAddress=${cfg.listenAddress} \
|
||||
${pkgs.jdk17}/bin/java ${concatStringsSep " " cfg.extraJavaOptions} -jar ${cfg.package}/webapps/jenkins.war --httpListenAddress=${cfg.listenAddress} \
|
||||
--httpPort=${toString cfg.port} \
|
||||
--prefix=${cfg.prefix} \
|
||||
-Djava.awt.headless=true \
|
||||
|
@ -67,6 +67,12 @@ let
|
||||
node ~/dist/server/tools/peertube.js $@
|
||||
'';
|
||||
|
||||
nginxCommonHeaders = ''
|
||||
add_header Access-Control-Allow-Origin '*';
|
||||
add_header Access-Control-Allow-Methods 'GET, OPTIONS';
|
||||
add_header Access-Control-Allow-Headers 'Range,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
|
||||
'';
|
||||
|
||||
in {
|
||||
options.services.peertube = {
|
||||
enable = lib.mkEnableOption (lib.mdDoc "Enable Peertube’s service");
|
||||
@ -145,6 +151,12 @@ in {
|
||||
description = lib.mdDoc "Configuration for peertube.";
|
||||
};
|
||||
|
||||
configureNginx = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc "Configure nginx as a reverse proxy for peertube.";
|
||||
};
|
||||
|
||||
database = {
|
||||
createLocally = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
@ -351,6 +363,8 @@ in {
|
||||
systemd.tmpfiles.rules = [
|
||||
"d '/var/lib/peertube/config' 0700 ${cfg.user} ${cfg.group} - -"
|
||||
"z '/var/lib/peertube/config' 0700 ${cfg.user} ${cfg.group} - -"
|
||||
"d '/var/lib/peertube/www' 0750 ${cfg.user} ${cfg.group} - -"
|
||||
"z '/var/lib/peertube/www' 0750 ${cfg.user} ${cfg.group} - -"
|
||||
];
|
||||
|
||||
systemd.services.peertube-init-db = lib.mkIf cfg.database.createLocally {
|
||||
@ -410,8 +424,11 @@ in {
|
||||
password: '$(cat ${cfg.smtp.passwordFile})'
|
||||
''}
|
||||
EOF
|
||||
ln -sf ${cfg.package}/config/default.yaml /var/lib/peertube/config/default.yaml
|
||||
umask 027
|
||||
ln -sf ${configFile} /var/lib/peertube/config/production.json
|
||||
ln -sf ${cfg.package}/config/default.yaml /var/lib/peertube/config/default.yaml
|
||||
ln -sf ${cfg.package}/client/dist -T /var/lib/peertube/www/client
|
||||
ln -sf ${cfg.settings.storage.client_overrides} -T /var/lib/peertube/www/client-overrides
|
||||
npm start
|
||||
'';
|
||||
serviceConfig = {
|
||||
@ -441,6 +458,269 @@ in {
|
||||
} // cfgService;
|
||||
};
|
||||
|
||||
services.nginx = lib.mkIf cfg.configureNginx {
|
||||
enable = true;
|
||||
virtualHosts."${cfg.localDomain}" = {
|
||||
root = "/var/lib/peertube";
|
||||
|
||||
# Application
|
||||
locations."/" = {
|
||||
tryFiles = "/dev/null @api";
|
||||
priority = 1110;
|
||||
};
|
||||
|
||||
locations."= /api/v1/videos/upload-resumable" = {
|
||||
tryFiles = "/dev/null @api";
|
||||
priority = 1120;
|
||||
|
||||
extraConfig = ''
|
||||
client_max_body_size 0;
|
||||
proxy_request_buffering off;
|
||||
'';
|
||||
};
|
||||
|
||||
locations."~ ^/api/v1/videos/(upload|([^/]+/studio/edit))$" = {
|
||||
tryFiles = "/dev/null @api";
|
||||
root = cfg.settings.storage.tmp;
|
||||
priority = 1130;
|
||||
|
||||
extraConfig = ''
|
||||
client_max_body_size 12G;
|
||||
add_header X-File-Maximum-Size 8G always;
|
||||
'';
|
||||
};
|
||||
|
||||
locations."~ ^/api/v1/(videos|video-playlists|video-channels|users/me)" = {
|
||||
tryFiles = "/dev/null @api";
|
||||
priority = 1140;
|
||||
|
||||
extraConfig = ''
|
||||
client_max_body_size 6M;
|
||||
add_header X-File-Maximum-Size 4M always;
|
||||
'';
|
||||
};
|
||||
|
||||
locations."@api" = {
|
||||
proxyPass = "http://127.0.0.1:${toString cfg.listenHttp}";
|
||||
priority = 1150;
|
||||
|
||||
extraConfig = ''
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
|
||||
proxy_connect_timeout 10m;
|
||||
|
||||
proxy_send_timeout 10m;
|
||||
proxy_read_timeout 10m;
|
||||
|
||||
client_max_body_size 100k;
|
||||
send_timeout 10m;
|
||||
'';
|
||||
};
|
||||
|
||||
# Websocket
|
||||
locations."/socket.io" = {
|
||||
tryFiles = "/dev/null @api_websocket";
|
||||
priority = 1210;
|
||||
};
|
||||
|
||||
locations."/tracker/socket" = {
|
||||
tryFiles = "/dev/null @api_websocket";
|
||||
priority = 1220;
|
||||
|
||||
extraConfig = ''
|
||||
proxy_read_timeout 15m;
|
||||
'';
|
||||
};
|
||||
|
||||
locations."@api_websocket" = {
|
||||
proxyPass = "http://127.0.0.1:${toString cfg.listenHttp}";
|
||||
priority = 1230;
|
||||
|
||||
extraConfig = ''
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection 'upgrade';
|
||||
|
||||
proxy_http_version 1.1;
|
||||
'';
|
||||
};
|
||||
|
||||
# Bypass PeerTube for performance reasons.
|
||||
locations."~ ^/client/(assets/images/(icons/icon-36x36\.png|icons/icon-48x48\.png|icons/icon-72x72\.png|icons/icon-96x96\.png|icons/icon-144x144\.png|icons/icon-192x192\.png|icons/icon-512x512\.png|logo\.svg|favicon\.png|default-playlist\.jpg|default-avatar-account\.png|default-avatar-account-48x48\.png|default-avatar-video-channel\.png|default-avatar-video-channel-48x48\.png))$" = {
|
||||
tryFiles = "/www/client-overrides/$1 /www/client/$1 $1";
|
||||
priority = 1310;
|
||||
};
|
||||
|
||||
locations."~ ^/client/(.*\.(js|css|png|svg|woff2|otf|ttf|woff|eot))$" = {
|
||||
alias = "${cfg.package}/client/dist/$1";
|
||||
priority = 1320;
|
||||
extraConfig = ''
|
||||
add_header Cache-Control 'public, max-age=604800, immutable';
|
||||
'';
|
||||
};
|
||||
|
||||
locations."~ ^/lazy-static/(avatars|banners)/" = {
|
||||
tryFiles = "$uri @api";
|
||||
root = cfg.settings.storage.avatars;
|
||||
priority = 1330;
|
||||
extraConfig = ''
|
||||
if ($request_method = 'OPTIONS') {
|
||||
${nginxCommonHeaders}
|
||||
add_header Access-Control-Max-Age 1728000;
|
||||
add_header Cache-Control 'no-cache';
|
||||
add_header Content-Type 'text/plain charset=UTF-8';
|
||||
add_header Content-Length 0;
|
||||
return 204;
|
||||
}
|
||||
|
||||
${nginxCommonHeaders}
|
||||
add_header Cache-Control 'public, max-age=7200';
|
||||
|
||||
rewrite ^/lazy-static/avatars/(.*)$ /$1 break;
|
||||
rewrite ^/lazy-static/banners/(.*)$ /$1 break;
|
||||
'';
|
||||
};
|
||||
|
||||
locations."^~ /lazy-static/previews/" = {
|
||||
tryFiles = "$uri @api";
|
||||
root = cfg.settings.storage.previews;
|
||||
priority = 1340;
|
||||
extraConfig = ''
|
||||
if ($request_method = 'OPTIONS') {
|
||||
${nginxCommonHeaders}
|
||||
add_header Access-Control-Max-Age 1728000;
|
||||
add_header Cache-Control 'no-cache';
|
||||
add_header Content-Type 'text/plain charset=UTF-8';
|
||||
add_header Content-Length 0;
|
||||
return 204;
|
||||
}
|
||||
|
||||
${nginxCommonHeaders}
|
||||
add_header Cache-Control 'public, max-age=7200';
|
||||
|
||||
rewrite ^/lazy-static/previews/(.*)$ /$1 break;
|
||||
'';
|
||||
};
|
||||
|
||||
locations."^~ /static/thumbnails/" = {
|
||||
tryFiles = "$uri @api";
|
||||
root = cfg.settings.storage.thumbnails;
|
||||
priority = 1350;
|
||||
extraConfig = ''
|
||||
if ($request_method = 'OPTIONS') {
|
||||
${nginxCommonHeaders}
|
||||
add_header Access-Control-Max-Age 1728000;
|
||||
add_header Cache-Control 'no-cache';
|
||||
add_header Content-Type 'text/plain charset=UTF-8';
|
||||
add_header Content-Length 0;
|
||||
return 204;
|
||||
}
|
||||
|
||||
${nginxCommonHeaders}
|
||||
add_header Cache-Control 'public, max-age=7200';
|
||||
|
||||
rewrite ^/static/thumbnails/(.*)$ /$1 break;
|
||||
'';
|
||||
};
|
||||
|
||||
locations."^~ /static/redundancy/" = {
|
||||
tryFiles = "$uri @api";
|
||||
root = cfg.settings.storage.redundancy;
|
||||
priority = 1360;
|
||||
extraConfig = ''
|
||||
if ($request_method = 'OPTIONS') {
|
||||
${nginxCommonHeaders}
|
||||
add_header Access-Control-Max-Age 1728000;
|
||||
add_header Content-Type 'text/plain charset=UTF-8';
|
||||
add_header Content-Length 0;
|
||||
return 204;
|
||||
}
|
||||
if ($request_method = 'GET') {
|
||||
${nginxCommonHeaders}
|
||||
|
||||
access_log off;
|
||||
}
|
||||
aio threads;
|
||||
sendfile on;
|
||||
sendfile_max_chunk 1M;
|
||||
|
||||
limit_rate_after 5M;
|
||||
|
||||
set $peertube_limit_rate 800k;
|
||||
set $limit_rate $peertube_limit_rate;
|
||||
|
||||
rewrite ^/static/redundancy/(.*)$ /$1 break;
|
||||
'';
|
||||
};
|
||||
|
||||
locations."^~ /static/streaming-playlists/" = {
|
||||
tryFiles = "$uri @api";
|
||||
root = cfg.settings.storage.streaming_playlists;
|
||||
priority = 1370;
|
||||
extraConfig = ''
|
||||
if ($request_method = 'OPTIONS') {
|
||||
${nginxCommonHeaders}
|
||||
add_header Access-Control-Max-Age 1728000;
|
||||
add_header Content-Type 'text/plain charset=UTF-8';
|
||||
add_header Content-Length 0;
|
||||
return 204;
|
||||
}
|
||||
if ($request_method = 'GET') {
|
||||
${nginxCommonHeaders}
|
||||
|
||||
access_log off;
|
||||
}
|
||||
|
||||
aio threads;
|
||||
sendfile on;
|
||||
sendfile_max_chunk 1M;
|
||||
|
||||
limit_rate_after 5M;
|
||||
|
||||
set $peertube_limit_rate 5M;
|
||||
set $limit_rate $peertube_limit_rate;
|
||||
|
||||
rewrite ^/static/streaming-playlists/(.*)$ /$1 break;
|
||||
'';
|
||||
};
|
||||
|
||||
locations."~ ^/static/webseed/" = {
|
||||
tryFiles = "$uri @api";
|
||||
root = cfg.settings.storage.videos;
|
||||
priority = 1380;
|
||||
extraConfig = ''
|
||||
if ($request_method = 'OPTIONS') {
|
||||
${nginxCommonHeaders}
|
||||
add_header Access-Control-Max-Age 1728000;
|
||||
add_header Content-Type 'text/plain charset=UTF-8';
|
||||
add_header Content-Length 0;
|
||||
return 204;
|
||||
}
|
||||
if ($request_method = 'GET') {
|
||||
${nginxCommonHeaders}
|
||||
|
||||
access_log off;
|
||||
}
|
||||
|
||||
aio threads;
|
||||
sendfile on;
|
||||
sendfile_max_chunk 1M;
|
||||
|
||||
limit_rate_after 5M;
|
||||
|
||||
set $peertube_limit_rate 800k;
|
||||
set $limit_rate $peertube_limit_rate;
|
||||
|
||||
rewrite ^/static/webseed/(.*)$ /$1 break;
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.postgresql = lib.mkIf cfg.database.createLocally {
|
||||
enable = true;
|
||||
};
|
||||
@ -476,8 +756,10 @@ in {
|
||||
(lib.mkIf cfg.redis.enableUnixSocket {${config.services.peertube.user}.extraGroups = [ "redis-peertube" ];})
|
||||
];
|
||||
|
||||
users.groups = lib.optionalAttrs (cfg.group == "peertube") {
|
||||
peertube = { };
|
||||
users.groups = {
|
||||
${cfg.group} = {
|
||||
members = lib.optional cfg.configureNginx config.services.nginx.user;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -275,7 +275,10 @@ let
|
||||
redirectListen = filter (x: !x.ssl) defaultListen;
|
||||
|
||||
acmeLocation = optionalString (vhost.enableACME || vhost.useACMEHost != null) ''
|
||||
location /.well-known/acme-challenge {
|
||||
# Rule for legitimate ACME Challenge requests (like /.well-known/acme-challenge/xxxxxxxxx)
|
||||
# We use ^~ here, so that we don't check any regexes (which could
|
||||
# otherwise easily override this intended match accidentally).
|
||||
location ^~ /.well-known/acme-challenge/ {
|
||||
${optionalString (vhost.acmeFallbackHost != null) "try_files $uri @acme-fallback;"}
|
||||
${optionalString (vhost.acmeRoot != null) "root ${vhost.acmeRoot};"}
|
||||
auth_basic off;
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "felix";
|
||||
version = "1.3.0";
|
||||
version = "1.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kyoheiu";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-ewPDbrOxinu+GXegunZjumTCnkflXQk74Ovr8QStDBM=";
|
||||
sha256 = "sha256-yMuV7a8nkdymgJTPuVcZ/PEA2/Vr7rQf8mpikNe3e1w=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-wD0h8tXnqQOuBbFmpjMu0ZK7+omcOSqno6wFnSMTSjk=";
|
||||
cargoSha256 = "sha256-yePPIehyv11f58HQzFoPh7izSPjmbhdVu9xlHD6PGRY=";
|
||||
|
||||
checkInputs = [ zoxide ];
|
||||
|
||||
|
@ -12,13 +12,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "treesheets";
|
||||
version = "unstable-2022-10-11";
|
||||
version = "unstable-2022-10-20";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aardappel";
|
||||
repo = "treesheets";
|
||||
rev = "be79e537c148d961d40137a7f83d7bdcc4119dd6";
|
||||
sha256 = "GKRxb6W9PDY7nzgPTPRPmA9GBvD4zLaZwnalZan3+m0=";
|
||||
rev = "12580ce39ee89f0ae6b9bdb304f7bc68a74ecdf7";
|
||||
sha256 = "Z1BAYRcoeYOWomfwgBS/CQbejARs6sqsyZorhbJ/RdI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -2,16 +2,21 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "docker-compose";
|
||||
version = "2.11.2";
|
||||
version = "2.12.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "docker";
|
||||
repo = "compose";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-L43BIkRaPAU0zgdVsf1a3OinbspiU0LfWZPssS91wTE=";
|
||||
sha256 = "sha256-AwoWCaACq2s9rzvvpAx3GZd3oSZZPykLwYLUiUhEYfg=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-PZumm//BV9iAkq1Kb9xNenqVrx73ZZUHTCUSVNqqEXA=";
|
||||
postPatch = ''
|
||||
# entirely separate package that breaks the build
|
||||
rm -rf e2e/
|
||||
'';
|
||||
|
||||
vendorSha256 = "sha256-C7VgcbDB18dF+u422AFAfoICxGmqjREbOpUXrFlgmiM=";
|
||||
|
||||
ldflags = [ "-X github.com/docker/compose/v2/internal.Version=${version}" "-s" "-w" ];
|
||||
|
||||
|
33
pkgs/development/libraries/paho-mqtt-c/default.nix
Normal file
33
pkgs/development/libraries/paho-mqtt-c/default.nix
Normal file
@ -0,0 +1,33 @@
|
||||
{ lib, stdenv, fetchFromGitHub, cmake, openssl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "paho.mqtt.c";
|
||||
version = "1.3.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "eclipse";
|
||||
repo = "paho.mqtt.c";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-TGCWA9tOOx0rCb/XQWqLFbXb9gOyGS8u6o9fvSRS6xI=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/MQTTVersion.c \
|
||||
--replace "namebuf[60]" "namebuf[120]" \
|
||||
--replace "lib%s" "$out/lib/lib%s"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
buildInputs = [ openssl ];
|
||||
|
||||
cmakeFlags = [ "-DPAHO_WITH_SSL=TRUE" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Eclipse Paho MQTT C Client Library";
|
||||
homepage = "https://www.eclipse.org/paho/";
|
||||
license = licenses.epl20;
|
||||
maintainers = with maintainers; [ sikmir ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
25
pkgs/development/libraries/paho-mqtt-cpp/default.nix
Normal file
25
pkgs/development/libraries/paho-mqtt-cpp/default.nix
Normal file
@ -0,0 +1,25 @@
|
||||
{ lib, stdenv, fetchFromGitHub, cmake, openssl, paho-mqtt-c }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "paho.mqtt.cpp";
|
||||
version = "1.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "eclipse";
|
||||
repo = "paho.mqtt.cpp";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-tcq0a4X5dKE4rnczRMAVe3Wt43YzUKbxsv9Sk+q+IB8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
buildInputs = [ openssl paho-mqtt-c ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Eclipse Paho MQTT C++ Client Library";
|
||||
homepage = "https://www.eclipse.org/paho/";
|
||||
license = licenses.epl10;
|
||||
maintainers = with maintainers; [ sikmir ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
36
pkgs/development/perl-modules/Bio-Ext-Align/default.nix
Normal file
36
pkgs/development/perl-modules/Bio-Ext-Align/default.nix
Normal file
@ -0,0 +1,36 @@
|
||||
{ lib, buildPerlPackage, fetchFromGitHub }:
|
||||
|
||||
buildPerlPackage rec {
|
||||
pname = "BioExtAlign";
|
||||
version = "1.5.1";
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bioperl";
|
||||
repo = "bioperl-ext";
|
||||
rev = "bioperl-ext-release-${lib.replaceStrings ["."] ["-"] version}";
|
||||
sha256 = "sha256-+0tZ6q3PFem8DWa2vq+njOLmjDvMB0JhD0FGk00lVMA=";
|
||||
};
|
||||
|
||||
patches = [ ./fprintf.patch ];
|
||||
|
||||
# Do not install other Bio-ext packages
|
||||
preConfigure = ''
|
||||
cd Bio/Ext/Align
|
||||
'';
|
||||
|
||||
# Disable tests as it requires Bio::Tools::Align which is in a different directory
|
||||
buildPhase = ''
|
||||
make
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/bioperl/bioperl-ext";
|
||||
description = "Write Perl Subroutines in Other Programming Languages";
|
||||
longDescription = ''
|
||||
Part of BioPerl Extensions (BioPerl-Ext) distribution, a collection of Bioperl C-compiled extensions.
|
||||
'';
|
||||
license = with lib.licenses; [ artistic1 ];
|
||||
};
|
||||
}
|
13
pkgs/development/perl-modules/Bio-Ext-Align/fprintf.patch
Normal file
13
pkgs/development/perl-modules/Bio-Ext-Align/fprintf.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/libs/dpalign.c b/libs/dpalign.c
|
||||
index 0e07b67..0eab932 100644
|
||||
--- a/Bio/Ext/Align/libs/dpalign.c
|
||||
+++ b/Bio/Ext/Align/libs/dpalign.c
|
||||
@@ -40,7 +40,7 @@ int blosum62[24][24] = {
|
||||
void
|
||||
dpAlign_fatal(char * s)
|
||||
{
|
||||
- fprintf(stderr, s);
|
||||
+ fputs(stderr, s);
|
||||
exit(-1);
|
||||
}
|
||||
|
31
pkgs/development/python-modules/aiorwlock/default.nix
Normal file
31
pkgs/development/python-modules/aiorwlock/default.nix
Normal file
@ -0,0 +1,31 @@
|
||||
{ buildPythonPackage
|
||||
, fetchPypi
|
||||
, lib
|
||||
, pytest-asyncio
|
||||
, pytest-cov
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aiorwlock";
|
||||
version = "1.3.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-g/Eth99LlyiguP2hdWWFqw1lKxB7q1nGCE4bGtaSq0U=";
|
||||
};
|
||||
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
pytest-asyncio
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "aiorwlock" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Read write lock for asyncio";
|
||||
homepage = "https://github.com/aio-libs/aiorwlock";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ billhuang ];
|
||||
};
|
||||
}
|
@ -11,7 +11,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-debug-toolbar";
|
||||
version = "3.5";
|
||||
version = "3.7";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -20,7 +20,7 @@ buildPythonPackage rec {
|
||||
owner = "jazzband";
|
||||
repo = pname;
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-OZWO3tXZ+p+zKtQHCkj0kGSXpDFHFV+HqSgiJvLmMTg=";
|
||||
hash = "sha256-LGEx21m5TNotbwKHf5in+EDkYqqNOoF7mBstnfLYe9s=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
44
pkgs/development/python-modules/gpustat/default.nix
Normal file
44
pkgs/development/python-modules/gpustat/default.nix
Normal file
@ -0,0 +1,44 @@
|
||||
{ buildPythonPackage
|
||||
, blessed
|
||||
, fetchPypi
|
||||
, lib
|
||||
, mockito
|
||||
, nvidia-ml-py
|
||||
, psutil
|
||||
, pytest-runner
|
||||
, pythonRelaxDepsHook
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "gpustat";
|
||||
version = "1.0.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-WB6P+FjDLJWjIruPA/HZ3D0Xe07LM93L7Sw3PGf04/E=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pythonRelaxDepsHook ];
|
||||
pythonRelaxDeps = [ "nvidia-ml-py" ];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
blessed
|
||||
nvidia-ml-py
|
||||
psutil
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
mockito
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "gpustat" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A simple command-line utility for querying and monitoring GPU status";
|
||||
homepage = "https://github.com/wookayin/gpustat";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ billhuang ];
|
||||
};
|
||||
}
|
55
pkgs/development/python-modules/opencensus/default.nix
Normal file
55
pkgs/development/python-modules/opencensus/default.nix
Normal file
@ -0,0 +1,55 @@
|
||||
{ buildPythonPackage
|
||||
, fetchPypi
|
||||
, lib
|
||||
, python
|
||||
, unittestCheckHook
|
||||
, google-api-core
|
||||
}:
|
||||
|
||||
let
|
||||
opencensus-context = buildPythonPackage rec {
|
||||
pname = "opencensus-context";
|
||||
version = "0.1.3";
|
||||
|
||||
checkInputs = [ unittestCheckHook ];
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-oDEIw8ENjIC7Xd9cih8DMWH6YZcqmRf5ubOhhRfwCIw=";
|
||||
};
|
||||
};
|
||||
in
|
||||
buildPythonPackage rec {
|
||||
pname = "opencensus";
|
||||
version = "0.11.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-AmIWq6uJ2U2FBJLz3GWVAFXsT4QRX6bHvq/7pEo0bkI=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
# opencensus-context is embedded in opencensus
|
||||
opencensus-context
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
google-api-core
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
ln -sf ${opencensus-context}/${python.sitePackages}/opencensus/common/runtime_context \
|
||||
$out/${python.sitePackages}/opencensus/common/
|
||||
'';
|
||||
|
||||
checkInputs = [ unittestCheckHook ];
|
||||
|
||||
pythonImportsCheck = [ "opencensus" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A stats collection and distributed tracing framework";
|
||||
homepage = "https://github.com/census-instrumentation/opencensus-python";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ billhuang ];
|
||||
};
|
||||
}
|
@ -43,7 +43,7 @@ let
|
||||
sha256 = {
|
||||
x86_64-linux = "0x71b4kb8hlyacixipgfbgjgrbmhckxpbmrs2xk8iis7n5kg7539";
|
||||
aarch64-linux = "125lih7g2gj91k7j196wy5a5746wyfr8idj3ng369yh5wl7lfcfv";
|
||||
x86_64-darwin = "0z2kww4iby1izkwn6z2ai94y87bkjvwak8awdmjm8sgg00pa9l1a";
|
||||
x86_64-darwin = "sha256-TzprR95KHYBu9SruI4BgwCaqI7KKe3HuzgCO1A5YFiM=";
|
||||
aarch64-darwin = "0qajh4ac5lr1sznb2c471r5c5g2r0dk2pyqz8vhvnbk36r524h1h";
|
||||
}.${system} or throwSystem;
|
||||
};
|
||||
@ -114,7 +114,7 @@ let
|
||||
jq
|
||||
];
|
||||
} (''
|
||||
BROWSERS_JSON=${driver}/share/playwright-driver/package/browsers.json
|
||||
BROWSERS_JSON=${driver}/package/browsers.json
|
||||
'' + lib.optionalString withChromium ''
|
||||
CHROMIUM_REVISION=$(jq -r '.browsers[] | select(.name == "chromium").revision' $BROWSERS_JSON)
|
||||
mkdir -p $out/chromium-$CHROMIUM_REVISION/chrome-linux
|
||||
@ -200,7 +200,7 @@ buildPythonPackage rec {
|
||||
"playwright"
|
||||
];
|
||||
|
||||
passthru = {
|
||||
passthru = rec {
|
||||
inherit driver;
|
||||
browsers = {
|
||||
x86_64-linux = browsers-linux { };
|
||||
@ -210,6 +210,10 @@ buildPythonPackage rec {
|
||||
}.${system} or throwSystem;
|
||||
browsers-chromium = browsers-linux { withFirefox = false; };
|
||||
browsers-firefox = browsers-linux { withChromium = false; };
|
||||
|
||||
tests = {
|
||||
inherit driver browsers;
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
11
pkgs/development/python-modules/ray/binary-hashes.nix
Normal file
11
pkgs/development/python-modules/ray/binary-hashes.nix
Normal file
@ -0,0 +1,11 @@
|
||||
{
|
||||
cp38 = {
|
||||
sha256 = "da8adfa33ff54bc61cfe80334a0ee889e0060918db6ff9215aebe32e98b1f939";
|
||||
};
|
||||
cp39 = {
|
||||
sha256 = "cab13346650f88171b3f348ed352f04695b96d1ab1090ed3b80bdc93e897dbd4";
|
||||
};
|
||||
cp310 = {
|
||||
sha256 = "bcf3bff9517d77ea6c98592fa16e1cfb8bc0cfa345d3be69729bfa9c5bd78a7c";
|
||||
};
|
||||
}
|
166
pkgs/development/python-modules/ray/default.nix
Normal file
166
pkgs/development/python-modules/ray/default.nix
Normal file
@ -0,0 +1,166 @@
|
||||
{ aiohttp
|
||||
, aiohttp-cors
|
||||
, aiorwlock
|
||||
, aiosignal
|
||||
, attrs
|
||||
, autoPatchelfHook
|
||||
, buildBazelPackage
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, click
|
||||
, cloudpickle
|
||||
, colorama
|
||||
, colorful
|
||||
, cython
|
||||
, dm-tree
|
||||
, fastapi
|
||||
, filelock
|
||||
, frozenlist
|
||||
, fsspec
|
||||
, gpustat
|
||||
, grpc
|
||||
, grpcio
|
||||
, gym
|
||||
, jsonschema
|
||||
, lib
|
||||
, lz4
|
||||
, matplotlib
|
||||
, msgpack
|
||||
, numpy
|
||||
, opencensus
|
||||
, packaging
|
||||
, pandas
|
||||
, py-spy
|
||||
, prometheus-client
|
||||
, protobuf3_20
|
||||
, psutil
|
||||
, pyarrow
|
||||
, pydantic
|
||||
, python
|
||||
, pythonAtLeast
|
||||
, pythonOlder
|
||||
, pythonRelaxDepsHook
|
||||
, pyyaml
|
||||
, redis
|
||||
, requests
|
||||
, scikitimage
|
||||
, scipy
|
||||
, setproctitle
|
||||
, smart-open
|
||||
, starlette
|
||||
, stdenv
|
||||
, tabulate
|
||||
, tensorboardx
|
||||
, uvicorn
|
||||
, virtualenv
|
||||
}:
|
||||
|
||||
let
|
||||
pname = "ray";
|
||||
version = "2.0.0";
|
||||
in
|
||||
buildPythonPackage rec {
|
||||
inherit pname version;
|
||||
format = "wheel";
|
||||
|
||||
disabled = pythonOlder "3.8" || pythonAtLeast "3.11";
|
||||
|
||||
src =
|
||||
let
|
||||
pyShortVersion = "cp${builtins.replaceStrings ["."] [""] python.pythonVersion}";
|
||||
binary-hash = (import ./binary-hashes.nix)."${pyShortVersion}";
|
||||
in
|
||||
fetchPypi ({
|
||||
inherit pname version format;
|
||||
dist = pyShortVersion;
|
||||
python = pyShortVersion;
|
||||
abi = pyShortVersion;
|
||||
platform = "manylinux2014_x86_64";
|
||||
} // binary-hash);
|
||||
|
||||
passthru.optional-dependencies = rec {
|
||||
data-deps = [
|
||||
pandas
|
||||
pyarrow
|
||||
fsspec
|
||||
];
|
||||
|
||||
serve-deps = [
|
||||
aiorwlock
|
||||
fastapi
|
||||
pandas
|
||||
starlette
|
||||
uvicorn
|
||||
];
|
||||
|
||||
tune-deps = [
|
||||
tabulate
|
||||
tensorboardx
|
||||
];
|
||||
|
||||
rllib-deps = tune-deps ++ [
|
||||
dm-tree
|
||||
gym
|
||||
lz4
|
||||
matplotlib
|
||||
scikitimage
|
||||
pyyaml
|
||||
scipy
|
||||
];
|
||||
|
||||
air-deps = data-deps ++ serve-deps ++ tune-deps ++ rllib-deps;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
pythonRelaxDepsHook
|
||||
];
|
||||
|
||||
pythonRelaxDeps = [ "grpcio" "click" "protobuf" ];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
attrs
|
||||
aiohttp
|
||||
aiohttp-cors
|
||||
aiosignal
|
||||
click
|
||||
cloudpickle
|
||||
colorama
|
||||
colorful
|
||||
cython
|
||||
filelock
|
||||
frozenlist
|
||||
gpustat
|
||||
grpcio
|
||||
jsonschema
|
||||
msgpack
|
||||
numpy
|
||||
opencensus
|
||||
packaging
|
||||
py-spy
|
||||
prometheus-client
|
||||
protobuf3_20
|
||||
psutil
|
||||
pydantic
|
||||
pyyaml
|
||||
requests
|
||||
setproctitle
|
||||
smart-open
|
||||
virtualenv
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
chmod +x $out/${python.sitePackages}/ray/core/src/ray/{gcs/gcs_server,raylet/raylet}
|
||||
ln -sf ${redis}/bin/redis-server $out/${python.sitePackages}/ray/core/src/ray/thirdparty/redis/src/redis-server
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "ray" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A unified framework for scaling AI and Python applications";
|
||||
homepage = "https://github.com/ray-project/ray";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ billhuang ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
68
pkgs/development/tools/misc/deheader/default.nix
Normal file
68
pkgs/development/tools/misc/deheader/default.nix
Normal file
@ -0,0 +1,68 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, python3
|
||||
, xmlto
|
||||
, docbook-xsl-nons
|
||||
, fetchFromGitLab
|
||||
, installShellFiles
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "deheader";
|
||||
version = "1.8";
|
||||
outputs = [ "out" "man" ];
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "esr";
|
||||
repo = "deheader";
|
||||
rev = version;
|
||||
sha256 = "sha256-sjxgUtdsi/sfxOViDj7l8591TSYwtCzDQcHsk9ClXuM=";
|
||||
};
|
||||
|
||||
buildInputs = [ python3 ];
|
||||
|
||||
nativeBuildInputs = [ xmlto docbook-xsl-nons installShellFiles ];
|
||||
|
||||
# With upstream Makefile, xmlto is called without "--skip-validation". It
|
||||
# makes it require a lot of dependencies, yet ultimately it fails
|
||||
# nevertheless in attempt to fetch something from SourceForge.
|
||||
#
|
||||
# Need to set "foundMakefile" so "make check" tests are run.
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
xmlto man --skip-validation deheader.xml
|
||||
patchShebangs ./deheader
|
||||
foundMakefile=1
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -Dm755 ./deheader -t $out/bin
|
||||
installManPage ./deheader.1
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Tool to find and optionally remove unneeded includes in C or C++ source files";
|
||||
longDescription = ''
|
||||
This tool takes a list of C or C++ sourcefiles and generates a report
|
||||
on which #includes can be omitted from them -- the test, for each foo.c
|
||||
or foo.cc or foo.cpp, is simply whether 'rm foo.o; make foo.o' returns a
|
||||
zero status. Optionally, with the -r option, the unneeded headers are removed.
|
||||
The tool also reports on headers required for strict portability.
|
||||
'';
|
||||
homepage = "http://catb.org/~esr/deheader";
|
||||
changelog = "https://gitlab.com/esr/deheader/-/blob/master/NEWS.adoc";
|
||||
license = licenses.bsd2;
|
||||
maintainers = with maintainers; [ kaction ];
|
||||
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -32,11 +32,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gpsd";
|
||||
version = "3.23.1";
|
||||
version = "3.24";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://savannah/${pname}/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-C5kc6aRlOMTqRQ96juQo/0T7T41mX93y/+QP4K6abAk=";
|
||||
sha256 = "sha256-AO4T9hVlUoSHSmYb4TVTq+ZhKObetc1kivm8DLNF/lw=";
|
||||
};
|
||||
|
||||
# TODO: render & install HTML documentation using asciidoctor
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "fsql";
|
||||
version = "0.5.0";
|
||||
version = "0.5.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kshvmdn";
|
||||
repo = "fsql";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-YavkN7n2Nt92T+uMwWRVv3q81DA6fFoNIJt9NYMS3rc=";
|
||||
sha256 = "sha256-6KqlpFBaAWrlEjkFQhOEic569+eoYVAsnhMrg8AEPV4=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-xuD7/gTssf1Iu1VuIRysjtUjve16gozOq0Wz4w6mIB8=";
|
||||
|
37
pkgs/tools/system/nvitop/default.nix
Normal file
37
pkgs/tools/system/nvitop/default.nix
Normal file
@ -0,0 +1,37 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, python3Packages
|
||||
, fetchFromGitHub
|
||||
, makeWrapper
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "nvitop";
|
||||
version = "0.10.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "XuehaiPan";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-nGdEMLxpw2Ts0dypkoZg3r2NF4IeT1ykbRmrmf9qxrA=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
cachetools
|
||||
psutil
|
||||
termcolor
|
||||
nvidia-ml-py
|
||||
];
|
||||
|
||||
checkPhase = ''
|
||||
$out/bin/nvitop --help
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "An interactive NVIDIA-GPU process viewer, the one-stop solution for GPU process management";
|
||||
homepage = "https://github.com/XuehaiPan/nvitop";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ GaetanLepage ];
|
||||
platforms = with platforms; linux;
|
||||
};
|
||||
}
|
@ -12,20 +12,20 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "mdcat";
|
||||
version = "0.28.0";
|
||||
version = "0.29.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lunaryorn";
|
||||
repo = "mdcat";
|
||||
rev = "mdcat-${version}";
|
||||
sha256 = "sha256-l64gRoWYYLbPA0n6vNQf14CCUtnkfMnQdqbetIbWvBU=";
|
||||
sha256 = "sha256-Fh2OVb4d6WHuoJM503jaN9lan/JCrxMXZjCVpvuYbRQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config asciidoctor installShellFiles ];
|
||||
buildInputs = [ openssl ]
|
||||
++ lib.optional stdenv.isDarwin Security;
|
||||
|
||||
cargoSha256 = "sha256-MCldDRleFfl4UrITuMEmLo0JyR+eoi6S6zGvFOMnIBE=";
|
||||
cargoSha256 = "sha256-ZwJX+kXpj6nARFDx/+LsHWLzMUGBYJvM0DA0+WZukpI=";
|
||||
|
||||
checkInputs = [ ansi2html ];
|
||||
# Skip tests that use the network and that include files.
|
||||
|
@ -3695,6 +3695,8 @@ with pkgs;
|
||||
|
||||
dedup = callPackage ../tools/backup/dedup { };
|
||||
|
||||
deheader = callPackage ../development/tools/misc/deheader { };
|
||||
|
||||
dehydrated = callPackage ../tools/admin/dehydrated { };
|
||||
|
||||
deja-dup = callPackage ../applications/backup/deja-dup { };
|
||||
@ -10050,6 +10052,10 @@ with pkgs;
|
||||
|
||||
pagmo2 = callPackage ../development/libraries/pagmo2 { };
|
||||
|
||||
paho-mqtt-c = callPackage ../development/libraries/paho-mqtt-c { };
|
||||
|
||||
paho-mqtt-cpp = callPackage ../development/libraries/paho-mqtt-cpp { };
|
||||
|
||||
pakcs = callPackage ../development/compilers/pakcs {
|
||||
# Doesn't compile with GHC 9.0 due to whitespace syntax changes
|
||||
# see also https://github.com/NixOS/nixpkgs/issues/166108
|
||||
@ -21329,6 +21335,8 @@ with pkgs;
|
||||
|
||||
nvidia-optical-flow-sdk = callPackage ../development/libraries/nvidia-optical-flow-sdk { };
|
||||
|
||||
nvitop = callPackage ../tools/system/nvitop { };
|
||||
|
||||
nvtop = callPackage ../tools/system/nvtop { };
|
||||
nvtop-nvidia = callPackage ../tools/system/nvtop { amd = false; };
|
||||
nvtop-amd = callPackage ../tools/system/nvtop { nvidia = false; };
|
||||
|
@ -1594,6 +1594,8 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
BioExtAlign = callPackage ../development/perl-modules/Bio-Ext-Align { };
|
||||
|
||||
BioPerl = buildPerlPackage {
|
||||
pname = "BioPerl";
|
||||
version = "1.7.8";
|
||||
|
@ -433,6 +433,8 @@ in {
|
||||
|
||||
aiorun = callPackage ../development/python-modules/aiorun { };
|
||||
|
||||
aiorwlock = callPackage ../development/python-modules/aiorwlock { };
|
||||
|
||||
aiosenseme = callPackage ../development/python-modules/aiosenseme { };
|
||||
|
||||
aiosenz = callPackage ../development/python-modules/aiosenz { };
|
||||
@ -4031,6 +4033,8 @@ in {
|
||||
|
||||
gpsoauth = callPackage ../development/python-modules/gpsoauth { };
|
||||
|
||||
gpustat = callPackage ../development/python-modules/gpustat { };
|
||||
|
||||
gpxpy = callPackage ../development/python-modules/gpxpy { };
|
||||
|
||||
gpy = callPackage ../development/python-modules/gpy { };
|
||||
@ -6512,6 +6516,8 @@ in {
|
||||
openbabel = callPackage ../development/libraries/openbabel { inherit (self) python; };
|
||||
};
|
||||
|
||||
opencensus = callPackage ../development/python-modules/opencensus { };
|
||||
|
||||
opencv3 = toPythonModule (pkgs.opencv3.override {
|
||||
enablePython = true;
|
||||
pythonPackages = self;
|
||||
@ -9612,6 +9618,8 @@ in {
|
||||
|
||||
rawkit = callPackage ../development/python-modules/rawkit { };
|
||||
|
||||
ray = callPackage ../development/python-modules/ray { redis = pkgs.redis; };
|
||||
|
||||
rbtools = callPackage ../development/python-modules/rbtools { };
|
||||
|
||||
rcssmin = callPackage ../development/python-modules/rcssmin { };
|
||||
|
Loading…
Reference in New Issue
Block a user