about summary refs log tree commit diff
path: root/nixpkgs/pkgs/by-name/pw
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2024-05-03 15:14:25 +0200
committerAlyssa Ross <hi@alyssa.is>2024-05-07 11:19:19 +0200
commitd92b2b6a1bbd322dd65a8b6f51019610d350046e (patch)
tree7f7c21927b9cc05676501f297c51eb76b49e326c /nixpkgs/pkgs/by-name/pw
parent93c9e56b40530cc627d921cfc255c05b495d4017 (diff)
parent49050352f602fe87d16ff7b2b6a05b79eb20dc6f (diff)
downloadnixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar
nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar.gz
nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar.bz2
nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar.lz
nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar.xz
nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar.zst
nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.zip
Merge remote-tracking branch 'nixpkgs/nixos-unstable-small'
Conflicts:
	nixpkgs/nixos/modules/services/mail/mailman.nix
	nixpkgs/nixos/modules/services/mail/public-inbox.nix
	nixpkgs/pkgs/build-support/go/module.nix
Diffstat (limited to 'nixpkgs/pkgs/by-name/pw')
-rw-r--r--nixpkgs/pkgs/by-name/pw/pwndbg/package.nix70
-rw-r--r--nixpkgs/pkgs/by-name/pw/pwru/package.nix4
2 files changed, 72 insertions, 2 deletions
diff --git a/nixpkgs/pkgs/by-name/pw/pwndbg/package.nix b/nixpkgs/pkgs/by-name/pw/pwndbg/package.nix
new file mode 100644
index 000000000000..473a401ce1c5
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pw/pwndbg/package.nix
@@ -0,0 +1,70 @@
+{ lib
+, stdenv
+, python3
+, fetchFromGitHub
+, makeWrapper
+, gdb
+}:
+
+let
+  pwndbg-py = python3.pkgs.pwndbg;
+
+  pythonPath = python3.pkgs.makePythonPath [ pwndbg-py ];
+
+  binPath = lib.makeBinPath ([
+    python3.pkgs.pwntools # ref: https://github.com/pwndbg/pwndbg/blob/2022.12.19/pwndbg/wrappers/checksec.py#L8
+  ] ++ lib.optionals stdenv.isLinux [
+    python3.pkgs.ropper # ref: https://github.com/pwndbg/pwndbg/blob/2022.12.19/pwndbg/commands/ropper.py#L30
+    python3.pkgs.ropgadget # ref: https://github.com/pwndbg/pwndbg/blob/2022.12.19/pwndbg/commands/rop.py#L32
+  ]);
+in
+stdenv.mkDerivation {
+  pname = "pwndbg";
+  version = lib.getVersion pwndbg-py;
+  format = "other";
+
+  inherit (pwndbg-py) src;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/pwndbg
+    cp gdbinit.py $out/share/pwndbg/gdbinit.py
+    chmod +x $out/share/pwndbg/gdbinit.py
+    # First line is a import from future, so we need to append our imports after that
+    sed '2 i import sys, os
+    3 i [sys.path.append(p) for p in "${pythonPath}".split(":")]
+    4 i os.environ["PATH"] += ":${binPath}"' -i $out/share/pwndbg/gdbinit.py
+
+    # Don't require an in-package venv
+    touch $out/share/pwndbg/.skip-venv
+
+    makeWrapper ${gdb}/bin/gdb $out/bin/pwndbg \
+      --add-flags "-q -x $out/share/pwndbg/gdbinit.py"
+
+    runHook postInstall
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+
+    # Check if pwndbg is installed correctly
+    HOME=$TMPDIR LC_CTYPE=C.UTF-8 $out/bin/pwndbg -ex exit
+
+    runHook postInstallCheck
+  '';
+
+  meta = with lib; {
+    description = "Exploit Development and Reverse Engineering with GDB Made Easy";
+    mainProgram = "pwndbg";
+    homepage = "https://github.com/pwndbg/pwndbg";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ mic92 patryk4815 msanft ];
+    # not supported on aarch64-darwin see: https://inbox.sourceware.org/gdb/3185c3b8-8a91-4beb-a5d5-9db6afb93713@Spark/
+    broken = stdenv.isDarwin && stdenv.isAarch64;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/pw/pwru/package.nix b/nixpkgs/pkgs/by-name/pw/pwru/package.nix
index d8dca376fc3b..5f393ff9cee7 100644
--- a/nixpkgs/pkgs/by-name/pw/pwru/package.nix
+++ b/nixpkgs/pkgs/by-name/pw/pwru/package.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "pwru";
-  version = "1.0.5";
+  version = "1.0.6";
 
   src = fetchFromGitHub {
     owner = "cilium";
     repo = "pwru";
     rev = "v${version}";
-    hash = "sha256-2CpjTVBuiGU5cYkdSIxIpk1EoZAUhlXxVU+KJXHosiA=";
+    hash = "sha256-8pXyzmzMCxOzwstzvzeZB2HBMeMzGMLZesTURZD3Rt8=";
   };
 
   vendorHash = null;