mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-02-21 11:34:13 +00:00
Merge master into haskell-updates
This commit is contained in:
commit
ee1102cdec
@ -38,7 +38,7 @@ let
|
||||
substr = builtins.substring prefixLen filenameLen filename;
|
||||
in substr;
|
||||
|
||||
removeNixpkgs = removeFilenamePrefix pkgs.path;
|
||||
removeNixpkgs = removeFilenamePrefix (builtins.toString pkgs.path);
|
||||
|
||||
liblocations =
|
||||
builtins.filter
|
||||
|
@ -140,7 +140,7 @@ let
|
||||
origSrc = if isFiltered then src.origSrc else src;
|
||||
in lib.cleanSourceWith {
|
||||
filter = (path: type:
|
||||
let relPath = lib.removePrefix (origSrc + "/") (path);
|
||||
let relPath = lib.removePrefix (toString origSrc + "/") (toString path);
|
||||
in lib.any (re: match re relPath != null) regexes);
|
||||
inherit src;
|
||||
};
|
||||
@ -175,12 +175,12 @@ let
|
||||
*/
|
||||
commitIdFromGitRepo =
|
||||
let readCommitFromFile = file: path:
|
||||
let fileName = path + "/" + file;
|
||||
packedRefsName = path + "/packed-refs";
|
||||
let fileName = toString path + "/" + file;
|
||||
packedRefsName = toString path + "/packed-refs";
|
||||
absolutePath = base: path:
|
||||
if lib.hasPrefix "/" path
|
||||
then path
|
||||
else /. + "${base}/${path}";
|
||||
else toString (/. + "${base}/${path}");
|
||||
in if pathIsRegularFile path
|
||||
# Resolve git worktrees. See gitrepository-layout(5)
|
||||
then
|
||||
@ -226,7 +226,7 @@ let
|
||||
|
||||
pathHasContext = builtins.hasContext or (lib.hasPrefix storeDir);
|
||||
|
||||
canCleanSource = src: src ? _isLibCleanSourceWith || !(pathHasContext src);
|
||||
canCleanSource = src: src ? _isLibCleanSourceWith || !(pathHasContext (toString src));
|
||||
|
||||
# -------------------------------------------------------------------------- #
|
||||
# Internal functions
|
||||
|
@ -183,14 +183,13 @@ rec {
|
||||
seccompSupport = false;
|
||||
hostCpuTargets = [ "${final.qemuArch}-linux-user" ];
|
||||
};
|
||||
wine-name = "wine${toString final.parsed.cpu.bits}";
|
||||
wine = (pkgs.winePackagesFor wine-name).minimal;
|
||||
wine = (pkgs.winePackagesFor "wine${toString final.parsed.cpu.bits}").minimal;
|
||||
in
|
||||
if final.parsed.kernel.name == pkgs.stdenv.hostPlatform.parsed.kernel.name &&
|
||||
pkgs.stdenv.hostPlatform.canExecute final
|
||||
then "${pkgs.runtimeShell} -c '\"$@\"' --"
|
||||
else if final.isWindows
|
||||
then "${wine}/bin/${wine-name}"
|
||||
then "${wine}/bin/wine${lib.optionalString (final.parsed.cpu.bits == 64) "64"}"
|
||||
else if final.isLinux && pkgs.stdenv.hostPlatform.isLinux
|
||||
then "${qemu-user}/bin/qemu-${final.qemuArch}"
|
||||
else if final.isWasi
|
||||
|
@ -213,8 +213,8 @@ rec {
|
||||
# Default value to return if revision can not be determined
|
||||
default:
|
||||
let
|
||||
revisionFile = ./.. + "/.git-revision";
|
||||
gitRepo = ./.. + "/.git";
|
||||
revisionFile = "${toString ./..}/.git-revision";
|
||||
gitRepo = "${toString ./..}/.git";
|
||||
in if lib.pathIsGitRepo gitRepo
|
||||
then lib.commitIdFromGitRepo gitRepo
|
||||
else if lib.pathExists revisionFile then lib.fileContents revisionFile
|
||||
|
@ -1655,6 +1655,15 @@
|
||||
githubId = 214787;
|
||||
name = "Herwig Hochleitner";
|
||||
};
|
||||
benesim = {
|
||||
name = "Benjamin Isbarn";
|
||||
email = "benjamin.isbarn@gmail.com";
|
||||
github = "benesim";
|
||||
githubId = 29384538;
|
||||
keys = [{
|
||||
fingerprint = "D35E C9CE E631 638F F1D8 B401 6F0E 410D C3EE D02";
|
||||
}];
|
||||
};
|
||||
benley = {
|
||||
email = "benley@gmail.com";
|
||||
github = "benley";
|
||||
|
@ -643,6 +643,15 @@
|
||||
maintainer to update the package.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
ppd files in <literal>pkgs.cups-drv-rastertosag-gdi</literal>
|
||||
are now gzipped. If you refer to such a ppd file with its path
|
||||
(e.g. via
|
||||
<link xlink:href="options.html#opt-hardware.printers.ensurePrinters">hardware.printers.ensurePrinters</link>)
|
||||
you will need to append <literal>.gz</literal> to the path.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
xow package removed along with the
|
||||
|
@ -210,6 +210,8 @@ Available as [services.patroni](options.html#opt-services.patroni.enable).
|
||||
|
||||
- riak package removed along with `services.riak` module, due to lack of maintainer to update the package.
|
||||
|
||||
- ppd files in `pkgs.cups-drv-rastertosag-gdi` are now gzipped. If you refer to such a ppd file with its path (e.g. via [hardware.printers.ensurePrinters](options.html#opt-hardware.printers.ensurePrinters)) you will need to append `.gz` to the path.
|
||||
|
||||
- xow package removed along with the `hardware.xow` module, due to the project being deprecated in favor of `xone`, which is available via the `hardware.xone` module.
|
||||
|
||||
- dd-agent package removed along with the `services.dd-agent` module, due to the project being deprecated in favor of `datadog-agent`, which is available via the `services.datadog-agent` module.
|
||||
|
@ -3,7 +3,7 @@ import sys
|
||||
|
||||
options = json.load(sys.stdin)
|
||||
for (name, value) in options.items():
|
||||
print('##', name.replace('<', '\\<').replace('>', '\\>'))
|
||||
print('##', name.replace('<', '<').replace('>', '>'))
|
||||
print(value['description'])
|
||||
print()
|
||||
if 'type' in value:
|
||||
|
@ -40,6 +40,7 @@ in
|
||||
after = [ "network.target" ];
|
||||
environment = {
|
||||
INFLUXD_CONFIG_PATH = configFile;
|
||||
ZONEINFO = "${pkgs.tzdata}/share/zoneinfo";
|
||||
};
|
||||
serviceConfig = {
|
||||
ExecStart = "${cfg.package}/bin/influxd --bolt-path \${STATE_DIRECTORY}/influxd.bolt --engine-path \${STATE_DIRECTORY}/engine";
|
||||
|
@ -263,6 +263,15 @@ in {
|
||||
|
||||
serve = {
|
||||
enable = mkEnableOption (lib.mdDoc "Automatic nginx and uwsgi setup for mailman-web");
|
||||
|
||||
virtualRoot = mkOption {
|
||||
default = "/";
|
||||
example = lib.literalExpression "/lists";
|
||||
type = types.str;
|
||||
description = lib.mdDoc ''
|
||||
Path to mount the mailman-web django application on.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
extraPythonPackages = mkOption {
|
||||
@ -433,8 +442,8 @@ in {
|
||||
enable = mkDefault true;
|
||||
virtualHosts = lib.genAttrs cfg.webHosts (webHost: {
|
||||
locations = {
|
||||
"/".extraConfig = "uwsgi_pass unix:/run/mailman-web.socket;";
|
||||
"/static/".alias = webSettings.STATIC_ROOT + "/";
|
||||
${cfg.serve.virtualRoot}.extraConfig = "uwsgi_pass unix:/run/mailman-web.socket;";
|
||||
"${cfg.serve.virtualRoot}/static/".alias = webSettings.STATIC_ROOT + "/";
|
||||
};
|
||||
});
|
||||
};
|
||||
@ -561,7 +570,8 @@ in {
|
||||
type = "normal";
|
||||
plugins = ["python3"];
|
||||
home = webEnv;
|
||||
module = "mailman_web.wsgi";
|
||||
manage-script-name = true;
|
||||
mount = "${cfg.serve.virtualRoot}=mailman_web.wsgi:application";
|
||||
http = "127.0.0.1:18507";
|
||||
};
|
||||
uwsgiConfigFile = pkgs.writeText "uwsgi-mailman.json" (builtins.toJSON uwsgiConfig);
|
||||
|
@ -115,7 +115,7 @@ in
|
||||
description = "Synergy server";
|
||||
wantedBy = optional cfgS.autoStart "graphical-session.target";
|
||||
path = [ pkgs.synergy ];
|
||||
serviceConfig.ExecStart = ''${pkgs.synergy}/bin/synergys -c ${cfgS.configFile} -f${optionalString (cfgS.address != "") " -a ${cfgS.address}"}${optionalString (cfgS.screenName != "") " -n ${cfgS.screenName}"}${optionalString cfgS.tls.enable " --enable-crypto"}${optionalString (cfgS.tls.cert != null) (" --tls-cert=${cfgS.tls.cert}")}'';
|
||||
serviceConfig.ExecStart = ''${pkgs.synergy}/bin/synergys -c ${cfgS.configFile} -f${optionalString (cfgS.address != "") " -a ${cfgS.address}"}${optionalString (cfgS.screenName != "") " -n ${cfgS.screenName}"}${optionalString cfgS.tls.enable " --enable-crypto"}${optionalString (cfgS.tls.cert != null) (" --tls-cert ${cfgS.tls.cert}")}'';
|
||||
serviceConfig.Restart = "on-failure";
|
||||
};
|
||||
})
|
||||
|
@ -4,6 +4,8 @@ with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.prometheus.exporters.node;
|
||||
collectorIsEnabled = final: any (collector: (final == collector)) cfg.enabledCollectors;
|
||||
collectorIsDisabled = final: any (collector: (final == collector)) cfg.disabledCollectors;
|
||||
in
|
||||
{
|
||||
port = 9100;
|
||||
@ -35,15 +37,15 @@ in
|
||||
${concatMapStringsSep " " (x: "--no-collector." + x) cfg.disabledCollectors} \
|
||||
--web.listen-address ${cfg.listenAddress}:${toString cfg.port} ${concatStringsSep " " cfg.extraFlags}
|
||||
'';
|
||||
RestrictAddressFamilies = optionals (any (collector: (collector == "logind" || collector == "systemd")) cfg.enabledCollectors) [
|
||||
RestrictAddressFamilies = optionals (collectorIsEnabled "logind" || collectorIsEnabled "systemd") [
|
||||
# needs access to dbus via unix sockets (logind/systemd)
|
||||
"AF_UNIX"
|
||||
] ++ optionals (any (collector: (collector == "network_route" || collector == "wifi")) cfg.enabledCollectors) [
|
||||
] ++ optionals (collectorIsEnabled "network_route" || collectorIsEnabled "wifi" || ! collectorIsDisabled "netdev") [
|
||||
# needs netlink sockets for wireless collector
|
||||
"AF_NETLINK"
|
||||
];
|
||||
# The timex collector needs to access clock APIs
|
||||
ProtectClock = any (collector: collector == "timex") cfg.disabledCollectors;
|
||||
ProtectClock = collectorIsDisabled "timex";
|
||||
# Allow space monitoring under /home
|
||||
ProtectHome = true;
|
||||
};
|
||||
|
@ -201,7 +201,7 @@ in
|
||||
serviceConfig = {
|
||||
ExecStart = "@${cfg.package}/bin/consul consul agent -config-dir /etc/consul.d"
|
||||
+ concatMapStrings (n: " -config-file ${n}") configFiles;
|
||||
ExecReload = "${cfg.package}/bin/consul reload";
|
||||
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
||||
PermissionsStartOnly = true;
|
||||
User = if cfg.dropPrivileges then "consul" else null;
|
||||
Restart = "on-failure";
|
||||
|
@ -54,7 +54,7 @@ in {
|
||||
smtps = {
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = 445;
|
||||
default = 465;
|
||||
description = lib.mdDoc ''
|
||||
The SMTPS server port.
|
||||
'';
|
||||
|
@ -429,6 +429,7 @@ in {
|
||||
nginx-etag = handleTest ./nginx-etag.nix {};
|
||||
nginx-http3 = handleTest ./nginx-http3.nix {};
|
||||
nginx-modsecurity = handleTest ./nginx-modsecurity.nix {};
|
||||
nginx-njs = handleTest ./nginx-njs.nix {};
|
||||
nginx-pubhtml = handleTest ./nginx-pubhtml.nix {};
|
||||
nginx-sandbox = handleTestOn ["x86_64-linux"] ./nginx-sandbox.nix {};
|
||||
nginx-sso = handleTest ./nginx-sso.nix {};
|
||||
|
@ -1,8 +1,5 @@
|
||||
{ lib, pkgs }: {
|
||||
mariadbPackages = lib.filterAttrs (n: _: lib.hasPrefix "mariadb" n) (pkgs.callPackage ../../../pkgs/servers/sql/mariadb {
|
||||
inherit (pkgs.darwin) cctools;
|
||||
inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices;
|
||||
});
|
||||
mariadbPackages = lib.filterAttrs (n: _: lib.hasPrefix "mariadb" n) (import ../../../pkgs/servers/sql/mariadb pkgs);
|
||||
mysqlPackages = {
|
||||
inherit (pkgs) mysql80;
|
||||
};
|
||||
|
27
nixos/tests/nginx-njs.nix
Normal file
27
nixos/tests/nginx-njs.nix
Normal file
@ -0,0 +1,27 @@
|
||||
import ./make-test-python.nix ({ pkgs, lib, ... }: {
|
||||
name = "nginx-njs";
|
||||
|
||||
nodes.machine = { config, lib, pkgs, ... }: {
|
||||
services.nginx = {
|
||||
enable = true;
|
||||
additionalModules = [ pkgs.nginxModules.njs ];
|
||||
commonHttpConfig = ''
|
||||
js_import http from ${builtins.toFile "http.js" ''
|
||||
function hello(r) {
|
||||
r.return(200, "Hello world!");
|
||||
}
|
||||
export default {hello};
|
||||
''};
|
||||
'';
|
||||
virtualHosts."localhost".locations."/".extraConfig = ''
|
||||
js_content http.hello;
|
||||
'';
|
||||
};
|
||||
};
|
||||
testScript = ''
|
||||
machine.wait_for_unit("nginx")
|
||||
|
||||
response = machine.wait_until_succeeds("curl -fvvv -s http://127.0.0.1/")
|
||||
assert "Hello world!" == response, f"Expected 'Hello world!', got '{response}'"
|
||||
'';
|
||||
})
|
@ -20,7 +20,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "squeekboard";
|
||||
version = "1.17.0";
|
||||
version = "1.20.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
@ -28,18 +28,23 @@ stdenv.mkDerivation rec {
|
||||
owner = "Phosh";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-U46OQ0bXkXv6za8vUZxtbxJKqiF/X/xxJsqQGpnRIpg=";
|
||||
sha256 = "sha256-wx3fKRX/SPYGAFuR9u03JAvVRhtYIPUvW8mAsCdx83I=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
cargoUpdateHook = ''
|
||||
cat Cargo.toml.in Cargo.deps > Cargo.toml
|
||||
cat Cargo.toml.in Cargo.deps.newer > Cargo.toml
|
||||
cp Cargo.lock.newer Cargo.lock
|
||||
'';
|
||||
name = "${pname}-${version}";
|
||||
sha256 = "sha256-4q8MW1n/xu538+R5ZlA+p/hd6pOQPKj7jOFwnuMc7sk=";
|
||||
sha256 = "sha256-BbNkapqnqEW/NglrCse10Tm80SXYVQWWrOC5dTN6oi0=";
|
||||
};
|
||||
|
||||
mesonFlags = [
|
||||
"-Dnewer=true"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
@ -67,7 +72,7 @@ stdenv.mkDerivation rec {
|
||||
description = "A virtual keyboard supporting Wayland";
|
||||
homepage = "https://source.puri.sm/Librem5/squeekboard";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ artturin ];
|
||||
maintainers = with maintainers; [ artturin tomfitzhenry ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
@ -2,36 +2,32 @@
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, makeWrapper
|
||||
, SDL
|
||||
, SDL_image
|
||||
, SDL_ttf
|
||||
, gtk2
|
||||
, glib
|
||||
, gtk3
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "hivelytracker";
|
||||
version = "unstable-2020-08-19";
|
||||
version = "1.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pete-gordon";
|
||||
repo = "hivelytracker";
|
||||
rev = "c8e3c7a5ee9f4a07cb4a941caecf7e4c4f4d40e0";
|
||||
sha256 = "1nqianlf1msir6wqwapi7ys1vbmf6aik58wa54b6cn5v6kwxh75a";
|
||||
rev = "V${lib.replaceStrings ["."] ["_"] version}";
|
||||
sha256 = "148p320sd8phcpmj4m85ns5zly2dawbp8kgx9ryjfdk24pa88xg6";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
SDL
|
||||
SDL_image
|
||||
SDL_ttf
|
||||
gtk2
|
||||
glib
|
||||
gtk3
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
@ -40,28 +36,12 @@ stdenv.mkDerivation rec {
|
||||
"PREFIX=$(out)"
|
||||
];
|
||||
|
||||
# TODO: try to exclude gtk and glib from darwin builds
|
||||
NIX_CFLAGS_COMPILE = [
|
||||
"-I${SDL}/include/SDL"
|
||||
"-I${SDL_image}/include/SDL"
|
||||
"-I${SDL_ttf}/include/SDL"
|
||||
"-I${gtk2.dev}/include/gtk-2.0"
|
||||
"-I${glib.dev}/include/glib-2.0"
|
||||
];
|
||||
|
||||
# Also build the hvl2wav tool
|
||||
postBuild = ''
|
||||
make -C hvl2wav
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
# https://github.com/pete-gordon/hivelytracker/issues/43
|
||||
# Ideally we should patch the sources, but the program can't open
|
||||
# files passed as arguments anyway, so this works well enough until the
|
||||
# issue is fixed.
|
||||
wrapProgram $out/bin/hivelytracker \
|
||||
--chdir "$out/share/hivelytracker"
|
||||
|
||||
# Also install the hvl2wav tool
|
||||
install -Dm755 hvl2wav/hvl2wav $out/bin/hvl2wav
|
||||
'';
|
||||
@ -86,4 +66,3 @@ stdenv.mkDerivation rec {
|
||||
broken = stdenv.isDarwin; # TODO: try to use xcbuild
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,9 @@
|
||||
, glib, pango, cairo, atk, gdk-pixbuf, gtk3, cups, nspr, nss, libpng, libnotify
|
||||
, libgcrypt, systemd, fontconfig, dbus, expat, ffmpeg, curlWithGnuTls, zlib, gnome
|
||||
, at-spi2-atk, at-spi2-core, libpulseaudio, libdrm, mesa, libxkbcommon
|
||||
# High-DPI support: Spotify's --force-device-scale-factor argument
|
||||
# not added if `null`, otherwise, should be a number.
|
||||
, deviceScaleFactor ? null
|
||||
}:
|
||||
|
||||
let
|
||||
@ -67,7 +70,7 @@ let
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "spotify-unwrapped";
|
||||
pname = "spotify";
|
||||
inherit version;
|
||||
|
||||
# fetch from snapcraft instead of the debian repository most repos fetch from.
|
||||
@ -143,6 +146,9 @@ stdenv.mkDerivation {
|
||||
librarypath="${lib.makeLibraryPath deps}:$libdir"
|
||||
wrapProgram $out/share/spotify/spotify \
|
||||
''${gappsWrapperArgs[@]} \
|
||||
${lib.optionalString (deviceScaleFactor != null) ''
|
||||
--add-flags "--force-device-scale-factor=${toString deviceScaleFactor}" \
|
||||
''} \
|
||||
--prefix LD_LIBRARY_PATH : "$librarypath" \
|
||||
--prefix PATH : "${gnome.zenity}/bin"
|
||||
|
||||
|
@ -1,31 +0,0 @@
|
||||
{ symlinkJoin
|
||||
, lib
|
||||
, spotify-unwrapped
|
||||
, makeWrapper
|
||||
|
||||
# High-DPI support: Spotify's --force-device-scale-factor argument; not added
|
||||
# if `null`, otherwise, should be a number.
|
||||
, deviceScaleFactor ? null
|
||||
}:
|
||||
|
||||
symlinkJoin {
|
||||
name = "spotify-${spotify-unwrapped.version}";
|
||||
|
||||
paths = [ spotify-unwrapped.out ];
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
preferLocalBuild = true;
|
||||
passthru.unwrapped = spotify-unwrapped;
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/spotify \
|
||||
${lib.optionalString (deviceScaleFactor != null) ''
|
||||
--add-flags ${lib.escapeShellArg "--force-device-scale-factor=${
|
||||
builtins.toString deviceScaleFactor
|
||||
}"}
|
||||
''}
|
||||
'';
|
||||
|
||||
meta = spotify-unwrapped.meta // {
|
||||
priority = (spotify-unwrapped.meta.priority or 0) - 1;
|
||||
};
|
||||
}
|
@ -7,14 +7,14 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "termusic";
|
||||
version = "0.7.3";
|
||||
version = "0.7.5";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-5I9Fu+A5IBfaxaPcYKTzWq3/8ts0BPSOOVeU6D61dbc=";
|
||||
sha256 = "sha256-/wpaxXY0hT7XX44cW1f3JuowE5u46/aLMC2VXgty/jE=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-R/hElL0MjeBqboJTQkIREPOh+/YbdKtUAzqPD6BpSPs=";
|
||||
cargoHash = "sha256-TznzZ1dcun57IQ8e2T2FOxSdyqxS6etnuvxOY8n1y14=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ alsa-lib ];
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "lighthouse";
|
||||
version = "3.1.2";
|
||||
version = "3.2.1";
|
||||
|
||||
# lighthouse/common/deposit_contract/build.rs
|
||||
depositContractSpecVersion = "0.12.1";
|
||||
@ -27,10 +27,10 @@ rustPlatform.buildRustPackage rec {
|
||||
owner = "sigp";
|
||||
repo = "lighthouse";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-EJFg6ZjxxijxJNMwKRh0cYeqwujUV3OJgXBvBRsnbVI=";
|
||||
sha256 = "sha256-Aqc3kk1rquhLKNZDlEun4bQpKI4Nsk7+Wr7E2IkJQEs=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-iXqRtBqvM9URQsL8qGmpr3CNX2fpbtDOaluibAX/lWo=";
|
||||
cargoSha256 = "sha256-wGEk7OfEmyeRW65kq5stvKCdnCjfssyXUmNWGkGq42M=";
|
||||
|
||||
buildFeatures = [ "modern" "gnosis" ];
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, lib, fetchgit, pkg-config, meson, ninja
|
||||
{ stdenv, lib, fetchgit, pkg-config, meson, ninja, wrapGAppsHook
|
||||
, enchant, gtkmm3, libchamplain, libgcrypt, shared-mime-info }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
|
||||
ninja
|
||||
pkg-config
|
||||
shared-mime-info # for update-mime-database
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
|
@ -25,14 +25,14 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "foxotron";
|
||||
version = "2022-08-06";
|
||||
version = "2022-11-02";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Gargaj";
|
||||
repo = "Foxotron";
|
||||
rev = version;
|
||||
fetchSubmodules = true;
|
||||
sha256 = "sha256-IGLoiUeHcTlQ+WJTot3o5/Q+jRJcY52I3xHDAT0zuIU=";
|
||||
sha256 = "sha256-WjsVvFhwVCzclHxA+Gu2YtR2yK0Opqhncwlg9FEhOLk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config makeWrapper ];
|
||||
|
@ -12,12 +12,12 @@ let
|
||||
if extension == "zip" then fetchzip args else fetchurl args;
|
||||
|
||||
pname = "1password-cli";
|
||||
version = "2.7.2";
|
||||
version = "2.7.3";
|
||||
sources = rec {
|
||||
aarch64-linux = fetch "linux_arm64" "sha256-lYY69zbJqE9KuP1Yihfz444GFazHgR9zHVDq9RzZdTA=" "zip";
|
||||
i686-linux = fetch "linux_386" "sha256-IgTusLxgeOS9u4G1M7JqqxJw2D3hy5L9wl77crgfHjM=" "zip";
|
||||
x86_64-linux = fetch "linux_amd64" "sha256-OL/URp5eU3K1ObTlC4nXELa7NkrZDW5tFwhgVdrmPdQ=" "zip";
|
||||
aarch64-darwin = fetch "apple_universal" "sha256-pL39V9AO2DjCcWlecteTMCcBBZVb3RXmJ8wk5gyFojg=" "pkg";
|
||||
aarch64-linux = fetch "linux_arm64" "sha256-FxApOWyExyfuRFQhxAVBWZGqQNmarBFBRB4jqsreWL0=" "zip";
|
||||
i686-linux = fetch "linux_386" "sha256-Ta6mdmcsKnNRMz9vwEadZ/xXVBran5BIJQngzNz3PUs=" "zip";
|
||||
x86_64-linux = fetch "linux_amd64" "sha256-Lvxnp5KmkIj9jnaWg02a27eRYIx7WTNSLx+RJ04Vt+g=" "zip";
|
||||
aarch64-darwin = fetch "apple_universal" "sha256-6qrNgb5ae+qqlNsNDLbKNeWj0o/SRs+2G/4DfK5Wnhg=" "pkg";
|
||||
x86_64-darwin = aarch64-darwin;
|
||||
};
|
||||
platforms = builtins.attrNames sources;
|
||||
|
@ -5,13 +5,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "dmenu-wayland-unstable";
|
||||
version = "2020-07-06";
|
||||
version = "2022-11-04";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nyyManni";
|
||||
repo = "dmenu-wayland";
|
||||
rev = "304c8e917651ee02b16ebf0b7097a5c53fa2236b";
|
||||
sha256 = "0rkpmpk7xkcfbnv9vpg8n65423z5xpgp0hm2vg0rxf9354bjin7k";
|
||||
rev = "b60047236ef7a4e5dcde6c4ac0dcfaa070d90041";
|
||||
sha256 = "sha256-CeJWLBPAzE3JITVuS6f4CQxLz9v09WvfG3O0wErJJS4=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "man" ];
|
||||
|
@ -2,6 +2,7 @@
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, appstream-glib
|
||||
, blueprint-compiler
|
||||
, desktop-file-utils
|
||||
, gobject-introspection
|
||||
, meson
|
||||
@ -16,17 +17,19 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "junction";
|
||||
version = "1.5.0";
|
||||
version = "1.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sonnyp";
|
||||
repo = "junction";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-jS4SHh1BB8jk/4EP070X44C4n3GjyCz8ozgK8v5lbqc=";
|
||||
sha256 = "sha256-95lKap0VKLxX5Vax2tK0cAcJ/XgQddoN46tXHo+MtYc=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
appstream-glib
|
||||
blueprint-compiler
|
||||
desktop-file-utils
|
||||
gobject-introspection
|
||||
meson
|
||||
@ -42,12 +45,25 @@ stdenv.mkDerivation rec {
|
||||
libportal-gtk4
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# gjs uses the invocation name to add gresource files
|
||||
# - https://gitlab.gnome.org/GNOME/gjs/-/blob/6aca7b50785fa1638f144b17060870d721e3f65a/modules/script/package.js#L159
|
||||
# - https://gitlab.gnome.org/GNOME/gjs/-/blob/6aca7b50785fa1638f144b17060870d721e3f65a/modules/script/package.js#L37
|
||||
# To work around this, we manually set the the name as done in foliate
|
||||
# - https://github.com/NixOS/nixpkgs/blob/3bacde6273b09a21a8ccfba15586fb165078fb62/pkgs/applications/office/foliate/default.nix#L23
|
||||
sed -i "1 a imports.package._findEffectiveEntryPointName = () => 're.sonny.Junction';" src/bin.js
|
||||
|
||||
# /usr/bin/env is not accessible in build environment
|
||||
substituteInPlace troll/gjspack/bin/gjspack --replace "/usr/bin/env -S gjs" "${gjs}/bin/gjs"
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
# autoPatchShebangs does not like "/usr/bin/env -S gjs"
|
||||
substituteInPlace $out/bin/re.sonny.Junction --replace "/usr/bin/env -S gjs" "/usr/bin/gjs"
|
||||
# autoPatchShebangs does not like "/usr/bin/env -S <environment-setting> gjs -m"
|
||||
sed -i "1s|.*|#!/usr/bin/gjs -m|" $out/bin/re.sonny.Junction
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
mainProgram = "re.sonny.Junction";
|
||||
description = "Choose the application to open files and links";
|
||||
homepage = "https://apps.gnome.org/en/app/re.sonny.Junction/";
|
||||
license = licenses.gpl3Plus;
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "dnscontrol";
|
||||
version = "3.20.0";
|
||||
version = "3.21.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "StackExchange";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-jBpapZIQGYC63SEc4kT6pEbNR3H1IQFM7P/wxMlrP8I=";
|
||||
sha256 = "sha256-S07v9SATmE7gqM7+X/eWBG5A+h8lAKJ6mPvU7ImEfN4=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-iY4Q1P4Mir6idcv88Op5v0kQ7PkoOm85aCBb845xvGs=";
|
||||
vendorSha256 = "sha256-h3UOFs7pxf9gwVAcjih8Kxr0b+68W1DanYoTpmeirg8=";
|
||||
|
||||
ldflags = [ "-s" "-w" ];
|
||||
|
||||
|
@ -25,7 +25,11 @@ let
|
||||
sha256 = "sha256-/EWJC3hFIBqwHa9z4nMWR7CpoaqYY+pvw+1vcq4F0LU=";
|
||||
};
|
||||
};
|
||||
aarch64-darwin = {
|
||||
x86_64-darwin = {
|
||||
stable = fetchurl {
|
||||
url = "https://dl.discordapp.net/apps/osx/${version}/Discord.dmg";
|
||||
sha256 = "1jvlxmbfqhslsr16prsgbki77kq7i3ipbkbn67pnwlnis40y9s7p";
|
||||
};
|
||||
ptb = fetchurl {
|
||||
url = "https://dl-ptb.discordapp.net/apps/osx/${version}/DiscordPTB.dmg";
|
||||
sha256 = "sha256-LS7KExVXkOv8O/GrisPMbBxg/pwoDXIOo1dK9wk1yB8=";
|
||||
@ -35,15 +39,7 @@ let
|
||||
sha256 = "0mqpk1szp46mih95x42ld32rrspc6jx1j7qdaxf01whzb3d4pi9l";
|
||||
};
|
||||
};
|
||||
# Stable does not (yet) provide aarch64-darwin support. PTB and Canary, however, do.
|
||||
x86_64-darwin =
|
||||
aarch64-darwin
|
||||
// {
|
||||
stable = fetchurl {
|
||||
url = "https://dl.discordapp.net/apps/osx/${version}/Discord.dmg";
|
||||
sha256 = "1jvlxmbfqhslsr16prsgbki77kq7i3ipbkbn67pnwlnis40y9s7p";
|
||||
};
|
||||
};
|
||||
aarch64-darwin = x86_64-darwin;
|
||||
};
|
||||
src = srcs.${stdenv.hostPlatform.system}.${branch};
|
||||
|
||||
@ -54,8 +50,7 @@ let
|
||||
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
||||
license = licenses.unfree;
|
||||
maintainers = with maintainers; [ MP2E devins2518 artturin infinidoge ];
|
||||
platforms = [ "x86_64-linux" "x86_64-darwin" ]
|
||||
++ lib.optionals (branch != "stable") [ "aarch64-darwin" ];
|
||||
platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
|
||||
};
|
||||
package =
|
||||
if stdenv.isLinux
|
||||
|
@ -9,7 +9,6 @@
|
||||
, fixup_yarn_lock
|
||||
, nodejs
|
||||
, jitsi-meet
|
||||
, applyPatches
|
||||
, conf ? { }
|
||||
}:
|
||||
|
||||
@ -25,14 +24,11 @@ in stdenv.mkDerivation rec {
|
||||
pname = "element-web";
|
||||
inherit (pinData) version;
|
||||
|
||||
src = applyPatches {
|
||||
src = fetchFromGitHub {
|
||||
owner = "vector-im";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = pinData.webSrcHash;
|
||||
};
|
||||
patches = [ ./regenerate-element-web-yarn.lock.diff ];
|
||||
src = fetchFromGitHub {
|
||||
owner = "vector-im";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = pinData.webSrcHash;
|
||||
};
|
||||
|
||||
offlineCache = fetchYarnDeps {
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": "1.11.12",
|
||||
"desktopSrcHash": "85mH9y3/IlThrdZY4Nv6iZQ8SxVGoYcZ1bbkCuAAroU=",
|
||||
"version": "1.11.13",
|
||||
"desktopSrcHash": "E8jpv7cJf8qdR4I3n7id5hUysAiMVvwyqUqHzGnVUJE=",
|
||||
"desktopYarnHash": "1scp9y2lmah3n20f1kpc9paspd3qgslg129diis7g11cz4h0wyi5",
|
||||
"webSrcHash": "MfiPrTw7BFLFPbm6xR5QbQHNPYpaJBtZES6KjISMTeE=",
|
||||
"webYarnHash": "sha256-KZNBocVEs3wD5020h6C4n2jgp4shv4IgFENSi87rUFM="
|
||||
"webSrcHash": "985nxLIOZvrUX11AJDXYRMwC76/aP9ruSCqL47c7ZRM=",
|
||||
"webYarnHash": "0bmjg9qhd89bdnh398lp257mxdgdd88wj5g3fmc3cavyd6hmgzbn"
|
||||
}
|
||||
|
@ -1,32 +0,0 @@
|
||||
diff --git a/yarn.lock b/yarn.lock
|
||||
index 1581f599f..910764c86 100644
|
||||
--- a/yarn.lock
|
||||
+++ b/yarn.lock
|
||||
@@ -3150,6 +3150,11 @@ brorand@^1.0.1, brorand@^1.1.0:
|
||||
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
|
||||
integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==
|
||||
|
||||
+browser-request@^0.3.3:
|
||||
+ version "0.3.3"
|
||||
+ resolved "https://registry.yarnpkg.com/browser-request/-/browser-request-0.3.3.tgz#9ece5b5aca89a29932242e18bf933def9876cc17"
|
||||
+ integrity sha512-YyNI4qJJ+piQG6MMEuo7J3Bzaqssufx04zpEKYfSrl/1Op59HWali9zMtBpXnkmqMcOuWJPZvudrm9wISmnCbg==
|
||||
+
|
||||
browserify-aes@^1.0.0, browserify-aes@^1.0.4:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
|
||||
@@ -8177,7 +8182,6 @@ matrix-js-sdk@21.0.0:
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.12.5"
|
||||
another-json "^0.2.0"
|
||||
- browser-request "^0.3.3"
|
||||
bs58 "^5.0.0"
|
||||
content-type "^1.0.4"
|
||||
loglevel "^1.7.1"
|
||||
@@ -8208,7 +8212,6 @@ matrix-react-sdk@3.59.0:
|
||||
"@types/ua-parser-js" "^0.7.36"
|
||||
await-lock "^2.1.0"
|
||||
blurhash "^1.1.3"
|
||||
- browser-request "^0.3.3"
|
||||
cheerio "^1.0.0-rc.9"
|
||||
classnames "^2.2.6"
|
||||
commonmark "^0.29.3"
|
@ -3,30 +3,35 @@
|
||||
, protobuf
|
||||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
, Cocoa
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "gurk-rs";
|
||||
version = "0.2.5";
|
||||
version = "0.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "boxdot";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-CEsnZ0V85eOH+bjtico5yo9kS6eMT7Dx3H6wiDUjQm4=";
|
||||
sha256 = "sha256-uJvi082HkWW9y8jwHTvzuzBAi7uVtjq/4U0bO0EWdVM=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
rm .cargo/config.toml
|
||||
'';
|
||||
|
||||
cargoHash = "sha256-z+2G/hD1zYOoJrYFB0eEP6y9MoV2OfdkJVt6je94EkU=";
|
||||
buildInputs = [ protobuf ];
|
||||
cargoHash = "sha256-jS6wAswGqgfmpPV6qERhqn1IhpcBSDNh8HDdPo04F0A=";
|
||||
|
||||
nativeBuildInputs = [ protobuf ];
|
||||
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ Cocoa ];
|
||||
|
||||
NIX_LDFLAGS = lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [ "-framework" "AppKit" ];
|
||||
|
||||
PROTOC = "${protobuf}/bin/protoc";
|
||||
|
||||
meta = with lib; {
|
||||
broken = stdenv.isDarwin;
|
||||
description = "Signal Messenger client for terminal";
|
||||
homepage = "https://github.com/boxdot/gurk-rs";
|
||||
license = licenses.agpl3Only;
|
||||
|
@ -27,7 +27,7 @@
|
||||
, range-v3
|
||||
, tl-expected
|
||||
, hunspell
|
||||
, glibmm
|
||||
, glibmm_2_68
|
||||
, webkitgtk_4_1
|
||||
, jemalloc
|
||||
, rnnoise
|
||||
@ -74,7 +74,7 @@ let
|
||||
in
|
||||
env.mkDerivation rec {
|
||||
pname = "telegram-desktop";
|
||||
version = "4.2.4";
|
||||
version = "4.3.0";
|
||||
# Note: Update via pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py
|
||||
|
||||
# Telegram-Desktop with submodules
|
||||
@ -83,7 +83,7 @@ env.mkDerivation rec {
|
||||
repo = "tdesktop";
|
||||
rev = "v${version}";
|
||||
fetchSubmodules = true;
|
||||
sha256 = "sha256-X2ZbjlL3YbPdXSgS+wqZL3FUW2xQ0DhqiOO5MR1QyLY=";
|
||||
sha256 = "1ji9351vcvydkcrdwqx22j1nhl9vysd6ajvghaqxdirvqypiygj0";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@ -131,7 +131,7 @@ env.mkDerivation rec {
|
||||
range-v3
|
||||
tl-expected
|
||||
hunspell
|
||||
glibmm
|
||||
glibmm_2_68
|
||||
webkitgtk_4_1
|
||||
jemalloc
|
||||
rnnoise
|
||||
|
@ -1,14 +1,14 @@
|
||||
{ lib, stdenvNoCC, fetchFromGitHub, python3 }:
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "mpv_thumbnail_script";
|
||||
version = "0.4.9";
|
||||
pname = "mpv-thumbnail-script";
|
||||
version = "0.5.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "marzzzello";
|
||||
repo = pname;
|
||||
repo = "mpv_thumbnail_script";
|
||||
rev = version;
|
||||
sha256 = "0dgfrb8ypc5vlq35kzn423fm6l6348ivl85vb6j3ccc9a51xprw3";
|
||||
sha256 = "sha256-0nqV8vY3cBOJkLRoQ33Cc+4+vSK45i9yWbhKiQIuVSw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ python3 ];
|
||||
|
@ -7,11 +7,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "i3";
|
||||
version = "4.21";
|
||||
version = "4.21.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://i3wm.org/downloads/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-jcUgXg80Q9WGYeMHg1If2cbUJtHn82Z6sS8qwbLTIHg=";
|
||||
sha256 = "sha256-7f14EoXGVKBdxtsnLOAwDEQo5vvYddmZZOV94ltBvB4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
25
pkgs/build-support/setup-hooks/patch-ppd-files/default.nix
Normal file
25
pkgs/build-support/setup-hooks/patch-ppd-files/default.nix
Normal file
@ -0,0 +1,25 @@
|
||||
{ lib
|
||||
, makeSetupHook
|
||||
, which
|
||||
, callPackage
|
||||
}:
|
||||
|
||||
let
|
||||
patchPpdFilesHook = makeSetupHook
|
||||
{
|
||||
name = "patch-ppd-files";
|
||||
substitutions.which = lib.attrsets.getBin which;
|
||||
substitutions.awkscript = ./patch-ppd-lines.awk;
|
||||
}
|
||||
./patch-ppd-hook.sh;
|
||||
in
|
||||
|
||||
patchPpdFilesHook.overrideAttrs (
|
||||
lib.trivial.flip
|
||||
lib.attrsets.recursiveUpdate
|
||||
{
|
||||
passthru.tests.test = callPackage ./test.nix {};
|
||||
meta.description = "setup hook to patch executable paths in ppd files";
|
||||
meta.maintainers = [ lib.maintainers.yarny ];
|
||||
}
|
||||
)
|
183
pkgs/build-support/setup-hooks/patch-ppd-files/patch-ppd-hook.sh
Normal file
183
pkgs/build-support/setup-hooks/patch-ppd-files/patch-ppd-hook.sh
Normal file
@ -0,0 +1,183 @@
|
||||
fixupOutputHooks+=(_patchPpdFileCommands4fixupOutputHooks)
|
||||
|
||||
|
||||
|
||||
# Install a hook for the `fixupPhase`:
|
||||
# If the variable `ppdFileCommands` contains a list of
|
||||
# executable names, the hook calls `patchPpdFileCommands`
|
||||
# on each output's `/share/cups/model` and `/share/ppds`
|
||||
# directories in order to replace calls to those executables.
|
||||
|
||||
_patchPpdFileCommands4fixupOutputHooks () {
|
||||
[[ -n $ppdFileCommands ]] || return 0
|
||||
if [[ -d $prefix/share/cups/model ]]; then
|
||||
patchPpdFileCommands "$prefix/share/cups/model" $ppdFileCommands
|
||||
fi
|
||||
if [[ -d $prefix/share/ppds ]]; then
|
||||
patchPpdFileCommands "$prefix/share/ppds" $ppdFileCommands
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
||||
# patchPpdFileCommands PPD-ROOT PROGNAME...
|
||||
#
|
||||
# Look for ppd files in the directory PPD-ROOT.
|
||||
# Descend into subdirectories, even if they are symlinks.
|
||||
# However, ignore ppd files that don't belong to the same
|
||||
# prefix ($NIX_STORE/$package_name) as PPD-ROOT-DIR does,
|
||||
# to avoid stepping into other package's directories.
|
||||
# ppd files may be gzipped; if the are,
|
||||
# uncompress them, later recompress them.
|
||||
# Skip symlinks to ppd files.
|
||||
# PPD-ROOT may also be a single ppd file.
|
||||
#
|
||||
# Look for the PROGNAME executable in outputs and `buildInputs`,
|
||||
# then look for PROGNAME invocations in the ppd files,
|
||||
# without path or with common paths like `/usr/bin/$PROGNAME`.
|
||||
# Replace those invocations with an absolute path to the
|
||||
# corresponding executable from the outputs or `buildInputs`.
|
||||
# Executables are searched where CUPS would search them,
|
||||
# i.e., in `/bin` and `/lib/cups/filter`.
|
||||
#
|
||||
# As soon as an executable's path is replaced as
|
||||
# described above, the package containing the binary
|
||||
# is added to the list of propagated build inputs.
|
||||
# This ensures the executable's package is still
|
||||
# recognized as runtime dependency of the ppd file
|
||||
# even if the ppd file is compressed lateron.
|
||||
#
|
||||
# PROGNAME may not contain spaces or tabs.
|
||||
# The function will also likely fail or produce
|
||||
# broken results if PROGNAME contains characters that
|
||||
# require shell or regex escaping (e.g. a backslash).
|
||||
|
||||
patchPpdFileCommands () {
|
||||
|
||||
local bin binnew binold binoldgrep cupspath path ppdroot ppdrootprefix
|
||||
|
||||
# we will store some temporary data here
|
||||
pushd "$(mktemp -d --tmpdir patch-ppd-file-commands.XXXX)"
|
||||
|
||||
# remember the ppd root path
|
||||
[[ "$1" == $NIX_STORE/* ]] # ensure it's a store directory
|
||||
ppdroot=$1
|
||||
shift # now "$@" is the list of binaries
|
||||
ppdrootprefix=${ppdroot%"/${ppdroot#"$NIX_STORE"/*/}"}
|
||||
|
||||
# create `cupspath` (where we should look for binaries),
|
||||
# with these priorities
|
||||
# * outputs of current build before buildInputs
|
||||
# * `/lib/cups/filter' before `/bin`
|
||||
# * add HOST_PATH at end, so we don't miss anything
|
||||
for path in $outputs; do
|
||||
addToSearchPath cupspath "${!path}/lib/cups/filter"
|
||||
addToSearchPath cupspath "${!path}/bin"
|
||||
done
|
||||
for path in ${pkgsHostTarget+"${pkgsHostTarget[@]}"}; do
|
||||
addToSearchPath cupspath "$path/lib/cups/filter"
|
||||
addToSearchPath cupspath "$path/bin"
|
||||
done
|
||||
while read -r -d : path; do
|
||||
addToSearchPath cupspath "$path"
|
||||
done <<< "${HOST_PATH:+"${HOST_PATH}:"}"
|
||||
|
||||
# create list of compressed ppd files
|
||||
# so we can recompress them later
|
||||
find -L "$ppdroot" -type f -iname '*.ppd.gz' '!' -xtype l -print0 > gzipped
|
||||
|
||||
# decompress gzipped ppd files
|
||||
echo "patchPpdFileCommands: decompressing $(grep -cz '^' < gzipped) gzipped ppd file(s) in $ppdroot"
|
||||
xargs -0r -n 64 -P "$NIX_BUILD_CORES" gunzip < gzipped
|
||||
|
||||
# create list of all ppd files to be checked
|
||||
find -L "$ppdroot" -type f -iname '*.ppd' '!' -xtype l -print0 > ppds
|
||||
|
||||
for bin in "$@"; do
|
||||
|
||||
# discover new path
|
||||
binnew=$(PATH=$cupspath '@which@/bin/which' "$bin")
|
||||
echo "patchPpdFileCommands: located binary $binnew"
|
||||
|
||||
# for each binary, we look for the name itself, but
|
||||
# also for a couple of common paths that might be used
|
||||
for binold in {/usr,}/{lib/cups/filter,sbin,bin}/"$bin" "$bin"; do
|
||||
|
||||
# escape regex characters in the old command string
|
||||
binoldgrep=$(sed 's,[]$.*[\^],\\&,g' <<< "$binold")
|
||||
# ...and surround old command with some regex
|
||||
# that singles out shell command invocations
|
||||
# to avoid replacing other strings that might contain the
|
||||
# command name by accident (like "perl" in "perl-script")
|
||||
binoldgrep='\(^\|[;&| '$'\t''"`(]\)'"$binoldgrep"'\($\|[);&| '$'\t''"`<>]\)'
|
||||
# this string is used to *quickly* filter out
|
||||
# unaffected files before the (slower) awk script runs;
|
||||
# note that a similar regex is build in the awk script;
|
||||
# if `binoldgrep` is changed, the awk script should also be checked
|
||||
|
||||
# create list of likely affected files
|
||||
# (might yield exit status != 0 if there are no matches)
|
||||
xargs -0r grep -lZ "$binoldgrep" < ppds > ppds-to-patch || true
|
||||
|
||||
echo "patchPpdFileCommands: $(grep -cz '^' < ppds-to-patch) ppd file(s) contain $binold"
|
||||
|
||||
# actually patch affected ppd files with awk;
|
||||
# this takes some time but can be parallelized;
|
||||
# speed up with LC_ALL=C, https://stackoverflow.com/a/33850386
|
||||
LC_ALL=C xargs -0r -n 64 -P "$NIX_BUILD_CORES" \
|
||||
awk -i inplace -v old="${binold//\\/\\\\}" -v new="${binnew//\\/\\\\}" -f "@awkscript@" \
|
||||
< ppds-to-patch
|
||||
|
||||
done
|
||||
|
||||
# create list of affected files
|
||||
xargs -0r grep -lZF "$binnew" < ppds > patched-ppds || true
|
||||
|
||||
echo "patchPpdFileCommands: $(grep -cz '^' < patched-ppds) ppd file(s) patched with $binnew"
|
||||
|
||||
# if the new command is contained in a file,
|
||||
# remember the new path so we can add it to
|
||||
# the list of propagated dependencies later
|
||||
if [[ -s patched-ppds ]]; then
|
||||
printf '%s\0' "${binnew%"/${binnew#"${NIX_STORE}"/*/}"}" >> dependencies
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
# recompress ppd files that have been decompressed before
|
||||
echo "patchPpdFileCommands: recompressing $(grep -cz '^' < gzipped) gzipped ppd file(s)"
|
||||
# we can't just hand over the paths of the uncompressed files
|
||||
# to gzip as it would add the lower-cased extension ".gz"
|
||||
# even for files where the original was named ".GZ"
|
||||
xargs -0r -n 1 -P "$NIX_BUILD_CORES" \
|
||||
"$SHELL" -c 'gzip -9nS ".${0##*.}" "${0%.*}"' \
|
||||
< gzipped
|
||||
|
||||
# enlist dependencies for propagation;
|
||||
# this is needed in case ppd files are compressed later
|
||||
# (Nix won't find dependency paths in compressed files)
|
||||
if [[ -s dependencies ]]; then
|
||||
|
||||
# weed out duplicates from the dependency list first
|
||||
sort -zu dependencies > sorted-dependencies
|
||||
|
||||
mkdir -p "$ppdrootprefix/nix-support"
|
||||
while IFS= read -r -d '' path; do
|
||||
printWords "$path" >> "$ppdrootprefix/nix-support/propagated-build-inputs"
|
||||
# stdenv writes it's own `propagated-build-inputs`,
|
||||
# based on the variable `propagatedBuildInputs`,
|
||||
# but only to one output (`outputDev`).
|
||||
# So we also add our dependencies to that variable.
|
||||
# If our file survives as written above, great!
|
||||
# If stdenv overwrits it,
|
||||
# our dependencies will still be added to the file.
|
||||
# The end result might contain too many
|
||||
# propagated dependencies for multi-output packages,
|
||||
# but never a broken package.
|
||||
propagatedBuildInputs+=("$path")
|
||||
done < sorted-dependencies
|
||||
fi
|
||||
|
||||
popd
|
||||
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
BEGIN {
|
||||
|
||||
# ppd file keys are separated from their values by a colon,
|
||||
# but "options" may reside between the key name and the colon;
|
||||
# options are separated from the key by spaces
|
||||
# (we also permit tabs to be on the safe side)
|
||||
FS = "[: \t]";
|
||||
|
||||
# escape regex characters in the old and new command strings
|
||||
gsub(/[]\\.^$(){}|*+?[]/, "\\\\&", old);
|
||||
gsub(/\\/, "\\\\&", new);
|
||||
# ...and surround old command with some regex
|
||||
# that singles out shell command invocations
|
||||
# to avoid replacing other strings that might contain the
|
||||
# command name by accident (like "perl" in "perl-script")
|
||||
new = "\\1" new "\\2";
|
||||
old = "(^|[;&| \\t\"`(])" old "($|[);&| \\t\"`<>])";
|
||||
# note that a similar regex is build in the shell script to
|
||||
# filter out unaffected files before this awk script is called;
|
||||
# if the regex here is changed, the shell script should also be checked
|
||||
|
||||
# list of PPD keys that contain executable names or scripts, see
|
||||
# https://refspecs.linuxfoundation.org/LSB_4.0.0/LSB-Printing/LSB-Printing/ppdext.html
|
||||
# https://www.cups.org/doc/spec-ppd.html
|
||||
cmds["*APAutoSetupTool"] = "";
|
||||
cmds["*APPrinterLowInkTool"] = "";
|
||||
cmds["*FoomaticRIPCommandLine"] = "";
|
||||
cmds["*FoomaticRIPPostPipe"] = "";
|
||||
cmds["*cupsFilter"] = "";
|
||||
cmds["*cupsFilter2"] = "";
|
||||
cmds["*cupsPreFilter"] = "";
|
||||
|
||||
}
|
||||
|
||||
# since comments always start with "*%",
|
||||
# this mechanism also properly recognizes (and ignores) them
|
||||
|
||||
{
|
||||
|
||||
# if the current line starts a new key,
|
||||
# check if it is a command-containing key;
|
||||
# also reset the `isCmd` flag if a new file begins
|
||||
if ($0 ~ /^\*/ || FNR == 1) { isCmd = ($1 in cmds) }
|
||||
|
||||
# replace commands if the current keys might contain commands
|
||||
if (isCmd) { $0 = gensub(old, new, "g") }
|
||||
|
||||
print
|
||||
|
||||
}
|
40
pkgs/build-support/setup-hooks/patch-ppd-files/test.nix
Normal file
40
pkgs/build-support/setup-hooks/patch-ppd-files/test.nix
Normal file
@ -0,0 +1,40 @@
|
||||
{ substituteAll
|
||||
, diffutils
|
||||
, stdenv
|
||||
, patchPpdFilesHook
|
||||
}:
|
||||
|
||||
let
|
||||
input = substituteAll {
|
||||
src = ./test.ppd;
|
||||
keep = "cmp";
|
||||
patch = "cmp";
|
||||
pathkeep = "/bin/cmp";
|
||||
pathpatch = "/bin/cmp";
|
||||
};
|
||||
|
||||
output = substituteAll {
|
||||
src = ./test.ppd;
|
||||
keep = "cmp";
|
||||
patch = "${diffutils}/bin/cmp";
|
||||
pathkeep = "/bin/cmp";
|
||||
pathpatch = "${diffutils}/bin/cmp";
|
||||
};
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "${patchPpdFilesHook.name}-test";
|
||||
buildInputs = [ diffutils ];
|
||||
nativeBuildInputs = [ diffutils patchPpdFilesHook ];
|
||||
dontUnpack = true;
|
||||
dontInstall = true;
|
||||
ppdFileCommands = [ "cmp" ];
|
||||
preFixup = ''
|
||||
install -D "${input}" "${placeholder "out"}/share/cups/model/test.ppd"
|
||||
install -D "${input}" "${placeholder "out"}/share/ppds/test.ppd"
|
||||
'';
|
||||
postFixup = ''
|
||||
diff --color --report-identical-files "${output}" "${placeholder "out"}/share/cups/model/test.ppd"
|
||||
diff --color --report-identical-files "${output}" "${placeholder "out"}/share/ppds/test.ppd"
|
||||
'';
|
||||
}
|
22
pkgs/build-support/setup-hooks/patch-ppd-files/test.ppd
Normal file
22
pkgs/build-support/setup-hooks/patch-ppd-files/test.ppd
Normal file
@ -0,0 +1,22 @@
|
||||
*% This comment: might look like a command @keep@
|
||||
*% but it should be left untouched
|
||||
*SomeKey: do not replace this @keep@
|
||||
*APAutoSetupTool: do replace this @patch@
|
||||
*FoomaticRIPCommandLine: "patch also @patch@
|
||||
in a multi-line command @patch@
|
||||
and another line @patch@
|
||||
*SomeKey: "stop patching on new non-command key @keep@
|
||||
and remember the key in the next line @keep@"
|
||||
*cupsFilter option: recognize keys with options @patch@
|
||||
*cupsFilter : handle strange spacing;@patch@
|
||||
*cupsFilter : handle tabulator @patch@
|
||||
*cupsFilter: patch common paths @pathpatch@
|
||||
*cupsFilter: patch quoted commands "@patch@"
|
||||
*cupsFilter: patch commands in subshell (@patch@)
|
||||
*cupsFilter: patch commands in subshell `@pathpatch@`
|
||||
*cupsFilter: keep uncommon paths /fancy/@pathkeep@
|
||||
*cupsFilter: keep entangled commands-@keep@
|
||||
*cupsFilter: keep entangled commands\@keep@
|
||||
*cupsFilter: keep entangled commands @keep@()
|
||||
*cupsFilter: keep entangled commands @pathkeep@-cmd
|
||||
*%cupsFilter: This comment should also be left as is @pathkeep@
|
@ -16,13 +16,13 @@ lib.checkListOfEnum "${pname}: available color variants" [ "standard" "green" "g
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
inherit pname;
|
||||
version = "2022-09-20";
|
||||
version = "2022-11-05";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vinceliuice";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "Ce8LTIxKabeqV9QVK68DqUVwtwG5lyxDPDQx0mLIr5o=";
|
||||
sha256 = "kKl/E2L1NL1U7PHbva+wUqQGbcHFbPgZBVhU/OgEuAE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ gtk3 jdupes ];
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "numix-icon-theme-square";
|
||||
version = "22.10.31";
|
||||
version = "22.11.05";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "numixproject";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-TtRIVut4VBkQnM0+DM44305+FG3l2tDSU+FfaR7OFZI=";
|
||||
sha256 = "sha256-XHf9YzZ9VY63Jv7HXSL2NAfft1VYeMzcqd9+vz1CBhg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ gtk3 ];
|
||||
|
@ -14,6 +14,7 @@
|
||||
, numactl
|
||||
, perl
|
||||
, python3
|
||||
, python3Packages
|
||||
, rocclr
|
||||
, rocm-comgr
|
||||
, rocm-device-libs
|
||||
@ -29,13 +30,13 @@
|
||||
let
|
||||
hip = stdenv.mkDerivation rec {
|
||||
pname = "hip";
|
||||
version = "5.3.0";
|
||||
version = "5.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm-Developer-Tools";
|
||||
repo = "HIP";
|
||||
rev = "rocm-${version}";
|
||||
hash = "sha256-UAodlVUiTU4n/EyvTIuQekTGh4izmBjKCRXOHXVKY4M=";
|
||||
hash = "sha256-kmRvrwnT0h2dBMI+H9d1vmeW3TmDBD+qW4YYhaMV2dE=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@ -109,17 +110,17 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "hip";
|
||||
version = "5.3.0";
|
||||
version = "5.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm-Developer-Tools";
|
||||
repo = "hipamd";
|
||||
rev = "rocm-${version}";
|
||||
hash = "sha256-gZGZiDP/HbdmzLQkG9Jq9lyMP9hoD6UzTMiX9cUmQNA=";
|
||||
hash = "sha256-i7hT/j+V0LT6Va2XcQyyKXF1guoIyhcOHvn842wCRx4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake python3 makeWrapper perl ];
|
||||
buildInputs = [ libxml2 numactl libglvnd libX11 ];
|
||||
buildInputs = [ libxml2 numactl libglvnd libX11 python3Packages.cppheaderparser ];
|
||||
propagatedBuildInputs = [
|
||||
clang
|
||||
llvm
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ stdenv, lib, buildPackages, fetchFromGitHub, callPackage, wrapCCWith, overrideCC }:
|
||||
|
||||
let
|
||||
version = "5.3.0";
|
||||
version = "5.3.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "RadeonOpenCompute";
|
||||
repo = "llvm-project";
|
||||
rev = "rocm-${version}";
|
||||
hash = "sha256-MN7W4Gl6+a1nCozdn9gMzIXOiBPquoOP87x26boeSCA=";
|
||||
hash = "sha256-IKo7N8wWvh5PBrZ2mh1Vu5s3uUXhanqYtC4qLV/+JBs=";
|
||||
};
|
||||
in rec {
|
||||
clang = wrapCCWith rec {
|
||||
|
@ -111,19 +111,14 @@ let
|
||||
};
|
||||
|
||||
self = mkDerivation rec {
|
||||
version = "7.1.0";
|
||||
version = "7.3.0";
|
||||
pname = "octave";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/octave/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-1KnYHz9ntKbgfLeoDcsQrV6RdvzDB2LHCoFYCmS4sLY=";
|
||||
sha256 = "sha256-bhSkZJ1wr0WrZg+Mu/ZFqvHsM/JfiL/aRpfLF+RAxPU=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# https://savannah.gnu.org/bugs/?func=detailitem&item_id=62436
|
||||
./patches/bug62436.patch
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
readline
|
||||
ncurses
|
||||
|
44
pkgs/development/libraries/clang-ocl/default.nix
Normal file
44
pkgs/development/libraries/clang-ocl/default.nix
Normal file
@ -0,0 +1,44 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, rocm-cmake
|
||||
, rocm-device-libs
|
||||
, clang
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "clang-ocl";
|
||||
rocmVersion = "5.3.1";
|
||||
version = rocmVersion;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "RadeonOpenCompute";
|
||||
repo = "clang-ocl";
|
||||
rev = "rocm-${rocmVersion}";
|
||||
hash = "sha256-uMSvcVJj+me2E+7FsXZ4l4hTcK6uKEegXpkHGcuist0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
rocm-cmake
|
||||
clang
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
rocm-device-libs
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_C_COMPILER=clang"
|
||||
"-DCMAKE_CXX_COMPILER=clang++"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "OpenCL compilation with clang compiler";
|
||||
homepage = "https://github.com/RadeonOpenCompute/clang-ocl";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ Madouura ];
|
||||
broken = rocmVersion != clang.version;
|
||||
};
|
||||
}
|
91
pkgs/development/libraries/composable_kernel/default.nix
Normal file
91
pkgs/development/libraries/composable_kernel/default.nix
Normal file
@ -0,0 +1,91 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, rocm-cmake
|
||||
, hip
|
||||
, openmp
|
||||
, gtest ? null
|
||||
, buildTests ? false
|
||||
, buildExamples ? false
|
||||
, gpuTargets ? null # gpuTargets = [ "gfx803" "gfx900" "gfx1030" ... ]
|
||||
}:
|
||||
|
||||
assert buildTests -> gtest != null;
|
||||
|
||||
# Several tests seem to either not compile or have a race condition
|
||||
# Undefined reference to symbol '_ZTIN7testing4TestE'
|
||||
# Try removing this next update
|
||||
assert buildTests == false;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "composable_kernel";
|
||||
version = "unstable-2022-11-02";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
] ++ lib.optionals buildTests [
|
||||
"test"
|
||||
] ++ lib.optionals buildExamples [
|
||||
"example"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCmSoftwarePlatform";
|
||||
repo = "composable_kernel";
|
||||
rev = "79aa3fb1793c265c59d392e916baa851a55521c8";
|
||||
hash = "sha256-vIfMdvRYCTqrjMGSb7gQfodzLw2wf3tGoCAa5jtfbvw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
rocm-cmake
|
||||
hip
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
openmp
|
||||
] ++ lib.optionals buildTests [
|
||||
gtest
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_C_COMPILER=hipcc"
|
||||
"-DCMAKE_CXX_COMPILER=hipcc"
|
||||
] ++ lib.optionals (gpuTargets != null) [
|
||||
"-DGPU_TARGETS=${lib.strings.concatStringsSep ";" gpuTargets}"
|
||||
];
|
||||
|
||||
# No flags to build selectively it seems...
|
||||
postPatch = ''
|
||||
substituteInPlace test/CMakeLists.txt \
|
||||
--replace "include(googletest)" ""
|
||||
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "enable_testing()" ""
|
||||
'' + lib.optionalString (!buildTests) ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "add_subdirectory(test)" ""
|
||||
'' + lib.optionalString (!buildExamples) ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "add_subdirectory(example)" ""
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/bin
|
||||
mv bin/ckProfiler $out/bin
|
||||
'' + lib.optionalString buildTests ''
|
||||
mkdir -p $test/bin
|
||||
mv bin/test_* $test/bin
|
||||
'' + lib.optionalString buildExamples ''
|
||||
mkdir -p $example/bin
|
||||
mv bin/example_* $example/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Performance portable programming model for machine learning tensor operators";
|
||||
homepage = "https://github.com/ROCmSoftwarePlatform/composable_kernel";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ Madouura ];
|
||||
};
|
||||
}
|
89
pkgs/development/libraries/hipcub/default.nix
Normal file
89
pkgs/development/libraries/hipcub/default.nix
Normal file
@ -0,0 +1,89 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, rocm-cmake
|
||||
, rocm-runtime
|
||||
, rocm-device-libs
|
||||
, rocm-comgr
|
||||
, rocprim
|
||||
, hip
|
||||
, gtest ? null
|
||||
, gbenchmark ? null
|
||||
, buildTests ? false
|
||||
, buildBenchmarks ? false
|
||||
}:
|
||||
|
||||
assert buildTests -> gtest != null;
|
||||
assert buildBenchmarks -> gbenchmark != null;
|
||||
|
||||
# CUB can also be used as a backend instead of rocPRIM.
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "hipcub";
|
||||
rocmVersion = "5.3.1";
|
||||
version = "2.12.0-${rocmVersion}";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
] ++ lib.optionals buildTests [
|
||||
"test"
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
"benchmark"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCmSoftwarePlatform";
|
||||
repo = "hipCUB";
|
||||
rev = "rocm-${rocmVersion}";
|
||||
hash = "sha256-/GMZKbMD1sZQCM2FulM9jiJQ8ByYZinn0C8d/deFh0g=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
rocm-cmake
|
||||
hip
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
rocm-runtime
|
||||
rocm-device-libs
|
||||
rocm-comgr
|
||||
rocprim
|
||||
] ++ lib.optionals buildTests [
|
||||
gtest
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
gbenchmark
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_CXX_COMPILER=hipcc"
|
||||
"-DHIP_ROOT_DIR=${hip}"
|
||||
# Manually define CMAKE_INSTALL_<DIR>
|
||||
# See: https://github.com/NixOS/nixpkgs/pull/197838
|
||||
"-DCMAKE_INSTALL_BINDIR=bin"
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
"-DCMAKE_INSTALL_INCLUDEDIR=include"
|
||||
] ++ lib.optionals buildTests [
|
||||
"-DBUILD_TEST=ON"
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
"-DBUILD_BENCHMARK=ON"
|
||||
];
|
||||
|
||||
postInstall = lib.optionalString buildTests ''
|
||||
mkdir -p $test/bin
|
||||
mv $out/bin/test_* $test/bin
|
||||
'' + lib.optionalString buildBenchmarks ''
|
||||
mkdir -p $benchmark/bin
|
||||
mv $out/bin/benchmark_* $benchmark/bin
|
||||
'' + lib.optionalString (buildTests || buildBenchmarks) ''
|
||||
rmdir $out/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Thin wrapper library on top of rocPRIM or CUB";
|
||||
homepage = "https://github.com/ROCmSoftwarePlatform/hipCUB";
|
||||
license = with licenses; [ bsd3 ];
|
||||
maintainers = with maintainers; [ Madouura ];
|
||||
broken = rocmVersion != hip.version;
|
||||
};
|
||||
}
|
132
pkgs/development/libraries/hipsparse/default.nix
Normal file
132
pkgs/development/libraries/hipsparse/default.nix
Normal file
@ -0,0 +1,132 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, rocm-cmake
|
||||
, rocm-runtime
|
||||
, rocm-device-libs
|
||||
, rocm-comgr
|
||||
, rocsparse
|
||||
, hip
|
||||
, gfortran
|
||||
, git
|
||||
, fetchzip ? null
|
||||
, gtest ? null
|
||||
, buildTests ? false
|
||||
}:
|
||||
|
||||
assert buildTests -> fetchzip != null;
|
||||
assert buildTests -> gtest != null;
|
||||
|
||||
# This can also use cuSPARSE as a backend instead of rocSPARSE
|
||||
let
|
||||
matrices = lib.optionalAttrs buildTests import ./deps.nix {
|
||||
inherit fetchzip;
|
||||
mirror1 = "https://sparse.tamu.edu/MM";
|
||||
mirror2 = "https://www.cise.ufl.edu/research/sparse/MM";
|
||||
};
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "hipsparse";
|
||||
rocmVersion = "5.3.1";
|
||||
version = "2.3.1-${rocmVersion}";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
] ++ lib.optionals buildTests [
|
||||
"test"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCmSoftwarePlatform";
|
||||
repo = "hipSPARSE";
|
||||
rev = "rocm-${rocmVersion}";
|
||||
hash = "sha256-Phcihat774ZSAe1QetE/GSZzGlnCnvS9GwsHBHCaD4c=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
rocm-cmake
|
||||
hip
|
||||
gfortran
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
rocm-runtime
|
||||
rocm-device-libs
|
||||
rocm-comgr
|
||||
rocsparse
|
||||
git
|
||||
] ++ lib.optionals buildTests [
|
||||
gtest
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_CXX_COMPILER=hipcc"
|
||||
# Manually define CMAKE_INSTALL_<DIR>
|
||||
# See: https://github.com/NixOS/nixpkgs/pull/197838
|
||||
"-DCMAKE_INSTALL_BINDIR=bin"
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
"-DCMAKE_INSTALL_INCLUDEDIR=include"
|
||||
] ++ lib.optionals buildTests [
|
||||
"-DBUILD_CLIENTS_TESTS=ON"
|
||||
];
|
||||
|
||||
# We have to manually generate the matrices
|
||||
# CMAKE_MATRICES_DIR seems to be reset in clients/tests/CMakeLists.txt
|
||||
postPatch = ''
|
||||
substituteInPlace clients/common/utility.cpp \
|
||||
--replace "#ifdef __cpp_lib_filesystem" " #if true"
|
||||
'' + lib.optionalString buildTests ''
|
||||
mkdir -p matrices
|
||||
|
||||
ln -s ${matrices.matrix-01}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-02}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-03}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-04}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-05}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-06}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-07}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-08}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-09}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-10}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-11}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-12}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-13}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-14}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-15}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-16}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-17}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-18}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-19}/*.mtx matrices
|
||||
|
||||
# Not used by the original cmake, causes an error
|
||||
rm matrices/*_b.mtx
|
||||
|
||||
echo "deps/convert.cpp -> deps/mtx2csr"
|
||||
hipcc deps/convert.cpp -O3 -o deps/mtx2csr
|
||||
|
||||
for mat in $(ls -1 matrices | cut -d "." -f 1); do
|
||||
echo "mtx2csr: $mat.mtx -> $mat.bin"
|
||||
deps/mtx2csr matrices/$mat.mtx matrices/$mat.bin
|
||||
unlink matrices/$mat.mtx
|
||||
done
|
||||
|
||||
substituteInPlace clients/tests/CMakeLists.txt \
|
||||
--replace "\''${PROJECT_BINARY_DIR}/matrices" "/build/source/matrices"
|
||||
'';
|
||||
|
||||
postInstall = lib.optionalString buildTests ''
|
||||
mkdir -p $test/bin
|
||||
mv $out/bin/hipsparse-test $test/bin
|
||||
mv /build/source/matrices $test
|
||||
rmdir $out/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "ROCm SPARSE marshalling library";
|
||||
homepage = "https://github.com/ROCmSoftwarePlatform/hipSPARSE";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ Madouura ];
|
||||
broken = rocmVersion != hip.version;
|
||||
};
|
||||
}
|
177
pkgs/development/libraries/hipsparse/deps.nix
generated
Normal file
177
pkgs/development/libraries/hipsparse/deps.nix
generated
Normal file
@ -0,0 +1,177 @@
|
||||
{ fetchzip
|
||||
, mirror1
|
||||
, mirror2
|
||||
}:
|
||||
|
||||
{
|
||||
matrix-01 = fetchzip {
|
||||
sha256 = "sha256-AHur5ZIDZTFRrO2GV0ieXrffq4KUiGWiZ59pv0fUtEQ=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/SNAP/amazon0312.tar.gz"
|
||||
"${mirror2}/SNAP/amazon0312.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-02 = fetchzip {
|
||||
sha256 = "sha256-0rSxaN4lQcdaCLsvlgicG70FXUxXeERPiEmQ4MzbRdE=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Muite/Chebyshev4.tar.gz"
|
||||
"${mirror2}/Muite/Chebyshev4.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-03 = fetchzip {
|
||||
sha256 = "sha256-hDzDWDUnHEyFedX/tMNq83ZH8uWyM4xtZYUUAD3rizo=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/FEMLAB/sme3Dc.tar.gz"
|
||||
"${mirror2}/FEMLAB/sme3Dc.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-04 = fetchzip {
|
||||
sha256 = "sha256-GmN2yOt/MoX01rKe05aTyB3ypUP4YbQGOITZ0BqPmC0=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Williams/webbase-1M.tar.gz"
|
||||
"${mirror2}/Williams/webbase-1M.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-05 = fetchzip {
|
||||
sha256 = "sha256-gQNjfVyWzNM9RwImJGhkhahRmZz74LzDs1oijL7mI7k=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Williams/mac_econ_fwd500.tar.gz"
|
||||
"${mirror2}/Williams/mac_econ_fwd500.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-06 = fetchzip {
|
||||
sha256 = "sha256-87cdZjntNcTuz5BtO59irhcuRbPllWSbhCEX3Td02qc=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Williams/mc2depi.tar.gz"
|
||||
"${mirror2}/Williams/mc2depi.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-07 = fetchzip {
|
||||
sha256 = "sha256-WRamuJX3D8Tm+k0q67RjUDG3DeNAxhKiaPkk5afY5eU=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Bova/rma10.tar.gz"
|
||||
"${mirror2}/Bova/rma10.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-08 = fetchzip {
|
||||
sha256 = "sha256-5dhkm293Mc3lzakKxHy5W5XIn4Rw+gihVh7gyrjEHXo=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/JGD_BIBD/bibd_22_8.tar.gz"
|
||||
"${mirror2}/JGD_BIBD/bibd_22_8.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-09 = fetchzip {
|
||||
sha256 = "sha256-czjLWCjXAjZCk5TGYHaEkwSAzQu3TQ3QyB6eNKR4G88=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Hamm/scircuit.tar.gz"
|
||||
"${mirror2}/Hamm/scircuit.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-10 = fetchzip {
|
||||
sha256 = "sha256-bYuLnJViAIcIejAkh69/bsNAVIDU4wfTLtD+nmHd6FM=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Sandia/ASIC_320k.tar.gz"
|
||||
"${mirror2}/Sandia/ASIC_320k.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-11 = fetchzip {
|
||||
sha256 = "sha256-aDwn8P1khYjo2Agbq5m9ZBInJUxf/knJNvyptt0fak0=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/GHS_psdef/bmwcra_1.tar.gz"
|
||||
"${mirror2}/GHS_psdef/bmwcra_1.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-12 = fetchzip {
|
||||
sha256 = "sha256-8OJqA/byhlAZd869TPUzZFdsOiwOoRGfKyhM+RMjXoY=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos1.tar.gz"
|
||||
"${mirror2}/HB/nos1.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-13 = fetchzip {
|
||||
sha256 = "sha256-FS0rKqmg+uHwsM/yGfQLBdd7LH/rUrdutkNGBD/Mh1I=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos2.tar.gz"
|
||||
"${mirror2}/HB/nos2.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-14 = fetchzip {
|
||||
sha256 = "sha256-DANnlrNJikrI7Pst9vRedtbuxepyHmCIu2yhltc4Qcs=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos3.tar.gz"
|
||||
"${mirror2}/HB/nos3.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-15 = fetchzip {
|
||||
sha256 = "sha256-21mUgqjWGUfYgiWwSrKh9vH8Vdt3xzcefmqYNYRpxiY=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos4.tar.gz"
|
||||
"${mirror2}/HB/nos4.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-16 = fetchzip {
|
||||
sha256 = "sha256-FOuXvGqBBFNkVS6cexmkluret54hCfCOdK+DOZllE4c=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos5.tar.gz"
|
||||
"${mirror2}/HB/nos5.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-17 = fetchzip {
|
||||
sha256 = "sha256-+7NI1rA/qQxYPpjXKHvAaCZ+LSaAJ4xuJvMRMBEUYxg=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos6.tar.gz"
|
||||
"${mirror2}/HB/nos6.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-18 = fetchzip {
|
||||
sha256 = "sha256-q3NxJjbwGGcFiQ9nhWfUKgZmdVwCfPmgQoqy0AqOsNc=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos7.tar.gz"
|
||||
"${mirror2}/HB/nos7.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-19 = fetchzip {
|
||||
sha256 = "sha256-0GAN6qmVfD+tprIigzuUUUwm5KVhkN9X65wMEvFltDY=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/DNVS/shipsec1.tar.gz"
|
||||
"${mirror2}/DNVS/shipsec1.tar.gz"
|
||||
];
|
||||
};
|
||||
}
|
129
pkgs/development/libraries/miopengemm/default.nix
Normal file
129
pkgs/development/libraries/miopengemm/default.nix
Normal file
@ -0,0 +1,129 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, rocm-cmake
|
||||
, rocm-opencl-runtime
|
||||
, clang
|
||||
, texlive ? null
|
||||
, doxygen ? null
|
||||
, sphinx ? null
|
||||
, python3Packages ? null
|
||||
, openblas ? null
|
||||
, buildDocs ? false
|
||||
, buildTests ? false
|
||||
, buildBenchmarks ? false
|
||||
}:
|
||||
|
||||
assert buildDocs -> texlive != null;
|
||||
assert buildDocs -> doxygen != null;
|
||||
assert buildDocs -> sphinx != null;
|
||||
assert buildDocs -> python3Packages != null;
|
||||
assert buildTests -> openblas != null;
|
||||
|
||||
let
|
||||
latex = lib.optionalAttrs buildDocs (texlive.combine {
|
||||
inherit (texlive) scheme-small
|
||||
latexmk
|
||||
tex-gyre
|
||||
fncychap
|
||||
wrapfig
|
||||
capt-of
|
||||
framed
|
||||
needspace
|
||||
tabulary
|
||||
varwidth
|
||||
titlesec;
|
||||
});
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "miopengemm";
|
||||
rocmVersion = "5.3.1";
|
||||
version = rocmVersion;
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
] ++ lib.optionals buildDocs [
|
||||
"docs"
|
||||
] ++ lib.optionals buildTests [
|
||||
"test"
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
"benchmark"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCmSoftwarePlatform";
|
||||
repo = "MIOpenGEMM";
|
||||
rev = "rocm-${rocmVersion}";
|
||||
hash = "sha256-AiRzOMYRA/0nbQomyq4oOEwNZdkPYWRA2W6QFlctvFc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
rocm-cmake
|
||||
clang
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
rocm-opencl-runtime
|
||||
] ++ lib.optionals buildDocs [
|
||||
latex
|
||||
doxygen
|
||||
sphinx
|
||||
python3Packages.sphinx_rtd_theme
|
||||
python3Packages.breathe
|
||||
] ++ lib.optionals buildTests [
|
||||
openblas
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_C_COMPILER=clang"
|
||||
"-DCMAKE_CXX_COMPILER=clang++"
|
||||
# Manually define CMAKE_INSTALL_<DIR>
|
||||
# See: https://github.com/NixOS/nixpkgs/pull/197838
|
||||
"-DCMAKE_INSTALL_BINDIR=bin"
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
"-DCMAKE_INSTALL_INCLUDEDIR=include"
|
||||
] ++ lib.optionals buildTests [
|
||||
"-DOPENBLAS=ON"
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
"-DAPI_BENCH_MIOGEMM=ON"
|
||||
# Needs https://github.com/CNugteren/CLBlast
|
||||
# "-DAPI_BENCH_CLBLAST=ON"
|
||||
# Needs https://github.com/openai/triton
|
||||
# "-DAPI_BENCH_ISAAC=ON"
|
||||
];
|
||||
|
||||
# Unfortunately, it seems like we have to call make on these manually
|
||||
postBuild = lib.optionalString buildDocs ''
|
||||
export HOME=$(mktemp -d)
|
||||
make doc
|
||||
'' + lib.optionalString buildTests ''
|
||||
make check
|
||||
'' + lib.optionalString buildBenchmarks ''
|
||||
make examples
|
||||
'';
|
||||
|
||||
postInstall = lib.optionalString buildTests ''
|
||||
mkdir -p $test/bin
|
||||
find tests -executable -type f -exec mv {} $test/bin \;
|
||||
patchelf --set-rpath ${lib.makeLibraryPath buildInputs}:$out/lib $test/bin/*
|
||||
'' + lib.optionalString buildBenchmarks ''
|
||||
mkdir -p $benchmark/bin
|
||||
find examples -executable -type f -exec mv {} $benchmark/bin \;
|
||||
patchelf --set-rpath ${lib.makeLibraryPath buildInputs}:$out/lib $benchmark/bin/*
|
||||
'';
|
||||
|
||||
postFixup = lib.optionalString buildDocs ''
|
||||
mkdir -p $docs/share/doc/miopengemm
|
||||
mv ../doc/html $docs/share/doc/miopengemm
|
||||
mv ../doc/pdf/miopengemm.pdf $docs/share/doc/miopengemm
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "OpenCL general matrix multiplication API for ROCm";
|
||||
homepage = "https://github.com/ROCmSoftwarePlatform/MIOpenGEMM";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ Madouura ];
|
||||
broken = rocmVersion != clang.version;
|
||||
};
|
||||
}
|
84
pkgs/development/libraries/rccl/default.nix
Normal file
84
pkgs/development/libraries/rccl/default.nix
Normal file
@ -0,0 +1,84 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, rocm-cmake
|
||||
, rocm-runtime
|
||||
, rocm-device-libs
|
||||
, rocm-comgr
|
||||
, rocm-smi
|
||||
, hip
|
||||
, gtest
|
||||
, chrpath ? null
|
||||
, buildTests ? false
|
||||
}:
|
||||
|
||||
assert buildTests -> chrpath != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rccl";
|
||||
rocmVersion = "5.3.1";
|
||||
version = "2.12.10-${rocmVersion}";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
] ++ lib.optionals buildTests [
|
||||
"test"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCmSoftwarePlatform";
|
||||
repo = "rccl";
|
||||
rev = "rocm-${rocmVersion}";
|
||||
hash = "sha256-whRXGD8oINDYhFs8+hEWKWoGNqacGlyy7xi8peA8Qsk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
rocm-cmake
|
||||
hip
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
rocm-runtime
|
||||
rocm-device-libs
|
||||
rocm-comgr
|
||||
rocm-smi
|
||||
gtest
|
||||
] ++ lib.optionals buildTests [
|
||||
chrpath
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_C_COMPILER=hipcc"
|
||||
"-DCMAKE_CXX_COMPILER=hipcc"
|
||||
# Manually define CMAKE_INSTALL_<DIR>
|
||||
# See: https://github.com/NixOS/nixpkgs/pull/197838
|
||||
"-DCMAKE_INSTALL_BINDIR=bin"
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
"-DCMAKE_INSTALL_INCLUDEDIR=include"
|
||||
] ++ lib.optionals buildTests [
|
||||
"-DBUILD_TESTS=ON"
|
||||
];
|
||||
|
||||
# Replace the manually set parallel jobs to NIX_BUILD_CORES
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "8 P" "$NIX_BUILD_CORES P" \
|
||||
--replace "8)" "$NIX_BUILD_CORES)"
|
||||
'';
|
||||
|
||||
postInstall = lib.optionalString buildTests ''
|
||||
mkdir -p $test/bin
|
||||
mv $out/bin/* $test/bin
|
||||
rmdir $out/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "ROCm communication collectives library";
|
||||
homepage = "https://github.com/ROCmSoftwarePlatform/rccl";
|
||||
license = with licenses; [ bsd2 bsd3 ];
|
||||
maintainers = with maintainers; [ Madouura ];
|
||||
broken = rocmVersion != hip.version;
|
||||
};
|
||||
}
|
136
pkgs/development/libraries/rocblas/default.nix
Normal file
136
pkgs/development/libraries/rocblas/default.nix
Normal file
@ -0,0 +1,136 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, cmake
|
||||
, rocm-cmake
|
||||
, rocm-runtime
|
||||
, rocm-device-libs
|
||||
, rocm-comgr
|
||||
, hip
|
||||
, python3
|
||||
, tensile ? null
|
||||
, msgpack ? null
|
||||
, libxml2 ? null
|
||||
, llvm ? null
|
||||
, python3Packages ? null
|
||||
, gtest ? null
|
||||
, gfortran ? null
|
||||
, buildTensile ? true
|
||||
, buildTests ? false
|
||||
, buildBenchmarks ? false
|
||||
, tensileLogic ? "asm_full"
|
||||
, tensileCOVersion ? "V3"
|
||||
, tensileSepArch ? true
|
||||
, tensileLazyLib ? true
|
||||
, tensileLibFormat ? "msgpack"
|
||||
, gpuTargets ? [ "all" ]
|
||||
}:
|
||||
|
||||
assert buildTensile -> tensile != null;
|
||||
assert buildTensile -> msgpack != null;
|
||||
assert buildTensile -> libxml2 != null;
|
||||
assert buildTensile -> llvm != null;
|
||||
assert buildTensile -> python3Packages != null;
|
||||
assert buildTests -> gtest != null;
|
||||
assert buildTests -> gfortran != null;
|
||||
|
||||
# Tests and benchmarks are a can of worms that I will tackle in a different PR
|
||||
# It involves completely rewriting the amd-blis derivation
|
||||
assert buildTests == false;
|
||||
assert buildBenchmarks == false;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rocblas";
|
||||
rocmVersion = "5.3.1";
|
||||
version = "2.45.0-${rocmVersion}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCmSoftwarePlatform";
|
||||
repo = "rocBLAS";
|
||||
rev = "rocm-${rocmVersion}";
|
||||
hash = "sha256-GeeICEI1dNE6D+nUUlBtUncLkPowAa5n+bsy160EtaU=";
|
||||
};
|
||||
|
||||
# We currently need this patch due to faulty toolchain includes
|
||||
# See: https://github.com/ROCmSoftwarePlatform/rocBLAS/issues/1277
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "only-std_norm-from-rocblas_complex.patch";
|
||||
url = "https://github.com/ROCmSoftwarePlatform/rocBLAS/commit/44b99c6df26002139ca9ec68ee1fc8899c7b001f.patch";
|
||||
hash = "sha256-vSZkVYY951fqfOThKFqnYBasWMblS6peEJZ6sFMCk9k=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
rocm-cmake
|
||||
hip
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
rocm-runtime
|
||||
rocm-device-libs
|
||||
rocm-comgr
|
||||
python3
|
||||
] ++ lib.optionals buildTensile [
|
||||
msgpack
|
||||
libxml2
|
||||
llvm
|
||||
python3Packages.pyyaml
|
||||
python3Packages.msgpack
|
||||
] ++ lib.optionals buildTests [
|
||||
gtest
|
||||
gfortran
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_C_COMPILER=hipcc"
|
||||
"-DCMAKE_CXX_COMPILER=hipcc"
|
||||
"-Dpython=python3"
|
||||
"-DAMDGPU_TARGETS=${lib.strings.concatStringsSep ";" gpuTargets}"
|
||||
"-DBUILD_WITH_TENSILE=${if buildTensile then "ON" else "OFF"}"
|
||||
# Manually define CMAKE_INSTALL_<DIR>
|
||||
# See: https://github.com/NixOS/nixpkgs/pull/197838
|
||||
"-DCMAKE_INSTALL_BINDIR=bin"
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
"-DCMAKE_INSTALL_INCLUDEDIR=include"
|
||||
] ++ lib.optionals buildTensile [
|
||||
"-DVIRTUALENV_HOME_DIR=/build/source/tensile"
|
||||
"-DTensile_TEST_LOCAL_PATH=/build/source/tensile"
|
||||
"-DTensile_ROOT=/build/source/tensile/lib/python${python3.pythonVersion}/site-packages/Tensile"
|
||||
"-DTensile_LOGIC=${tensileLogic}"
|
||||
"-DTensile_CODE_OBJECT_VERSION=${tensileCOVersion}"
|
||||
"-DTensile_SEPARATE_ARCHITECTURES=${if tensileSepArch then "ON" else "OFF"}"
|
||||
"-DTensile_LAZY_LIBRARY_LOADING=${if tensileLazyLib then "ON" else "OFF"}"
|
||||
"-DTensile_LIBRARY_FORMAT=${tensileLibFormat}"
|
||||
] ++ lib.optionals buildTests [
|
||||
"-DBUILD_CLIENTS_TESTS=ON"
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
"-DBUILD_CLIENTS_BENCHMARKS=ON"
|
||||
];
|
||||
|
||||
# Tensile REALLY wants to write to the nix directory if we include it normally
|
||||
# We need to manually fixup the path so tensile will generate .co and .dat files
|
||||
postPatch = lib.optionalString buildTensile ''
|
||||
export PATH=${llvm}/bin:$PATH
|
||||
cp -a ${tensile} tensile
|
||||
chmod +w -R tensile
|
||||
|
||||
# Rewrap Tensile
|
||||
substituteInPlace tensile/bin/{.t*,.T*,*} \
|
||||
--replace "${tensile}" "/build/source/tensile"
|
||||
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "include(virtualenv)" "" \
|
||||
--replace "virtualenv_install(\''${Tensile_TEST_LOCAL_PATH})" ""
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "BLAS implementation for ROCm platform";
|
||||
homepage = "https://github.com/ROCmSoftwarePlatform/rocBLAS";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ Madouura ];
|
||||
broken = rocmVersion != hip.version;
|
||||
};
|
||||
}
|
@ -7,13 +7,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rocclr";
|
||||
version = "5.3.0";
|
||||
version = "5.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm-Developer-Tools";
|
||||
repo = "ROCclr";
|
||||
rev = "rocm-${version}";
|
||||
hash = "sha256-l14+l8FkiFmGuRZ9dyD/PEYH9nHVRRg1vMXMnVhg3K4=";
|
||||
hash = "sha256-dmL9krI/gHGQdOZ53+bQ7WjKcmJ+fZZP0lzF8ITLT4E=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
114
pkgs/development/libraries/rocfft/default.nix
Normal file
114
pkgs/development/libraries/rocfft/default.nix
Normal file
@ -0,0 +1,114 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, rocm-cmake
|
||||
, rocm-runtime
|
||||
, rocm-device-libs
|
||||
, rocm-comgr
|
||||
, hip
|
||||
, sqlite
|
||||
, python3
|
||||
, gtest ? null
|
||||
, boost ? null
|
||||
, fftw ? null
|
||||
, fftwFloat ? null
|
||||
, llvmPackages ? null
|
||||
, buildTests ? false
|
||||
, buildBenchmarks ? false
|
||||
}:
|
||||
|
||||
assert buildTests -> gtest != null;
|
||||
assert buildBenchmarks -> fftw != null;
|
||||
assert buildBenchmarks -> fftwFloat != null;
|
||||
assert (buildTests || buildBenchmarks) -> boost != null;
|
||||
assert (buildTests || buildBenchmarks) -> llvmPackages != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rocfft";
|
||||
rocmVersion = "5.3.1";
|
||||
version = "1.0.18-${rocmVersion}";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
] ++ lib.optionals buildTests [
|
||||
"test"
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
"benchmark"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCmSoftwarePlatform";
|
||||
repo = "rocFFT";
|
||||
rev = "rocm-${rocmVersion}";
|
||||
hash = "sha256-jb2F1fRe+YLloYJ/KtzrptUDhmdBDBtddeW/g55owKM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
rocm-cmake
|
||||
hip
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
rocm-runtime
|
||||
rocm-device-libs
|
||||
rocm-comgr
|
||||
sqlite
|
||||
python3
|
||||
] ++ lib.optionals buildTests [
|
||||
gtest
|
||||
] ++ lib.optionals (buildTests || buildBenchmarks) [
|
||||
boost
|
||||
fftw
|
||||
fftwFloat
|
||||
llvmPackages.openmp
|
||||
];
|
||||
|
||||
propogatedBuildInputs = lib.optionals buildTests [
|
||||
fftw
|
||||
fftwFloat
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_C_COMPILER=hipcc"
|
||||
"-DCMAKE_CXX_COMPILER=hipcc"
|
||||
"-DUSE_HIP_CLANG=ON"
|
||||
"-DSQLITE_USE_SYSTEM_PACKAGE=ON"
|
||||
# Manually define CMAKE_INSTALL_<DIR>
|
||||
# See: https://github.com/NixOS/nixpkgs/pull/197838
|
||||
"-DCMAKE_INSTALL_BINDIR=bin"
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
"-DCMAKE_INSTALL_INCLUDEDIR=include"
|
||||
] ++ lib.optionals buildTests [
|
||||
"-DBUILD_CLIENTS_TESTS=ON"
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
"-DBUILD_CLIENTS_RIDER=ON"
|
||||
"-DBUILD_CLIENTS_SAMPLES=ON"
|
||||
];
|
||||
|
||||
postInstall = lib.optionalString buildTests ''
|
||||
mkdir -p $test/{bin,lib/fftw}
|
||||
cp -a $out/bin/* $test/bin
|
||||
ln -s ${fftw}/lib/libfftw*.so $test/lib/fftw
|
||||
ln -s ${fftwFloat}/lib/libfftw*.so $test/lib/fftw
|
||||
rm -r $out/lib/fftw
|
||||
rm $test/bin/{rocfft_rtc_helper,*-rider} || true
|
||||
'' + lib.optionalString buildBenchmarks ''
|
||||
mkdir -p $benchmark/bin
|
||||
cp -a $out/bin/* $benchmark/bin
|
||||
rm $benchmark/bin/{rocfft_rtc_helper,*-test} || true
|
||||
'' + lib.optionalString (buildTests || buildBenchmarks ) ''
|
||||
mv $out/bin/rocfft_rtc_helper $out
|
||||
rm -r $out/bin/*
|
||||
mv $out/rocfft_rtc_helper $out/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "FFT implementation for ROCm ";
|
||||
homepage = "https://github.com/ROCmSoftwarePlatform/rocFFT";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ Madouura ];
|
||||
broken = rocmVersion != hip.version;
|
||||
};
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rocm-comgr";
|
||||
version = "5.3.0";
|
||||
version = "5.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "RadeonOpenCompute";
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rocm-device-libs";
|
||||
version = "5.3.0";
|
||||
version = "5.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "RadeonOpenCompute";
|
||||
|
@ -22,7 +22,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rocm-opencl-runtime";
|
||||
version = "5.3.0";
|
||||
version = "5.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "RadeonOpenCompute";
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rocm-runtime";
|
||||
version = "5.3.0";
|
||||
version = "5.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "RadeonOpenCompute";
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rocm-thunk";
|
||||
version = "5.3.0";
|
||||
version = "5.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "RadeonOpenCompute";
|
||||
|
85
pkgs/development/libraries/rocprim/default.nix
Normal file
85
pkgs/development/libraries/rocprim/default.nix
Normal file
@ -0,0 +1,85 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, rocm-cmake
|
||||
, rocm-runtime
|
||||
, rocm-device-libs
|
||||
, rocm-comgr
|
||||
, hip
|
||||
, gtest ? null
|
||||
, gbenchmark ? null
|
||||
, buildTests ? false
|
||||
, buildBenchmarks ? false
|
||||
}:
|
||||
|
||||
assert buildTests -> gtest != null;
|
||||
assert buildBenchmarks -> gbenchmark != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rocprim";
|
||||
rocmVersion = "5.3.1";
|
||||
version = "2.11.0-${rocmVersion}";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
] ++ lib.optionals buildTests [
|
||||
"test"
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
"benchmark"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCmSoftwarePlatform";
|
||||
repo = "rocPRIM";
|
||||
rev = "rocm-${rocmVersion}";
|
||||
hash = "sha256-aapvj9bwwlg7VJfnH1PVR8DulMcJh1xR6B4rPPGU6Q4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
rocm-cmake
|
||||
hip
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
rocm-runtime
|
||||
rocm-device-libs
|
||||
rocm-comgr
|
||||
] ++ lib.optionals buildTests [
|
||||
gtest
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
gbenchmark
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_CXX_COMPILER=hipcc"
|
||||
# Manually define CMAKE_INSTALL_<DIR>
|
||||
# See: https://github.com/NixOS/nixpkgs/pull/197838
|
||||
"-DCMAKE_INSTALL_BINDIR=bin"
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
"-DCMAKE_INSTALL_INCLUDEDIR=include"
|
||||
] ++ lib.optionals buildTests [
|
||||
"-DBUILD_TEST=ON"
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
"-DBUILD_BENCHMARK=ON"
|
||||
];
|
||||
|
||||
postInstall = lib.optionalString buildTests ''
|
||||
mkdir -p $test/bin
|
||||
mv $out/bin/test_* $test/bin
|
||||
'' + lib.optionalString buildBenchmarks ''
|
||||
mkdir -p $benchmark/bin
|
||||
mv $out/bin/benchmark_* $benchmark/bin
|
||||
'' + lib.optionalString (buildTests || buildBenchmarks) ''
|
||||
rmdir $out/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "ROCm parallel primitives";
|
||||
homepage = "https://github.com/ROCmSoftwarePlatform/rocPRIM";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ Madouura ];
|
||||
broken = rocmVersion != hip.version;
|
||||
};
|
||||
}
|
148
pkgs/development/libraries/rocsparse/default.nix
Normal file
148
pkgs/development/libraries/rocsparse/default.nix
Normal file
@ -0,0 +1,148 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, rocm-cmake
|
||||
, rocm-runtime
|
||||
, rocm-device-libs
|
||||
, rocm-comgr
|
||||
, rocprim
|
||||
, hip
|
||||
, gfortran
|
||||
, git
|
||||
, fetchzip ? null
|
||||
, gtest ? null
|
||||
, boost ? null
|
||||
, python3Packages ? null
|
||||
, buildTests ? false
|
||||
, buildBenchmarks ? false # Seems to depend on tests
|
||||
}:
|
||||
|
||||
assert (buildTests || buildBenchmarks) -> fetchzip != null;
|
||||
assert (buildTests || buildBenchmarks) -> gtest != null;
|
||||
assert (buildTests || buildBenchmarks) -> boost != null;
|
||||
assert (buildTests || buildBenchmarks) -> python3Packages != null;
|
||||
|
||||
let
|
||||
matrices = lib.optionalAttrs (buildTests || buildBenchmarks) import ./deps.nix {
|
||||
inherit fetchzip;
|
||||
mirror1 = "https://sparse.tamu.edu/MM";
|
||||
mirror2 = "https://www.cise.ufl.edu/research/sparse/MM";
|
||||
};
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "rocsparse";
|
||||
rocmVersion = "5.3.1";
|
||||
version = "2.3.2-${rocmVersion}";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
] ++ lib.optionals (buildTests || buildBenchmarks) [
|
||||
"test"
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
"benchmark"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCmSoftwarePlatform";
|
||||
repo = "rocSPARSE";
|
||||
rev = "rocm-${rocmVersion}";
|
||||
hash = "sha256-1069oBrIpZ4M9CAkzoQ9a5j3WlCXErirTbgTUZuT6b0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
rocm-cmake
|
||||
hip
|
||||
gfortran
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
rocm-runtime
|
||||
rocm-device-libs
|
||||
rocm-comgr
|
||||
rocprim
|
||||
git
|
||||
] ++ lib.optionals (buildTests || buildBenchmarks) [
|
||||
gtest
|
||||
boost
|
||||
python3Packages.python
|
||||
python3Packages.pyyaml
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_CXX_COMPILER=hipcc"
|
||||
# Manually define CMAKE_INSTALL_<DIR>
|
||||
# See: https://github.com/NixOS/nixpkgs/pull/197838
|
||||
"-DCMAKE_INSTALL_BINDIR=bin"
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
"-DCMAKE_INSTALL_INCLUDEDIR=include"
|
||||
] ++ lib.optionals (buildTests || buildBenchmarks) [
|
||||
"-DBUILD_CLIENTS_TESTS=ON"
|
||||
"-DCMAKE_MATRICES_DIR=/build/source/matrices"
|
||||
"-Dpython=python3"
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
"-DBUILD_CLIENTS_BENCHMARKS=ON"
|
||||
];
|
||||
|
||||
# We have to manually generate the matrices
|
||||
postPatch = lib.optionalString (buildTests || buildBenchmarks) ''
|
||||
mkdir -p matrices
|
||||
|
||||
ln -s ${matrices.matrix-01}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-02}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-03}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-04}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-05}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-06}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-07}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-08}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-09}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-10}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-11}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-12}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-13}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-14}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-15}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-16}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-17}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-18}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-19}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-20}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-21}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-22}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-23}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-24}/*.mtx matrices
|
||||
|
||||
# Not used by the original cmake, causes an error
|
||||
rm matrices/*_b.mtx
|
||||
|
||||
echo "deps/convert.cpp -> deps/mtx2csr"
|
||||
hipcc deps/convert.cpp -O3 -o deps/mtx2csr
|
||||
|
||||
for mat in $(ls -1 matrices | cut -d "." -f 1); do
|
||||
echo "mtx2csr: $mat.mtx -> $mat.csr"
|
||||
deps/mtx2csr matrices/$mat.mtx matrices/$mat.csr
|
||||
unlink matrices/$mat.mtx
|
||||
done
|
||||
'';
|
||||
|
||||
postInstall = lib.optionalString buildBenchmarks ''
|
||||
mkdir -p $benchmark/bin
|
||||
cp -a $out/bin/* $benchmark/bin
|
||||
rm $benchmark/bin/rocsparse-test
|
||||
'' + lib.optionalString (buildTests || buildBenchmarks) ''
|
||||
mkdir -p $test/bin
|
||||
mv $out/bin/* $test/bin
|
||||
rm $test/bin/rocsparse-bench || true
|
||||
mv /build/source/matrices $test
|
||||
rmdir $out/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "ROCm SPARSE implementation";
|
||||
homepage = "https://github.com/ROCmSoftwarePlatform/rocSPARSE";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ Madouura ];
|
||||
broken = rocmVersion != hip.version;
|
||||
};
|
||||
}
|
222
pkgs/development/libraries/rocsparse/deps.nix
generated
Normal file
222
pkgs/development/libraries/rocsparse/deps.nix
generated
Normal file
@ -0,0 +1,222 @@
|
||||
{ fetchzip
|
||||
, mirror1
|
||||
, mirror2
|
||||
}:
|
||||
|
||||
{
|
||||
matrix-01 = fetchzip {
|
||||
sha256 = "sha256-AHur5ZIDZTFRrO2GV0ieXrffq4KUiGWiZ59pv0fUtEQ=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/SNAP/amazon0312.tar.gz"
|
||||
"${mirror2}/SNAP/amazon0312.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-02 = fetchzip {
|
||||
sha256 = "sha256-0rSxaN4lQcdaCLsvlgicG70FXUxXeERPiEmQ4MzbRdE=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Muite/Chebyshev4.tar.gz"
|
||||
"${mirror2}/Muite/Chebyshev4.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-03 = fetchzip {
|
||||
sha256 = "sha256-hDzDWDUnHEyFedX/tMNq83ZH8uWyM4xtZYUUAD3rizo=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/FEMLAB/sme3Dc.tar.gz"
|
||||
"${mirror2}/FEMLAB/sme3Dc.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-04 = fetchzip {
|
||||
sha256 = "sha256-GmN2yOt/MoX01rKe05aTyB3ypUP4YbQGOITZ0BqPmC0=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Williams/webbase-1M.tar.gz"
|
||||
"${mirror2}/Williams/webbase-1M.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-05 = fetchzip {
|
||||
sha256 = "sha256-gQNjfVyWzNM9RwImJGhkhahRmZz74LzDs1oijL7mI7k=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Williams/mac_econ_fwd500.tar.gz"
|
||||
"${mirror2}/Williams/mac_econ_fwd500.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-06 = fetchzip {
|
||||
sha256 = "sha256-87cdZjntNcTuz5BtO59irhcuRbPllWSbhCEX3Td02qc=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Williams/mc2depi.tar.gz"
|
||||
"${mirror2}/Williams/mc2depi.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-07 = fetchzip {
|
||||
sha256 = "sha256-WRamuJX3D8Tm+k0q67RjUDG3DeNAxhKiaPkk5afY5eU=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Bova/rma10.tar.gz"
|
||||
"${mirror2}/Bova/rma10.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-08 = fetchzip {
|
||||
sha256 = "sha256-5dhkm293Mc3lzakKxHy5W5XIn4Rw+gihVh7gyrjEHXo=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/JGD_BIBD/bibd_22_8.tar.gz"
|
||||
"${mirror2}/JGD_BIBD/bibd_22_8.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-09 = fetchzip {
|
||||
sha256 = "sha256-czjLWCjXAjZCk5TGYHaEkwSAzQu3TQ3QyB6eNKR4G88=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Hamm/scircuit.tar.gz"
|
||||
"${mirror2}/Hamm/scircuit.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-10 = fetchzip {
|
||||
sha256 = "sha256-bYuLnJViAIcIejAkh69/bsNAVIDU4wfTLtD+nmHd6FM=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Sandia/ASIC_320k.tar.gz"
|
||||
"${mirror2}/Sandia/ASIC_320k.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-11 = fetchzip {
|
||||
sha256 = "sha256-aDwn8P1khYjo2Agbq5m9ZBInJUxf/knJNvyptt0fak0=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/GHS_psdef/bmwcra_1.tar.gz"
|
||||
"${mirror2}/GHS_psdef/bmwcra_1.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-12 = fetchzip {
|
||||
sha256 = "sha256-8OJqA/byhlAZd869TPUzZFdsOiwOoRGfKyhM+RMjXoY=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos1.tar.gz"
|
||||
"${mirror2}/HB/nos1.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-13 = fetchzip {
|
||||
sha256 = "sha256-FS0rKqmg+uHwsM/yGfQLBdd7LH/rUrdutkNGBD/Mh1I=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos2.tar.gz"
|
||||
"${mirror2}/HB/nos2.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-14 = fetchzip {
|
||||
sha256 = "sha256-DANnlrNJikrI7Pst9vRedtbuxepyHmCIu2yhltc4Qcs=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos3.tar.gz"
|
||||
"${mirror2}/HB/nos3.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-15 = fetchzip {
|
||||
sha256 = "sha256-21mUgqjWGUfYgiWwSrKh9vH8Vdt3xzcefmqYNYRpxiY=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos4.tar.gz"
|
||||
"${mirror2}/HB/nos4.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-16 = fetchzip {
|
||||
sha256 = "sha256-FOuXvGqBBFNkVS6cexmkluret54hCfCOdK+DOZllE4c=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos5.tar.gz"
|
||||
"${mirror2}/HB/nos5.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-17 = fetchzip {
|
||||
sha256 = "sha256-+7NI1rA/qQxYPpjXKHvAaCZ+LSaAJ4xuJvMRMBEUYxg=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos6.tar.gz"
|
||||
"${mirror2}/HB/nos6.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-18 = fetchzip {
|
||||
sha256 = "sha256-q3NxJjbwGGcFiQ9nhWfUKgZmdVwCfPmgQoqy0AqOsNc=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos7.tar.gz"
|
||||
"${mirror2}/HB/nos7.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-19 = fetchzip {
|
||||
sha256 = "sha256-0GAN6qmVfD+tprIigzuUUUwm5KVhkN9X65wMEvFltDY=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/DNVS/shipsec1.tar.gz"
|
||||
"${mirror2}/DNVS/shipsec1.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-20 = fetchzip {
|
||||
sha256 = "sha256-f28Du/Urxsiq5NkRmRO10Zz9vvGRjEchquzHzbZpZ7U=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Cote/mplate.tar.gz"
|
||||
"${mirror2}/Cote/mplate.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-21 = fetchzip {
|
||||
sha256 = "sha256-O+Wy0NfCU1hVUOfNR1dJpvDHLBwwa301IRJDrQJnhak=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Bai/qc2534.tar.gz"
|
||||
"${mirror2}/Bai/qc2534.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-22 = fetchzip {
|
||||
sha256 = "sha256-oxMnt8U5Cf1ILWcBdU6W9jdSMMm+U6bIVl8nm3n3+OA=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Chevron/Chevron2.tar.gz"
|
||||
"${mirror2}/Chevron/Chevron2.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-23 = fetchzip {
|
||||
sha256 = "sha256-MFD9BxFI/3IS7yatW121BAI04fbqrXpgYDT5UKjeKcU=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Chevron/Chevron3.tar.gz"
|
||||
"${mirror2}/Chevron/Chevron3.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-24 = fetchzip {
|
||||
sha256 = "sha256-ikS8O51pe1nt3BNyhvfvqCbVL0+bg/da9bqGqeBDkTg=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Chevron/Chevron4.tar.gz"
|
||||
"${mirror2}/Chevron/Chevron4.tar.gz"
|
||||
];
|
||||
};
|
||||
}
|
91
pkgs/development/libraries/rocthrust/default.nix
Normal file
91
pkgs/development/libraries/rocthrust/default.nix
Normal file
@ -0,0 +1,91 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, rocm-cmake
|
||||
, rocm-runtime
|
||||
, rocm-device-libs
|
||||
, rocm-comgr
|
||||
, rocprim
|
||||
, hip
|
||||
, gtest ? null
|
||||
, buildTests ? false
|
||||
, buildBenchmarks ? false
|
||||
}:
|
||||
|
||||
assert buildTests -> gtest != null;
|
||||
|
||||
# Doesn't seem to work, thousands of errors compiling with no clear fix
|
||||
# Is this an upstream issue? We don't seem to be missing dependencies
|
||||
assert buildTests == false;
|
||||
assert buildBenchmarks == false;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rocthrust";
|
||||
rocmVersion = "5.3.1";
|
||||
version = "2.16.0-${rocmVersion}";
|
||||
|
||||
# Comment out these outputs until tests/benchmarks are fixed (upstream?)
|
||||
# outputs = [
|
||||
# "out"
|
||||
# ] ++ lib.optionals buildTests [
|
||||
# "test"
|
||||
# ] ++ lib.optionals buildBenchmarks [
|
||||
# "benchmark"
|
||||
# ];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCmSoftwarePlatform";
|
||||
repo = "rocThrust";
|
||||
rev = "rocm-${rocmVersion}";
|
||||
hash = "sha256-cT0VyEVz86xR6qubAY2ncTxtCRTwXrNTWcFyf3mV+y0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
rocm-cmake
|
||||
rocprim
|
||||
hip
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
rocm-runtime
|
||||
rocm-device-libs
|
||||
rocm-comgr
|
||||
] ++ lib.optionals buildTests [
|
||||
gtest
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_CXX_COMPILER=hipcc"
|
||||
"-DHIP_ROOT_DIR=${hip}"
|
||||
# Manually define CMAKE_INSTALL_<DIR>
|
||||
# See: https://github.com/NixOS/nixpkgs/pull/197838
|
||||
"-DCMAKE_INSTALL_BINDIR=bin"
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
"-DCMAKE_INSTALL_INCLUDEDIR=include"
|
||||
] ++ lib.optionals buildTests [
|
||||
"-DBUILD_TEST=ON"
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
"-DBUILD_BENCHMARKS=ON"
|
||||
];
|
||||
|
||||
# Comment out these outputs until tests/benchmarks are fixed (upstream?)
|
||||
# postInstall = lib.optionalString buildTests ''
|
||||
# mkdir -p $test/bin
|
||||
# mv $out/bin/test_* $test/bin
|
||||
# '' + lib.optionalString buildBenchmarks ''
|
||||
# mkdir -p $benchmark/bin
|
||||
# mv $out/bin/benchmark_* $benchmark/bin
|
||||
# '' + lib.optionalString (buildTests || buildBenchmarks) ''
|
||||
# rmdir $out/bin
|
||||
# '';
|
||||
|
||||
meta = with lib; {
|
||||
description = "ROCm parallel algorithm library";
|
||||
homepage = "https://github.com/ROCmSoftwarePlatform/rocThrust";
|
||||
license = with licenses; [ asl20 ];
|
||||
maintainers = with maintainers; [ Madouura ];
|
||||
broken = rocmVersion != hip.version;
|
||||
};
|
||||
}
|
@ -8,13 +8,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "s2n-tls";
|
||||
version = "1.3.26";
|
||||
version = "1.3.27";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aws";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-eVqiY/AomnKbN83hSB66EIuGD82Ilx+ybQtBMyX57WY=";
|
||||
sha256 = "sha256-y6YlSzLZXNL7GkP0SNXQgt16W2AohGaGjshNq9GoCtA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
@ -1,108 +1,99 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, abseil-cpp
|
||||
{ abseil-cpp
|
||||
, bzip2
|
||||
, zlib
|
||||
, lsb-release
|
||||
, which
|
||||
, protobuf
|
||||
, cbc
|
||||
, cmake
|
||||
, eigen
|
||||
, ensureNewerSourcesForZipFilesHook
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, glpk
|
||||
, lib
|
||||
, pkg-config
|
||||
, protobuf
|
||||
, python
|
||||
, re2
|
||||
, stdenv
|
||||
, swig4
|
||||
, unzip
|
||||
, zlib
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "or-tools";
|
||||
version = "9.1";
|
||||
disabled = python.pythonOlder "3.6"; # not supported upstream
|
||||
version = "9.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "google";
|
||||
repo = "or-tools";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-dEYMPWpa3J9EqtCq3kubdUYJivNRTOKUpNDx3UC1IcQ=";
|
||||
sha256 = "sha256-joWonJGuxlgHhXLznRhC1MDltQulXzpo4Do9dec1bLY=";
|
||||
};
|
||||
|
||||
# The original build system uses cmake which does things like pull
|
||||
# in dependencies through git and Makefile creation time. We
|
||||
# obviously don't want to do this so instead we provide the
|
||||
# dependencies straight from nixpkgs and use the make build method.
|
||||
|
||||
# Cbc is linked against bzip2 and declares this in its pkgs-config file,
|
||||
# but this makefile doesn't use pkgs-config, so we also have to add lbz2
|
||||
configurePhase = ''
|
||||
substituteInPlace makefiles/Makefile.third_party.unix.mk \
|
||||
--replace 'COINUTILS_LNK = $(STATIC_COINUTILS_LNK)' \
|
||||
'COINUTILS_LNK = $(STATIC_COINUTILS_LNK) -lbz2'
|
||||
|
||||
cat <<EOF > Makefile.local
|
||||
UNIX_ABSL_DIR=${abseil-cpp}
|
||||
UNIX_PROTOBUF_DIR=${protobuf}
|
||||
UNIX_CBC_DIR=${cbc}
|
||||
USE_SCIP=OFF
|
||||
EOF
|
||||
'';
|
||||
|
||||
# Many of these 'samples' (which are really the tests) require using SCIP, and or-tools 8.1
|
||||
# will just crash if SCIP is not found because it doesn't fall back to using one of
|
||||
# the available solvers: https://github.com/google/or-tools/blob/b77bd3ac69b7f3bb02f55b7bab6cbb4bab3917f2/ortools/linear_solver/linear_solver.cc#L427
|
||||
# We don't compile with SCIP because it does not have an open source license.
|
||||
# See https://github.com/google/or-tools/issues/2395
|
||||
preBuild = ''
|
||||
for file in ortools/linear_solver/samples/*.cc; do
|
||||
if grep -q SCIP_MIXED_INTEGER_PROGRAMMING $file; then
|
||||
substituteInPlace $file --replace SCIP_MIXED_INTEGER_PROGRAMMING CBC_MIXED_INTEGER_PROGRAMMING
|
||||
fi;
|
||||
done
|
||||
|
||||
substituteInPlace ortools/linear_solver/samples/simple_mip_program.cc \
|
||||
--replace 'SCIP' 'CBC'
|
||||
'';
|
||||
makeFlags = [
|
||||
"prefix=${placeholder "out"}"
|
||||
"PROTOBUF_PYTHON_DESC=${python.pkgs.protobuf}/${python.sitePackages}/google/protobuf/descriptor_pb2.py"
|
||||
patches = [
|
||||
# Disable test that requires external input: https://github.com/google/or-tools/issues/3429
|
||||
(fetchpatch {
|
||||
url = "https://github.com/google/or-tools/commit/7072ae92ec204afcbfce17d5360a5884c136ce90.patch";
|
||||
hash = "sha256-iWE+atp308q7pC1L1FD6sK8LvWchZ3ofxvXssguozbM=";
|
||||
})
|
||||
# Fix test that broke in parallel builds: https://github.com/google/or-tools/issues/3461
|
||||
(fetchpatch {
|
||||
url = "https://github.com/google/or-tools/commit/a26602f24781e7bfcc39612568aa9f4010bb9736.patch";
|
||||
hash = "sha256-gM0rW0xRXMYaCwltPK0ih5mdo3HtX6mKltJDHe4gbLc=";
|
||||
})
|
||||
];
|
||||
buildFlags = [ "cc" "pypi_archive" ];
|
||||
|
||||
doCheck = true;
|
||||
checkTarget = "test_cc";
|
||||
|
||||
installTargets = [ "install_cc" ];
|
||||
# The upstream install_python target installs to $HOME.
|
||||
postInstall = ''
|
||||
mkdir -p "$python/${python.sitePackages}"
|
||||
(cd temp_python/ortools; PYTHONPATH="$python/${python.sitePackages}:$PYTHONPATH" python setup.py install '--prefix=$python')
|
||||
'';
|
||||
|
||||
# protobuf generation is not thread safe
|
||||
enableParallelBuilding = false;
|
||||
|
||||
cmakeFlags = [
|
||||
"-DBUILD_DEPS=OFF"
|
||||
"-DBUILD_PYTHON=ON"
|
||||
"-DBUILD_pybind11=OFF"
|
||||
"-DFETCH_PYTHON_DEPS=OFF"
|
||||
"-DUSE_GLPK=ON"
|
||||
"-DUSE_SCIP=OFF"
|
||||
];
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
lsb-release
|
||||
swig4
|
||||
which
|
||||
ensureNewerSourcesForZipFilesHook
|
||||
python.pkgs.setuptools
|
||||
python.pkgs.wheel
|
||||
pkg-config
|
||||
python
|
||||
python.pkgs.pip
|
||||
swig4
|
||||
unzip
|
||||
];
|
||||
buildInputs = [
|
||||
zlib
|
||||
bzip2
|
||||
python
|
||||
cbc
|
||||
eigen
|
||||
glpk
|
||||
python.pkgs.absl-py
|
||||
python.pkgs.mypy-protobuf
|
||||
python.pkgs.pybind11
|
||||
python.pkgs.setuptools
|
||||
python.pkgs.wheel
|
||||
re2
|
||||
zlib
|
||||
];
|
||||
propagatedBuildInputs = [
|
||||
abseil-cpp
|
||||
protobuf
|
||||
|
||||
python.pkgs.protobuf
|
||||
python.pkgs.six
|
||||
python.pkgs.absl-py
|
||||
python.pkgs.mypy-protobuf
|
||||
python.pkgs.numpy
|
||||
];
|
||||
checkInputs = [
|
||||
python.pkgs.matplotlib
|
||||
python.pkgs.pandas
|
||||
python.pkgs.virtualenv
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
# This extra configure step prevents the installer from littering
|
||||
# $out/bin with sample programs that only really function as tests,
|
||||
# and disables the upstream installation of a zipped Python egg that
|
||||
# can’t be imported with our Python setup.
|
||||
installPhase = ''
|
||||
cmake . -DBUILD_EXAMPLES=OFF -DBUILD_PYTHON=OFF -DBUILD_SAMPLES=OFF
|
||||
cmake --install .
|
||||
pip install --prefix="$python" python/
|
||||
'';
|
||||
|
||||
outputs = [ "out" "python" ];
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, cmake
|
||||
, libX11
|
||||
, freetype
|
||||
@ -30,6 +31,14 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "sha256-Xt2Ct4vV459AsSvJxQfwMsNs6iA5y3epT95pLWJGeSk=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/macports/macports-ports/raw/4df1fc235a708ff28200ffc0a39120974ed4b6e1/multimedia/sfml/files/patch-apple-silicon.diff";
|
||||
extraPrefix = "";
|
||||
sha256 = "sha256-9dNawJaYtkugR+2NvhQOhgsf6w9ZXHkBgsDRh8yAJc0=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [ freetype libjpeg openal flac libvorbis glew ]
|
||||
++ lib.optional stdenv.isLinux udev
|
||||
|
34
pkgs/development/libraries/tensile/default.nix
Normal file
34
pkgs/development/libraries/tensile/default.nix
Normal file
@ -0,0 +1,34 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, buildPythonPackage
|
||||
, pyyaml
|
||||
, msgpack
|
||||
, pandas
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "tensile";
|
||||
rocmVersion = "5.3.1";
|
||||
version = "4.34.0-${rocmVersion}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCmSoftwarePlatform";
|
||||
repo = "Tensile";
|
||||
rev = "rocm-${rocmVersion}";
|
||||
hash = "sha256-QWt/zzBrZKM8h3MTnbLX4vN3p6cCQvo67U1C2yqAQxw=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
pyyaml
|
||||
msgpack
|
||||
pandas
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "GEMMs and tensor contractions";
|
||||
homepage = "https://github.com/ROCmSoftwarePlatform/Tensile";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ Madouura ];
|
||||
};
|
||||
}
|
@ -247,6 +247,7 @@
|
||||
, "patch-package"
|
||||
, "peerflix"
|
||||
, "peerflix-server"
|
||||
, {"photoprism-frontend": "../../servers/photoprism"}
|
||||
, "pkg"
|
||||
, "pm2"
|
||||
, "pnpm"
|
||||
|
10994
pkgs/development/node-packages/node-packages.nix
generated
10994
pkgs/development/node-packages/node-packages.nix
generated
File diff suppressed because it is too large
Load Diff
@ -364,6 +364,10 @@ final: prev: {
|
||||
'';
|
||||
};
|
||||
|
||||
photoprism-frontend = prev."photoprism-frontend-../../servers/photoprism".override {
|
||||
meta.broken = true; # use the top-level package instead
|
||||
};
|
||||
|
||||
pnpm = prev.pnpm.override {
|
||||
nativeBuildInputs = [ pkgs.buildPackages.makeWrapper ];
|
||||
|
||||
|
@ -1,17 +1,16 @@
|
||||
{ lib, fetchurl, buildDunePackage, cstruct, bigarray-compat }:
|
||||
{ lib, fetchurl, buildDunePackage, cstruct }:
|
||||
|
||||
buildDunePackage rec {
|
||||
minimumOCamlVersion = "4.03";
|
||||
minimalOCamlVersion = "4.07";
|
||||
pname = "eqaf";
|
||||
version = "0.8";
|
||||
useDune2 = true;
|
||||
version = "0.9";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/mirage/eqaf/releases/download/v${version}/eqaf-v${version}.tbz";
|
||||
sha256 = "sha256-EUWhYBB0N9eUPgLkht9r0jPTk37BpZfX+jntuUcc+HU=";
|
||||
url = "https://github.com/mirage/eqaf/releases/download/v${version}/eqaf-${version}.tbz";
|
||||
sha256 = "sha256-7A4oqUasaBf5XVhU8FqZYa46hAi7YQ55z60BubJV3+A=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ cstruct bigarray-compat ];
|
||||
propagatedBuildInputs = [ cstruct ];
|
||||
|
||||
meta = {
|
||||
description = "Constant time equal function to avoid timing attacks in OCaml";
|
||||
|
@ -165,7 +165,8 @@ with self;
|
||||
|
||||
base = janePackage {
|
||||
pname = "base";
|
||||
hash = "1qyycqqr4dijvxm4hhy79c964wd91kpsfvb89kna1qwgllg0hrpj";
|
||||
version = "0.15.1";
|
||||
hash = "sha256-CDKQVF+hAvJTo5QmRvyOfQNrdRgz6m+64q9UzNHlJEA=";
|
||||
minimumOCamlVersion = "4.10";
|
||||
meta.description = "Full standard library replacement for OCaml";
|
||||
buildInputs = [ dune-configurator ];
|
||||
@ -912,7 +913,8 @@ with self;
|
||||
|
||||
sexplib0 = janePackage {
|
||||
pname = "sexplib0";
|
||||
hash = "0jag0bz2173b0n7hx013fhghydhh92arqjlrcnf5x025bw8nz66v";
|
||||
version = "0.15.1";
|
||||
hash = "sha256-6K0yrCbVFcUalN4cQuDI1TvWvNDjfXXRDhJKUskbqRY=";
|
||||
minimumOCamlVersion = "4.04.2";
|
||||
meta.description = "Library containing the definition of S-expressions and some base converters";
|
||||
};
|
||||
|
@ -1,27 +1,23 @@
|
||||
{ lib, fetchFromGitHub, fetchpatch, pkg-config, buildDunePackage, dune-configurator, gtk3, cairo2 }:
|
||||
{ lib, fetchFromGitHub, pkg-config, buildDunePackage, dune-configurator
|
||||
, gtk3, cairo2
|
||||
, camlp-streams
|
||||
}:
|
||||
|
||||
buildDunePackage rec {
|
||||
version = "3.1.2";
|
||||
version = "3.1.3";
|
||||
pname = "lablgtk3";
|
||||
|
||||
useDune2 = true;
|
||||
|
||||
minimalOCamlVersion = "4.05";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "garrigue";
|
||||
repo = "lablgtk";
|
||||
rev = version;
|
||||
sha256 = "sha256:0b17w9qb1f02h3313cm62mrqlhwxficppzm72n7sf8mmwrylxbm7";
|
||||
sha256 = "sha256-1kXJP+tKudP3qfosTgZAQueNK46H9aLevEj6wxPKDWY=";
|
||||
};
|
||||
|
||||
patches = [ (fetchpatch {
|
||||
name = "dune-project.patch";
|
||||
url = "https://raw.githubusercontent.com/ocaml/opam-repository/10a48cb9fab88f67f6cb70280e0fec035c32d41c/packages/lablgtk3/lablgtk3.3.1.2/files/dune-project.patch";
|
||||
sha256 = "03jf5hclqdq7iq84djaqcnfnnnd7z3hb48rr8n1gyxzjyx86b3fh";
|
||||
}) ];
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ dune-configurator ];
|
||||
buildInputs = [ dune-configurator camlp-streams ];
|
||||
propagatedBuildInputs = [ gtk3 cairo2 ];
|
||||
|
||||
meta = {
|
||||
|
@ -4,5 +4,5 @@ buildDunePackage {
|
||||
pname = "lablgtk3-gtkspell3";
|
||||
buildInputs = [ gtkspell3 ] ++ lablgtk3.buildInputs;
|
||||
propagatedBuildInputs = [ lablgtk3 ];
|
||||
inherit (lablgtk3) src version useDune2 meta nativeBuildInputs;
|
||||
inherit (lablgtk3) src version meta nativeBuildInputs;
|
||||
}
|
||||
|
@ -4,5 +4,5 @@ buildDunePackage {
|
||||
pname = "lablgtk3-sourceview3";
|
||||
buildInputs = lablgtk3.buildInputs ++ [ gtksourceview ];
|
||||
propagatedBuildInputs = [ lablgtk3 ];
|
||||
inherit (lablgtk3) src version useDune2 meta nativeBuildInputs;
|
||||
inherit (lablgtk3) src version meta nativeBuildInputs;
|
||||
}
|
||||
|
@ -12,7 +12,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aioesphomeapi";
|
||||
version = "11.4.2";
|
||||
version = "11.4.3";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
@ -21,7 +21,7 @@ buildPythonPackage rec {
|
||||
owner = "esphome";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-dYogEs9cU+h6oPu9PImHTLvyaJ3kNAOgKNdN44HeqWY=";
|
||||
hash = "sha256-g901qWU6aiaV0kLmtWJffXZrOsKjvOGI0TOgQFzuuPA=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aiohomekit";
|
||||
version = "2.2.14";
|
||||
version = "2.2.17";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
@ -27,7 +27,7 @@ buildPythonPackage rec {
|
||||
owner = "Jc2k";
|
||||
repo = pname;
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-0O8fax25vabItFnUD9N7C4gyMSKPHqHSgzJXJjp5dGw=";
|
||||
hash = "sha256-eqLWHa7qUZ6UzNr9onwF2xmntKwdbNMWt2KvwG3kQjc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "bluetooth-adapters";
|
||||
version = "0.6.0";
|
||||
version = "0.7.0";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
@ -23,7 +23,7 @@ buildPythonPackage rec {
|
||||
owner = "Bluetooth-Devices";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-26w7513h5WWGqKz4OqHob42O0bk1yW8ePPKB2V9+AHs=";
|
||||
hash = "sha256-c6blw0WD1V4bNZ5YaVjLbeCIug8l7PeKlrv+kzncK/s=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -12,7 +12,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "bthome-ble";
|
||||
version = "2.1.0";
|
||||
version = "2.2.0";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
@ -21,7 +21,7 @@ buildPythonPackage rec {
|
||||
owner = "Bluetooth-Devices";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-4vk9uaG/9n3lNEWAergW9kFN2/Ta/KSax0rK9tVxAfw=";
|
||||
hash = "sha256-jjFYJ6EF4G43EOKCdkE1KQqaV2aGD+HMh1tOxHWUn8k=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "btrees";
|
||||
version = "4.10.1";
|
||||
version = "4.11.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -19,7 +19,7 @@ buildPythonPackage rec {
|
||||
src = fetchPypi {
|
||||
pname = "BTrees";
|
||||
inherit version;
|
||||
hash = "sha256-QOPUFrOwMajIYzRQfRIbadnJ3pB+ESNE3lJrVFHZA8U=";
|
||||
hash = "sha256-AFwDtIAp1noojnYIeYw3rCSfLAabb1GDZAqUmdzY+qM=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -7,6 +7,7 @@
|
||||
, substituteAll
|
||||
, makeFontsConf
|
||||
, freefont_ttf
|
||||
, pikepdf
|
||||
, pytest
|
||||
, glibcLocales
|
||||
, cairo
|
||||
@ -21,42 +22,15 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "cairocffi";
|
||||
version = "1.3.0";
|
||||
version = "1.4.0";
|
||||
|
||||
disabled = pythonOlder "3.5";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-EIo6fLCeIDvdhQHZuq2R14bSBFYb1x6TZOizSJfEe5E=";
|
||||
sha256 = "sha256-UJM5syzNjXsAwiBMMnNs3njbU6MuahYtMSR40lYmzZo=";
|
||||
};
|
||||
|
||||
LC_ALL = "en_US.UTF-8";
|
||||
|
||||
# checkPhase require at least one 'normal' font and one 'monospace',
|
||||
# otherwise glyph tests fails
|
||||
FONTCONFIG_FILE = makeFontsConf {
|
||||
fontDirectories = [ freefont_ttf ];
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ cairo cffi ] ++ lib.optional withXcffib xcffib;
|
||||
propagatedNativeBuildInputs = [ cffi ];
|
||||
|
||||
# pytestCheckHook does not work
|
||||
checkInputs = [ numpy pytest glibcLocales ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.cfg \
|
||||
--replace "pytest-runner" "" \
|
||||
--replace "pytest-cov" "" \
|
||||
--replace "pytest-flake8" "" \
|
||||
--replace "pytest-isort" "" \
|
||||
--replace "--flake8 --isort" ""
|
||||
'';
|
||||
|
||||
checkPhase = ''
|
||||
py.test $out/${python.sitePackages}
|
||||
'';
|
||||
|
||||
patches = [
|
||||
# OSError: dlopen() failed to load a library: gdk-pixbuf-2.0 / gdk-pixbuf-2.0-0
|
||||
(substituteAll {
|
||||
@ -69,6 +43,35 @@ buildPythonPackage rec {
|
||||
./fix_test_scaled_font.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.cfg \
|
||||
--replace "pytest-runner" "" \
|
||||
--replace "pytest-cov" "" \
|
||||
--replace "pytest-flake8" "" \
|
||||
--replace "pytest-isort" "" \
|
||||
--replace "--flake8 --isort" ""
|
||||
'';
|
||||
|
||||
LC_ALL = "en_US.UTF-8";
|
||||
|
||||
# checkPhase require at least one 'normal' font and one 'monospace',
|
||||
# otherwise glyph tests fails
|
||||
FONTCONFIG_FILE = makeFontsConf {
|
||||
fontDirectories = [ freefont_ttf ];
|
||||
};
|
||||
|
||||
propagatedNativeBuildInputs = [ cffi ];
|
||||
|
||||
propagatedBuildInputs = [ cairo cffi ]
|
||||
++ lib.optional withXcffib xcffib;
|
||||
|
||||
# pytestCheckHook does not work
|
||||
checkInputs = [ numpy pikepdf pytest glibcLocales ];
|
||||
|
||||
checkPhase = ''
|
||||
py.test $out/${python.sitePackages}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/SimonSapin/cairocffi";
|
||||
license = licenses.bsd3;
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "cometblue-lite";
|
||||
version = "0.5.2";
|
||||
version = "0.5.3";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@ -17,7 +17,7 @@ buildPythonPackage rec {
|
||||
owner = "neffs";
|
||||
repo = "python-cometblue_lite";
|
||||
rev = version;
|
||||
hash = "sha256-23HspTZ0kN3+geDnqdH6Vj5NfmmbVku2vPTdsy0XvRU=";
|
||||
hash = "sha256-KRWS2nqMFlF+IcBSmnQH3ptp6yxRQjAFY6aY0D7eZBs=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -54,6 +54,11 @@ buildPythonPackage rec {
|
||||
"dask_glm/tests/test_utils.py"
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# missing fixture with distributed>=2022.8.0
|
||||
"test_determinism_distributed"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Generalized Linear Models with Dask";
|
||||
homepage = "https://github.com/dask/dask-glm/";
|
||||
|
@ -2,6 +2,7 @@
|
||||
, stdenv
|
||||
, bokeh
|
||||
, buildPythonPackage
|
||||
, click
|
||||
, cloudpickle
|
||||
, distributed
|
||||
, fastparquet
|
||||
@ -26,19 +27,28 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "dask";
|
||||
version = "2022.9.1";
|
||||
version = "2022.10.2";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dask";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-4Tok9eYhi2FF+8bpKnwKT3KIRGHIMtxczTkZ6qD8x7g=";
|
||||
hash = "sha256-zHJR2WjHigUMWtRJW25+gk1fKGKedU53BBjwx5zaodA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
# Fix test_repartition_npartitions on platforms other than x86-64
|
||||
url = "https://github.com/dask/dask/commit/65f40ad461c57065f981e6213e33b1d13cc9bc8f.patch";
|
||||
hash = "sha256-KyTSms4ik1kYtL+I/huAxD+zK2AAuPkwmHA9FYk601Y=";
|
||||
})
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
click
|
||||
cloudpickle
|
||||
fsspec
|
||||
packaging
|
||||
@ -109,6 +119,8 @@ buildPythonPackage rec {
|
||||
"test_read_dir_nometa"
|
||||
] ++ [
|
||||
"test_chunksize_files"
|
||||
# TypeError: 'ArrowStringArray' with dtype string does not support reduction 'min'
|
||||
"test_set_index_string"
|
||||
];
|
||||
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "dbus-fast";
|
||||
version = "1.64.0";
|
||||
version = "1.72.0";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -20,7 +20,7 @@ buildPythonPackage rec {
|
||||
owner = "Bluetooth-Devices";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-y/H4TYCicn6Gvv+F4ogqhNWK2mZxEVNGCY4pJAfjq9s=";
|
||||
hash = "sha256-7KsikrHfk0EGtLOzO8qGyU8ZzqNshijDJgnDLn16Eis=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -21,14 +21,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "distributed";
|
||||
version = "2022.9.1";
|
||||
version = "2022.10.2";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-upj1TipRhhvulyuhX4bfbQSWar9m7Xu3mIsi48G+ewE=";
|
||||
hash = "sha256-U/Clv276uaWrM0XNkT9tPz1OpETuLtvqMxx/75b9Z9A=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -19,14 +19,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-oauth-toolkit";
|
||||
version = "2.1.0";
|
||||
version = "2.2.0";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jazzband";
|
||||
repo = pname;
|
||||
rev = "refs/tags/${version}";
|
||||
sha256 = "sha256-c78QYlU/gB4Lt04TlQFjtsS6pyjDm/fURBMa9hXLpLI=";
|
||||
sha256 = "sha256-mynchdvrfBGKMeFFb2oDaANhtSCxq85Nibx7GfSY2nQ=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -12,13 +12,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-rest-polymorphic";
|
||||
version = "0.1.9";
|
||||
version = "0.1.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "apirobot";
|
||||
repo = "django-rest-polymorphic";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-p3ew2NONSyiGzDzxGTy/cx3fcQhhvnzqopJzgqhXadY=";
|
||||
# https://github.com/denisorehovsky/django-rest-polymorphic/issues/42
|
||||
rev = "9d920eb91ef13144094426f9ebc0ca80247c0fe3";
|
||||
sha256 = "sha256-k7Cl2QYkaGOZaTo8v5Wg9Wqh8x0WC5i9Sggqj8eeECY=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -1,7 +1,6 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, coreapi
|
||||
, django
|
||||
, django-guardian
|
||||
@ -15,26 +14,16 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "djangorestframework";
|
||||
version = "3.13.1";
|
||||
version = "3.14.0";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "encode";
|
||||
repo = "django-rest-framework";
|
||||
rev = version;
|
||||
sha256 = "sha256-XmX6DZBZYzVCe72GERplAWt5jIjV/cYercZGb0pYjoc=";
|
||||
sha256 = "sha256-Fnj0n3NS3SetOlwSmGkLE979vNJnYE6i6xwVBslpNz4=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# See https://github.com/encode/django-rest-framework/issues/8608
|
||||
# and https://github.com/encode/django-rest-framework/pull/8591/
|
||||
(fetchpatch {
|
||||
name = "fix-django-collect-static.patch";
|
||||
url = "https://github.com/encode/django-rest-framework/pull/8591/commits/65943bb58deba6ee1a89fe4504f270ab1806fce6.patch";
|
||||
sha256 = "sha256-wI7EzX9tlyyXAPrJEr+/2uTg7dVY98IKgh7Cc/NZo5k=";
|
||||
})
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
django
|
||||
pytz
|
||||
|
@ -6,13 +6,13 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "drf-spectacular-sidecar";
|
||||
version = "2022.6.1";
|
||||
version = "2022.11.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tfranzel";
|
||||
repo = "drf-spectacular-sidecar";
|
||||
rev = version;
|
||||
sha256 = "sha256-SKMAA8tcvWUF7EARq9vN8C0DWcQFRX5j/tfgHF5TUWs=";
|
||||
sha256 = "sha256-ztUdV+Bhi3zx5UiwnpiQM/RglUH1n9J48Beuq2GPWdg=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -28,13 +28,13 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "drf-spectacular";
|
||||
version = "0.22.1";
|
||||
version = "0.24.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tfranzel";
|
||||
repo = "drf-spectacular";
|
||||
rev = version;
|
||||
sha256 = "sha256-SgzyIzgFBXsNHfY2OfCq0LhJyi/ZCOSA8QveKNduIBc=";
|
||||
sha256 = "sha256-WE+iOD3OjDByisHI9GgvjUUSpvOz+IYi/3Y8AmR7Eps=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
@ -66,6 +66,11 @@ buildPythonPackage rec {
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# requires django with gdal
|
||||
"test_rest_framework_gis"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "drf_spectacular" ];
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -19,6 +19,7 @@ buildPythonPackage rec {
|
||||
|
||||
preConfigure = ''
|
||||
cd tools/pythonpkg
|
||||
substituteInPlace setup.py --replace "multiprocessing.cpu_count()" "$NIX_BUILD_CORES"
|
||||
'';
|
||||
|
||||
SETUPTOOLS_SCM_PRETEND_VERSION = version;
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "gcal-sync";
|
||||
version = "3.0.0";
|
||||
version = "4.0.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
@ -22,7 +22,7 @@ buildPythonPackage rec {
|
||||
owner = "allenporter";
|
||||
repo = "gcal_sync";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-xRmNV06gMdPPHcvgJTvxPZBUi1BbFTnwZpzXLBluBYo=";
|
||||
hash = "sha256-HHRBH/cEQEyl5AV6RguItdm5AjBwkZ0RqispeWll7VI=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -16,14 +16,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "google-api-core";
|
||||
version = "2.10.1";
|
||||
version = "2.10.2";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-4WwVoReJvFo0V6+ygYo1QKA/NB5ucQ1/m79s3i70p8g=";
|
||||
sha256 = "sha256-EMBvdzn+V3gfh1Izdejho6RnS/Y5LNYTGjIiGCuXEyA=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -12,14 +12,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "google-auth-oauthlib";
|
||||
version = "0.5.2";
|
||||
version = "0.7.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-1emKcSAzMGmfkqJrwIhHqS6MOxuNgqAh8a80Fk2xQ64=";
|
||||
sha256 = "sha256-2xG85LPv/Jm1GOwiopA0cOCFPAySvldpTjaE5zjSJRM=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -27,11 +27,11 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "google-auth";
|
||||
version = "2.11.0";
|
||||
version = "2.14.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-7WXs+faBgyKY4pMo4e8KNnbjcysuVvQVMtRfcKIt4Ps=";
|
||||
sha256 = "sha256-zySBeFXYdO3i79BxqiISVEX1Vd4Whbc5qXgvz0CMKj0=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -12,11 +12,11 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "google-cloud-kms";
|
||||
version = "2.12.1";
|
||||
version = "2.12.3";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-A1sIdkNdK4L6gb3VBApuKJ71J5N2Jq43kcD8DpHU99E=";
|
||||
sha256 = "sha256-ooWxYH4B8HY9ybWj0GQqUnfiFXzLCqyXGGZsocV9Od0=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ grpc-google-iam-v1 google-api-core libcst proto-plus ];
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user