Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2024-07-19 18:01:40 +00:00 committed by GitHub
commit 637b531dcf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
63 changed files with 1360 additions and 1290 deletions

View File

@ -293,9 +293,9 @@ in
# Generated options from other settings
Host *
AddressFamily ${if config.networking.enableIPv6 then "any" else "inet"}
GlobalKnownHostsFile ${builtins.concatStringsSep " " knownHostsFiles}
${lib.optionalString (!config.networking.enableIPv6) "AddressFamily inet"}
${lib.optionalString cfg.setXAuthLocation "XAuthLocation ${pkgs.xorg.xauth}/bin/xauth"}
${lib.optionalString (cfg.forwardX11 != null) "ForwardX11 ${if cfg.forwardX11 then "yes" else "no"}"}

View File

@ -445,6 +445,7 @@ in {
"${removeSuffix "/" cfg.serve.virtualRoot}/static/".alias = webSettings.STATIC_ROOT + "/";
};
});
proxyTimeout = mkDefault "120s";
};
environment.systemPackages = [ (pkgs.buildEnv {

View File

@ -69,8 +69,6 @@ in
ott-mode = callPackage ./manual-packages/ott-mode { };
perl-completion = callPackage ./manual-packages/perl-completion { };
pod-mode = callPackage ./manual-packages/pod-mode { };
prisma-mode = callPackage ./manual-packages/prisma-mode { };
@ -120,4 +118,5 @@ in
ess-R-object-popup = throw "emacsPackages.ess-R-object-popup was deleted, since the upstream repo looks abandoned."; # Added 2024-07-15
ghc-mod = throw "emacsPackages.ghc-mod was deleted because it is deprecated, use haskell-language-server instead."; # Added 2024-07-17
haskell-unicode-input-method = throw "emacsPackages.haskell-unicode-input-method is contained in emacsPackages.haskell-mode, please use that instead."; # Added 2024-07-17
perl-completion = throw "emacsPackages.perl-completion was removed, since it is broken."; # Added 2024-07-19
}

View File

@ -1,18 +1,22 @@
{ lib, trivialBuild, fetchurl }:
{
lib,
fetchurl,
melpaBuild,
}:
trivialBuild {
melpaBuild {
pname = "control-lock";
version = "1.1.2";
src = fetchurl {
url = "https://raw.githubusercontent.com/emacsmirror/emacswiki.org/185fdc34fb1e02b43759ad933d3ee5646b0e78f8/control-lock.el";
hash = "sha256-JCrmS3FSGDHSR+eAR0X/uO0nAgd3TUmFxwEVH5+KV+4=";
};
version = "1.1.2";
meta = {
description = "Like caps-lock, but for your control key. Give your pinky a rest!";
homepage = "https://www.emacswiki.org/emacs/control-lock.el";
description = "Like caps-lock, but for your control key";
license = lib.licenses.free;
platforms = lib.platforms.all;
};
}

View File

@ -1,10 +1,12 @@
{ lib
, fetchFromGitHub
, trivialBuild
{
lib,
fetchFromGitHub,
melpaBuild,
}:
trivialBuild {
melpaBuild {
pname = "font-lock-plus";
ename = "font-lock+";
version = "208-unstable-2018-01-01";
src = fetchFromGitHub {
@ -14,9 +16,9 @@ trivialBuild {
hash = "sha256-lFmdVMXIIXZ9ZohAJw5rhxpTv017qIyzmpuKOWDdeJ4=";
};
meta = with lib; {
meta = {
homepage = "https://github.com/emacsmirror/font-lock-plus";
description = "Enhancements to standard library font-lock.el";
license = licenses.gpl2Plus;
license = lib.licenses.gpl2Plus;
};
}

View File

@ -1,65 +1,34 @@
{ lib
, emacs
, f
, fetchFromGitHub
, markdown-mode
, rustPlatform
, trivialBuild
, yasnippet
{
lib,
callPackage,
f,
markdown-mode,
melpaBuild,
nix-update-script,
yasnippet,
}:
let
version = "1.0.0-unstable-2024-02-03";
src = fetchFromGitHub {
owner = "zbelial";
repo = "lspce";
rev = "543dcf0ea9e3ff5c142c4365d90b6ae8dc27bd15";
hash = "sha256-LZWRQOKkTjNo8jecBRholW9SHpiK0SWcV8yObojpvxo=";
};
meta = {
homepage = "https://github.com/zbelial/lspce";
description = "LSP Client for Emacs implemented as a module using rust";
license = lib.licenses.gpl3Only;
maintainers = [ ];
inherit (emacs.meta) platforms;
};
lspce-module = rustPlatform.buildRustPackage {
inherit version src meta;
pname = "lspce-module";
cargoHash = "sha256-W9rsi7o4KvyRoG/pqRKOBbJtUoSW549Sh8+OV9sLcxs=";
checkFlags = [
# flaky test
"--skip=msg::tests::serialize_request_with_null_params"
];
postInstall = ''
mkdir -p $out/share/emacs/site-lisp
for f in $out/lib/*; do
mv $f $out/share/emacs/site-lisp/lspce-module.''${f##*.}
done
rmdir $out/lib
'';
};
lspce-module = callPackage ./module.nix { };
in
trivialBuild rec {
inherit version src meta;
melpaBuild {
pname = "lspce";
inherit (lspce-module) version src meta;
buildInputs = propagatedUserEnvPkgs;
propagatedUserEnvPkgs = [
packageRequires = [
f
markdown-mode
yasnippet
lspce-module
];
# to compile lspce.el, it needs lspce-module.so
files = ''(:defaults "${lib.getLib lspce-module}/lib/lspce-module.*")'';
passthru = {
inherit lspce-module;
updateScript = nix-update-script {
attrPath = "emacsPackages.lspce.lspce-module";
extraArgs = [ "--version=branch" ];
};
};
}

View File

@ -0,0 +1,40 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage {
pname = "lspce-module";
version = "1.1.0-unstable-2024-07-13";
src = fetchFromGitHub {
owner = "zbelial";
repo = "lspce";
rev = "01b77a4f544a912409857083842db51a20bfdbf3";
hash = "sha256-oew5EujNYGjk/agBw3ECAVe7GZl8rw/4M5t32JM+1T8=";
};
cargoHash = "sha256-YLcSaFHsm/Iw7Q3y/YkfdbYKUPW0DRmaZnZ1A9vKR14=";
checkFlags = [
# flaky test
"--skip=msg::tests::serialize_request_with_null_params"
];
# rename module without changing either suffix or location
# use for loop because there seems to be two modules on darwin systems
# https://github.com/zbelial/lspce/issues/7#issue-1783708570
postInstall = ''
for f in $out/lib/*; do
mv --verbose $f $out/lib/lspce-module.''${f##*.}
done
'';
meta = {
homepage = "https://github.com/zbelial/lspce";
description = "LSP Client for Emacs implemented as a module using Rust";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ AndersonTorres ];
};
}

View File

@ -1,20 +0,0 @@
{ trivialBuild
, fetchurl
}:
trivialBuild {
pname = "perl-completion";
src = fetchurl {
url = "http://emacswiki.org/emacs/download/perl-completion.el";
sha256 = "0x6qsgs4hm87k0z9q3g4p6508kc3y123j5jayll3jf3lcl2vm6ks";
};
version = "1.10";
meta = {
broken = true;
description = "Minor mode provides useful features for editing perl codes";
homepage = "http://emacswiki.org/emacs/PerlCompletion";
};
}

View File

@ -1,19 +1,22 @@
{ fetchurl, lib, trivialBuild }:
{
lib,
fetchurl,
melpaBuild,
}:
trivialBuild {
melpaBuild {
pname = "sv-kalender";
version = "1.11";
src = fetchurl {
url = "https://raw.githubusercontent.com/emacsmirror/emacswiki.org/ec4fa36bdba5d2c5c4f5e0400a70768c10e969e8/sv-kalender.el";
sha256 = "0mcx7g1pg6kfp0i4b9rh3q9csgdf3054ijswy368bxwdxsjgfz2m";
hash = "sha256-VXz3pO6N94XM8FzLSAoYrj3NEh4wp0UiuG6ad8M7nVU=";
};
meta = with lib; {
description = "Swedish calendar for Emacs";
meta = {
homepage = "https://www.emacswiki.org/emacs/sv-kalender.el";
platforms = platforms.all;
license = licenses.gpl3Plus;
maintainers = [ maintainers.rycee ];
description = "Swedish calendar for Emacs";
license = lib.licenses.gpl3Plus;
maintainers = [ lib.maintainers.rycee ];
};
}

View File

@ -1,15 +1,14 @@
{ lib
, trivialBuild
, texpresso
{
lib,
melpaBuild,
texpresso,
}:
trivialBuild {
melpaBuild {
pname = "texpresso";
version = texpresso.version;
src = texpresso.src;
preInstall = ''
cd emacs
'';
files = ''("emacs/*.el")'';
meta = {
inherit (texpresso.meta) homepage license;

View File

@ -1,19 +1,22 @@
{ lib, fetchurl, trivialBuild }:
{
lib,
fetchurl,
melpaBuild,
}:
trivialBuild {
melpaBuild {
pname = "yes-no";
version = "0-unstable-2017-10-01";
src = fetchurl {
url = "https://raw.githubusercontent.com/emacsmirror/emacswiki.org/143bcaeb679a8fa8a548e92a5a9d5c2baff50d9c/yes-no.el";
sha256 = "03w4wfx885y89ckyd5d95n2571nmmzrll6kr0yan3ip2aw28xq3i";
hash = "sha256-ceCOBFfixmGVB3kaSvOv1YZThC2pleYnS8gXhLrjhA8=";
};
meta = with lib; {
description = "Specify use of `y-or-n-p' or `yes-or-no-p' on a case-by-case basis";
meta = {
homepage = "https://www.emacswiki.org/emacs/yes-no.el";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ jcs090218 ];
platforms = platforms.all;
description = "Specify use of `y-or-n-p' or `yes-or-no-p' on a case-by-case basis";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ jcs090218 ];
};
}

View File

@ -22,13 +22,13 @@
stdenv.mkDerivation rec {
pname = "rofi-emoji";
version = "3.3.0";
version = "3.4.0";
src = fetchFromGitHub {
owner = "Mange";
repo = pname;
rev = "v${version}";
sha256 = "sha256-Y+E5TViKFVtqXMLVEcq1VMLPzG04vfZyThUM7a/fFGM=";
hash = "sha256-tF3yAKRUix+if+45rxg5vq83Pu33TQ6oUKWPIs/l4X0=";
};
patches = [

View File

@ -31,13 +31,13 @@ let
in
stdenv.mkDerivation rec {
pname = "firewalld";
version = "2.1.2";
version = "2.2.0";
src = fetchFromGitHub {
owner = "firewalld";
repo = "firewalld";
rev = "v${version}";
sha256 = "sha256-bCLMTWtgEay3fLKOFWUoWpOL1iGDHRR5hu+v06bLxLs=";
sha256 = "sha256-MaBYJLNVlDEsMlnyNtf8G8D1Tnvcfv0/bXQ/8f7kBao=";
};
patches = [

View File

@ -2,17 +2,18 @@
, stdenv
, fetchFromGitHub
, kdePackages
, nix-update-script
}:
stdenv.mkDerivation (finalAttrs: {
pname = "application-title-bar";
version = "0.6.7";
version = "0.6.8";
src = fetchFromGitHub {
owner = "antroids";
repo = "application-title-bar";
rev = "v${finalAttrs.version}";
hash = "sha256-6k8bVVrCzrUno7m9NJWlFpwHsWLNRWudhw5mhpsMxRU=";
hash = "sha256-pwCmkFEhxz7ZtNZNnIK2cTo+GDlIRIZ3VQ76n6qJ0Ac=";
};
propagatedUserEnvPkgs = with kdePackages; [ kconfig ];
@ -26,6 +27,8 @@ stdenv.mkDerivation (finalAttrs: {
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "KDE Plasma6 widget with window controls";
homepage = "https://github.com/antroids/application-title-bar";

View File

@ -28,13 +28,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "bcachefs-tools";
version = "1.9.3";
version = "1.9.4";
src = fetchFromGitHub {
owner = "koverstreet";
repo = "bcachefs-tools";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-vKRjxehwqbvvgq+EMHoF3KRiPIxay06MpZRjapBFdVU=";
hash = "sha256-qPnlSl1s9QWkODqbrfzIVFLXtDVEmTOihBlDmvHoknY=";
};
nativeBuildInputs = [
@ -63,7 +63,7 @@ stdenv.mkDerivation (finalAttrs: {
cargoDeps = rustPlatform.fetchCargoTarball {
src = finalAttrs.src;
hash = "sha256-JOfS3vCkqI5wvFWgGkw1PIfmzW9yuP/Zp/x98MPdbUQ=";
hash = "sha256-ufzxFEgeOaOcZKEPx7kT64Pj2oz6m35exqXQlKxXGb4=";
};
makeFlags = [

View File

@ -3,6 +3,7 @@
fetchFromGitHub,
python3Packages,
appstream,
blueprint-compiler,
desktop-file-utils,
glib,
gobject-introspection,
@ -15,18 +16,19 @@
python3Packages.buildPythonApplication rec {
pname = "binary";
version = "0.3";
version = "0.3.1";
format = "other";
src = fetchFromGitHub {
owner = "fizzyizzy05";
repo = "binary";
rev = "refs/tags/${version}";
hash = "sha256-bR0oCqbnyUTCueT4f0Ij7qbwjNnN4eMDAOUK9MnCEJ0=";
hash = "sha256-4Ep7d5grMXCCy9tL8wquJsx13jVIp+piDPeJh6mYFpI=";
};
nativeBuildInputs = [
appstream
blueprint-compiler
desktop-file-utils
glib # need glib-compile-schemas
gobject-introspection

View File

@ -1,59 +0,0 @@
From 76950d08a3da13dd9e51b2fbef3532c3de79265b Mon Sep 17 00:00:00 2001
From: Dominique Martinet <asmadeus@codewreck.org>
Date: Fri, 14 Jun 2024 23:19:05 +0900
Subject: [PATCH] utils: fix kernel headers not found warning (#3242)
The code would make ksrc and kobj empty then try to print them,
this would always print empty strings.
Store is_dir() checks as bool instead and use these, the strings
cannot be empty if the check passed.
(cherry picked from commit f937803c2ad156ab90b9194965dbfb62bef1ff80)
---
(mostly to avoid conflicts with the next patch)
src/utils.cpp | 21 +++++++--------------
1 file changed, 7 insertions(+), 14 deletions(-)
diff --git a/src/utils.cpp b/src/utils.cpp
index bda722136588..c358a401fc83 100644
--- a/src/utils.cpp
+++ b/src/utils.cpp
@@ -738,15 +738,11 @@ std::tuple<std::string, std::string> get_kernel_dirs(
auto ksrc = kdir + "/source";
auto kobj = kdir + "/build";
- // if one of source/ or build/ is not present - try to use the other one for both.
- if (!is_dir(ksrc)) {
- ksrc = "";
- }
- if (!is_dir(kobj)) {
- kobj = "";
- }
- if (ksrc.empty() && kobj.empty())
- {
+ // if one of source/ or build/ is not present - try to use the other one for
+ // both.
+ auto has_ksrc = is_dir(ksrc);
+ auto has_kobj = is_dir(kobj);
+ if (!has_ksrc && !has_kobj) {
LOG(WARNING) << "Could not find kernel headers in " << ksrc << " or "
<< kobj
<< ". To specify a particular path to kernel headers, set the "
@@ -757,12 +753,9 @@ std::tuple<std::string, std::string> get_kernel_dirs(
"file at /sys/kernel/kheaders.tar.xz";
return std::make_tuple("", "");
}
- if (ksrc.empty())
- {
+ if (!has_ksrc) {
ksrc = kobj;
- }
- else if (kobj.empty())
- {
+ } else if (!has_kobj) {
kobj = ksrc;
}
--
2.45.2

View File

@ -1,220 +0,0 @@
From 5208c6275e65d94d0ed169ca2b253602c78c15a8 Mon Sep 17 00:00:00 2001
From: Dominique Martinet <asmadeus@codewreck.org>
Date: Fri, 14 Jun 2024 22:32:43 +0900
Subject: [PATCH] kernel headers: only print kheaders not found warning if
parsing failed
Current code would print kheaders not found as soon as the code has any
include, even if the include worked.
This delays printing the warning until we know if parsing succeeded or
not, and only prints it if parsing failed.
Also update the message to give clearer extraction instructions
---
CHANGELOG.md | 2 ++
src/CMakeLists.txt | 3 ++-
src/main.cpp | 40 ++++++++++++++++++++++++----------------
src/utils.cpp | 45 +++++++++++++++++++++------------------------
src/utils.h | 5 +++--
5 files changed, 52 insertions(+), 43 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a4aca8b6c85d..181c1bffc9f3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,8 @@ ## Unreleased
#### Added
#### Changed
+- Only print kernel headers not found message if parsing fails
+ - [#3265](https://github.com/bpftrace/bpftrace/pull/3265)
#### Deprecated
#### Removed
#### Fixed
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index eadb11207052..7b637835afd9 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -90,11 +90,12 @@ endif()
if (KERNEL_HEADERS_DIR)
MESSAGE(STATUS "Using KERNEL_HEADERS_DIR=${KERNEL_HEADERS_DIR}")
- target_compile_definitions(runtime PUBLIC KERNEL_HEADERS_DIR="${KERNEL_HEADERS_DIR}")
endif()
+target_compile_definitions(runtime PUBLIC KERNEL_HEADERS_DIR="${KERNEL_HEADERS_DIR}")
if (NOT SYSTEM_INCLUDE_PATHS EQUAL "auto")
MESSAGE(STATUS "Using SYSTEM_INCLUDE_PATHS=${SYSTEM_INCLUDE_PATHS}")
endif()
+target_compile_definitions(runtime PUBLIC SYSTEM_INCLUDE_PATHS="${SYSTEM_INCLUDE_PATHS}")
execute_process(
COMMAND git describe --abbrev=4 --dirty --tags
diff --git a/src/main.cpp b/src/main.cpp
index 3c532b3aa767..7918f90b90ab 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -420,24 +420,20 @@ static std::optional<struct timespec> get_delta_taitime()
bool should_clang_parse = !(driver.root.get()->c_definitions.empty() &&
bpftrace.btf_set_.empty());
-
- if (should_clang_parse)
- {
+ if (should_clang_parse) {
ClangParser clang;
+ bool found_kernel_headers;
+ std::string ksrc, kobj;
+ struct utsname utsname;
std::vector<std::string> extra_flags;
- {
- struct utsname utsname;
- uname(&utsname);
- std::string ksrc, kobj;
- auto kdirs = get_kernel_dirs(utsname);
- ksrc = std::get<0>(kdirs);
- kobj = std::get<1>(kdirs);
+ uname(&utsname);
+ found_kernel_headers = get_kernel_dirs(utsname, ksrc, kobj);
- if (ksrc != "")
- {
- extra_flags = get_kernel_cflags(
- utsname.machine, ksrc, kobj, bpftrace.kconfig);
- }
+ if (found_kernel_headers)
+ {
+ extra_flags = get_kernel_cflags(
+ utsname.machine, ksrc, kobj, bpftrace.kconfig);
+ found_kernel_headers = true;
}
extra_flags.push_back("-include");
extra_flags.push_back(CLANG_WORKAROUNDS_H);
@@ -453,8 +449,20 @@ static std::optional<struct timespec> get_delta_taitime()
extra_flags.push_back(file);
}
- if (!clang.parse(driver.root.get(), bpftrace, extra_flags))
+ if (!clang.parse(driver.root.get(), bpftrace, extra_flags)) {
+ if (!found_kernel_headers) {
+ LOG(WARNING)
+ << "Could not find kernel headers in " << ksrc << " / " << kobj
+ << ". To specify a particular path to kernel headers, set the env "
+ << "variables BPFTRACE_KERNEL_SOURCE and, optionally, "
+ << "BPFTRACE_KERNEL_BUILD if the kernel was built in a different "
+ << "directory than its source. You can also point the variable to "
+ << "a directory with built-in headers extracted from the following "
+ << "snippet:\nmodprobe kheaders && tar -C <directory> -xf "
+ << "/sys/kernel/kheaders.tar.xz";
+ }
return nullptr;
+ }
}
err = driver.parse();
diff --git a/src/utils.cpp b/src/utils.cpp
index c358a401fc83..06d7fa95ff6e 100644
--- a/src/utils.cpp
+++ b/src/utils.cpp
@@ -700,8 +700,8 @@ bool is_dir(const std::string& path)
return std_filesystem::is_directory(buf, ec);
}
-// get_kernel_dirs returns {ksrc, kobj} - directories for pristine and
-// generated kernel sources.
+// get_kernel_dirs fills {ksrc, kobj} - directories for pristine and
+// generated kernel sources - and returns if they were found.
//
// When the kernel was built in its source tree ksrc == kobj, however when
// the kernel was build in a different directory than its source, ksrc != kobj.
@@ -714,44 +714,41 @@ bool is_dir(const std::string& path)
//
// /lib/modules/`uname -r`/build/
//
-// {"", ""} is returned if no trace of kernel headers was found at all.
-// Both ksrc and kobj are guaranteed to be != "", if at least some trace of kernel sources was found.
-std::tuple<std::string, std::string> get_kernel_dirs(
- const struct utsname &utsname)
+// false is returned if no trace of kernel headers was found at all, with the guessed
+// location set anyway for later warning.
+// Both ksrc and kobj are guaranteed to be != ""
+bool get_kernel_dirs(const struct utsname &utsname,
+ std::string &ksrc,
+ std::string &kobj)
{
-#ifdef KERNEL_HEADERS_DIR
- return {KERNEL_HEADERS_DIR, KERNEL_HEADERS_DIR};
-#endif
+ ksrc = kobj = std::string(KERNEL_HEADERS_DIR);
+ if (!ksrc.empty())
+ return true;
const char *kpath_env = ::getenv("BPFTRACE_KERNEL_SOURCE");
if (kpath_env)
{
+ ksrc = std::string(kpath_env);
const char *kpath_build_env = ::getenv("BPFTRACE_KERNEL_BUILD");
- if (!kpath_build_env)
+ if (kpath_build_env)
{
- kpath_build_env = kpath_env;
+ kobj = std::string(kpath_build_env);
+ } else {
+ kobj = ksrc;
}
- return std::make_tuple(kpath_env, kpath_build_env);
+ return true;
}
std::string kdir = std::string("/lib/modules/") + utsname.release;
- auto ksrc = kdir + "/source";
- auto kobj = kdir + "/build";
+ ksrc = kdir + "/source";
+ kobj = kdir + "/build";
// if one of source/ or build/ is not present - try to use the other one for
// both.
auto has_ksrc = is_dir(ksrc);
auto has_kobj = is_dir(kobj);
if (!has_ksrc && !has_kobj) {
- LOG(WARNING) << "Could not find kernel headers in " << ksrc << " or "
- << kobj
- << ". To specify a particular path to kernel headers, set the "
- "env variables BPFTRACE_KERNEL_SOURCE and, optionally, "
- "BPFTRACE_KERNEL_BUILD if the kernel was built in a "
- "different directory than its source. To create kernel "
- "headers run 'modprobe kheaders', which will create a tar "
- "file at /sys/kernel/kheaders.tar.xz";
- return std::make_tuple("", "");
+ return false;
}
if (!has_ksrc) {
ksrc = kobj;
@@ -759,7 +756,7 @@ std::tuple<std::string, std::string> get_kernel_dirs(
kobj = ksrc;
}
- return std::make_tuple(ksrc, kobj);
+ return true;
}
const std::string &is_deprecated(const std::string &str)
diff --git a/src/utils.h b/src/utils.h
index bc78bd2176b5..9bd5395eab22 100644
--- a/src/utils.h
+++ b/src/utils.h
@@ -186,8 +186,9 @@ std::vector<int> get_online_cpus();
std::vector<int> get_possible_cpus();
bool is_dir(const std::string &path);
bool file_exists_and_ownedby_root(const char *f);
-std::tuple<std::string, std::string> get_kernel_dirs(
- const struct utsname &utsname);
+bool get_kernel_dirs(const struct utsname &utsname,
+ std::string &ksrc,
+ std::string &kobj);
std::vector<std::string> get_kernel_cflags(const char *uname_machine,
const std::string &ksrc,
const std::string &kobj,
--
2.45.2

View File

@ -1,94 +0,0 @@
From c1737d4ab6ab263932caa9e3ac170ebe3e28d404 Mon Sep 17 00:00:00 2001
From: Dominique Martinet <asmadeus@codewreck.org>
Date: Fri, 14 Jun 2024 21:56:46 +0900
Subject: [PATCH] clang_parser system_include_paths: allow overriding at
compile time
While bpftrace depends on libclang it can be installed without a clang
frontend, so some distributions might want to make these paths fixed as
they are unlikely to change.
In particular, this is necessary to include system libraries as used by
older versions of tcpaccept.bt (they now no longer require these since
#3152, but that illustrate this was a recurring problem)
(cherry picked from commit 5bf5f86313600b16c8c23e03b31337941cbefdd0)
---
CMakeLists.txt | 2 ++
src/CMakeLists.txt | 4 +++-
src/clang_parser.cpp | 19 +++++++++++++++----
3 files changed, 20 insertions(+), 5 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index cd620d0e56e5..ade33c503efb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -21,6 +21,8 @@ set(VENDOR_GTEST OFF CACHE BOOL "Clone gtest from github")
set(BUILD_FUZZ OFF CACHE BOOL "Build bpftrace for fuzzing")
set(USE_LIBFUZZER OFF CACHE BOOL "Use libfuzzer for fuzzing")
set(FUZZ_TARGET "codegen" CACHE STRING "Fuzzing target")
+set(KERNEL_HEADERS_DIR "" CACHE PATH "Hard-code kernel headers directory")
+set(SYSTEM_INCLUDE_PATHS "auto" CACHE STRING "Hard-code system include paths (colon separated, the default value \"auto\" queries clang at runtime)")
set(ENABLE_SKB_OUTPUT ON CACHE BOOL "Enable skb_output, will include libpcap")
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 88f5928c8a75..eadb11207052 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -88,11 +88,13 @@ endif()
# compile definitions
-set(KERNEL_HEADERS_DIR "" CACHE PATH "Hard-code kernel headers directory")
if (KERNEL_HEADERS_DIR)
MESSAGE(STATUS "Using KERNEL_HEADERS_DIR=${KERNEL_HEADERS_DIR}")
target_compile_definitions(runtime PUBLIC KERNEL_HEADERS_DIR="${KERNEL_HEADERS_DIR}")
endif()
+if (NOT SYSTEM_INCLUDE_PATHS EQUAL "auto")
+ MESSAGE(STATUS "Using SYSTEM_INCLUDE_PATHS=${SYSTEM_INCLUDE_PATHS}")
+endif()
execute_process(
COMMAND git describe --abbrev=4 --dirty --tags
diff --git a/src/clang_parser.cpp b/src/clang_parser.cpp
index 8b6689454267..9367e6692eb0 100644
--- a/src/clang_parser.cpp
+++ b/src/clang_parser.cpp
@@ -882,11 +882,9 @@ std::string ClangParser::get_arch_include_path()
return "/usr/include/" + std::string(utsname.machine) + "-linux-gnu";
}
-std::vector<std::string> ClangParser::system_include_paths()
+static void query_clang_include_dirs(std::vector<std::string> &result)
{
- std::vector<std::string> result;
- try
- {
+ try {
auto clang = "clang-" + std::to_string(LLVM_VERSION_MAJOR);
auto cmd = clang + " -Wp,-v -x c -fsyntax-only /dev/null 2>&1";
auto check = exec_system(cmd.c_str());
@@ -902,6 +900,19 @@ std::vector<std::string> ClangParser::system_include_paths()
catch (std::runtime_error &)
{ // If exec_system fails, just ignore it
}
+}
+
+std::vector<std::string> ClangParser::system_include_paths()
+{
+ std::vector<std::string> result;
+ std::istringstream lines(SYSTEM_INCLUDE_PATHS);
+ std::string line;
+ while (std::getline(lines, line, ':')) {
+ if (line == "auto")
+ query_clang_include_dirs(result);
+ else
+ result.push_back(trim(line));
+ }
if (result.empty())
result = { "/usr/local/include", "/usr/include" };
--
2.45.2

View File

@ -4,18 +4,19 @@
, cereal, asciidoctor
, cmake, pkg-config, flex, bison
, util-linux
, fetchpatch
, nixosTests
}:
stdenv.mkDerivation rec {
pname = "bpftrace";
version = "0.20.4";
version = "0.21.2";
src = fetchFromGitHub {
owner = "iovisor";
repo = "bpftrace";
rev = "v${version}";
hash = "sha256-GJSUHMOp3vCWj8C+1mBHcnUgxLUWUz8Jd8wpq7u0q3s=";
hash = "sha256-/2m+5iFE7R+ZEc/VcgWAhkLD/jEK88roUUOUyYODi0U=";
};
@ -45,16 +46,17 @@ stdenv.mkDerivation rec {
];
patches = [
# https://github.com/bpftrace/bpftrace/pull/3243 (merged)
./override-system-headers.patch
# https://github.com/bpftrace/bpftrace/pull/3152 (merged)
./tcp-bt-no-includes.patch
# https://github.com/bpftrace/bpftrace/pull/3262 (merged)
./runqlat-bt-no-includes.patch
# https://github.com/bpftrace/bpftrace/pull/3242 (merged)
./kheaders-not-found-message-fix.patch
# https://github.com/bpftrace/bpftrace/pull/3265
./kheaders-not-found-message-only-on-error.patch
(fetchpatch {
name = "runqlat-bt-no-includes.patch";
url = "https://github.com/bpftrace/bpftrace/pull/3262.patch";
hash = "sha256-9yqaZeG1Uf2cC9Aa40c2QUTQRl8n2NO1nq278hf9P4M=";
})
(fetchpatch {
name = "kheaders-not-found-message-only-on-error.patch";
url = "https://github.com/bpftrace/bpftrace/pull/3265.patch";
hash = "sha256-8AICMzwq5Evy9+hmZhFjccw/HmgZ9t+YIoHApjLv6Uc=";
excludes = [ "CHANGELOG.md" ];
})
];
# Pull BPF scripts into $PATH (next to their bcc program equivalents), but do

View File

@ -1,45 +0,0 @@
From 9b5f22854297aabb924969c25af66461d8d2fcb9 Mon Sep 17 00:00:00 2001
From: Dominique Martinet <asmadeus@codewreck.org>
Date: Fri, 21 Jun 2024 21:02:09 +0900
Subject: [PATCH] tools/runqlat: provide TASK_RUNNING as a define
runqlat requires kernel headers to run even with BTF, just because of a
define.
TASK_RUNNING isn't part of the stable API but it's never changed in all
of the linux git history so let's pretend it's stable and just define
it.
If we find a way to handle kheaders again in the future we might want to
consider reverting this.
Fixes: #3255
(cherry picked from commit aa041d9d85f9ec11235c39fdcb5833412ec27083)
---
tools/runqlat.bt | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/tools/runqlat.bt b/tools/runqlat.bt
index 3d71b76062eb..1298f399aee7 100755
--- a/tools/runqlat.bt
+++ b/tools/runqlat.bt
@@ -11,7 +11,17 @@
* 17-Sep-2018 Brendan Gregg Created this.
*/
+#ifndef BPFTRACE_HAVE_BTF
#include <linux/sched.h>
+#else
+/*
+ * With BTF providing types, full headers are not needed.
+ * We only need to supply the preprocessor defines used in this script.
+ * TASK_RUNNING is not arch-dependant and has not changed in the linux
+ * git history (it is not part of the stable API though)
+ */
+#define TASK_RUNNING 0
+#endif
BEGIN
{
--
2.45.2

View File

@ -1,114 +0,0 @@
From ebb12512f6ea0a1113ad8ddf30db26128f7a3426 Mon Sep 17 00:00:00 2001
From: Dominique Martinet <asmadeus@codewreck.org>
Date: Sun, 23 Jun 2024 20:41:01 +0900
Subject: [PATCH] With BTF, users do not need libc headers installed for
AF_INET/AF_INET6
Signed-off-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
(cherry picked from commit c0b9d252a43f99b9091245dedb178a6874803306)
---
tools/tcpaccept.bt | 8 +++++++-
tools/tcpconnect.bt | 8 +++++++-
tools/tcpdrop.bt | 8 +++++++-
tools/tcplife.bt | 8 +++++++-
tools/tcpretrans.bt | 8 +++++++-
5 files changed, 35 insertions(+), 5 deletions(-)
diff --git a/tools/tcpaccept.bt b/tools/tcpaccept.bt
index 08e6af0158fc..cbffe36889ee 100755
--- a/tools/tcpaccept.bt
+++ b/tools/tcpaccept.bt
@@ -20,7 +20,13 @@
#include <linux/socket.h>
#include <net/sock.h>
#else
-#include <sys/socket.h>
+/*
+ * With BTF providing types, socket headers are not needed.
+ * We only need to supply the preprocessor defines in this script.
+ * AF_INET/AF_INET6 are part of the stable arch-independent Linux ABI
+ */
+#define AF_INET 2
+#define AF_INET6 10
#endif
BEGIN
diff --git a/tools/tcpconnect.bt b/tools/tcpconnect.bt
index 1ac1eb99e9ad..636337275cd8 100755
--- a/tools/tcpconnect.bt
+++ b/tools/tcpconnect.bt
@@ -22,7 +22,13 @@
#include <linux/socket.h>
#include <net/sock.h>
#else
-#include <sys/socket.h>
+/*
+ * BTF provides the types, we just need to define AF_INET and AF_INET6.
+ * These are Linux ABI defines, and are not architecture-specific.
+ * With BTF, this allows tcpconnect.bt to work without glibc headers:
+ */
+#define AF_INET 2 /* IPv4 */
+#define AF_INET6 10 /* IPv6 */
#endif
BEGIN
diff --git a/tools/tcpdrop.bt b/tools/tcpdrop.bt
index fd3e55f490bf..a56bf69fcc6c 100755
--- a/tools/tcpdrop.bt
+++ b/tools/tcpdrop.bt
@@ -24,7 +24,13 @@
#include <linux/socket.h>
#include <net/sock.h>
#else
-#include <sys/socket.h>
+/*
+ * With BTF providing types, socket headers are not needed.
+ * We only need to supply the preprocessor defines in this script.
+ * AF_INET/AF_INET6 are part of the stable arch-independent Linux ABI
+ */
+#define AF_INET 2
+#define AF_INET6 10
#endif
BEGIN
diff --git a/tools/tcplife.bt b/tools/tcplife.bt
index dd4c1d68284e..d5a09c4e5da9 100755
--- a/tools/tcplife.bt
+++ b/tools/tcplife.bt
@@ -19,7 +19,13 @@
#include <linux/socket.h>
#include <linux/tcp.h>
#else
-#include <sys/socket.h>
+/*
+ * With BTF providing types, socket headers are not needed.
+ * We only need to supply the preprocessor defines in this script.
+ * AF_INET/AF_INET6 are part of the stable arch-independent Linux ABI
+ */
+#define AF_INET 2
+#define AF_INET6 10
#endif
BEGIN
diff --git a/tools/tcpretrans.bt b/tools/tcpretrans.bt
index ee2975d6e545..32a11bfa81b2 100755
--- a/tools/tcpretrans.bt
+++ b/tools/tcpretrans.bt
@@ -21,7 +21,13 @@
#include <linux/socket.h>
#include <net/sock.h>
#else
-#include <sys/socket.h>
+/*
+ * With BTF providing types, socket headers are not needed.
+ * We only need to supply the preprocessor defines in this script.
+ * AF_INET/AF_INET6 are part of the stable arch-independent Linux ABI
+ */
+#define AF_INET 2
+#define AF_INET6 10
#endif
BEGIN
--
2.45.2

View File

@ -1,39 +1,35 @@
{
lib,
fetchFromGitHub,
fetchCrate,
rustPlatform,
clippy,
clippy-sarif,
testers,
nix-update-script,
versionCheckHook,
}:
rustPlatform.buildRustPackage rec {
pname = "clippy-sarif";
version = "0.4.2";
version = "0.5.0";
src = fetchFromGitHub {
owner = "psastras";
repo = "sarif-rs";
rev = "clippy-sarif-v${version}";
hash = "sha256-EzWzDeIeSJ11CVcVyAhMjYQJcKHnieRrFkULc5eXAno=";
src = fetchCrate {
inherit pname version;
hash = "sha256-ylfL4N1BtbB1R7+Glwtgn5E6/v3wQ6oXWdmeyKNHdOw=";
};
cargoHash = "sha256-F3NrqkqLdvMRIuozCMMqwlrrf5QrnmcEhy4TGSzPhiU=";
cargoBuildFlags = [
"--package"
"clippy-sarif"
];
cargoTestFlags = cargoBuildFlags;
cargoHash = "sha256-O0bLgj7rWwbEswVMfexsBGgJyObxseOohYht21Y6HpU=";
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
passthru = {
tests.version = testers.testVersion { package = clippy-sarif; };
updateScript = nix-update-script { };
};
meta = {
description = "A CLI tool to convert clippy diagnostics into SARIF";
mainProgram = "clippy-sarif";
homepage = "https://psastras.github.io/sarif-rs";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ getchoo ];
mainProgram = "clippy-sarif";
inherit (clippy.meta) platforms;
};
}

View File

@ -5,16 +5,16 @@
buildGoModule rec {
pname = "clipse";
version = "1.0.7";
version = "1.0.9";
src = fetchFromGitHub {
owner = "savedra1";
repo = "clipse";
rev = "v${version}";
hash = "sha256-G26xPABF2Cdxk1N71EaMjKzju0jl5tDJ1WrISjebZVM=";
hash = "sha256-Kpe/LiAreZXRqh6BHvUIn0GcHloKo3A0WOdlRF2ygdc=";
};
vendorHash = "sha256-QEBRlwNS8K44chB3fMOJZxYnIaWMnuDySIhKfF7XtxM=";
vendorHash = "sha256-Hdr9NRqHJxpfrV2G1KuHGg3T+cPLKhZXEW02f1ptgsw=";
meta = {
description = "Useful clipboard manager TUI for Unix";

View File

@ -8,13 +8,13 @@
}:
stdenvNoCC.mkDerivation rec {
pname = "cosmic-icons";
version = "0-unstable-2024-05-21";
version = "0-unstable-2024-07-17";
src = fetchFromGitHub {
owner = "pop-os";
repo = pname;
rev = "9aad1ab6d5538938e69955b5f74576ac020be425";
sha256 = "sha256-ln2spVA8dlXi/B0ro/FIoWiIClPmwH9E9IqhrKPedys=";
rev = "73be037ba266b08a2fa7b544d78e7f143a2894c5";
sha256 = "sha256-Lyn9VneGr7RcfMPREOs3tP/HzpoRcnmw/nyo7kzOKCw=";
};
nativeBuildInputs = [ just ];

View File

@ -5,7 +5,7 @@
let
pname = "csvkit";
version = "2.0.0";
version = "2.0.1";
pythonEnv = python3;
in
pythonEnv.pkgs.buildPythonApplication {
@ -14,7 +14,7 @@ pythonEnv.pkgs.buildPythonApplication {
src = fetchPypi {
inherit pname version;
hash = "sha256-MR8heHYVqRZWiX4hfGKrJshEbWcwm2G9AT40WzWBb98=";
hash = "sha256-qpRgJm1XE/8xKkFO0+3Ybgw6MdqbLidYy+VkP+EUbdE=";
};
propagatedBuildInputs = with pythonEnv.pkgs; [

View File

@ -27,15 +27,15 @@ assert lib.assertMsg (lib.elem true [
rustPlatform.buildRustPackage rec {
pname = "diesel-cli";
version = "2.1.1";
version = "2.2.1";
src = fetchCrate {
inherit version;
crateName = "diesel_cli";
hash = "sha256-fpvC9C30DJy5ih+sFTTMoiykUHqG6OzDhF9jvix1Ctg=";
hash = "sha256-B+AHTJgOBUGVc4J2VcwuqVwAbm0wpsFHc9+gc5g2RAM=";
};
cargoHash = "sha256-nPmUCww8sOJwnG7+uIflLPgT87xPX0s7g0AcuDKhY2I=";
cargoHash = "sha256-HFhkePq2fZ7MxZfH0jLlS5B10jqf15+RUcGZnDbML5Q=";
nativeBuildInputs = [
installShellFiles
@ -76,6 +76,9 @@ rustPlatform.buildRustPackage rec {
];
cargoCheckFeatures = buildFeatures;
# Tests currently fail due to *many* duplicate definition errors
doCheck = false;
postInstall = ''
installShellCompletion --cmd diesel \
--bash <($out/bin/diesel completions bash) \

View File

@ -1,8 +1,12 @@
{ lib
, fetchFromGitHub
, buildNpmPackage
, stdenvNoCC
, nodejs
, fetchNpmDeps
, buildPackages
, php83
, nixosTests
, nix-update-script
, dataDir ? "/var/lib/firefly-iii"
}:
@ -10,6 +14,7 @@ let
pname = "firefly-iii";
version = "6.1.18";
phpPackage = php83;
npmDepsHash = "sha256-MoxkNxfVeIFkiNVzfehQ9FpC65kBj8ZmvwaRf4MVRIg=";
src = fetchFromGitHub {
owner = "firefly-iii";
@ -17,36 +22,62 @@ let
rev = "v${version}";
hash = "sha256-mA7gvKhHouUUz1Aix7253O/+VcufoEFwdcJeZxnazEo=";
};
assets = buildNpmPackage {
pname = "${pname}-assets";
inherit version src;
npmDepsHash = "sha256-MoxkNxfVeIFkiNVzfehQ9FpC65kBj8ZmvwaRf4MVRIg=";
dontNpmBuild = true;
installPhase = ''
runHook preInstall
npm run prod --workspace=v1
npm run build --workspace=v2
cp -r ./public $out/
runHook postInstall
'';
};
in
phpPackage.buildComposerProject (finalAttrs: {
stdenvNoCC.mkDerivation (finalAttrs: {
inherit pname src version;
buildInputs = [ phpPackage ];
nativeBuildInputs = [
nodejs
nodejs.python
buildPackages.npmHooks.npmConfigHook
phpPackage.composerHooks.composerInstallHook
phpPackage.packages.composer-local-repo-plugin
];
composerNoDev = true;
composerNoPlugins = true;
composerNoScripts = true;
composerStrictValidation = true;
strictDeps = true;
vendorHash = "sha256-EpMypgj6lZDz6T94bGoCUH9IVwh7VB4Ds08AcCsreRw=";
npmDeps = fetchNpmDeps {
inherit src;
name = "${pname}-npm-deps";
hash = npmDepsHash;
};
composerRepository = phpPackage.mkComposerRepository {
inherit (finalAttrs)
pname
src
vendorHash
version
;
composerNoDev = true;
composerNoPlugins = true;
composerNoScripts = true;
composerStrictValidation = true;
};
preInstall = ''
npm run prod --workspace=v1
npm run build --workspace=v2
'';
passthru = {
inherit phpPackage;
tests = nixosTests.firefly-iii;
updateScript = nix-update-script { };
};
postInstall = ''
mv $out/share/php/${pname}/* $out/
rm -R $out/share $out/storage $out/bootstrap/cache $out/public
cp -a ${assets} $out/public
rm -R $out/share $out/storage $out/bootstrap/cache $out/node_modules
ln -s ${dataDir}/storage $out/storage
ln -s ${dataDir}/cache $out/bootstrap/cache
'';
@ -56,6 +87,6 @@ phpPackage.buildComposerProject (finalAttrs: {
description = "Firefly III: a personal finances manager";
homepage = "https://github.com/firefly-iii/firefly-iii";
license = lib.licenses.agpl3Only;
maintainers = [ lib.maintainers.savyajha ];
maintainers = [ lib.maintainers.savyajha lib.maintainers.patrickdag ];
};
})

View File

@ -5,6 +5,7 @@
fetchpatch,
alsa-lib,
libpulseaudio,
nix-update-script,
testers,
audioBackend ? "pulseaudio",
}:
@ -62,6 +63,8 @@ stdenv.mkDerivation (finalAttrs: {
command = "flite --help";
package = finalAttrs.finalPackage;
};
updateScript = nix-update-script { };
};
meta = {

View File

@ -1,37 +1,33 @@
{
lib,
fetchFromGitHub,
fetchCrate,
rustPlatform,
hadolint-sarif,
testers,
nix-update-script,
versionCheckHook,
}:
rustPlatform.buildRustPackage rec {
pname = "hadolint-sarif";
version = "0.4.2";
version = "0.5.0";
src = fetchFromGitHub {
owner = "psastras";
repo = "sarif-rs";
rev = "hadolint-sarif-v${version}";
hash = "sha256-EzWzDeIeSJ11CVcVyAhMjYQJcKHnieRrFkULc5eXAno=";
src = fetchCrate {
inherit pname version;
hash = "sha256-Zh3y31Q+ue1TqncZpdX+fAp2yfEnv8W8jkzUW7UvrKg=";
};
cargoHash = "sha256-AMRL1XANyze8bJe3fdgZvBnl/NyuWP13jixixqiPmiw=";
cargoBuildFlags = [
"--package"
"hadolint-sarif"
];
cargoTestFlags = cargoBuildFlags;
cargoHash = "sha256-bwEQ9lZXvZL6JN24N8gRdbV5gcFiH1fQ59PQILfW1z8=";
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
passthru = {
tests.version = testers.testVersion { package = hadolint-sarif; };
updateScript = nix-update-script { };
};
meta = {
description = "A CLI tool to convert hadolint diagnostics into SARIF";
homepage = "https://psastras.github.io/sarif-rs";
mainProgram = "hadolint-sarif";
maintainers = with lib.maintainers; [ getchoo ];
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ getchoo ];
mainProgram = "hadolint-sarif";
};
}

View File

@ -1,8 +1,8 @@
{ R
, rPackages
, fetchFromGitHub
, jasp-src
, jasp-version
{
rPackages,
fetchFromGitHub,
jasp-src,
jasp-version,
}:
with rPackages;
@ -21,7 +21,18 @@ let
src = jasp-src;
sourceRoot = "${jasp-src.name}/Engine/jaspGraphs";
propagatedBuildInputs = [ ggplot2 gridExtra gtable lifecycle jsonlite R6 RColorBrewer rlang scales viridisLite ];
propagatedBuildInputs = [
ggplot2
gridExtra
gtable
lifecycle
jsonlite
R6
RColorBrewer
rlang
scales
viridisLite
];
};
jaspBase = buildRPackage {
@ -41,7 +52,31 @@ let
cp -r --no-preserve=all ${jaspColumnEncoder-src} inst/include/jaspColumnEncoder
'';
propagatedBuildInputs = [ cli codetools ggplot2 gridExtra gridGraphics jaspGraphs jsonlite lifecycle modules officer pkgbuild plyr qgraph ragg R6 Rcpp renv remotes rjson rvg svglite systemfonts withr ];
propagatedBuildInputs = [
cli
codetools
ggplot2
gridExtra
gridGraphics
jaspGraphs
jsonlite
lifecycle
modules
officer
pkgbuild
plyr
qgraph
ragg
R6
Rcpp
renv
remotes
rjson
rvg
svglite
systemfonts
withr
];
};
stanova = buildRPackage {
@ -52,7 +87,13 @@ let
rev = "988ad8e07cda1674b881570a85502be7795fbd4e";
hash = "sha256-tAeHqTHao2KVRNFBDWmuF++H31aNN6O1ss1Io500QBY=";
};
propagatedBuildInputs = [ emmeans lme4 coda rstan MASS ];
propagatedBuildInputs = [
emmeans
lme4
coda
rstan
MASS
];
};
bstats = buildRPackage {
@ -63,7 +104,11 @@ let
rev = "42d34c18df08d233825bae34fdc0dfa0cd70ce8c";
hash = "sha256-N2KmbTPbyvzsZTWBRE2x7bteccnzokUWDOB4mOWUdJk=";
};
propagatedBuildInputs = [ hypergeo purrr SuppDists ];
propagatedBuildInputs = [
hypergeo
purrr
SuppDists
];
};
flexplot = buildRPackage {
@ -71,10 +116,28 @@ let
src = fetchFromGitHub {
owner = "dustinfife";
repo = "flexplot";
rev = "4223ad5fb56028018b964d6f9f5aa5bac8710821";
hash = "sha256-L+Ed2bIWjq3ZIAGookp8dAjDSeldEbcwynwFVVZ9IcU=";
rev = "303a03968f677e71c99a5e22f6352c0811b7b2fb";
hash = "sha256-iT5CdtNk0Oi8gga76L6YtyWGACAwpN8A/yTBy7JJERc=";
};
propagatedBuildInputs = [ cowplot MASS tibble withr dplyr magrittr forcats purrr plyr R6 ggplot2 patchwork ggsci lme4 party mgcv rlang ];
propagatedBuildInputs = [
cowplot
MASS
tibble
withr
dplyr
magrittr
forcats
purrr
plyr
R6
ggplot2
patchwork
ggsci
lme4
party
mgcv
rlang
];
};
# conting has been removed from CRAN
@ -86,52 +149,461 @@ let
rev = "03a4eb9a687e015d602022a01d4e638324c110c8";
hash = "sha256-Sp09YZz1WGyefn31Zy1qGufoKjtuEEZHO+wJvoLArf0=";
};
propagatedBuildInputs = [ mvtnorm gtools tseries coda ];
propagatedBuildInputs = [
mvtnorm
gtools
tseries
coda
];
};
buildJaspModule = name: deps: buildRPackage {
name = "${name}-${jasp-version}";
version = jasp-version;
src = jasp-src;
sourceRoot = "${jasp-src.name}/Modules/${name}";
propagatedBuildInputs = deps;
};
buildJaspModule =
name: deps:
buildRPackage {
name = "${name}-${jasp-version}";
version = jasp-version;
src = jasp-src;
sourceRoot = "${jasp-src.name}/Modules/${name}";
propagatedBuildInputs = deps;
};
in
{
engine = { inherit jaspBase jaspGraphs; };
engine = {
inherit jaspBase jaspGraphs;
};
modules = rec {
jaspAcceptanceSampling = buildJaspModule "jaspAcceptanceSampling" [ abtest BayesFactor conting' ggplot2 jaspBase jaspGraphs plyr stringr vcd vcdExtra AcceptanceSampling ];
jaspAnova = buildJaspModule "jaspAnova" [ afex BayesFactor boot car colorspace emmeans ggplot2 jaspBase jaspDescriptives jaspGraphs jaspTTests KernSmooth matrixStats multcomp onewaytests plyr stringi stringr restriktor ];
jaspAudit = buildJaspModule "jaspAudit" [ bstats extraDistr ggplot2 ggrepel jaspBase jaspGraphs jfa ];
jaspBain = buildJaspModule "jaspBain" [ bain lavaan ggplot2 semPlot stringr jaspBase jaspGraphs jaspSem ];
jaspBsts = buildJaspModule "jaspBsts" [ Boom bsts ggplot2 jaspBase jaspGraphs matrixStats reshape2 ];
jaspCircular = buildJaspModule "jaspCircular" [ jaspBase jaspGraphs circular ggplot2 ];
jaspCochrane = buildJaspModule "jaspCochrane" [ jaspBase jaspGraphs jaspDescriptives jaspMetaAnalysis ];
jaspDescriptives = buildJaspModule "jaspDescriptives" [ ggplot2 ggrepel jaspBase jaspGraphs ];
jaspDistributions = buildJaspModule "jaspDistributions" [ car fitdistrplus ggplot2 goftest gnorm jaspBase jaspGraphs MASS sgt sn ];
jaspEquivalenceTTests = buildJaspModule "jaspEquivalenceTTests" [ BayesFactor ggplot2 jaspBase jaspGraphs metaBMA TOSTER jaspTTests ];
jaspFactor = buildJaspModule "jaspFactor" [ ggplot2 jaspBase jaspGraphs jaspSem lavaan psych qgraph reshape2 semPlot GPArotation Rcsdp semTools ];
jaspFrequencies = buildJaspModule "jaspFrequencies" [ abtest BayesFactor conting' multibridge ggplot2 jaspBase jaspGraphs plyr stringr vcd vcdExtra ];
jaspJags = buildJaspModule "jaspJags" [ coda ggplot2 ggtext hexbin jaspBase jaspGraphs rjags scales stringr ];
jaspLearnBayes = buildJaspModule "jaspLearnBayes" [ extraDistr ggplot2 HDInterval jaspBase jaspGraphs MASS MCMCpack MGLM scales ggalluvial ragg runjags ggdist png posterior ];
jaspLearnStats = buildJaspModule "jaspLearnStats" [ extraDistr ggplot2 jaspBase jaspGraphs jaspDistributions jaspDescriptives jaspTTests ggforce tidyr igraph ];
jaspMachineLearning = buildJaspModule "jaspMachineLearning" [ kknn AUC cluster colorspace DALEX dbscan e1071 fpc gbm Gmedian ggparty ggdendro ggnetwork ggplot2 ggrepel ggridges glmnet jaspBase jaspGraphs MASS mvnormalTest neuralnet network partykit plyr randomForest rpart ROCR Rtsne signal ];
jaspMetaAnalysis = buildJaspModule "jaspMetaAnalysis" [ dplyr ggplot2 jaspBase jaspGraphs MASS metaBMA metafor psych purrr rstan stringr tibble tidyr weightr BayesTools RoBMA metamisc ggmcmc pema ];
jaspMixedModels = buildJaspModule "jaspMixedModels" [ afex emmeans ggplot2 ggpol jaspBase jaspGraphs lme4 loo mgcv rstan rstanarm stanova withr ];
jaspNetwork = buildJaspModule "jaspNetwork" [ bootnet BDgraph corpcor dplyr foreach ggplot2 gtools HDInterval huge IsingSampler jaspBase jaspGraphs mvtnorm qgraph reshape2 snow stringr ];
jaspPower = buildJaspModule "jaspPower" [ pwr jaspBase jaspGraphs ];
jaspPredictiveAnalytics = buildJaspModule "jaspPredictiveAnalytics" [ jaspBase jaspGraphs bsts bssm precrec reshape2 Boom lubridate prophet BART EBMAforecast imputeTS ];
jaspProcess = buildJaspModule "jaspProcess" [ dagitty ggplot2 ggraph jaspBase jaspGraphs ];
jaspProphet = buildJaspModule "jaspProphet" [ rstan ggplot2 jaspBase jaspGraphs prophet scales ];
jaspQualityControl = buildJaspModule "jaspQualityControl" [ car cowplot daewr desirability DoE_base EnvStats FAdist fitdistrplus FrF2 ggplot2 ggrepel goftest ggpp irr jaspBase jaspDescriptives jaspGraphs mle_tools psych qcc rsm Rspc tidyr tibble vipor weibullness ];
jaspRegression = buildJaspModule "jaspRegression" [ BAS boot bstats combinat emmeans ggplot2 ggrepel hmeasure jaspAnova jaspBase jaspDescriptives jaspGraphs jaspTTests lmtest logistf MASS matrixStats mdscore ppcor purrr Rcpp statmod VGAM ];
jaspReliability = buildJaspModule "jaspReliability" [ Bayesrel coda ggplot2 ggridges irr jaspBase jaspGraphs LaplacesDemon lme4 MASS psych ];
jaspRobustTTests = buildJaspModule "jaspRobustTTests" [ RoBTT ggplot2 jaspBase jaspGraphs ];
jaspSem = buildJaspModule "jaspSem" [ forcats ggplot2 jaspBase jaspGraphs lavaan cSEM reshape2 semPlot semTools stringr tibble tidyr ];
jaspSummaryStatistics = buildJaspModule "jaspSummaryStatistics" [ BayesFactor bstats jaspBase jaspFrequencies jaspGraphs jaspRegression jaspTTests jaspAnova jaspDescriptives SuppDists bayesplay ];
jaspSurvival = buildJaspModule "jaspSurvival" [ survival survminer jaspBase jaspGraphs ];
jaspTTests = buildJaspModule "jaspTTests" [ BayesFactor car ggplot2 jaspBase jaspGraphs logspline plotrix plyr ];
jaspTimeSeries = buildJaspModule "jaspTimeSeries" [ jaspBase jaspGraphs forecast ];
jaspVisualModeling = buildJaspModule "jaspVisualModeling" [ flexplot jaspBase jaspGraphs ];
jaspAcceptanceSampling = buildJaspModule "jaspAcceptanceSampling" [
abtest
BayesFactor
conting'
ggplot2
jaspBase
jaspGraphs
plyr
stringr
vcd
vcdExtra
AcceptanceSampling
];
jaspAnova = buildJaspModule "jaspAnova" [
afex
BayesFactor
boot
car
colorspace
emmeans
effectsize
ggplot2
jaspBase
jaspDescriptives
jaspGraphs
jaspTTests
KernSmooth
matrixStats
multcomp
multcompView
mvShapiroTest
onewaytests
plyr
stringi
stringr
restriktor
];
jaspAudit = buildJaspModule "jaspAudit" [
bstats
extraDistr
ggplot2
ggrepel
jaspBase
jaspGraphs
jfa
];
jaspBain = buildJaspModule "jaspBain" [
bain
lavaan
ggplot2
semPlot
stringr
jaspBase
jaspGraphs
jaspSem
];
jaspBsts = buildJaspModule "jaspBsts" [
Boom
bsts
ggplot2
jaspBase
jaspGraphs
matrixStats
reshape2
];
jaspCircular = buildJaspModule "jaspCircular" [
jaspBase
jaspGraphs
circular
ggplot2
];
jaspCochrane = buildJaspModule "jaspCochrane" [
jaspBase
jaspGraphs
jaspDescriptives
jaspMetaAnalysis
];
jaspDescriptives = buildJaspModule "jaspDescriptives" [
ggplot2
ggrepel
jaspBase
jaspGraphs
jaspTTests
forecast
flexplot
ggrain
ggpp
ggtext
dplyr
];
jaspDistributions = buildJaspModule "jaspDistributions" [
car
fitdistrplus
ggplot2
goftest
gnorm
jaspBase
jaspGraphs
MASS
sgt
sn
];
jaspEquivalenceTTests = buildJaspModule "jaspEquivalenceTTests" [
BayesFactor
ggplot2
jaspBase
jaspGraphs
metaBMA
TOSTER
jaspTTests
];
jaspFactor = buildJaspModule "jaspFactor" [
ggplot2
jaspBase
jaspGraphs
jaspSem
lavaan
psych
qgraph
reshape2
semPlot
GPArotation
Rcsdp
semTools
];
jaspFrequencies = buildJaspModule "jaspFrequencies" [
abtest
BayesFactor
bridgesampling
conting'
multibridge
ggplot2
jaspBase
jaspGraphs
plyr
stringr
vcd
vcdExtra
];
jaspJags = buildJaspModule "jaspJags" [
coda
ggplot2
ggtext
hexbin
jaspBase
jaspGraphs
rjags
runjags
scales
stringr
];
jaspLearnBayes = buildJaspModule "jaspLearnBayes" [
extraDistr
ggplot2
HDInterval
jaspBase
jaspGraphs
MASS
MCMCpack
MGLM
scales
ggalluvial
ragg
rjags
runjags
ggdist
png
posterior
];
jaspLearnStats = buildJaspModule "jaspLearnStats" [
extraDistr
ggplot2
jaspBase
jaspGraphs
jaspDistributions
jaspDescriptives
jaspTTests
ggforce
tidyr
igraph
];
jaspMachineLearning = buildJaspModule "jaspMachineLearning" [
kknn
AUC
cluster
colorspace
DALEX
dbscan
e1071
fpc
gbm
Gmedian
ggparty
ggdendro
ggnetwork
ggplot2
ggrepel
ggridges
glmnet
jaspBase
jaspGraphs
MASS
mvnormalTest
neuralnet
network
partykit
plyr
randomForest
rpart
ROCR
Rtsne
signal
];
jaspMetaAnalysis = buildJaspModule "jaspMetaAnalysis" [
dplyr
ggplot2
jaspBase
jaspGraphs
MASS
metaBMA
metafor
psych
purrr
rstan
stringr
tibble
tidyr
weightr
BayesTools
RoBMA
metamisc
ggmcmc
pema
];
jaspMixedModels = buildJaspModule "jaspMixedModels" [
afex
emmeans
ggplot2
ggpol
jaspBase
jaspGraphs
lme4
loo
mgcv
rstan
rstanarm
stanova
withr
];
jaspNetwork = buildJaspModule "jaspNetwork" [
bootnet
BDgraph
corpcor
dplyr
foreach
ggplot2
gtools
HDInterval
huge
IsingSampler
jaspBase
jaspGraphs
mvtnorm
qgraph
reshape2
snow
stringr
];
jaspPower = buildJaspModule "jaspPower" [
pwr
jaspBase
jaspGraphs
];
jaspPredictiveAnalytics = buildJaspModule "jaspPredictiveAnalytics" [
jaspBase
jaspGraphs
bsts
bssm
precrec
reshape2
Boom
lubridate
prophet
BART
EBMAforecast
imputeTS
];
jaspProcess = buildJaspModule "jaspProcess" [
blavaan
dagitty
ggplot2
ggraph
jaspBase
jaspGraphs
jaspJags
runjags
];
jaspProphet = buildJaspModule "jaspProphet" [
rstan
ggplot2
jaspBase
jaspGraphs
prophet
scales
];
jaspQualityControl = buildJaspModule "jaspQualityControl" [
car
cowplot
daewr
desirability
DoE_base
EnvStats
FAdist
fitdistrplus
FrF2
ggplot2
ggrepel
goftest
ggpp
irr
jaspBase
jaspDescriptives
jaspGraphs
mle_tools
psych
qcc
rsm
Rspc
tidyr
tibble
vipor
weibullness
];
jaspRegression = buildJaspModule "jaspRegression" [
BAS
boot
bstats
combinat
emmeans
ggplot2
ggrepel
hmeasure
jaspAnova
jaspBase
jaspDescriptives
jaspGraphs
jaspTTests
lmtest
logistf
MASS
matrixStats
mdscore
ppcor
purrr
Rcpp
statmod
VGAM
];
jaspReliability = buildJaspModule "jaspReliability" [
Bayesrel
coda
ggplot2
ggridges
irr
jaspBase
jaspGraphs
LaplacesDemon
lme4
MASS
psych
];
jaspRobustTTests = buildJaspModule "jaspRobustTTests" [
RoBTT
ggplot2
jaspBase
jaspGraphs
];
jaspSem = buildJaspModule "jaspSem" [
forcats
ggplot2
jaspBase
jaspGraphs
lavaan
cSEM
reshape2
semPlot
semTools
stringr
tibble
tidyr
];
jaspSummaryStatistics = buildJaspModule "jaspSummaryStatistics" [
BayesFactor
bstats
jaspBase
jaspFrequencies
jaspGraphs
jaspRegression
jaspTTests
jaspAnova
jaspDescriptives
SuppDists
bayesplay
];
jaspSurvival = buildJaspModule "jaspSurvival" [
survival
survminer
jaspBase
jaspGraphs
];
jaspTTests = buildJaspModule "jaspTTests" [
BayesFactor
car
ggplot2
jaspBase
jaspGraphs
logspline
plotrix
plyr
];
jaspTimeSeries = buildJaspModule "jaspTimeSeries" [
jaspBase
jaspGraphs
jaspDescriptives
forecast
];
jaspVisualModeling = buildJaspModule "jaspVisualModeling" [
flexplot
jaspBase
jaspGraphs
jaspDescriptives
];
};
}

View File

@ -1,36 +1,39 @@
{ lib
, stdenv
, fetchFromGitHub
, callPackage
, buildEnv
, linkFarm
, substituteAll
, R
, rPackages
, cmake
, ninja
, pkg-config
, boost
, libarchive
, readstat
, qt6
{
lib,
stdenv,
fetchFromGitHub,
buildEnv,
linkFarm,
substituteAll,
R,
rPackages,
cmake,
ninja,
pkg-config,
boost,
libarchive,
readstat,
qt6,
}:
let
version = "0.18.3";
version = "0.19.0";
src = fetchFromGitHub {
owner = "jasp-stats";
repo = "jasp-desktop";
rev = "v${version}";
hash = "sha256-eKBxCIamNhUig+0vUEqXYbPjiaOsZk6QnOw8cnpjKFY=";
hash = "sha256-G84bmR+40W9RV+OIXYuMmwdEFE0iPMp/wEOcRHYUoj8=";
fetchSubmodules = true;
};
inherit (callPackage ./modules.nix {
moduleSet = import ./modules.nix {
inherit fetchFromGitHub rPackages;
jasp-src = src;
jasp-version = version;
}) engine modules;
};
inherit (moduleSet) engine modules;
# Merges ${R}/lib/R with all used R packages (even propagated ones)
customREnv = buildEnv {
@ -42,8 +45,12 @@ let
] ++ lib.attrValues modules;
};
modulesDir = linkFarm "jasp-${version}-modules"
(lib.mapAttrsToList (name: drv: { name = name; path = "${drv}/library"; }) modules);
modulesDir = linkFarm "jasp-${version}-modules" (
lib.mapAttrsToList (name: drv: {
name = name;
path = "${drv}/library";
}) modules
);
in
stdenv.mkDerivation {
pname = "jasp-desktop";
@ -66,9 +73,6 @@ stdenv.mkDerivation {
"-DCUSTOM_R_PATH=${customREnv}"
];
# necessary for R 4.4.0
hardeningDisable = [ "format" ];
nativeBuildInputs = [
cmake
ninja
@ -81,13 +85,12 @@ stdenv.mkDerivation {
boost
libarchive
readstat
] ++ (with qt6; [
qtbase
qtdeclarative
qtwebengine
qtsvg
qt5compat
]);
qt6.qtbase
qt6.qtdeclarative
qt6.qtwebengine
qt6.qtsvg
qt6.qt5compat
];
env.NIX_LDFLAGS = "-L${rPackages.RInside}/library/RInside/lib";
@ -98,7 +101,7 @@ stdenv.mkDerivation {
# Remove flatpak proxy script
rm $out/bin/org.jaspstats.JASP
substituteInPlace $out/share/applications/org.jaspstats.JASP.desktop \
--replace "Exec=org.jaspstats.JASP" "Exec=JASP"
--replace-fail "Exec=org.jaspstats.JASP" "Exec=JASP"
# symlink modules from the store
ln -s ${modulesDir} $out/Modules
@ -121,4 +124,3 @@ stdenv.mkDerivation {
platforms = lib.platforms.linux;
};
}

View File

@ -25,11 +25,11 @@ let
in
stdenv.mkDerivation rec {
pname = "keymapp";
version = "1.3.0";
version = "1.3.1";
src = fetchurl {
url = "https://oryx.nyc3.cdn.digitaloceanspaces.com/keymapp/keymapp-${version}.tar.gz";
hash = "sha256-kl/2faWbn1sF7AzgkyM6C9xzXTYh8HJf81xIY4Zf3IY=";
hash = "sha256-e02EOJH7QXm8ue7pZt++tyUjAC+DFga4MWNoeVfJjy8=";
};
nativeBuildInputs = [

View File

@ -20,6 +20,7 @@ let
inherit (qt6)
qtbase
qtmultimedia
qtwayland
wrapQtAppsHook;
in
stdenv.mkDerivation (finalAttrs: {
@ -50,6 +51,7 @@ stdenv.mkDerivation (finalAttrs: {
zstd
] ++ lib.optionals stdenv.isLinux [
wayland
qtwayland
];
cmakeFlags = [

View File

@ -32,16 +32,22 @@ stdenvNoCC.mkDerivation (finalAttrs: {
runHook postInstall
'';
passthru = {
updateScript = ./update.sh;
};
meta = {
inherit (pcsx2.meta) homepage longDescription license changelog downloadPage;
inherit (pcsx2.meta)
homepage
longDescription
license
changelog
downloadPage
;
description = "Playstation 2 emulator; precompiled binary for MacOS, repacked from official website";
maintainers = with lib.maintainers; [
matteopacini
];
maintainers = with lib.maintainers; [ matteopacini ];
mainProgram = "pcsx2-qt";
platforms = lib.systems.inspect.patternLogicalAnd
lib.systems.inspect.patterns.isDarwin
lib.systems.inspect.patterns.isx86_64;
platforms = lib.systems.inspect.patternLogicalAnd lib.systems.inspect.patterns.isDarwin lib.systems.inspect.patterns.isx86_64;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
})

View File

@ -0,0 +1,8 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq gnused common-updater-scripts
set -eou pipefail
LATEST_VERSION="$(curl --silent --fail ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} "https://api.github.com/repos/PCSX2/pcsx2/releases" | jq '.[0].tag_name' --raw-output | sed 's/^v//')"
update-source-version pcsx2-bin "$LATEST_VERSION"

View File

@ -1,51 +1,42 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchCrate,
rustPlatform,
clippy,
sarif-fmt,
testers,
nix-update-script,
versionCheckHook,
}:
rustPlatform.buildRustPackage rec {
pname = "sarif-fmt";
version = "0.4.2";
version = "0.5.0";
src = fetchFromGitHub {
owner = "psastras";
repo = "sarif-rs";
rev = "sarif-fmt-v${version}";
hash = "sha256-EzWzDeIeSJ11CVcVyAhMjYQJcKHnieRrFkULc5eXAno=";
src = fetchCrate {
inherit pname version;
hash = "sha256-QiIAo9q8pcon/Os7ih8jJyDLvKPrLD70LkMAQfgwDNM=";
};
cargoHash = "sha256-dHOxVLXtnqSHMX5r1wFxqogDf9QdnOZOjTyYFahru34=";
cargoBuildFlags = [
"--package"
"sarif-fmt"
];
cargoTestFlags = cargoBuildFlags;
cargoHash = "sha256-RlINf/8P+OpZffvqbkKoafeolioDGABWS71kpGcX/cs=";
# `test_clippy` (the only test we enable) is broken on Darwin
# because `--enable-profiler` is not enabled in rustc on Darwin
# error[E0463]: can't find crate for profiler_builtins
doCheck = !stdenv.isDarwin;
nativeCheckInputs = [
# `test_clippy`
clippy
checkFlags = [
# these tests use nix so...no go
"--skip=test_clang_tidy"
"--skip=test_hadolint"
"--skip=test_shellcheck"
# requires files not present in the crates.io tarball
"--skip=test_clipp"
];
checkFlags = [
# this test uses nix so...no go
"--skip=test_clang_tidy"
# ditto
"--skip=test_hadolint"
# ditto
"--skip=test_shellcheck"
];
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
passthru = {
tests.version = testers.testVersion { package = sarif-fmt; };
updateScript = nix-update-script { };
};
meta = {

View File

@ -1,37 +1,33 @@
{
lib,
fetchFromGitHub,
fetchCrate,
rustPlatform,
shellcheck-sarif,
testers,
nix-update-script,
versionCheckHook,
}:
rustPlatform.buildRustPackage rec {
pname = "shellcheck-sarif";
version = "0.4.2";
version = "0.5.0";
src = fetchFromGitHub {
owner = "psastras";
repo = "sarif-rs";
rev = "shellcheck-sarif-v${version}";
hash = "sha256-EzWzDeIeSJ11CVcVyAhMjYQJcKHnieRrFkULc5eXAno=";
src = fetchCrate {
inherit pname version;
hash = "sha256-PFMakiV9vXzMqVh1WeVTDwGpN7RVfFQlVWKkaD6ef+Q=";
};
cargoHash = "sha256-JuE/Z0qrS/3BRlb0jTGDfV0TYk74Q75X1wv/IERxqeQ=";
cargoBuildFlags = [
"--package"
"shellcheck-sarif"
];
cargoTestFlags = cargoBuildFlags;
cargoHash = "sha256-kkSTRoouuIh4Bsh+zqhtTwIGLxDE+3u8SuP+8i+lw5Q=";
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
passthru = {
tests.version = testers.testVersion { package = shellcheck-sarif; };
updateScript = nix-update-script { };
};
meta = {
description = "CLI tool to convert shellcheck diagnostics into SARIF";
homepage = "https://psastras.github.io/sarif-rs";
mainProgram = "shellcheck-sarif";
maintainers = with lib.maintainers; [ getchoo ];
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ getchoo ];
mainProgram = "shellcheck-sarif";
};
}

View File

@ -12,7 +12,7 @@ buildGoModule rec {
pname = "snippetexpander";
vendorHash = "sha256-W9NkENdZRzqSAONI9QS2EI5aERK+AaPqwYwITKLwXQE=";
vendorHash = "sha256-2nLO/b6XQC88VXE+SewhgKpkRtIHsva+fDudgKpvZiY=";
proxyVendor = true;

View File

@ -12,16 +12,16 @@
buildGoModule rec {
pname = "snippetexpanderd";
version = "1.0.2";
version = "1.0.3";
src = fetchFromSourcehut {
owner = "~ianmjones";
repo = "snippetexpander";
rev = "v${version}";
hash = "sha256-iEoBri+NuFfLkARUBA+D/Fe9xk6PPV62N/YRqPv9C/A=";
hash = "sha256-NIMuACrq8RodtjeBbBY42VJ8xqj7fZvdQ2w/5QsjjJI=";
};
vendorHash = "sha256-W9NkENdZRzqSAONI9QS2EI5aERK+AaPqwYwITKLwXQE=";
vendorHash = "sha256-2nLO/b6XQC88VXE+SewhgKpkRtIHsva+fDudgKpvZiY=";
proxyVendor = true;

View File

@ -17,7 +17,7 @@ buildGoModule rec {
pname = "snippetexpandergui";
vendorHash = "sha256-W9NkENdZRzqSAONI9QS2EI5aERK+AaPqwYwITKLwXQE=";
vendorHash = "sha256-2nLO/b6XQC88VXE+SewhgKpkRtIHsva+fDudgKpvZiY=";
proxyVendor = true;

File diff suppressed because it is too large Load Diff

View File

@ -9,13 +9,13 @@
rustPlatform.buildRustPackage rec {
pname = "spade";
version = "0.8.0";
version = "0.9.0";
src = fetchFromGitLab {
owner = "spade-lang";
repo = "spade";
rev = "v${version}";
hash = "sha256-J3AdXuN1WLKFED9YeBly68umPlx05Wl+mhT2YbBsJVk=";
hash = "sha256-DVvdCt/t7aA2IAs+cL6wT129PX8s3P5gHawcLAvAAGw=";
# only needed for vatch, which contains test data
fetchSubmodules = true;
};
@ -24,7 +24,6 @@ rustPlatform.buildRustPackage rec {
lockFile = ./Cargo.lock;
outputHashes = {
"codespan-0.12.0" = "sha256-3F2006BR3hyhxcUTaQiOjzTEuRECKJKjIDyXonS/lrE=";
"tracing-tree-0.2.0" = "sha256-/JNeAKjAXmKPh0et8958yS7joORDbid9dhFB0VUAhZc=";
};
};

View File

@ -6,6 +6,7 @@
, xcb-util-cursor
, libxcb
, nix-update-script
, makeWrapper
}:
rustPlatform.buildRustPackage rec {
@ -24,10 +25,10 @@ rustPlatform.buildRustPackage rec {
nativeBuildInputs = [
pkg-config
rustPlatform.bindgenHook
makeWrapper
];
buildInputs = [
xwayland
libxcb
xcb-util-cursor
];
@ -43,13 +44,18 @@ rustPlatform.buildRustPackage rec {
"--skip=toplevel_flow"
];
postInstall = ''
wrapProgram $out/bin/xwayland-satellite \
--prefix PATH : "${lib.makeBinPath [xwayland]}"
'';
passthru.updateScript = nix-update-script { };
meta = with lib; {
description = "Rootless Xwayland integration to any Wayland compositor implementing xdg_wm_base";
homepage = "https://github.com/Supreeeme/xwayland-satellite";
license = licenses.mpl20;
maintainers = with maintainers; [ if-loop69420 ];
maintainers = with maintainers; [ if-loop69420 sodiboo ];
mainProgram = "xwayland-satellite";
platforms = platforms.linux;
};

View File

@ -24,13 +24,13 @@
stdenv.mkDerivation rec {
pname = "nemo";
version = "6.2.3";
version = "6.2.4";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
sha256 = "sha256-wyz2pzwJGYMFKoKVqrhLnkJqXG8Qg2+BygpOm2yegpM=";
sha256 = "sha256-mlu/bC1+2rhEQvqIAcTBgYii8t4ELsLc1x0ApcBqx6o=";
};
patches = [

View File

@ -6,13 +6,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "wamr";
version = "2.1.0";
version = "2.1.1";
src = fetchFromGitHub {
owner = "bytecodealliance";
repo = "wasm-micro-runtime";
rev = "WAMR-${finalAttrs.version}";
hash = "sha256-2jZnvfW/f928DxVwd+z/BVPNPWfbyV8Rjek23NQhFz8=";
hash = "sha256-/DQ+dZ3VoijL7FdgRgPg3H7whhXhjIzjhCaqpjPYw4k=";
};
nativeBuildInputs = [ cmake ];

View File

@ -17,14 +17,14 @@
}:
stdenv.mkDerivation rec {
version = "0.7.29";
version = "0.7.30";
pname = "libsolv";
src = fetchFromGitHub {
owner = "openSUSE";
repo = "libsolv";
rev = version;
hash = "sha256-867sCGFvKib1As9BCiCi6LYVrLUK0pjtM5Bw9Yuu0D8=";
hash = "sha256-De2lQu80MjKvjnN0W3/Y9JwFbA8g7tleflVXC9Lib5Y=";
};
cmakeFlags = [

View File

@ -7,11 +7,11 @@
stdenv.mkDerivation rec {
pname = "rinutils";
version = "0.10.2";
version = "0.10.3";
src = fetchurl {
url = "https://github.com/shlomif/${pname}/releases/download/${version}/${pname}-${version}.tar.xz";
sha256 = "sha256-2H/hGZcit/qb1QjhNTg/8HiPvX1lXL75dXwjIS+MIXs=";
sha256 = "sha256-+eUn03psyMe4hwraY8qiTzKrDSn9ERbfPrtoZYMDCVU=";
};
nativeBuildInputs = [ cmake perl ];

View File

@ -20,7 +20,7 @@
buildPythonPackage rec {
pname = "dbt-semantic-interfaces";
version = "0.6.0";
version = "0.6.2";
pyproject = true;
disabled = pythonOlder "3.8";
@ -29,7 +29,7 @@ buildPythonPackage rec {
owner = "dbt-labs";
repo = "dbt-semantic-interfaces";
rev = "refs/tags/v${version}";
hash = "sha256-77WKfegchgHIxgzL3Yhtx/4S5pYi6HeVCQH/19YscWA=";
hash = "sha256-V6yMT9Fkug+T3smBEu0Szg5GPMRxEOZc4gtJybWXbrs=";
};
pythonRelaxDeps = [ "importlib-metadata" ];

View File

@ -10,14 +10,14 @@
buildPythonPackage rec {
pname = "django-crispy-forms";
version = "2.2";
version = "2.3";
format = "pyproject";
src = fetchFromGitHub {
owner = "django-crispy-forms";
repo = "django-crispy-forms";
rev = "refs/tags/${version}";
hash = "sha256-6S/Pscwi6AEQnmJf6JTT5Q5vxoZ3PC65ZjT2XszwVZM=";
hash = "sha256-R2s2dUsVw5p7xn4yWeFcE7au8yHWXjFgS5jjCBveg04=";
};
propagatedBuildInputs = [

View File

@ -9,12 +9,12 @@
buildPythonPackage rec {
pname = "manhole";
version = "1.8.0";
version = "1.8.1";
format = "setuptools";
src = fetchPypi {
inherit pname version;
sha256 = "bada20a25b547b395d472e2e08928f0437df26bbdbda4797c55863198e29a21f";
sha256 = "sha256-Nmj9r4OzPJQ9tOdQ4MVU4xwg9jM4SWiV3U1kEGgNnEs=";
};
# test_help expects architecture-dependent Linux signal numbers.

View File

@ -4,7 +4,6 @@
buildPythonPackage,
envisage,
fetchPypi,
fetchpatch,
numpy,
packaging,
pyface,
@ -19,7 +18,6 @@
buildPythonPackage rec {
pname = "mayavi";
# TODO: Remove meta.broken on next release.
version = "4.8.2";
format = "setuptools";
@ -30,30 +28,6 @@ buildPythonPackage rec {
hash = "sha256-sQ/pFF8hxI5JAvDnRrNgOzy2lNEUVlFaRoIPIaCnQik=";
};
patches = [
# Adds compatibility with Python 3.11.
# https://github.com/enthought/mayavi/pull/1199
(fetchpatch {
name = "python311-compat.patch";
url = "https://github.com/enthought/mayavi/commit/50c0cbfcf97560be69c84b7c924635a558ebf92f.patch";
hash = "sha256-zZOT6on/f5cEjnDBrNGog/wPQh7rBkaFqrxkBYDUQu0=";
includes = [ "tvtk/src/*" ];
})
# Fixes an incompatible function pointer conversion error
# https://github.com/enthought/mayavi/pull/1266
(fetchpatch {
name = "incompatible-pointer-conversion.patch";
url = "https://github.com/enthought/mayavi/commit/887adc8fe2b076a368070f5b1d564745b03b1964.patch";
hash = "sha256-88H1NNotd4pO0Zw1oLrYk5WNuuVrmTU01HJgsTRfKlo=";
})
];
postPatch = ''
# building the docs fails with the usual Qt xcb error, so skip:
substituteInPlace setup.py \
--replace "build.build.run(self)" "build.build.run(self); return"
'';
nativeBuildInputs = [ wrapQtAppsHook ];
propagatedBuildInputs = [
@ -84,8 +58,6 @@ buildPythonPackage rec {
homepage = "https://github.com/enthought/mayavi";
license = licenses.bsdOriginal;
maintainers = with maintainers; [ knedlsepp ];
# Should be fixed in a version from after March 26, see:
# https://github.com/enthought/mayavi/issues/1284#issuecomment-2020631244
broken = pythonAtLeast "3.12";
mainProgram = "mayavi2";
};
}

View File

@ -23,14 +23,14 @@
buildPythonPackage rec {
pname = "molecule";
version = "24.6.1";
version = "24.7.0";
pyproject = true;
disabled = pythonOlder "3.10";
src = fetchPypi {
inherit pname version;
hash = "sha256-QcGQOllyl8JgK9BZ4Qe17y4yydokeX3LeP+Yc8ZhXuY=";
hash = "sha256-2yx/pZkj6b8j1hqSpbGdaIHsnuX+lu2enp1wCwJyPwM=";
};
nativeBuildInputs = [

View File

@ -1,11 +1,15 @@
{
lib,
stdenv,
fetchFromGitHub,
pythonOlder,
rustPlatform,
cargo,
rustc,
libiconv,
buildPythonPackage,
poetry-core,
backports-zoneinfo,
tzdata,
setuptools,
setuptools-rust,
pytestCheckHook,
pytest-mypy-plugins,
hypothesis,
@ -14,38 +18,54 @@
buildPythonPackage rec {
pname = "whenever";
version = "0.5.2";
version = "0.6.1";
pyproject = true;
disabled = pythonOlder "3.8";
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "ariebovenberg";
repo = "whenever";
rev = "refs/tags/${version}";
hash = "sha256-bG8LV+r5MjA1JwBHWy9/Io4daldAlyEGYNLW+5ITuOw=";
hash = "sha256-uUjQtaqPO/Ie7vVddQhc3dxORX2PxNRaDJzCr+vieUo=";
};
postPatch = ''
# unrecognized arguments since we don't use pytest-benchmark in nixpkgs
substituteInPlace pytest.ini \
--replace-fail '--benchmark-disable' '#--benchmark-disable'
'';
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
hash = "sha256-8U3pGKY9UQ0JpzUn3Ny6YSD3wzXPDi1pupD5fpEJFvw=";
};
build-system = [ poetry-core ];
build-system = [
setuptools
setuptools-rust
rustPlatform.cargoSetupHook
cargo
rustc
];
dependencies = [ tzdata ] ++ lib.optionals (pythonOlder "3.9") [ backports-zoneinfo ];
buildInputs = lib.optionals stdenv.isDarwin [
libiconv
];
nativeCheckInputs = [
pytestCheckHook
pytest-mypy-plugins
# pytest-benchmark # developer sanity check, should not block distribution
hypothesis
freezegun
];
disabledTestPaths = [
# benchmarks
"benchmarks/python/test_date.py"
"benchmarks/python/test_instant.py"
"benchmarks/python/test_local_datetime.py"
"benchmarks/python/test_zoned_datetime.py"
];
pythonImportsCheck = [ "whenever" ];
# early TDD, many tests are failing
# a bunch of failures, including an assumption of what the timezone on the host is
# TODO: try enabling on bump
doCheck = false;

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "linuxkit";
version = "1.2.0";
version = "1.3.0";
src = fetchFromGitHub {
owner = "linuxkit";
repo = "linuxkit";
rev = "v${version}";
sha256 = "sha256-PrHGIP74mDt+mJDRaCsroiJ4QEW4/tzgsZI2JlZ8TEA=";
sha256 = "sha256-FK8aJGVIVu7nd6VwMlgs9daqr9rgz81OczbcHUGW89w=";
};
vendorHash = null;

View File

@ -250,13 +250,26 @@ python3.pkgs.buildPythonApplication {
'';
# mimic https://github.com/ankitects/anki/blob/76d8807315fcc2675e7fa44d9ddf3d4608efc487/build/ninja_gen/src/python.rs#L232-L250
checkPhase = ''
checkPhase = let
disabledTestsString = lib.pipe [
# assumes / is not writeable, somehow fails on nix-portable brwap
"test_create_open"
] [
(lib.map (test: "not ${test}"))
(lib.concatStringsSep " and ")
lib.escapeShellArg
];
in ''
runHook preCheck
HOME=$TMP ANKI_TEST_MODE=1 PYTHONPATH=$PYTHONPATH:$PWD/out/pylib \
pytest -p no:cacheprovider pylib/tests
pytest -p no:cacheprovider pylib/tests -k ${disabledTestsString}
HOME=$TMP ANKI_TEST_MODE=1 PYTHONPATH=$PYTHONPATH:$PWD/out/pylib:$PWD/pylib:$PWD/out/qt \
pytest -p no:cacheprovider qt/tests
pytest -p no:cacheprovider qt/tests -k ${disabledTestsString}
runHook postCheck
'';
preInstall = ''
mkdir dist
mv out/wheels/* dist

View File

@ -20,13 +20,13 @@
stdenv.mkDerivation rec {
pname = "pioneer";
version = "20240314";
version = "20240710";
src = fetchFromGitHub{
owner = "pioneerspacesim";
repo = "pioneer";
rev = version;
hash = "sha256-CUaiQPRufo8Ng70w5KWlLugySMaTaUuZno/ckyU1w2w=";
hash = "sha256-zuPm5odMn6C3JqkgqQdgSztwxWjMmLVWUalYbEbAZro=";
};
postPatch = ''

View File

@ -25,17 +25,17 @@
let
stamps = fetchurl {
url = "mirror://sourceforge/project/tuxpaint/tuxpaint-stamps/2023-07-20/tuxpaint-stamps-2023.07.20.tar.gz";
hash = "sha256-D7QgYXRRdZpN3Ni/4lXoXCtsJORT+T2hHaLUFpgDeEI=";
url = "mirror://sourceforge/project/tuxpaint/tuxpaint-stamps/2024-01-29/tuxpaint-stamps-2024.01.29.tar.gz";
hash = "sha256-GwJx9tqaX7I623tJQYO53iiaApZtYsTLQw2ptBIFlKk=";
};
in
stdenv.mkDerivation rec {
version = "0.9.31";
version = "0.9.32";
pname = "tuxpaint";
src = fetchurl {
url = "mirror://sourceforge/tuxpaint/${version}/tuxpaint-${version}.tar.gz";
hash = "sha256-GoXAT6XJrms//Syo+oaoTAyLRitQWfofwsRFtc+oV+4=";
hash = "sha256-CcziIkFIHcE2D8S8XU2h0xgV16JWO56fohemcrqXS/I=";
};
patches = [
@ -98,7 +98,6 @@ stdenv.mkDerivation rec {
tar xzf ${stamps}
cd tuxpaint-stamps-*
make install-all PREFIX=$out
rm -rf $out/share/tuxpaint/stamps/military
# Requirements for tuxpaint-import
wrapProgram $out/bin/tuxpaint-import \

View File

@ -16,12 +16,12 @@
}:
let
version = "2.4";
version = "2.5";
prebuilt_server = fetchurl {
name = "scrcpy-server";
inherit version;
url = "https://github.com/Genymobile/scrcpy/releases/download/v${version}/scrcpy-server-v${version}";
hash = "sha256-k8Jyt0OGBcBV4Sf3REBk7Xj6nKSfgRVnd/0gHnnOe6M=";
hash = "sha256-FIixEF1q/1NIc6Jr9hDNKuoG7oZ916TZxrssCROW6xU=";
};
in
stdenv.mkDerivation rec {
@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
owner = "Genymobile";
repo = "scrcpy";
rev = "refs/tags/v${version}";
hash = "sha256-x1feZgCR3ZUi40/YZSjDULYk4W9Pjo17cn8RqcOoeoE=";
hash = "sha256-VdZZ23tlWYvDgETfce7kYy/kdwDGBEBzB6UfplorAbE=";
};
# display.c: When run without a hardware accelerator, this allows the command to continue working rather than failing unexpectedly.
@ -63,17 +63,17 @@ stdenv.mkDerivation rec {
--replace "/bin/bash" "${runtimeShell}"
'';
meta = with lib; {
meta = {
description = "Display and control Android devices over USB or TCP/IP";
homepage = "https://github.com/Genymobile/scrcpy";
changelog = "https://github.com/Genymobile/scrcpy/releases/tag/v${version}";
sourceProvenance = with sourceTypes; [
sourceProvenance = with lib.sourceTypes; [
fromSource
binaryBytecode # server
];
license = licenses.asl20;
platforms = platforms.unix;
maintainers = with maintainers; [ deltaevo ];
license = lib.licenses.asl20;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ deltaevo ryand56 ];
mainProgram = "scrcpy";
};
}

View File

@ -1,50 +1,70 @@
{ stdenvNoCC, lib, fetchurl, nixosTests, testers, jre }:
{
fetchurl,
gitUpdater,
jre,
lib,
nixosTests,
stdenvNoCC,
testers,
}:
let
common = { version, hash }: stdenvNoCC.mkDerivation (finalAttrs: {
pname = "apache-tomcat";
inherit version;
common =
{ version, hash }:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "apache-tomcat";
inherit version;
src = fetchurl {
url = "mirror://apache/tomcat/tomcat-${lib.versions.major version}/v${version}/bin/apache-tomcat-${version}.tar.gz";
inherit hash;
};
src = fetchurl {
url = "mirror://apache/tomcat/tomcat-${lib.versions.major version}/v${version}/bin/apache-tomcat-${version}.tar.gz";
inherit hash;
};
outputs = [ "out" "webapps" ];
installPhase =
''
outputs = [
"out"
"webapps"
];
installPhase = ''
mkdir $out
mv * $out
mkdir -p $webapps/webapps
mv $out/webapps $webapps/
'';
passthru.tests = {
inherit (nixosTests) tomcat;
version = testers.testVersion {
package = finalAttrs.finalPackage;
command = "JAVA_HOME=${jre} ${finalAttrs.finalPackage}/bin/version.sh";
passthru = {
updateScript = gitUpdater {
url = "https://github.com/apache/tomcat.git";
allowedVersions = "^${lib.versions.major version}\\.";
ignoredVersions = "-M.*";
};
tests = {
inherit (nixosTests) tomcat;
version = testers.testVersion {
package = finalAttrs.finalPackage;
command = "JAVA_HOME=${jre} ${finalAttrs.finalPackage}/bin/version.sh";
};
};
};
};
meta = with lib; {
homepage = "https://tomcat.apache.org/";
description = "Implementation of the Java Servlet and JavaServer Pages technologies";
platforms = jre.meta.platforms;
maintainers = with maintainers; [ anthonyroussel ];
license = [ licenses.asl20 ];
sourceProvenance = with sourceTypes; [ binaryBytecode ];
};
});
meta = {
homepage = "https://tomcat.apache.org/";
description = "Implementation of the Java Servlet and JavaServer Pages technologies";
platforms = jre.meta.platforms;
maintainers = with lib.maintainers; [ anthonyroussel ];
license = lib.licenses.asl20;
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
};
});
in {
in
{
tomcat9 = common {
version = "9.0.90";
hash = "sha256-MYSRxL5DSU5ocrUnfEDKyFBpAddErQnTffYuiFQ/YiM=";
version = "9.0.91";
hash = "sha256-DFspyh06Mbu4+ratH+7Yo3Au0yXRSDlVCmd0x2yQuFY=";
};
tomcat10 = common {
version = "10.1.25";
hash = "sha256-8SQKMrh5xEWkpEGcm23YdYG9uW+KUfewyhk1Fkux6EI=";
version = "10.1.26";
hash = "sha256-9z92dgE3gzszBd+xjtF0+H/qw6t49lKJoINahR18/rI=";
};
}

View File

@ -9,11 +9,11 @@
}:
stdenv.mkDerivation rec {
pname = "nzbhydra2";
version = "7.2.3";
version = "7.3.0";
src = fetchzip {
url = "https://github.com/theotherp/${pname}/releases/download/v${version}/${pname}-${version}-generic.zip";
hash = "sha256-gGTEOqqnVSgsKvEjd6b5aG8EM2M8u0FdpIebYNQFP50=";
hash = "sha256-ybI6nCw8yY2XceXiMkION7/p7gl58lrAPpUq6EpManU=";
stripRoot = false;
};
@ -37,12 +37,12 @@ stdenv.mkDerivation rec {
runHook postInstall
'';
meta = with lib; {
meta = {
description = "Usenet meta search";
homepage = "https://github.com/theotherp/nzbhydra2";
license = licenses.asl20;
maintainers = with maintainers; [ matteopacini ];
platforms = with platforms; linux;
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ matteopacini ];
platforms = lib.platforms.linux;
mainProgram = "nzbhydra2";
};
}

View File

@ -1,4 +1,4 @@
{ lib, buildGoModule, fetchFromGitHub, installShellFiles, testers, rhoas }:
{ lib, buildGoModule, fetchFromGitHub, stdenv, installShellFiles, testers, rhoas }:
buildGoModule rec {
pname = "rhoas";
@ -24,11 +24,11 @@ buildGoModule rec {
# Networking tests fail.
doCheck = false;
postInstall = ''
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd rhoas \
--bash <($out/bin/rhoas completion bash) \
--fish <($out/bin/rhoas completion fish) \
--zsh <($out/bin/rhoas completion zsh)
--bash <(HOME=$TMP $out/bin/rhoas completion bash) \
--fish <(HOME=$TMP $out/bin/rhoas completion fish) \
--zsh <(HOME=$TMP $out/bin/rhoas completion zsh)
'';
passthru.tests.version = testers.testVersion {

View File

@ -5,19 +5,19 @@
rustPlatform.buildRustPackage rec {
pname = "wasm-tools";
version = "1.213.0";
version = "1.214.0";
src = fetchFromGitHub {
owner = "bytecodealliance";
repo = pname;
rev = "v${version}";
hash = "sha256-EuDy1lLh2GhRFkmkfyIdxXRwiCXVfSeQAFTp6peKNh0=";
hash = "sha256-YVb1SXwksmhvK6FqsKoT9SB6CglcW6A2/Zt6GXvioF4=";
fetchSubmodules = true;
};
# Disable cargo-auditable until https://github.com/rust-secure-code/cargo-auditable/issues/124 is solved.
auditable = false;
cargoHash = "sha256-g5djZoPYJXJ+AN0BKl6i8wmkGY/dAuie/twkaNcSZ+Q=";
cargoHash = "sha256-Mdjsng49/LdNzxZMz5py0thHQ8e786uKuI63rPor3g0=";
cargoBuildFlags = [ "--package" "wasm-tools" ];
cargoTestFlags = [ "--all" ];