Merge master into staging-next
This commit is contained in:
@@ -283,7 +283,10 @@ in {
|
||||
];
|
||||
|
||||
composerRepository = php.mkComposerRepository {
|
||||
inherit (finalAttrs) src;
|
||||
inherit (finalAttrs) pname version src;
|
||||
composerNoDev = true;
|
||||
composerNoPlugins = true;
|
||||
composerNoScripts = true;
|
||||
# Specifying a custom composer.lock since it is not present in the sources.
|
||||
composerLock = ./composer.lock;
|
||||
# The composer vendor hash
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
.Op Fl -root Ar root
|
||||
.Op Fl -system Ar path
|
||||
.Op Fl -flake Ar flake-uri
|
||||
.Op Fl -file | f Ar path
|
||||
.Op Fl -attr | A Ar attrPath
|
||||
.Op Fl -impure
|
||||
.Op Fl -channel Ar channel
|
||||
.Op Fl -no-channel-copy
|
||||
@@ -111,6 +113,32 @@ output named
|
||||
.Ql nixosConfigurations. Ns Ar name Ns
|
||||
\&.
|
||||
.
|
||||
.It Fl -file Ar path , Fl f Ar path
|
||||
Enable and build the NixOS system from the specified file. The file must
|
||||
evaluate to an attribute set, and it must contain a valid NixOS configuration
|
||||
at attribute
|
||||
.Va attrPath Ns
|
||||
\&. This is useful for building a NixOS system from a nix file that is not
|
||||
a flake or a NixOS configuration module. Attribute set a with valid NixOS
|
||||
configuration can be made using
|
||||
.Va nixos
|
||||
function in nixpkgs or importing and calling
|
||||
.Pa nixos/lib/eval-config.nix
|
||||
from nixpkgs. If specified without
|
||||
.Fl -attr
|
||||
option, builds the configuration from the top-level
|
||||
attribute of the file.
|
||||
.
|
||||
.It Fl -attr Ar attrPath , Fl A Ar attrPath
|
||||
Enable and build the NixOS system from nix file and use the specified attribute
|
||||
path from file specified by the
|
||||
.Fl -file
|
||||
option. If specified without
|
||||
.Fl -file
|
||||
option, uses
|
||||
.Va [root] Ns Pa /etc/nixos/default.nix Ns
|
||||
\&.
|
||||
.
|
||||
.It Fl -channel Ar channel
|
||||
If this option is provided, do not copy the current
|
||||
.Dq nixos
|
||||
|
||||
@@ -17,6 +17,9 @@ mountPoint=/mnt
|
||||
channelPath=
|
||||
system=
|
||||
verbosity=()
|
||||
attr=
|
||||
buildFile=
|
||||
buildingAttribute=1
|
||||
|
||||
while [ "$#" -gt 0 ]; do
|
||||
i="$1"; shift 1
|
||||
@@ -41,6 +44,24 @@ while [ "$#" -gt 0 ]; do
|
||||
flakeFlags=(--experimental-features 'nix-command flakes')
|
||||
shift 1
|
||||
;;
|
||||
--file|-f)
|
||||
if [ -z "$1" ]; then
|
||||
log "$0: '$i' requires an argument"
|
||||
exit 1
|
||||
fi
|
||||
buildFile="$1"
|
||||
buildingAttribute=
|
||||
shift 1
|
||||
;;
|
||||
--attr|-A)
|
||||
if [ -z "$1" ]; then
|
||||
log "$0: '$i' requires an argument"
|
||||
exit 1
|
||||
fi
|
||||
attr="$1"
|
||||
buildingAttribute=
|
||||
shift 1
|
||||
;;
|
||||
--recreate-lock-file|--no-update-lock-file|--no-write-lock-file|--no-registries|--commit-lock-file)
|
||||
lockFlags+=("$i")
|
||||
;;
|
||||
@@ -101,17 +122,30 @@ while [[ "$checkPath" != "/" ]]; do
|
||||
checkPath="$(dirname "$checkPath")"
|
||||
done
|
||||
|
||||
# Get the path of the NixOS configuration file.
|
||||
if [[ -z $NIXOS_CONFIG ]]; then
|
||||
NIXOS_CONFIG=$mountPoint/etc/nixos/configuration.nix
|
||||
fi
|
||||
|
||||
if [[ ${NIXOS_CONFIG:0:1} != / ]]; then
|
||||
echo "$0: \$NIXOS_CONFIG is not an absolute path"
|
||||
# Verify that user is not trying to use attribute building and flake
|
||||
# at the same time
|
||||
if [[ -z $buildingAttribute && -n $flake ]]; then
|
||||
echo "$0: '--flake' cannot be used with '--file' or '--attr'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -n $flake ]]; then
|
||||
# Get the path of the NixOS configuration file.
|
||||
if [[ -z $flake && -n $buildingAttribute ]]; then
|
||||
if [[ -z $NIXOS_CONFIG ]]; then
|
||||
NIXOS_CONFIG=$mountPoint/etc/nixos/configuration.nix
|
||||
fi
|
||||
|
||||
if [[ ${NIXOS_CONFIG:0:1} != / ]]; then
|
||||
echo "$0: \$NIXOS_CONFIG is not an absolute path"
|
||||
exit 1
|
||||
fi
|
||||
elif [[ -z $buildingAttribute ]]; then
|
||||
if [[ -z $buildFile ]]; then
|
||||
buildFile="$mountPoint/etc/nixos/default.nix"
|
||||
elif [[ -d $buildFile ]]; then
|
||||
buildFile="$buildFile/default.nix"
|
||||
fi
|
||||
elif [[ -n $flake ]]; then
|
||||
if [[ $flake =~ ^(.*)\#([^\#\"]*)$ ]]; then
|
||||
flake="${BASH_REMATCH[1]}"
|
||||
flakeAttr="${BASH_REMATCH[2]}"
|
||||
@@ -129,11 +163,16 @@ if [[ -n $flake ]]; then
|
||||
flake=$(nix "${flakeFlags[@]}" flake metadata --json "${extraBuildFlags[@]}" "${lockFlags[@]}" -- "$flake" | jq -r .url)
|
||||
fi
|
||||
|
||||
if [[ ! -e $NIXOS_CONFIG && -z $system && -z $flake ]]; then
|
||||
if [[ ! -e $NIXOS_CONFIG && -z $system && -z $flake && -n $buildingAttribute ]]; then
|
||||
echo "configuration file $NIXOS_CONFIG doesn't exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -z $buildingAttribute && -e $buildFile && -z $system ]]; then
|
||||
echo "configuration file $buildFile doesn't exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# A place to drop temporary stuff.
|
||||
tmpdir="$(mktemp -d -p "$mountPoint")"
|
||||
trap 'rm -rf $tmpdir' EXIT
|
||||
@@ -163,11 +202,20 @@ fi
|
||||
# Build the system configuration in the target filesystem.
|
||||
if [[ -z $system ]]; then
|
||||
outLink="$tmpdir/system"
|
||||
if [[ -z $flake ]]; then
|
||||
if [[ -z $flake && -n $buildingAttribute ]]; then
|
||||
echo "building the configuration in $NIXOS_CONFIG..."
|
||||
nix-build --out-link "$outLink" --store "$mountPoint" "${extraBuildFlags[@]}" \
|
||||
--extra-substituters "$sub" \
|
||||
'<nixpkgs/nixos>' -A system -I "nixos-config=$NIXOS_CONFIG" "${verbosity[@]}"
|
||||
elif [[ -z $buildingAttribute ]]; then
|
||||
if [[ -n $attr ]]; then
|
||||
echo "building the configuration in $buildFile and attribute $attr..."
|
||||
else
|
||||
echo "building the configuration in $buildFile..."
|
||||
fi
|
||||
nix-build --out-link "$outLink" --store "$mountPoint" "${extraBuildFlags[@]}" \
|
||||
--extra-substituters "$sub" \
|
||||
"$buildFile" -A "${attr:+$attr.}config.system.build.toplevel" "${verbosity[@]}"
|
||||
else
|
||||
echo "building the flake in $flake..."
|
||||
nix "${flakeFlags[@]}" build "$flake#$flakeAttr.config.system.build.toplevel" \
|
||||
|
||||
+5
-2
@@ -16,14 +16,14 @@ import ./make-test-python.nix ({ pkgs, ... }: {
|
||||
# list probes
|
||||
machine.succeed("bpftrace -l")
|
||||
# simple BEGIN probe (user probe on bpftrace itself)
|
||||
print(machine.succeed("bpftrace -e 'BEGIN { print(\"ok\"); exit(); }'"))
|
||||
print(machine.succeed("bpftrace -e 'BEGIN { print(\"ok\\n\"); exit(); }'"))
|
||||
# tracepoint
|
||||
print(machine.succeed("bpftrace -e 'tracepoint:syscalls:sys_enter_* { print(probe); exit() }'"))
|
||||
# kprobe
|
||||
print(machine.succeed("bpftrace -e 'kprobe:schedule { print(probe); exit() }'"))
|
||||
# BTF
|
||||
print(machine.succeed("bpftrace -e 'kprobe:schedule { "
|
||||
" printf(\"tgid: %d\", ((struct task_struct*) curtask)->tgid); exit() "
|
||||
" printf(\"tgid: %d\\n\", ((struct task_struct*) curtask)->tgid); exit() "
|
||||
"}'"))
|
||||
# module BTF (bpftrace >= 0.17)
|
||||
# test is currently disabled on aarch64 as kfunc does not work there yet
|
||||
@@ -32,5 +32,8 @@ import ./make-test-python.nix ({ pkgs, ... }: {
|
||||
"bpftrace -e 'kfunc:nft_trans_alloc_gfp { "
|
||||
" printf(\"portid: %d\\n\", args->ctx->portid); "
|
||||
"} BEGIN { exit() }'"))
|
||||
# glibc includes
|
||||
print(machine.succeed("bpftrace -e '#include <errno.h>\n"
|
||||
"BEGIN { printf(\"ok %d\\n\", EINVAL); exit(); }'"))
|
||||
'';
|
||||
})
|
||||
|
||||
+132
-5
@@ -11,7 +11,7 @@ let
|
||||
|
||||
# The configuration to install.
|
||||
makeConfig = { bootLoader, grubDevice, grubIdentifier, grubUseEfi
|
||||
, extraConfig, forceGrubReinstallCount ? 0, flake ? false
|
||||
, extraConfig, forceGrubReinstallCount ? 0, withTestInstrumentation ? true
|
||||
, clevisTest
|
||||
}:
|
||||
pkgs.writeText "configuration.nix" ''
|
||||
@@ -19,7 +19,7 @@ let
|
||||
|
||||
{ imports =
|
||||
[ ./hardware-configuration.nix
|
||||
${if flake
|
||||
${if !withTestInstrumentation
|
||||
then "" # Still included, but via installer/flake.nix
|
||||
else "<nixpkgs/nixos/modules/testing/test-instrumentation.nix>"}
|
||||
];
|
||||
@@ -81,7 +81,7 @@ let
|
||||
# partitions and filesystems.
|
||||
testScriptFun = { bootLoader, createPartitions, grubDevice, grubUseEfi, grubIdentifier
|
||||
, postInstallCommands, postBootCommands, extraConfig
|
||||
, testSpecialisationConfig, testFlakeSwitch, clevisTest, clevisFallbackTest
|
||||
, testSpecialisationConfig, testFlakeSwitch, testByAttrSwitch, clevisTest, clevisFallbackTest
|
||||
, disableFileSystems
|
||||
}:
|
||||
let
|
||||
@@ -316,6 +316,119 @@ let
|
||||
|
||||
target.shutdown()
|
||||
''
|
||||
+ optionalString testByAttrSwitch ''
|
||||
with subtest("Configure system with attribute set"):
|
||||
target.succeed("""
|
||||
mkdir /root/my-config
|
||||
mv /etc/nixos/hardware-configuration.nix /root/my-config/
|
||||
rm /etc/nixos/configuration.nix
|
||||
""")
|
||||
target.copy_from_host_via_shell(
|
||||
"${makeConfig {
|
||||
inherit bootLoader grubDevice grubIdentifier grubUseEfi extraConfig clevisTest;
|
||||
forceGrubReinstallCount = 1;
|
||||
withTestInstrumentation = false;
|
||||
}}",
|
||||
"/root/my-config/configuration.nix",
|
||||
)
|
||||
target.copy_from_host_via_shell(
|
||||
"${./installer/byAttrWithChannel.nix}",
|
||||
"/root/my-config/default.nix",
|
||||
)
|
||||
with subtest("Switch to attribute set based config with channels"):
|
||||
target.succeed("nixos-rebuild switch --file /root/my-config/default.nix")
|
||||
|
||||
target.shutdown()
|
||||
|
||||
${startTarget}
|
||||
|
||||
target.succeed("""
|
||||
rm /root/my-config/default.nix
|
||||
""")
|
||||
target.copy_from_host_via_shell(
|
||||
"${./installer/byAttrNoChannel.nix}",
|
||||
"/root/my-config/default.nix",
|
||||
)
|
||||
|
||||
target.succeed("""
|
||||
pkgs=$(readlink -f /nix/var/nix/profiles/per-user/root/channels)/nixos
|
||||
if ! [[ -e $pkgs/pkgs/top-level/default.nix ]]; then
|
||||
echo 1>&2 "$pkgs does not seem to be a nixpkgs source. Please fix the test so that pkgs points to a nixpkgs source.";
|
||||
exit 1;
|
||||
fi
|
||||
sed -e s^@nixpkgs@^$pkgs^ -i /root/my-config/default.nix
|
||||
|
||||
""")
|
||||
|
||||
with subtest("Switch to attribute set based config without channels"):
|
||||
target.succeed("nixos-rebuild switch --file /root/my-config/default.nix")
|
||||
|
||||
target.shutdown()
|
||||
|
||||
${startTarget}
|
||||
|
||||
with subtest("nix-channel command is not available anymore"):
|
||||
target.succeed("! which nix-channel")
|
||||
|
||||
with subtest("builtins.nixPath is now empty"):
|
||||
target.succeed("""
|
||||
[[ "[ ]" == "$(nix-instantiate builtins.nixPath --eval --expr)" ]]
|
||||
""")
|
||||
|
||||
with subtest("<nixpkgs> does not resolve"):
|
||||
target.succeed("""
|
||||
! nix-instantiate '<nixpkgs>' --eval --expr
|
||||
""")
|
||||
|
||||
with subtest("Evaluate attribute set based config in fresh env without nix-channel"):
|
||||
target.succeed("nixos-rebuild switch --file /root/my-config/default.nix")
|
||||
|
||||
with subtest("Evaluate attribute set based config in fresh env without channel profiles"):
|
||||
target.succeed("""
|
||||
(
|
||||
exec 1>&2
|
||||
mkdir -p /root/restore
|
||||
mv -v /root/.nix-channels /root/restore/
|
||||
mv -v ~/.nix-defexpr /root/restore/
|
||||
mkdir -p /root/restore/channels
|
||||
mv -v /nix/var/nix/profiles/per-user/root/channels* /root/restore/channels/
|
||||
)
|
||||
""")
|
||||
target.succeed("nixos-rebuild switch --file /root/my-config/default.nix")
|
||||
''
|
||||
+ optionalString (testByAttrSwitch && testFlakeSwitch) ''
|
||||
with subtest("Restore channel profiles"):
|
||||
target.succeed("""
|
||||
(
|
||||
exec 1>&2
|
||||
mv -v /root/restore/.nix-channels /root/
|
||||
mv -v /root/restore/.nix-defexpr ~/.nix-defexpr
|
||||
mv -v /root/restore/channels/* /nix/var/nix/profiles/per-user/root/
|
||||
rm -vrf /root/restore
|
||||
)
|
||||
""")
|
||||
|
||||
with subtest("Restore /etc/nixos"):
|
||||
target.succeed("""
|
||||
mv -v /root/my-config/hardware-configuration.nix /etc/nixos/
|
||||
""")
|
||||
target.copy_from_host_via_shell(
|
||||
"${makeConfig {
|
||||
inherit bootLoader grubDevice grubIdentifier grubUseEfi extraConfig clevisTest;
|
||||
forceGrubReinstallCount = 1;
|
||||
}}",
|
||||
"/etc/nixos/configuration.nix",
|
||||
)
|
||||
|
||||
with subtest("Restore /root/my-config"):
|
||||
target.succeed("""
|
||||
rm -vrf /root/my-config
|
||||
""")
|
||||
|
||||
''
|
||||
+ optionalString (testByAttrSwitch && !testFlakeSwitch) ''
|
||||
target.shutdown()
|
||||
''
|
||||
+ optionalString testFlakeSwitch ''
|
||||
${startTarget}
|
||||
|
||||
@@ -330,7 +443,7 @@ let
|
||||
"${makeConfig {
|
||||
inherit bootLoader grubDevice grubIdentifier grubUseEfi extraConfig clevisTest;
|
||||
forceGrubReinstallCount = 1;
|
||||
flake = true;
|
||||
withTestInstrumentation = false;
|
||||
}}",
|
||||
"/root/my-config/configuration.nix",
|
||||
)
|
||||
@@ -399,6 +512,7 @@ let
|
||||
, enableOCR ? false, meta ? {}
|
||||
, testSpecialisationConfig ? false
|
||||
, testFlakeSwitch ? false
|
||||
, testByAttrSwitch ? false
|
||||
, clevisTest ? false
|
||||
, clevisFallbackTest ? false
|
||||
, disableFileSystems ? false
|
||||
@@ -533,7 +647,7 @@ let
|
||||
testScript = testScriptFun {
|
||||
inherit bootLoader createPartitions postInstallCommands postBootCommands
|
||||
grubDevice grubIdentifier grubUseEfi extraConfig
|
||||
testSpecialisationConfig testFlakeSwitch clevisTest clevisFallbackTest
|
||||
testSpecialisationConfig testFlakeSwitch testByAttrSwitch clevisTest clevisFallbackTest
|
||||
disableFileSystems;
|
||||
};
|
||||
};
|
||||
@@ -589,6 +703,15 @@ let
|
||||
testFlakeSwitch = true;
|
||||
};
|
||||
|
||||
simple-test-config-by-attr = simple-test-config // {
|
||||
testByAttrSwitch = true;
|
||||
};
|
||||
|
||||
simple-test-config-from-by-attr-to-flake = simple-test-config // {
|
||||
testByAttrSwitch = true;
|
||||
testFlakeSwitch = true;
|
||||
};
|
||||
|
||||
simple-uefi-grub-config = {
|
||||
createPartitions = ''
|
||||
installer.succeed(
|
||||
@@ -782,6 +905,10 @@ in {
|
||||
|
||||
switchToFlake = makeInstallerTest "switch-to-flake" simple-test-config-flake;
|
||||
|
||||
switchToByAttr = makeInstallerTest "switch-to-by-attr" simple-test-config-by-attr;
|
||||
|
||||
switchFromByAttrToFlake = makeInstallerTest "switch-from-by-attr-to-flake" simple-test-config-from-by-attr-to-flake;
|
||||
|
||||
# Test cloned configurations with the simple grub configuration
|
||||
simpleSpecialised = makeInstallerTest "simpleSpecialised" (simple-test-config // specialisation-test-extraconfig);
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# This file gets copied into the installation
|
||||
|
||||
let
|
||||
nixpkgs = "@nixpkgs@";
|
||||
in
|
||||
|
||||
{ evalConfig ? import "${nixpkgs}/nixos/lib/eval-config.nix" }:
|
||||
|
||||
evalConfig {
|
||||
modules = [
|
||||
./configuration.nix
|
||||
( import "${nixpkgs}/nixos/modules/testing/test-instrumentation.nix" )
|
||||
{
|
||||
# Disable nix channels
|
||||
nix.channel.enable = false;
|
||||
}
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
# This file gets copied into the installation
|
||||
|
||||
{ evalConfig ? import <nixpkgs/nixos/lib/eval-config.nix> }:
|
||||
|
||||
evalConfig {
|
||||
modules = [
|
||||
./configuration.nix
|
||||
( import <nixpkgs/nixos/modules/testing/test-instrumentation.nix> )
|
||||
];
|
||||
}
|
||||
@@ -5,7 +5,7 @@ python3Packages.buildPythonApplication rec {
|
||||
version = "1.1.5";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-wg9zcOKfZQRhpyA1Cu5wvdwKpmrlcr2m9mrqBHgUXAQ=";
|
||||
hash = "sha256-wg9zcOKfZQRhpyA1Cu5wvdwKpmrlcr2m9mrqBHgUXAQ=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [ mopidy pykka ];
|
||||
|
||||
@@ -6,7 +6,7 @@ python3Packages.buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-PEAXnapiyxozijR053I7zQYRYLeDOV719L0QbO2r4r4=";
|
||||
hash = "sha256-PEAXnapiyxozijR053I7zQYRYLeDOV719L0QbO2r4r4=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
@@ -7,7 +7,7 @@ python3Packages.buildPythonApplication rec {
|
||||
src = fetchPypi {
|
||||
inherit version;
|
||||
pname = "Mopidy-Jellyfin";
|
||||
sha256 = "sha256-cZliraTxTAJ2dXaxttWI3x4wCkmEhEo33GTNtAYwgTc=";
|
||||
hash = "sha256-cZliraTxTAJ2dXaxttWI3x4wCkmEhEo33GTNtAYwgTc=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ mopidy python3Packages.unidecode python3Packages.websocket-client ];
|
||||
|
||||
@@ -6,7 +6,7 @@ pythonPackages.buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-RlCC+39zC+LeA/QDWPHYx5TrEwOgVrnvcH1Xg12qSLE=";
|
||||
hash = "sha256-RlCC+39zC+LeA/QDWPHYx5TrEwOgVrnvcH1Xg12qSLE=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with pythonPackages; [ mopidy configobj ];
|
||||
|
||||
@@ -6,7 +6,7 @@ python3Packages.buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-CeLMRqj9cwBvQrOx7XHVV8MjDjwOosONVlsN2o+vTVM=";
|
||||
hash = "sha256-CeLMRqj9cwBvQrOx7XHVV8MjDjwOosONVlsN2o+vTVM=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ mopidy ];
|
||||
|
||||
@@ -7,7 +7,7 @@ python3Packages.buildPythonApplication rec {
|
||||
src = fetchPypi {
|
||||
inherit version;
|
||||
pname = "Mopidy-MPRIS";
|
||||
sha256 = "sha256-rHQgNIyludTEL7RDC8dIpyGTMOt1Tazn6i/orKlSP4U=";
|
||||
hash = "sha256-rHQgNIyludTEL7RDC8dIpyGTMOt1Tazn6i/orKlSP4U=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
@@ -7,7 +7,7 @@ pythonPackages.buildPythonApplication rec {
|
||||
src = fetchPypi {
|
||||
inherit version;
|
||||
pname = "Mopidy-Muse";
|
||||
sha256 = "sha256-CEPAPWtMrD+HljyqBB6EAyGVeOjzkvVoEywlE4XEJGs=";
|
||||
hash = "sha256-CEPAPWtMrD+HljyqBB6EAyGVeOjzkvVoEywlE4XEJGs=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
@@ -6,7 +6,7 @@ pythonPackages.buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-8FT4O4k0wEsdHA1vJaOW9UamJ3QLyO47HwL5XcSU3Pc=";
|
||||
hash = "sha256-8FT4O4k0wEsdHA1vJaOW9UamJ3QLyO47HwL5XcSU3Pc=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
@@ -7,7 +7,7 @@ python3Packages.buildPythonApplication rec {
|
||||
src = fetchPypi {
|
||||
inherit version;
|
||||
pname = "Mopidy-Podcast";
|
||||
sha256 = "sha256-grNPVEVM2PlpYhBXe6sabFjWVB9+q+apIRjcHUxH52A=";
|
||||
hash = "sha256-grNPVEVM2PlpYhBXe6sabFjWVB9+q+apIRjcHUxH52A=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
@@ -5,7 +5,7 @@ python3Packages.buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-XJMkiQR1FoeIPfAuJT22kfYJdc/ABuxExELh0EEev8k=";
|
||||
hash = "sha256-XJMkiQR1FoeIPfAuJT22kfYJdc/ABuxExELh0EEev8k=";
|
||||
};
|
||||
|
||||
preBuild = ''
|
||||
|
||||
@@ -87,6 +87,7 @@
|
||||
glib
|
||||
, gobject-introspection
|
||||
, wrapGAppsHook3
|
||||
, writeText
|
||||
, # sniprun dependencies
|
||||
bashInteractive
|
||||
, coreutils
|
||||
@@ -1482,12 +1483,19 @@
|
||||
install -Dt $out/bin ftplugin/evinceSync.py
|
||||
'';
|
||||
};
|
||||
# the vim plugin expects evinceSync.py to be a python file, but it is a C wrapper
|
||||
pythonWrapper = writeText "evinceSync-wrapper.py" /* python */ ''
|
||||
#!${python3}/bin/python3
|
||||
import os
|
||||
import sys
|
||||
os.execv("${svedbackend}/bin/evinceSync.py", sys.argv)
|
||||
'';
|
||||
in
|
||||
super.sved.overrideAttrs {
|
||||
preferLocalBuild = true;
|
||||
postPatch = ''
|
||||
rm ftplugin/evinceSync.py
|
||||
ln -s ${svedbackend}/bin/evinceSync.py ftplugin/evinceSync.py
|
||||
install -m 544 ${pythonWrapper} ftplugin/evinceSync.py
|
||||
'';
|
||||
meta = {
|
||||
description = "synctex support between vim/neovim and evince";
|
||||
|
||||
@@ -30,21 +30,21 @@ let
|
||||
archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
|
||||
|
||||
sha256 = {
|
||||
x86_64-linux = "0bzf0mx1rgndpdd4a97kr01xsgsgp86gyscg8js2cvaad4265bmv";
|
||||
x86_64-darwin = "1m7f91cqbbv00difvfqld8fqkj9kvyddihmzi3zyzn4gfkv8gvf0";
|
||||
aarch64-linux = "09mxsk4qkq34yg1sd67cdasfxwdhdzcfij50fv1nl3kdjzp2i0iz";
|
||||
aarch64-darwin = "1jxjzfz6gr0pcp2anwjqwm38ma2i8fnzf5zpscfdklrlbhf438k2";
|
||||
armv7l-linux = "1yp4npgw4dkx8halsr1vm5ll1w4phx67dwd4krz1914mddx7x2kr";
|
||||
x86_64-linux = "0ighhwwmc8cxdabq2wkzzr21sv6zaj90pnqi2cy8krfwm88w6jc0";
|
||||
x86_64-darwin = "1fbpw0xib9vm47ab028frg789vgmkpwcdxs8m2in7ywrckl6xycy";
|
||||
aarch64-linux = "0n0f518xl1fh17llsd159ldi50z2vihkghfq7plfnbnngpf0swy9";
|
||||
aarch64-darwin = "03v3869yblx03j0c3njlvg7qgdmqrg8jvj9s1iyhqw1xpb2lc41c";
|
||||
armv7l-linux = "12dv0vqqzriqr8ysjjx62hy2b41dky2p0rcr11wznqi259bryckr";
|
||||
}.${system} or throwSystem;
|
||||
in
|
||||
callPackage ./generic.nix rec {
|
||||
# Please backport all compatible updates to the stable release.
|
||||
# This is important for the extension ecosystem.
|
||||
version = "1.91.0";
|
||||
version = "1.91.1";
|
||||
pname = "vscode" + lib.optionalString isInsiders "-insiders";
|
||||
|
||||
# This is used for VS Code - Remote SSH test
|
||||
rev = "ea1445cc7016315d0f5728f8e8b12a45dc0a7286";
|
||||
rev = "f1e16e1e6214d7c44d078b1f0607b2388f29d729";
|
||||
|
||||
executableName = "code" + lib.optionalString isInsiders "-insiders";
|
||||
longName = "Visual Studio Code" + lib.optionalString isInsiders " - Insiders";
|
||||
@@ -68,7 +68,7 @@ in
|
||||
src = fetchurl {
|
||||
name = "vscode-server-${rev}.tar.gz";
|
||||
url = "https://update.code.visualstudio.com/commit:${rev}/server-linux-x64/stable";
|
||||
sha256 = "08mgfrwiji16q8x8kwmw3pdmb0325hfr9pd2fa5g5kmy9gnfw38v";
|
||||
sha256 = "0k38pkfz9kpbpx0n50iq531mrm7qxqggks092cs4zicv815jk8wg";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-3fVo+B71SsJs+XF4+FWH2nz0ouTnpC/02fXYr1C9Jrk=";
|
||||
hash = "sha256-3fVo+B71SsJs+XF4+FWH2nz0ouTnpC/02fXYr1C9Jrk=";
|
||||
};
|
||||
|
||||
# Relax requirements from "==" to ">="
|
||||
|
||||
@@ -7,7 +7,7 @@ python3Packages.buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-AjE+1MkSkZOtEUPKEPBKQ3n+aOB8cwsorBpL5skNskU=";
|
||||
hash = "sha256-AjE+1MkSkZOtEUPKEPBKQ3n+aOB8cwsorBpL5skNskU=";
|
||||
};
|
||||
|
||||
doCheck = false; # there are no tests
|
||||
|
||||
@@ -6,7 +6,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-WfMKDaPD2j6wT02+GO5HY5E7aF2Z7IQY/VdKiMSRxJA=";
|
||||
hash = "sha256-WfMKDaPD2j6wT02+GO5HY5E7aF2Z7IQY/VdKiMSRxJA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with python3.pkgs; [
|
||||
|
||||
@@ -6,7 +6,7 @@ python3Packages.buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-L/hu0mYCAxHkp5me96a6HlEY6QsuJDESpTNhlzVRHWs=";
|
||||
hash = "sha256-L/hu0mYCAxHkp5me96a6HlEY6QsuJDESpTNhlzVRHWs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ python3Packages.setuptools-scm ];
|
||||
|
||||
@@ -6,7 +6,7 @@ buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-82P9tE3jiUlKBGZCiWDoL+9VJ06Bc+If+aMfcEEU90U=";
|
||||
hash = "sha256-82P9tE3jiUlKBGZCiWDoL+9VJ06Bc+If+aMfcEEU90U=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [ screeninfo paramiko pynput libevdev ];
|
||||
|
||||
@@ -7,7 +7,7 @@ python3Packages.buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-RBs28FC7f82DrxRcmvTP9nljVpm7tjrGuvr05l32hDM=";
|
||||
hash = "sha256-RBs28FC7f82DrxRcmvTP9nljVpm7tjrGuvr05l32hDM=";
|
||||
};
|
||||
|
||||
doCheck = false; # there are no tests
|
||||
|
||||
@@ -35,14 +35,14 @@ https://github.com/NixOS/nixpkgs/issues/199596#issuecomment-1310136382 */
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
version = "1.5.4";
|
||||
version = "1.5.5";
|
||||
pname = "syncthingtray";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Martchus";
|
||||
repo = "syncthingtray";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-3Z9heiQiuYzWtReKs/XeA+ENRKgxHR74ANzrDcdyjh4=";
|
||||
hash = "sha256-NfFB+4cqe1rHqc+w0Enl9h33gPjJ3CfrFpyOhysmz0Q=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
, libappindicator-gtk3
|
||||
, libnotify
|
||||
, librsvg
|
||||
, python3
|
||||
, python3Packages
|
||||
, udisks2
|
||||
, wrapGAppsHook3
|
||||
, testers
|
||||
, udiskie
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "udiskie";
|
||||
version = "2.5.2";
|
||||
version = "2.5.3";
|
||||
|
||||
pyproject = true;
|
||||
|
||||
@@ -24,7 +24,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
owner = "coldfix";
|
||||
repo = "udiskie";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-r9ppuWYY3e2thsfFh4ooOgfqNvmCVw7fS0SpJCJcysQ=";
|
||||
hash = "sha256-asrVQR0d+5l76COsXp88srtGZQHU+AwbP3HwDiwRlnE=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@@ -39,10 +39,13 @@ python3.pkgs.buildPythonApplication rec {
|
||||
asciidoc # Man page
|
||||
gobject-introspection
|
||||
installShellFiles
|
||||
python3.pkgs.setuptools
|
||||
wrapGAppsHook3
|
||||
];
|
||||
|
||||
build-system = with python3Packages; [
|
||||
setuptools
|
||||
];
|
||||
|
||||
dontWrapGApps = true;
|
||||
|
||||
buildInputs = [
|
||||
@@ -53,7 +56,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
udisks2
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
dependencies = with python3Packages; [
|
||||
docopt
|
||||
keyutils
|
||||
pygobject3
|
||||
@@ -76,7 +79,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||
'';
|
||||
|
||||
nativeCheckInputs = with python3.pkgs; [
|
||||
nativeCheckInputs = with python3Packages; [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-qDfY6GWnDQ44Sh540xQzDwANEI+mLjpy2a7G3sfKIzw=";
|
||||
hash = "sha256-qDfY6GWnDQ44Sh540xQzDwANEI+mLjpy2a7G3sfKIzw=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
@@ -6,7 +6,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-/HkLJ0dRXdGcZz77uOTJrOX0xc3DH45/k9xmfesuxsg=";
|
||||
hash = "sha256-/HkLJ0dRXdGcZz77uOTJrOX0xc3DH45/k9xmfesuxsg=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [ python-dateutil tornado python-daemon boto3 tenacity ];
|
||||
|
||||
@@ -12,7 +12,7 @@ buildPythonApplication rec {
|
||||
version = "2.1.1";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-21gd6sPYCZll3Q2O7kucTRhXvc5byXeQr50+1bZVT3M=";
|
||||
hash = "sha256-21gd6sPYCZll3Q2O7kucTRhXvc5byXeQr50+1bZVT3M=";
|
||||
};
|
||||
|
||||
buildInputs = [python.pkgs.sphinx];
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, python310Packages
|
||||
, testers
|
||||
@@ -10,13 +9,13 @@ python310Packages.buildPythonApplication rec {
|
||||
pname = "stig";
|
||||
# This project has a different concept for pre release / alpha,
|
||||
# Read the project's README for details: https://github.com/rndusr/stig#stig
|
||||
version = "0.12.8a0";
|
||||
version = "0.12.10a0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rndusr";
|
||||
repo = "stig";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-vfmuA6DqWvAygcS6N+qX1h+Ag+P4eOwm41DhAFZR3r8=";
|
||||
sha256 = "sha256-lSFI4/DxWl17KFgLXZ7c5nW/e5IUGN7s8Gm6wTM5ZWg=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python310Packages; [
|
||||
@@ -58,12 +57,13 @@ python310Packages.buildPythonApplication rec {
|
||||
version = "stig version ${version}";
|
||||
};
|
||||
|
||||
# https://github.com/rndusr/stig/issues/214#issuecomment-1995651219
|
||||
dontUsePytestCheck = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "TUI and CLI for the BitTorrent client Transmission";
|
||||
homepage = "https://github.com/rndusr/stig";
|
||||
license = licenses.gpl3Plus;
|
||||
# Too many broken tests, and it fails to launch
|
||||
broken = true;
|
||||
maintainers = with maintainers; [ ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ python3Packages.buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-XIPzpVIttTgP34rbA705vFoRZE9dj8Of3BR23DbpQPk=";
|
||||
hash = "sha256-XIPzpVIttTgP34rbA705vFoRZE9dj8Of3BR23DbpQPk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -12,7 +12,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-2QCFUV7FpNiqGPHLXAMHJcnCn9FOk1mx12P9ZDtvVvg=";
|
||||
hash = "sha256-2QCFUV7FpNiqGPHLXAMHJcnCn9FOk1mx12P9ZDtvVvg=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -6,7 +6,7 @@ python3Packages.buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-79xNPzYP1j71sU5wZM5e2xTqQExqQEdxXPxbk4T/Scw=";
|
||||
hash = "sha256-79xNPzYP1j71sU5wZM5e2xTqQExqQEdxXPxbk4T/Scw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with python3Packages; [
|
||||
|
||||
@@ -9,7 +9,7 @@ python3Packages.buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-lJOWtoApqK9AWrIMkBkCNB72vVXH/sbatxFB1j1AaxE=";
|
||||
hash = "sha256-lJOWtoApqK9AWrIMkBkCNB72vVXH/sbatxFB1j1AaxE=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
, CoreServices
|
||||
, Foundation
|
||||
, Security
|
||||
, testers
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -31,14 +32,14 @@ let
|
||||
{ name = "contrib"; path = "${src}/contrib"; }
|
||||
];
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: rec {
|
||||
pname = "p4";
|
||||
version = "2022.2.2407422";
|
||||
version = "2024.1/2596294";
|
||||
|
||||
src = fetchurl {
|
||||
# Upstream replaces minor versions, so use archived URL.
|
||||
url = "https://web.archive.org/web/20230512173806id_/https://ftp.perforce.com/perforce/r22.2/bin.tools/p4source.tgz";
|
||||
sha256 = "4355375def3f3d2256d4a92ac1b9960173e7aa97404346c0c74caf23a0905e1b";
|
||||
url = "https://web.archive.org/web/20240526153453id_/https://ftp.perforce.com/perforce/r24.1/bin.tools/p4source.tgz";
|
||||
sha256 = "sha256-6+DOJPeVzP4x0UsN9MlZRAyusapBTICX0BuyvVBQBC8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ jam ];
|
||||
@@ -92,11 +93,16 @@ stdenv.mkDerivation rec {
|
||||
runHook preInstall
|
||||
mkdir -p $bin/bin $dev $out
|
||||
cp bin.unix/p4 $bin/bin
|
||||
cp -r bin.unix/p4api-${version}/include $dev
|
||||
cp -r bin.unix/p4api-${version}/lib $out
|
||||
cp -r bin.unix/p4api-*/include $dev
|
||||
cp -r bin.unix/p4api-*/lib $out
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru.tests.version = testers.testVersion {
|
||||
package = finalAttrs.finalPackage;
|
||||
command = "p4 -V";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Perforce Helix Core command-line client and APIs";
|
||||
homepage = "https://www.perforce.com";
|
||||
@@ -105,4 +111,4 @@ stdenv.mkDerivation rec {
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ corngood impl ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -2,28 +2,30 @@
|
||||
, fetchurl
|
||||
, lib
|
||||
, callPackage
|
||||
, libsForQt5
|
||||
, qt6Packages
|
||||
}:
|
||||
|
||||
let
|
||||
# Upstream replaces minor versions, so use archived URLs.
|
||||
srcs = {
|
||||
"x86_64-linux" = fetchurl {
|
||||
url = "https://web.archive.org/web/20220902181457id_/https://ftp.perforce.com/perforce/r22.2/bin.linux26x86_64/p4v.tgz";
|
||||
sha256 = "8fdade4aafe25f568a61cfd80823aa90599c2a404b7c6b4a0862c84b07a9f8d2";
|
||||
srcs = rec {
|
||||
x86_64-linux = fetchurl {
|
||||
url = "https://web.archive.org/web/20240612193642id_/https://ftp.perforce.com/perforce/r24.2/bin.linux26x86_64/p4v.tgz";
|
||||
sha256 = "sha256-HA99fHcmgli/vVnr0M8ZJEsaZ2ZLzpG3M8S77oDYJyE=";
|
||||
};
|
||||
"x86_64-darwin" = fetchurl {
|
||||
url = "https://web.archive.org/web/20220902194716id_/https://ftp.perforce.com/perforce/r22.2/bin.macosx1015x86_64/P4V.dmg";
|
||||
sha256 = "c4a9460c0f849be193c68496c500f8a785c740f5bea5b5e7f617969c20be3cd7";
|
||||
aarch64-darwin = fetchurl {
|
||||
url = "https://web.archive.org/web/20240612194532id_/https://ftp.perforce.com/perforce/r24.2/bin.macosx12u/P4V.dmg";
|
||||
sha256 = "sha256-PS7gfDdWspyL//YWLkrsGi5wh6SIeAry2yef1/V0d6o=";
|
||||
};
|
||||
# this is universal
|
||||
x86_64-darwin = aarch64-darwin;
|
||||
};
|
||||
|
||||
mkDerivation =
|
||||
if stdenv.isDarwin then callPackage ./darwin.nix { }
|
||||
else libsForQt5.callPackage ./linux.nix { };
|
||||
else qt6Packages.callPackage ./linux.nix { };
|
||||
in mkDerivation {
|
||||
pname = "p4v";
|
||||
version = "2022.2.2336701";
|
||||
version = "2024.2/2606884";
|
||||
|
||||
src = srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||
|
||||
|
||||
@@ -17,8 +17,12 @@
|
||||
, libxcb
|
||||
, libxkbcommon
|
||||
, nss
|
||||
, qtbase
|
||||
, qtmultimedia
|
||||
, qtsvg
|
||||
, qttools
|
||||
, qtwebengine
|
||||
, qtwebview
|
||||
, xcbutilimage
|
||||
, xcbutilkeysyms
|
||||
, xcbutilrenderutil
|
||||
@@ -50,8 +54,12 @@ let
|
||||
libxcb
|
||||
libxkbcommon
|
||||
nss
|
||||
qtbase
|
||||
qtmultimedia
|
||||
qtsvg
|
||||
qttools
|
||||
qtwebengine
|
||||
qtwebview
|
||||
xcbutilimage
|
||||
xcbutilkeysyms
|
||||
xcbutilrenderutil
|
||||
@@ -63,10 +71,19 @@ let
|
||||
# Don't wrap the Qt apps; upstream has its own wrapper scripts.
|
||||
dontWrapQtApps = true;
|
||||
|
||||
postPatch = ''
|
||||
rm -r lib/plugins lib/libQt6* lib/libssl* lib/libicu* lib/libcrypto*
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp -r bin lib $out
|
||||
addAutoPatchelfSearchPath $out/lib
|
||||
ln -s "${qtbase}/${qtbase.qtPluginPrefix}" $out/lib/plugins
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
patchelf --clear-symbol-version close $out/bin/p4{v,admin}.bin
|
||||
'';
|
||||
};
|
||||
in
|
||||
|
||||
@@ -11,7 +11,7 @@ buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-OwREpfWaP0tdAjMGjGpVIAQn8rlTTjSfT+0t5g/2yjQ=";
|
||||
hash = "sha256-OwREpfWaP0tdAjMGjGpVIAQn8rlTTjSfT+0t5g/2yjQ=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ ffmpeg ffmpeg-progress-yield ];
|
||||
|
||||
@@ -22,7 +22,7 @@ buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-EANaNmvD8hcdGB2aoGemKvA9syS1VvIqGsP1jk0b+lE=";
|
||||
hash = "sha256-EANaNmvD8hcdGB2aoGemKvA9syS1VvIqGsP1jk0b+lE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -6,7 +6,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-zJdn/Q6r60FQgfehtQfeDkmN0Rz3ZaqgNhiWvjyQFy0=";
|
||||
hash = "sha256-zJdn/Q6r60FQgfehtQfeDkmN0Rz3ZaqgNhiWvjyQFy0=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ i3ipc ];
|
||||
|
||||
@@ -6,7 +6,7 @@ buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-13FKRvEE4vHq5G51G1UyBnfNiWeS9Q/SYCG16E1Sn4c=";
|
||||
hash = "sha256-13FKRvEE4vHq5G51G1UyBnfNiWeS9Q/SYCG16E1Sn4c=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ click psutil xprop natsort i3ipc xdotool importlib-metadata ];
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{ lib
|
||||
, runtimeShell
|
||||
, stdenvNoCC
|
||||
, callPackage
|
||||
, substituteAll
|
||||
, writeShellScript
|
||||
, srcOnly
|
||||
, linkFarmFromDrvs
|
||||
@@ -202,131 +204,48 @@ stdenvNoCC.mkDerivation (args // {
|
||||
passthru = {
|
||||
inherit nuget-source;
|
||||
} // lib.optionalAttrs (!lib.isDerivation nugetDeps) {
|
||||
fetch-deps =
|
||||
let
|
||||
flags = dotnetFlags ++ dotnetRestoreFlags;
|
||||
runtimeIds =
|
||||
if runtimeId != null
|
||||
then [ runtimeId ]
|
||||
else map (system: dotnetCorePackages.systemToDotnetRid system) platforms;
|
||||
defaultDepsFile =
|
||||
# Wire in the nugetDeps file such that running the script with no args
|
||||
# runs it agains the correct deps file by default.
|
||||
# Note that toString is necessary here as it results in the path at
|
||||
# eval time (i.e. to the file in your local Nixpkgs checkout) rather
|
||||
# than the Nix store path of the path after it's been imported.
|
||||
if lib.isPath nugetDepsFile && !lib.hasPrefix "${builtins.storeDir}/" (toString nugetDepsFile)
|
||||
then toString nugetDepsFile
|
||||
else ''$(mktemp -t "${pname}-deps-XXXXXX.nix")'';
|
||||
in
|
||||
writeShellScript "fetch-${pname}-deps" ''
|
||||
set -euo pipefail
|
||||
|
||||
export PATH="${lib.makeBinPath [ coreutils runtimeShellPackage dotnet-sdk (nuget-to-nix.override { inherit dotnet-sdk; }) ]}"
|
||||
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
--keep-sources|-k)
|
||||
keepSources=1
|
||||
shift
|
||||
;;
|
||||
--help|-h)
|
||||
echo "usage: $0 [--keep-sources] [--help] <output path>"
|
||||
echo " <output path> The path to write the lockfile to. A temporary file is used if this is not set"
|
||||
echo " --keep-sources Dont remove temporary directories upon exit, useful for debugging"
|
||||
echo " --help Show this help message"
|
||||
exit
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ ''${TMPDIR:-} == /run/user/* ]]; then
|
||||
# /run/user is usually a tmpfs in RAM, which may be too small
|
||||
# to store all downloaded dotnet packages
|
||||
unset TMPDIR
|
||||
fi
|
||||
|
||||
export tmp=$(mktemp -td "deps-${pname}-XXXXXX")
|
||||
HOME=$tmp/home
|
||||
|
||||
exitTrap() {
|
||||
test -n "''${ranTrap-}" && return
|
||||
ranTrap=1
|
||||
|
||||
if test -n "''${keepSources-}"; then
|
||||
echo -e "Path to the source: $tmp/src\nPath to the fake home: $tmp/home"
|
||||
else
|
||||
rm -rf "$tmp"
|
||||
fi
|
||||
|
||||
# Since mktemp is used this will be empty if the script didnt succesfully complete
|
||||
if ! test -s "$depsFile"; then
|
||||
rm -rf "$depsFile"
|
||||
fi
|
||||
}
|
||||
|
||||
trap exitTrap EXIT INT TERM
|
||||
|
||||
dotnetRestore() {
|
||||
local -r project="''${1-}"
|
||||
local -r rid="$2"
|
||||
|
||||
dotnet restore ''${project-} \
|
||||
-p:ContinuousIntegrationBuild=true \
|
||||
-p:Deterministic=true \
|
||||
--packages "$tmp/nuget_pkgs" \
|
||||
--runtime "$rid" \
|
||||
--no-cache \
|
||||
--force \
|
||||
${lib.optionalString (!enableParallelBuilding) "--disable-parallel"} \
|
||||
${lib.escapeShellArgs flags}
|
||||
}
|
||||
|
||||
declare -a projectFiles=( ${lib.escapeShellArgs projectFiles} )
|
||||
declare -a testProjectFiles=( ${lib.escapeShellArgs testProjectFiles} )
|
||||
|
||||
export DOTNET_NOLOGO=1
|
||||
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||
|
||||
depsFile=$(realpath "''${1:-${defaultDepsFile}}")
|
||||
echo Will write lockfile to "$depsFile"
|
||||
mkdir -p "$tmp/nuget_pkgs"
|
||||
|
||||
storeSrc="${srcOnly args}"
|
||||
src=$tmp/src
|
||||
cp -rT "$storeSrc" "$src"
|
||||
chmod -R +w "$src"
|
||||
|
||||
cd "$src"
|
||||
echo "Restoring project..."
|
||||
|
||||
${dotnet-sdk}/bin/dotnet tool restore
|
||||
cp -r $HOME/.nuget/packages/* $tmp/nuget_pkgs || true
|
||||
|
||||
for rid in "${lib.concatStringsSep "\" \"" runtimeIds}"; do
|
||||
(( ''${#projectFiles[@]} == 0 )) && dotnetRestore "" "$rid"
|
||||
|
||||
for project in ''${projectFiles[@]-} ''${testProjectFiles[@]-}; do
|
||||
dotnetRestore "$project" "$rid"
|
||||
done
|
||||
done
|
||||
# Second copy, makes sure packages restored by ie. paket are included
|
||||
cp -r $HOME/.nuget/packages/* $tmp/nuget_pkgs || true
|
||||
|
||||
echo "Succesfully restored project"
|
||||
|
||||
echo "Writing lockfile..."
|
||||
|
||||
excluded_sources="${lib.concatStringsSep " " sdkDeps}"
|
||||
for excluded_source in ''${excluded_sources[@]}; do
|
||||
ls "$excluded_source" >> "$tmp/excluded_list"
|
||||
done
|
||||
tmpFile="$tmp"/deps.nix
|
||||
echo -e "# This file was automatically generated by passthru.fetch-deps.\n# Please dont edit it manually, your changes might get overwritten!\n" > "$tmpFile"
|
||||
nuget-to-nix "$tmp/nuget_pkgs" "$tmp/excluded_list" >> "$tmpFile"
|
||||
mv "$tmpFile" "$depsFile"
|
||||
echo "Succesfully wrote lockfile to $depsFile"
|
||||
'';
|
||||
fetch-deps = let
|
||||
flagsList = dotnetFlags ++ dotnetRestoreFlags;
|
||||
flags = lib.concatStringsSep " " (map lib.escapeShellArg flagsList);
|
||||
disableParallel =
|
||||
lib.optionalString (!enableParallelBuilding) "--disable-parallel";
|
||||
runtimeIdsList = if runtimeId != null then
|
||||
[ runtimeId ]
|
||||
else
|
||||
map (system: dotnetCorePackages.systemToDotnetRid system) platforms;
|
||||
runtimeIds =
|
||||
lib.concatStringsSep " " (map lib.escapeShellArg runtimeIdsList);
|
||||
defaultDepsFile =
|
||||
# Wire in the nugetDeps file such that running the script with no args
|
||||
# runs it agains the correct deps file by default.
|
||||
# Note that toString is necessary here as it results in the path at
|
||||
# eval time (i.e. to the file in your local Nixpkgs checkout) rather
|
||||
# than the Nix store path of the path after it's been imported.
|
||||
if lib.isPath nugetDepsFile
|
||||
&& !lib.hasPrefix "${builtins.storeDir}/" (toString nugetDepsFile) then
|
||||
toString nugetDepsFile
|
||||
else
|
||||
''$(mktemp -t "${pname}-deps-XXXXXX.nix")'';
|
||||
storeSrc = srcOnly args;
|
||||
projectFileStr = lib.escapeShellArg projectFiles;
|
||||
testProjectFileStr = lib.escapeShellArg testProjectFiles;
|
||||
path = lib.makeBinPath [
|
||||
coreutils
|
||||
runtimeShellPackage
|
||||
dotnet-sdk
|
||||
(nuget-to-nix.override { inherit dotnet-sdk; })
|
||||
];
|
||||
dotnetSdkPath = toString dotnet-sdk;
|
||||
excludedSources =
|
||||
lib.concatStringsSep " " (map lib.escapeShellArg sdkDeps);
|
||||
in substituteAll {
|
||||
name = "fetch-deps";
|
||||
src = ./fetch-deps.sh;
|
||||
isExecutable = true;
|
||||
inherit pname defaultDepsFile runtimeIds storeSrc flags disableParallel
|
||||
projectFileStr testProjectFileStr path dotnetSdkPath excludedSources
|
||||
runtimeShell;
|
||||
};
|
||||
} // args.passthru or { };
|
||||
|
||||
meta = (args.meta or { }) // { inherit platforms; };
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
#! @runtimeShell@
|
||||
# shellcheck shell=bash
|
||||
set -euo pipefail
|
||||
|
||||
export PATH="@path@"
|
||||
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
--keep-sources|-k)
|
||||
keepSources=1
|
||||
shift
|
||||
;;
|
||||
--help|-h)
|
||||
echo "usage: $0 [--keep-sources] [--help] <output path>"
|
||||
echo " <output path> The path to write the lockfile to. A temporary file is used if this is not set"
|
||||
echo " --keep-sources Dont remove temporary directories upon exit, useful for debugging"
|
||||
echo " --help Show this help message"
|
||||
exit
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ ${TMPDIR:-} == /run/user/* ]]; then
|
||||
# /run/user is usually a tmpfs in RAM, which may be too small
|
||||
# to store all downloaded dotnet packages
|
||||
unset TMPDIR
|
||||
fi
|
||||
|
||||
export tmp=$(mktemp -td "deps-@pname@-XXXXXX")
|
||||
HOME=$tmp/home
|
||||
|
||||
exitTrap() {
|
||||
test -n "${ranTrap-}" && return
|
||||
ranTrap=1
|
||||
|
||||
if test -n "${keepSources-}"; then
|
||||
echo -e "Path to the source: $tmp/src\nPath to the fake home: $tmp/home"
|
||||
else
|
||||
rm -rf "$tmp"
|
||||
fi
|
||||
|
||||
# Since mktemp is used this will be empty if the script didnt succesfully complete
|
||||
if ! test -s "$depsFile"; then
|
||||
rm -rf "$depsFile"
|
||||
fi
|
||||
}
|
||||
|
||||
trap exitTrap EXIT INT TERM
|
||||
|
||||
dotnetRestore() {
|
||||
local -r project="${1-}"
|
||||
local -r rid="$2"
|
||||
|
||||
dotnet restore ${project-} \
|
||||
-p:ContinuousIntegrationBuild=true \
|
||||
-p:Deterministic=true \
|
||||
--packages "$tmp/nuget_pkgs" \
|
||||
--runtime "$rid" \
|
||||
--no-cache \
|
||||
--force \
|
||||
@disableParallel@ \
|
||||
@flags@
|
||||
}
|
||||
|
||||
declare -a projectFiles=( @projectFileStr@ )
|
||||
declare -a testProjectFiles=( @testProjectFileStr@ )
|
||||
|
||||
export DOTNET_NOLOGO=1
|
||||
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||
|
||||
depsFile=$(realpath "${1:-@defaultDepsFile@}")
|
||||
echo Will write lockfile to "$depsFile"
|
||||
mkdir -p "$tmp/nuget_pkgs"
|
||||
|
||||
storeSrc="@storeSrc@"
|
||||
src=$tmp/src
|
||||
cp -rT "$storeSrc" "$src"
|
||||
chmod -R +w "$src"
|
||||
|
||||
cd "$src"
|
||||
echo "Restoring project..."
|
||||
|
||||
"@dotnetSdkPath@/bin/dotnet" tool restore
|
||||
cp -r $HOME/.nuget/packages/* $tmp/nuget_pkgs || true
|
||||
|
||||
runtimeIds=(@runtimeIds@)
|
||||
|
||||
for rid in "${runtimeIds[@]}"; do
|
||||
(( ${#projectFiles[@]} == 0 )) && dotnetRestore "" "$rid"
|
||||
|
||||
for project in ${projectFiles[@]-} ${testProjectFiles[@]-}; do
|
||||
dotnetRestore "$project" "$rid"
|
||||
done
|
||||
done
|
||||
# Second copy, makes sure packages restored by ie. paket are included
|
||||
cp -r $HOME/.nuget/packages/* $tmp/nuget_pkgs || true
|
||||
|
||||
echo "Succesfully restored project"
|
||||
|
||||
echo "Writing lockfile..."
|
||||
|
||||
excluded_sources=( @excludedSources@ )
|
||||
for excluded_source in ${excluded_sources[@]}; do
|
||||
ls "$excluded_source" >> "$tmp/excluded_list"
|
||||
done
|
||||
tmpFile="$tmp"/deps.nix
|
||||
echo -e "# This file was automatically generated by passthru.fetch-deps.\n# Please dont edit it manually, your changes might get overwritten!\n" > "$tmpFile"
|
||||
nuget-to-nix "$tmp/nuget_pkgs" "$tmp/excluded_list" >> "$tmpFile"
|
||||
mv "$tmpFile" "$depsFile"
|
||||
echo "Succesfully wrote lockfile to $depsFile"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
}:
|
||||
let
|
||||
pname = "asm-lsp";
|
||||
version = "0.6.0";
|
||||
version = "0.7.1";
|
||||
in
|
||||
rustPlatform.buildRustPackage {
|
||||
inherit pname version;
|
||||
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage {
|
||||
owner = "bergercookie";
|
||||
repo = "asm-lsp";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-vOkuTJFP2zme8S+u5j1TXt6BXnwtASRVH4Dre9g1dtk=";
|
||||
hash = "sha256-nHLM4cwVo6esrrpr4s+DfJIUWWKSrYwWLOPC84tb68o=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage {
|
||||
openssl
|
||||
];
|
||||
|
||||
cargoHash = "sha256-lmOnBcLWfTCuQcPiRmPoFD/QvagfkApFP6/h1ot7atU=";
|
||||
cargoHash = "sha256-CiHXfy8Xqrg8SAWA4nTHSGZKS0pGcoQem9kLRtTLpRs=";
|
||||
|
||||
# tests expect ~/.cache/asm-lsp to be writable
|
||||
preCheck = ''
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,220 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{ lib, stdenv, fetchFromGitHub
|
||||
, llvmPackages, elfutils, bcc
|
||||
, libbpf, libbfd, libopcodes
|
||||
, libbpf, libbfd, libopcodes, glibc
|
||||
, cereal, asciidoctor
|
||||
, cmake, pkg-config, flex, bison
|
||||
, util-linux
|
||||
@@ -41,9 +41,21 @@ stdenv.mkDerivation rec {
|
||||
"-DBUILD_TESTING=FALSE"
|
||||
"-DLIBBCC_INCLUDE_DIRS=${bcc}/include"
|
||||
"-DINSTALL_TOOL_DOCS=OFF"
|
||||
"-DUSE_SYSTEM_BPF_BCC=ON"
|
||||
"-DSYSTEM_INCLUDE_PATHS=${glibc.dev}/include"
|
||||
];
|
||||
|
||||
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
|
||||
];
|
||||
|
||||
# Pull BPF scripts into $PATH (next to their bcc program equivalents), but do
|
||||
# not move them to keep `${pkgs.bpftrace}/share/bpftrace/tools/...` working.
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,114 @@
|
||||
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
|
||||
|
||||
@@ -32,7 +32,7 @@ python3Packages.buildPythonApplication rec {
|
||||
substituteInPlace exe-thumbnailer.thumbnailer \
|
||||
--replace Exec=exe-thumbnailer Exec=$out/bin/exe-thumbnailer
|
||||
|
||||
install -Dm644 exe-thumbnailer.thumbnailer $out/share/thumbnailers
|
||||
install -Dm644 exe-thumbnailer.thumbnailer -t $out/share/thumbnailers
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
||||
@@ -1,31 +1,42 @@
|
||||
{ lib, buildGoModule, fetchFromGitHub, lazygit, testers }:
|
||||
|
||||
{
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
lazygit,
|
||||
testers,
|
||||
}:
|
||||
buildGoModule rec {
|
||||
pname = "lazygit";
|
||||
version = "0.42.0";
|
||||
version = "0.43.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jesseduffield";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-w5QL+CuMYyTTnNAfWF8jQuQWfjxaw7bANK69Dc+onGk=";
|
||||
hash = "sha256-iFx/ffaijhOqEDRW1QVzhQMvSgnS4lKFOzq1YdlkUzc=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
subPackages = [ "." ];
|
||||
|
||||
ldflags = [ "-X main.version=${version}" "-X main.buildSource=nix" ];
|
||||
ldflags = [
|
||||
"-X main.version=${version}"
|
||||
"-X main.buildSource=nix"
|
||||
];
|
||||
|
||||
passthru.tests.version = testers.testVersion {
|
||||
package = lazygit;
|
||||
};
|
||||
passthru.tests.version = testers.testVersion { package = lazygit; };
|
||||
|
||||
meta = with lib; {
|
||||
description = "Simple terminal UI for git commands";
|
||||
homepage = "https://github.com/jesseduffield/lazygit";
|
||||
changelog = "https://github.com/jesseduffield/lazygit/releases/tag/v${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ Br1ght0ne equirosa paveloom starsep ];
|
||||
maintainers = with maintainers; [
|
||||
Br1ght0ne
|
||||
equirosa
|
||||
paveloom
|
||||
starsep
|
||||
];
|
||||
mainProgram = "lazygit";
|
||||
};
|
||||
}
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "mousam";
|
||||
version = "1.3.1";
|
||||
version = "1.3.2";
|
||||
# built with meson, not a python format
|
||||
pyproject = false;
|
||||
|
||||
@@ -20,7 +20,7 @@ python3Packages.buildPythonApplication rec {
|
||||
owner = "amit9838";
|
||||
repo = "mousam";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-QFEn7o3DRJyRLbEfb86AsS/ifYqzs3b5n2fZa/9Mm1A=";
|
||||
hash = "sha256-1gFuMh5Poypmgyk2bpi9v6iK7WkO5KHLs+WsoDpJPeg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -1,39 +1,27 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, pkg-config
|
||||
, autoreconfHook
|
||||
, ffmpeg
|
||||
, poco
|
||||
, ocl-icd
|
||||
, opencl-clhpp
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
pkg-config,
|
||||
ffmpeg,
|
||||
poco,
|
||||
ocl-icd,
|
||||
opencl-clhpp,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sanjuuni";
|
||||
version = "0.4";
|
||||
version = "0.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "MCJack123";
|
||||
repo = "sanjuuni";
|
||||
rev = version;
|
||||
sha256 = "sha256-wgtyrik4Z5AXd8MHkiMuxMpGh/xcEtNqivyhvL68aac=";
|
||||
sha256 = "sha256-wJRPD4OWOTPiyDr9dYseRA7BI942HPfHONVJGTc/+wU=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "build-with-cxx17.patch";
|
||||
url = "https://github.com/MCJack123/sanjuuni/commit/f2164bc18935bcf63ee5b0a82087bc91f7fd258d.patch";
|
||||
hash = "sha256-MjDeAiB3WkemCRYzgOHzHlbPUoI4DHEYe28xIIC+c7I=";
|
||||
excludes = [ "configure" ]; # conflicts with release tarball; we manually regenerate this
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
autoreconfHook
|
||||
];
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [
|
||||
ffmpeg
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "shpool";
|
||||
version = "0.6.2";
|
||||
version = "0.6.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "shell-pool";
|
||||
repo = "shpool";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-6gfK71uM6IOP571Jzv3QPPKITaRteXyySZAstH0e+/M=";
|
||||
hash = "sha256-RzXlwzCMZ5nDnNfQHzqY9Wu7gvG8y39yR2W3cfl208w=";
|
||||
};
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
|
||||
--replace-fail '/usr/bin/shpool' "$out/bin/shpool"
|
||||
'';
|
||||
|
||||
cargoHash = "sha256-rJ+Avq/6y68xEcJ+EeFVhFaSWJyC+x0a46cclVsTE4Q=";
|
||||
cargoHash = "sha256-Xb/ohGzgXR8B6Zfd2pUqgpxK6WQnk2xF4bbCyz1g2os=";
|
||||
|
||||
buildInputs = [
|
||||
linux-pam
|
||||
|
||||
@@ -11,7 +11,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-Hm0BVF2RUsxDacsAB3MJtk1t9FYmBPjeb5JzwaLkZ14=";
|
||||
hash = "sha256-Hm0BVF2RUsxDacsAB3MJtk1t9FYmBPjeb5JzwaLkZ14=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with python3.pkgs; [
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, mpi
|
||||
, mpich
|
||||
, tmux
|
||||
, reptyr
|
||||
, autoconf
|
||||
, makeWrapper
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "tmpi";
|
||||
version = "0-unstable-2022-02-22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Azrael3000";
|
||||
repo = "tmpi";
|
||||
rev = "f5a0fd8848b5c87b301edc8a23de9bfcfbd41918";
|
||||
hash = "sha256-BaOaMpsF8ho8EIVuHfu4+CiVV3yLoC3tDkLq4R8BYBA=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ mpi mpich reptyr tmux ];
|
||||
|
||||
buildInputs = [ autoconf makeWrapper ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin
|
||||
|
||||
install -m755 tmpi $out/bin/tmpi
|
||||
|
||||
wrapProgram $out/bin/tmpi \
|
||||
--prefix PATH : ${lib.makeBinPath [ mpi mpich tmux reptyr ]}
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Run a parallel command inside a split tmux window";
|
||||
mainProgram = "tmpi";
|
||||
homepage = "https://github.com/Azrael3000/tmpi";
|
||||
license = lib.licenses.gpl2;
|
||||
maintainers = with lib.maintainers; [ vasissualiyp ];
|
||||
platforms = reptyr.meta.platforms;
|
||||
};
|
||||
}
|
||||
@@ -6,7 +6,7 @@ python3Packages.buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-EEXRepj2iGRsp1jf8lTm6cA3RWSOBRoIGwOVw7d8gkw=";
|
||||
hash = "sha256-EEXRepj2iGRsp1jf8lTm6cA3RWSOBRoIGwOVw7d8gkw=";
|
||||
};
|
||||
|
||||
checkInputs = with python3Packages; [ pytestCheckHook ];
|
||||
|
||||
@@ -11,7 +11,7 @@ buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-frIwZ21JzVgxRS+KouBjDShHCP1lCoUwwySy2oFGcJ8=";
|
||||
hash = "sha256-frIwZ21JzVgxRS+KouBjDShHCP1lCoUwwySy2oFGcJ8=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
@@ -20,7 +20,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-mKK1N1cTbMdNwpflniEB009tSPQfdBVrtsDeJruiqj8=";
|
||||
hash = "sha256-mKK1N1cTbMdNwpflniEB009tSPQfdBVrtsDeJruiqj8=";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
||||
@@ -17,7 +17,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-1kQced6YdC/wvegqFVhZfej4+4aemGXvKysKjejP13w=";
|
||||
hash = "sha256-1kQced6YdC/wvegqFVhZfej4+4aemGXvKysKjejP13w=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
@@ -15,7 +15,7 @@ buildPythonPackage rec {
|
||||
pyproject = true;
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-B2b/9O2gVJjHUlN0pYeBDcwsy3slaAnd5SroeQqEU+s=";
|
||||
hash = "sha256-B2b/9O2gVJjHUlN0pYeBDcwsy3slaAnd5SroeQqEU+s=";
|
||||
};
|
||||
nativeBuildInputs = [ poetry-core ];
|
||||
propagatedBuildInputs = [
|
||||
|
||||
@@ -14,7 +14,7 @@ buildPythonPackage rec {
|
||||
src = fetchPypi {
|
||||
inherit version;
|
||||
pname = "aiorpcX";
|
||||
sha256 = "sha256-WyMALxpNXTCF4xVVoHUZxe+NTEAHHrSZVW/9qBFIYKI=";
|
||||
hash = "sha256-WyMALxpNXTCF4xVVoHUZxe+NTEAHHrSZVW/9qBFIYKI=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ attrs ];
|
||||
|
||||
@@ -12,7 +12,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-G1r7uY9sTcrbLirmq5+plLu4wddfT6ltNA+UN65FRAY=";
|
||||
hash = "sha256-G1r7uY9sTcrbLirmq5+plLu4wddfT6ltNA+UN65FRAY=";
|
||||
};
|
||||
|
||||
pythonImportsCheck = [ "altgraph" ];
|
||||
|
||||
@@ -14,7 +14,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-YSTqqd+Kv2QVlAjA0lf4IRx7rJ1DmvB0JIReBv3yZcM=";
|
||||
hash = "sha256-YSTqqd+Kv2QVlAjA0lf4IRx7rJ1DmvB0JIReBv3yZcM=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
@@ -25,7 +25,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-3YzBMnqmcTIpn5UOFg3SDTFLjPSE9UDw0i8fB8LYh2s=";
|
||||
hash = "sha256-3YzBMnqmcTIpn5UOFg3SDTFLjPSE9UDw0i8fB8LYh2s=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
@@ -14,7 +14,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-7I+5BQO/gsvTREDkBfxrMblw3JPfY48S4KI4PCGPtFY=";
|
||||
hash = "sha256-7I+5BQO/gsvTREDkBfxrMblw3JPfY48S4KI4PCGPtFY=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ numpy ];
|
||||
|
||||
@@ -18,7 +18,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-BbbeYu4/KgpuaUHmkzt5K4AMPn9v/OL8MkvBmHV1c5M=";
|
||||
hash = "sha256-BbbeYu4/KgpuaUHmkzt5K4AMPn9v/OL8MkvBmHV1c5M=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
@@ -18,7 +18,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-XPUJzALti7QXTmgtuwVDhCA2luWz7zfykWEsJmpHzA4=";
|
||||
hash = "sha256-XPUJzALti7QXTmgtuwVDhCA2luWz7zfykWEsJmpHzA4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools ];
|
||||
|
||||
@@ -16,7 +16,7 @@ buildPythonPackage rec {
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
extension = "zip";
|
||||
sha256 = "sha256-2DedS7kZS4G3nlKE2HX6bfgHBzRvLLtcVJGiDzUmb9A=";
|
||||
hash = "sha256-2DedS7kZS4G3nlKE2HX6bfgHBzRvLLtcVJGiDzUmb9A=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
@@ -12,7 +12,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-gjFuFnm8aHnjyDMY0Ba1S3ySJf8IxEYt5IE+IgONX5Q=";
|
||||
hash = "sha256-gjFuFnm8aHnjyDMY0Ba1S3ySJf8IxEYt5IE+IgONX5Q=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ requests ];
|
||||
|
||||
@@ -13,7 +13,7 @@ buildPythonPackage rec {
|
||||
src = fetchPypi {
|
||||
pname = "calmjs.types";
|
||||
inherit version;
|
||||
sha256 = "sha256-EGWYv9mx3RPqs9dnB5t3Bu3hiujL2y/XxyMP7JkjjAQ=";
|
||||
hash = "sha256-EGWYv9mx3RPqs9dnB5t3Bu3hiujL2y/XxyMP7JkjjAQ=";
|
||||
extension = "zip";
|
||||
};
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-73NQiY1RMdBrMIlm/VTvHY4dCHL1pQoj6a48CWRos3o=";
|
||||
hash = "sha256-73NQiY1RMdBrMIlm/VTvHY4dCHL1pQoj6a48CWRos3o=";
|
||||
extension = "zip";
|
||||
};
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-qAbV254xihotP86YgAgXkWjn2xPl5VsZt5dj+budKYI=";
|
||||
hash = "sha256-qAbV254xihotP86YgAgXkWjn2xPl5VsZt5dj+budKYI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools ];
|
||||
|
||||
@@ -14,7 +14,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-S9e90BtS6qMjFtYUmgC0w4IKQP8q1iR2tGqq5l2+n6o=";
|
||||
hash = "sha256-S9e90BtS6qMjFtYUmgC0w4IKQP8q1iR2tGqq5l2+n6o=";
|
||||
};
|
||||
|
||||
# tests only distributed upstream source, not PyPi
|
||||
|
||||
@@ -29,7 +29,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit version pname;
|
||||
sha256 = "sha256-pEJkuz0wxKt2PkowmLE2YC+HPYa2ZiENK7FAW14Ec/Y=";
|
||||
hash = "sha256-pEJkuz0wxKt2PkowmLE2YC+HPYa2ZiENK7FAW14Ec/Y=";
|
||||
};
|
||||
|
||||
# removing optional dependency needing pyobjc
|
||||
|
||||
@@ -21,7 +21,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-GiWGXDTyCx3JWDB5jjSrZDbieLjgyA3HvwqzTF2wOrg=";
|
||||
hash = "sha256-GiWGXDTyCx3JWDB5jjSrZDbieLjgyA3HvwqzTF2wOrg=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -10,7 +10,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-ItDan9ajJ1tUySapyXsYD5JYqtZRE+oY8/7FLLrc2Bg=";
|
||||
hash = "sha256-ItDan9ajJ1tUySapyXsYD5JYqtZRE+oY8/7FLLrc2Bg=";
|
||||
};
|
||||
|
||||
# there are no tests
|
||||
|
||||
@@ -30,7 +30,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-IErym/Fd8G75NOa+xOyV87UNmEaB31XPvg8GWCSP7k8=";
|
||||
hash = "sha256-IErym/Fd8G75NOa+xOyV87UNmEaB31XPvg8GWCSP7k8=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -14,7 +14,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-Kso2y64LXAzv7ZVlQW7EQjNXZ/sxRb/xHlhiL8ZTza0=";
|
||||
hash = "sha256-Kso2y64LXAzv7ZVlQW7EQjNXZ/sxRb/xHlhiL8ZTza0=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ django-classy-tags ];
|
||||
|
||||
@@ -16,7 +16,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-rQSnQPNYr5SyeNbKoFAbnGb2X/8utrfWLa8gu93hy2w=";
|
||||
hash = "sha256-rQSnQPNYr5SyeNbKoFAbnGb2X/8utrfWLa8gu93hy2w=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -12,7 +12,7 @@ buildPythonPackage rec {
|
||||
src = fetchPypi {
|
||||
pname = "Durus";
|
||||
inherit version;
|
||||
sha256 = "sha256:1gzxg43zawwgqjrfixvcrilwpikb1ix9b7710rsl5ffk7q50yi3c";
|
||||
hash = "sha256:1gzxg43zawwgqjrfixvcrilwpikb1ix9b7710rsl5ffk7q50yi3c";
|
||||
};
|
||||
|
||||
# Checks disabled due to missing python unittest framework 'sancho' in nixpkgs
|
||||
|
||||
@@ -14,7 +14,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-MmxtzPMvH/PUyEiJOIWQd4REuhj3cK3uUvJHIcuXxMc=";
|
||||
hash = "sha256-MmxtzPMvH/PUyEiJOIWQd4REuhj3cK3uUvJHIcuXxMc=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
@@ -19,7 +19,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-qiSQAp3Zb0AVszPBgnqiH9bApNIjsA37D+kzuNCaURs=";
|
||||
hash = "sha256-qiSQAp3Zb0AVszPBgnqiH9bApNIjsA37D+kzuNCaURs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ elastic-transport ];
|
||||
|
||||
@@ -10,7 +10,7 @@ buildPythonPackage rec {
|
||||
format = "setuptools";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-nXEul8E5WFm+E9K0V4jJGGzZfxwE2sUQOZEw8yhkM2c=";
|
||||
hash = "sha256-nXEul8E5WFm+E9K0V4jJGGzZfxwE2sUQOZEw8yhkM2c=";
|
||||
};
|
||||
pythonImportsCheck = [ "em" ];
|
||||
meta = with lib; {
|
||||
|
||||
@@ -18,7 +18,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-BqO3+o7ZAYewdqjbvlsbYqzulCAdPG6CL1X0SWAe9vI=";
|
||||
hash = "sha256-BqO3+o7ZAYewdqjbvlsbYqzulCAdPG6CL1X0SWAe9vI=";
|
||||
};
|
||||
|
||||
doCheck = false; # Tests are (i) not 3.x compatible, (ii) broken under 2.7
|
||||
|
||||
@@ -13,7 +13,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-IokMj9mCMsFMVFYO4CpZUB2i32cOamhS5u2mNkNjljo=";
|
||||
hash = "sha256-IokMj9mCMsFMVFYO4CpZUB2i32cOamhS5u2mNkNjljo=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
@@ -15,7 +15,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-IFB+246JQGofvXd15uKj2BpN1jPdUGsOnPDhYT6DHWo=";
|
||||
hash = "sha256-IFB+246JQGofvXd15uKj2BpN1jPdUGsOnPDhYT6DHWo=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
@@ -13,7 +13,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-2b1Rw7XpVqKlKZjDcIxNLHKfL8wxEYjh5dO5cmOTVGo=";
|
||||
hash = "sha256-2b1Rw7XpVqKlKZjDcIxNLHKfL8wxEYjh5dO5cmOTVGo=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
@@ -17,7 +17,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-8HXyPyj9In8JfDayEhYcbPAS4cbKr3/1PV1rsCzUK50=";
|
||||
hash = "sha256-8HXyPyj9In8JfDayEhYcbPAS4cbKr3/1PV1rsCzUK50=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -17,7 +17,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-WrcXuXlTB3DBavtItQ0qmNI8Pp/jmFHc9rxNAYRaAqA=";
|
||||
hash = "sha256-WrcXuXlTB3DBavtItQ0qmNI8Pp/jmFHc9rxNAYRaAqA=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -20,7 +20,7 @@ buildPythonPackage rec {
|
||||
src = fetchPypi {
|
||||
pname = "FormEncode";
|
||||
inherit version;
|
||||
sha256 = "sha256-63TSIweKKM8BX6iJZsbjTy0Y11EnMY1lwUS+2a/EJj8=";
|
||||
hash = "sha256-63TSIweKKM8BX6iJZsbjTy0Y11EnMY1lwUS+2a/EJj8=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -6,7 +6,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-5rkB01OdbD5Z4vA6dbqhWp5pGwqI1IlE4IE1dSdT1QE=";
|
||||
hash = "sha256-5rkB01OdbD5Z4vA6dbqhWp5pGwqI1IlE4IE1dSdT1QE=";
|
||||
};
|
||||
|
||||
# Project has no tests
|
||||
|
||||
@@ -13,7 +13,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-XDPxQmjfW4+hEH2FN4Fb5v67rW7FYFJNakBLd3jPa6Y=";
|
||||
hash = "sha256-XDPxQmjfW4+hEH2FN4Fb5v67rW7FYFJNakBLd3jPa6Y=";
|
||||
};
|
||||
|
||||
# No tests in archive
|
||||
|
||||
@@ -15,7 +15,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-LoztiQRADMk6t+hSCttpNM+mAe2sxvWT/Cy0RIZiu0c=";
|
||||
hash = "sha256-LoztiQRADMk6t+hSCttpNM+mAe2sxvWT/Cy0RIZiu0c=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ protobuf ];
|
||||
|
||||
@@ -15,7 +15,7 @@ buildPythonPackage rec {
|
||||
src = fetchPypi {
|
||||
pname = "http_ece";
|
||||
inherit version;
|
||||
sha256 = "sha256-tZIPjvuOG1+wJXE+Ozb9pUM2JiAQY0sm3B+Y+F0es94=";
|
||||
hash = "sha256-tZIPjvuOG1+wJXE+Ozb9pUM2JiAQY0sm3B+Y+F0es94=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -11,7 +11,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-C6rnFroAd5vOULBMwsLSyeSK5zPXOEgGHDSYt+Pm2dQ=";
|
||||
hash = "sha256-C6rnFroAd5vOULBMwsLSyeSK5zPXOEgGHDSYt+Pm2dQ=";
|
||||
};
|
||||
|
||||
doCheck = false;
|
||||
|
||||
@@ -12,7 +12,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-+lHr6GTqk1WyaDDif91qQdWli0GfqNS0fjuLgHGNbiE=";
|
||||
hash = "sha256-+lHr6GTqk1WyaDDif91qQdWli0GfqNS0fjuLgHGNbiE=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ numpy ];
|
||||
|
||||
@@ -14,7 +14,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-5OMlfvLPgaMzl4ek1c+STlTJHwlacj9tJYTa5h1Dlu0=";
|
||||
hash = "sha256-5OMlfvLPgaMzl4ek1c+STlTJHwlacj9tJYTa5h1Dlu0=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ numpy ];
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user