about summary refs log tree commit diff
path: root/pkgs/by-name/po
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/po')
-rw-r--r--pkgs/by-name/po/poethepoet/package.nix6
-rw-r--r--pkgs/by-name/po/pokemon-cursor/package.nix2
-rw-r--r--pkgs/by-name/po/polkit_gnome/package.nix29
-rw-r--r--pkgs/by-name/po/polkit_gnome/polkit-gnome-authentication-agent-1.desktop88
-rw-r--r--pkgs/by-name/po/polybar/package.nix2
-rw-r--r--pkgs/by-name/po/polylux2pdfpc/package.nix2
-rw-r--r--pkgs/by-name/po/pomodoro-gtk/package.nix2
-rw-r--r--pkgs/by-name/po/popcorntime/package.nix7
-rw-r--r--pkgs/by-name/po/poppins/package.nix2
-rw-r--r--pkgs/by-name/po/poptracker/package.nix10
-rw-r--r--pkgs/by-name/po/portablemc/package.nix97
-rw-r--r--pkgs/by-name/po/portablemc/use-builtin-java.patch47
-rw-r--r--pkgs/by-name/po/pot/package.nix67
-rw-r--r--pkgs/by-name/po/poutine/package.nix44
-rw-r--r--pkgs/by-name/po/powerjoular/package.nix45
-rw-r--r--pkgs/by-name/po/powerpipe/package.nix71
-rw-r--r--pkgs/by-name/po/powersploit/package.nix2
17 files changed, 459 insertions, 64 deletions
diff --git a/pkgs/by-name/po/poethepoet/package.nix b/pkgs/by-name/po/poethepoet/package.nix
index b186b8866e1f6..980334c26077a 100644
--- a/pkgs/by-name/po/poethepoet/package.nix
+++ b/pkgs/by-name/po/poethepoet/package.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "poethepoet";
-  version = "0.25.1";
+  version = "0.26.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "nat-n";
     repo = "poethepoet";
     rev = "refs/tags/v${version}";
-    hash = "sha256-x57/7Qw2cLSmB01uiIAIu0dBhFqol+ewO1fRs45U0qE=";
+    hash = "sha256-7mRzWxMhDNUc+eY9uEszt/qQUUJhlgJqadCL+Z7QzWo=";
   };
 
   nativeBuildInputs = [
@@ -33,7 +33,7 @@ python3.pkgs.buildPythonApplication rec {
   pythonImportsCheck = [ "poethepoet" ];
 
   meta = with lib; {
-    description = "A task runner that works well with poetry";
+    description = "Task runner that works well with poetry";
     homepage = "https://github.com/nat-n/poethepoet";
     changelog = "https://github.com/nat-n/poethepoet/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/by-name/po/pokemon-cursor/package.nix b/pkgs/by-name/po/pokemon-cursor/package.nix
index ef9d35b49c836..c5718e365ec1d 100644
--- a/pkgs/by-name/po/pokemon-cursor/package.nix
+++ b/pkgs/by-name/po/pokemon-cursor/package.nix
@@ -41,7 +41,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "An unofficial open-source Pokemon cursor theme";
+    description = "Unofficial open-source Pokemon cursor theme";
     homepage = "https://github.com/ful1e5/pokemon-cursor";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.getpsyched ];
diff --git a/pkgs/by-name/po/polkit_gnome/package.nix b/pkgs/by-name/po/polkit_gnome/package.nix
new file mode 100644
index 0000000000000..fd35df9f9e6c9
--- /dev/null
+++ b/pkgs/by-name/po/polkit_gnome/package.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchurl, polkit, gtk3, pkg-config, intltool }:
+stdenv.mkDerivation (finalAttrs: {
+  pname = "polkit-gnome";
+  version = "0.105";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/polkit-gnome/${finalAttrs.version}/polkit-gnome-${finalAttrs.version}.tar.xz";
+    hash = "sha256-F4RJSWO4v5oA7txs06KGj7EjuKXlFuZsXtpI3xerk2k=";
+  };
+
+  buildInputs = [ polkit gtk3 ];
+  nativeBuildInputs = [ pkg-config intltool ];
+
+  configureFlags = [ "--disable-introspection" ];
+
+  # Desktop file from Debian
+  postInstall = ''
+    mkdir -p $out/etc/xdg/autostart
+    substituteAll ${./polkit-gnome-authentication-agent-1.desktop} $out/etc/xdg/autostart/polkit-gnome-authentication-agent-1.desktop
+  '';
+
+  meta = {
+    homepage = "https://gitlab.gnome.org/Archive/policykit-gnome";
+    description = "Dbus session bus service that is used to bring up authentication dialogs";
+    license = lib.licenses.lgpl2Plus;
+    maintainers = with lib.maintainers; [ ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/po/polkit_gnome/polkit-gnome-authentication-agent-1.desktop b/pkgs/by-name/po/polkit_gnome/polkit-gnome-authentication-agent-1.desktop
new file mode 100644
index 0000000000000..5ddda50cb0157
--- /dev/null
+++ b/pkgs/by-name/po/polkit_gnome/polkit-gnome-authentication-agent-1.desktop
@@ -0,0 +1,88 @@
+[Desktop Entry]
+Name=PolicyKit Authentication Agent
+Name[ar]=مدير الاستيثاق PolicyKit
+Name[be]=PolicyKit - аґент аўтэнтыфікацыі
+Name[bn_IN]=PolicyKit অনুমোদনের এজেন্ট
+Name[ca]=Agent d'autenticació del PolicyKit
+Name[cs]=Ověřovací agent PolicyKit
+Name[da]=Godkendelsesprogrammet PolicyKit
+Name[de]=Legitimationsdienst von PolicyKit
+Name[el]=Πράκτορας πιστοποίησης PolicyKit
+Name[en_GB]=PolicyKit Authentication Agent
+Name[es]=Agente de autenticación de PolicyKit
+Name[eu]=PolicyKit autentifikatzeko agentea
+Name[fi]=PolicytKit-tunnistautumisohjelma
+Name[fr]=Agent d'authentification de PolicyKit
+Name[gl]=Axente de autenticación PolicyKit
+Name[gu]=PolicyKit સત્તાધિકરણ એજન્ટ
+Name[hi]=PolicyKit प्रमाणीकरण प्रतिनिधि
+Name[hu]=PolicyKit hitelesítési ügynök
+Name[it]=Agente di autenticazione per PolicyKit
+Name[ja]=PolicyKit 認証エージェント
+Name[kn]=PolicyKit ದೃಢೀಕರಣ ಮಧ್ಯವರ್ತಿ
+Name[lt]=PolicyKit tapatybės nustatymo agentas
+Name[ml]=പോളിസിക്കിറ്റ് ഓഥന്റിക്കേഷന്‍ ഏജന്റ്
+Name[mr]=PolicyKit ऑथेंटीकेशन एजेंट
+Name[or]=PolicyKit ବୈଧିକରଣ ସଦସ୍ୟ
+Name[pa]=ਪਾਲਸੀਕਿੱਟ ਪਰਮਾਣਕਿਤਾ ਏਜੰਟ
+Name[pl]=Agent uwierzytelniania PolicyKit
+Name[pt]=Agente de Autenticação PolicyKit
+Name[pt_BR]=Agente de autenticação PolicyKit
+Name[ro]=Agent de autentificare PolicyKit
+Name[sk]=Agent PolicyKit na overovanie totožnosti
+Name[sl]=PolicyKit program overjanja
+Name[sv]=Autentiseringsagent för PolicyKit
+Name[ta]=PolicyKit அங்கீகார முகவர்
+Name[te]=పాలసీకిట్ ధృవీకరణ ప్రతినిధి
+Name[th]=ตัวกลางสำหรับยืนยันตัวบุคคล PolicyKit
+Name[uk]=Агент автентифікації PolicyKit
+Name[zh_CN]=PolicyKit 认证代理
+Name[zh_HK]=PolicyKit 驗證代理程式
+Name[zh_TW]=PolicyKit 驗證代理程式
+Comment=PolicyKit Authentication Agent
+Comment[ar]=مدير الاستيثاق PolicyKit
+Comment[be]=PolicyKit - аґент аўтэнтыфікацыі
+Comment[bn_IN]=PolicyKit অনুমোদনের এজেন্ট
+Comment[ca]=Agent d'autenticació del PolicyKit
+Comment[cs]=Ověřovací agent PolicyKit
+Comment[da]=Godkendelsesprogrammet PolicyKit
+Comment[de]=Legitimationsdienst von PolicyKit
+Comment[el]=Πράκτορας πιστοποίησης PolicyKit
+Comment[en_GB]=PolicyKit Authentication Agent
+Comment[es]=Agente de autenticación de PolicyKit
+Comment[eu]=PolicyKit autentifikatzeko agentea
+Comment[fi]=PolicytKit-tunnistautumisohjelma
+Comment[fr]=Agent d'authentification de PolicyKit
+Comment[gl]=Axente de autenticación PolicyKit
+Comment[gu]=PolicyKit સત્તાધિકરણ એજન્ટ
+Comment[hi]=PolicyKit प्रमाणीकरण प्रतिनिधि
+Comment[hu]=PolicyKit hitelesítési ügynök
+Comment[it]=Agente di autenticazione per PolicyKit
+Comment[ja]=PolicyKit 認証エージェント
+Comment[kn]=PolicyKit ದೃಢೀಕರಣ ಮಧ್ಯವರ್ತಿ
+Comment[lt]=PolicyKit tapatybės nustatymo agentas
+Comment[ml]=പോളിസിക്കിറ്റ് ഓഥന്റിക്കേഷന്‍ ഏജന്റ്
+Comment[mr]=PolicyKit ऑथेंटीकेशन एजेंट
+Comment[or]=PolicyKit ବୈଧିକରଣ ସଦସ୍ୟ
+Comment[pa]=ਪਾਲਸੀਕਿੱਟ ਪਰਮਾਣਕਿਤਾ ਏਜੰਟ
+Comment[pl]=Agent uwierzytelniania PolicyKit
+Comment[pt]=Agente de Autenticação PolicyKit
+Comment[pt_BR]=Agente de autenticação PolicyKit
+Comment[ro]=Agent de autentificare PolicyKit
+Comment[sk]=Agent PolicyKit na overovanie totožnosti
+Comment[sl]=PolicyKit program overjanja
+Comment[sv]=Autentiseringsagent för PolicyKit
+Comment[ta]=PolicyKit அங்கீகார முகவர்
+Comment[te]=పాలసీకిట్ ధృవీకరణ ప్రతినిధి
+Comment[th]=ตัวกลางสำหรับยืนยันตัวบุคคล PolicyKit
+Comment[uk]=Агент автентифікації PolicyKit
+Comment[zh_CN]=PolicyKit 认证代理
+Comment[zh_HK]=PolicyKit 驗證代理程式
+Comment[zh_TW]=PolicyKit 驗證代理程式
+Exec=@out@/libexec/polkit-gnome-authentication-agent-1
+Terminal=false
+Type=Application
+Categories=
+NoDisplay=true
+OnlyShowIn=GNOME;XFCE;Unity;
+AutostartCondition=GNOME3 unless-session gnome
diff --git a/pkgs/by-name/po/polybar/package.nix b/pkgs/by-name/po/polybar/package.nix
index 870968ef658cf..66da65842d31d 100644
--- a/pkgs/by-name/po/polybar/package.nix
+++ b/pkgs/by-name/po/polybar/package.nix
@@ -103,7 +103,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://polybar.github.io/";
     changelog = "https://github.com/polybar/polybar/releases/tag/${finalAttrs.version}";
-    description = "A fast and easy-to-use tool for creating status bars";
+    description = "Fast and easy-to-use tool for creating status bars";
     longDescription = ''
       Polybar aims to help users build beautiful and highly customizable
       status bars for their desktop environment, without the need of
diff --git a/pkgs/by-name/po/polylux2pdfpc/package.nix b/pkgs/by-name/po/polylux2pdfpc/package.nix
index e0ab8318f69d5..cfe1290d19391 100644
--- a/pkgs/by-name/po/polylux2pdfpc/package.nix
+++ b/pkgs/by-name/po/polylux2pdfpc/package.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A tool to make pdfpc interpret slides created by polylux correctly";
+    description = "Tool to make pdfpc interpret slides created by polylux correctly";
     homepage = "https://github.com/andreasKroepelin/polylux/tree/main/pdfpc-extractor";
     license = licenses.mit;
     mainProgram = "polylux2pdfpc";
diff --git a/pkgs/by-name/po/pomodoro-gtk/package.nix b/pkgs/by-name/po/pomodoro-gtk/package.nix
index ef667552a8117..b373535960c9b 100644
--- a/pkgs/by-name/po/pomodoro-gtk/package.nix
+++ b/pkgs/by-name/po/pomodoro-gtk/package.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation {
   ];
 
   meta = {
-    description = "A simple and intuitive timer application (also named Planytimer)";
+    description = "Simple and intuitive timer application (also named Planytimer)";
     homepage = "https://gitlab.com/idevecore/pomodoro";
     license = lib.licenses.gpl3Plus;
     mainProgram = "pomodoro";
diff --git a/pkgs/by-name/po/popcorntime/package.nix b/pkgs/by-name/po/popcorntime/package.nix
index 7cf0d3c3c3078..28fd5b60e6898 100644
--- a/pkgs/by-name/po/popcorntime/package.nix
+++ b/pkgs/by-name/po/popcorntime/package.nix
@@ -4,6 +4,7 @@
 , gsettings-desktop-schemas
 , gtk3
 , lib
+, libGL
 , makeDesktopItem
 , makeWrapper
 , nwjs
@@ -16,11 +17,11 @@
 
 stdenv.mkDerivation rec {
   pname = "popcorntime";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchurl {
     url = "https://github.com/popcorn-official/popcorn-desktop/releases/download/v${version}/Popcorn-Time-${version}-linux64.zip";
-    hash = "sha256-A5G66KkCQ1AiOOO02dZFAVz6dqvComrd5lXQ4Wc1S0s=";
+    hash = "sha256-lCsIioR252GWP/+wNwkTw5PLSal/M9x6mlR/EKOd/hs=";
   };
 
   nativeBuildInputs = [
@@ -45,7 +46,7 @@ stdenv.mkDerivation rec {
   dontUnpack = true;
 
   makeWrapperArgs = [
-    "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ gcc-unwrapped.lib gtk3 udev ]}"
+    "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ gcc-unwrapped.lib gtk3 udev libGL ]}"
     "--prefix PATH : ${lib.makeBinPath [ stdenv.cc ]}"
   ];
 
diff --git a/pkgs/by-name/po/poppins/package.nix b/pkgs/by-name/po/poppins/package.nix
index b56b2c3f2c8d6..f72ce9ffcc692 100644
--- a/pkgs/by-name/po/poppins/package.nix
+++ b/pkgs/by-name/po/poppins/package.nix
@@ -26,7 +26,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = {
-    description = "A Devanagari + Latin family for Google Fonts";
+    description = "Devanagari + Latin family for Google Fonts";
     homepage = "https://github.com/itfoundry/Poppins/";
     license = lib.licenses.ofl;
     maintainers = with lib.maintainers; [nyawox];
diff --git a/pkgs/by-name/po/poptracker/package.nix b/pkgs/by-name/po/poptracker/package.nix
index 6ef94feb3484a..4fb90aa82c37c 100644
--- a/pkgs/by-name/po/poptracker/package.nix
+++ b/pkgs/by-name/po/poptracker/package.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "poptracker";
-  version = "0.25.7";
+  version = "0.26.1";
 
   src = fetchFromGitHub {
     owner = "black-sliver";
     repo = "PopTracker";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-wP2d8cWNg80KUyw1xPQMriNRg3UyXgKaSoJ17U5vqCE=";
+    hash = "sha256-NeUIU+vXML9lP+JL7MJyGNxZB0ggAngOpf8mMgOE+r8=";
     fetchSubmodules = true;
   };
 
@@ -57,7 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
     runHook postInstall
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Scriptable tracker for randomized games";
     longDescription = ''
       Universal, scriptable randomizer tracking solution that is open source. Supports auto-tracking.
@@ -66,8 +66,8 @@ stdenv.mkDerivation (finalAttrs: {
     '';
     homepage = "https://github.com/black-sliver/PopTracker";
     changelog = "https://github.com/black-sliver/PopTracker/releases/tag/v${finalAttrs.version}";
-    license = licenses.gpl3Only;
-    maintainers = with maintainers; [ freyacodes ];
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ freyacodes pyrox0 ];
     mainProgram = "poptracker";
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/by-name/po/portablemc/package.nix b/pkgs/by-name/po/portablemc/package.nix
new file mode 100644
index 0000000000000..494331045c00c
--- /dev/null
+++ b/pkgs/by-name/po/portablemc/package.nix
@@ -0,0 +1,97 @@
+{
+  lib,
+  stdenv,
+  python3Packages,
+  fetchFromGitHub,
+  installShellFiles,
+  jre,
+
+  libX11,
+  libXext,
+  libXcursor,
+  libXrandr,
+  libXxf86vm,
+  libpulseaudio,
+  libGL,
+  glfw,
+  openal,
+  udev,
+
+  textToSpeechSupport ? stdenv.isLinux,
+  flite,
+}:
+
+let
+  # Copied from the `prismlauncher` package
+  runtimeLibs = [
+    libX11
+    libXext
+    libXcursor
+    libXrandr
+    libXxf86vm
+
+    # lwjgl
+    libpulseaudio
+    libGL
+    glfw
+    openal
+    stdenv.cc.cc.lib
+
+    # oshi
+    udev
+  ] ++ lib.optional textToSpeechSupport flite;
+in
+python3Packages.buildPythonApplication rec {
+  pname = "portablemc";
+  version = "4.3.0";
+  pyproject = true;
+
+  disabled = python3Packages.pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "mindstorm38";
+    repo = "portablemc";
+    rev = "v${version}";
+    hash = "sha256-jCv4ncXUWbkWlBZr3P1hNeVpdQzY9HtrFz+pmKknL0I=";
+  };
+
+  patches = [
+    # Use the jre package provided by nixpkgs by default
+    ./use-builtin-java.patch
+  ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  build-system = [ python3Packages.poetry-core ];
+
+  dependencies = [ python3Packages.certifi ];
+
+  # Note: Tests use networking, so we don't run them
+
+  postInstall = ''
+    installShellCompletion --cmd portablemc \
+        --bash <($out/bin/portablemc show completion bash) \
+        --zsh <($out/bin/portablemc show completion zsh)
+  '';
+
+  preFixup = ''
+    makeWrapperArgs+=(
+      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath runtimeLibs}
+      --prefix PATH : ${lib.makeBinPath [ jre ]}
+    )
+  '';
+
+  meta = {
+    homepage = "https://github.com/mindstorm38/portablemc";
+    description = "Fast, reliable and cross-platform command-line Minecraft launcher and API for developers";
+    longDescription = ''
+      A fast, reliable and cross-platform command-line Minecraft launcher and API for developers.
+      Including fast and easy installation of common mod loaders such as Fabric, Forge, NeoForge and Quilt.
+      This launcher is compatible with the standard Minecraft directories.
+    '';
+    changelog = "https://github.com/mindstorm38/portablemc/releases/tag/${src.rev}";
+    license = lib.licenses.gpl3Only;
+    mainProgram = "portablemc";
+    maintainers = with lib.maintainers; [ tomasajt ];
+  };
+}
diff --git a/pkgs/by-name/po/portablemc/use-builtin-java.patch b/pkgs/by-name/po/portablemc/use-builtin-java.patch
new file mode 100644
index 0000000000000..a88d97bae9b5e
--- /dev/null
+++ b/pkgs/by-name/po/portablemc/use-builtin-java.patch
@@ -0,0 +1,47 @@
+diff --git a/portablemc/standard.py b/portablemc/standard.py
+index f59c55d..0f017e1 100644
+--- a/portablemc/standard.py
++++ b/portablemc/standard.py
+@@ -843,6 +843,8 @@ class Version:
+         if jvm_major_version is not None and not isinstance(jvm_major_version, int):
+             raise ValueError("metadata: /javaVersion/majorVersion must be an integer")
+ 
++        return self._resolve_builtin_jvm(watcher, JvmNotFoundError.UNSUPPORTED_ARCH, jvm_major_version)
++
+         if platform.system() == "Linux" and platform.libc_ver()[0] != "glibc":
+             return self._resolve_builtin_jvm(watcher, JvmNotFoundError.UNSUPPORTED_LIBC, jvm_major_version)
+ 
+@@ -926,31 +928,10 @@ class Version:
+         builtin_path = shutil.which(jvm_bin_filename)
+         if builtin_path is None:
+             raise JvmNotFoundError(reason)
+-        
+-        try:
+-            
+-            # Get version of the JVM.
+-            process = Popen([builtin_path, "-version"], bufsize=1, stdout=PIPE, stderr=STDOUT, universal_newlines=True)
+-            stdout, _stderr = process.communicate(timeout=1)
+-
+-            version_start = stdout.index(f"1.{major_version}" if major_version <= 8 else str(major_version))
+-            version = None
+-            
+-            # Parse version by getting all character that are numeric or '.'.
+-            for i, ch in enumerate(stdout[version_start:]):
+-                if not ch.isnumeric() and ch not in (".", "_"):
+-                    version = stdout[version_start:i]
+-                    break
+-            
+-            if version is None:
+-                raise ValueError()
+-
+-        except (TimeoutExpired, ValueError):
+-            raise JvmNotFoundError(JvmNotFoundError.BUILTIN_INVALID_VERSION)
+ 
+         self._jvm_path = Path(builtin_path)
+-        self._jvm_version = version
+-        watcher.handle(JvmLoadedEvent(version, JvmLoadedEvent.BUILTIN))
++        self._jvm_version = "nixpkgs"
++        watcher.handle(JvmLoadedEvent("nixpkgs", JvmLoadedEvent.BUILTIN))
+ 
+     def _download(self, watcher: Watcher) -> None:
+         
diff --git a/pkgs/by-name/po/pot/package.nix b/pkgs/by-name/po/pot/package.nix
index 0547e72f48198..ee6fc05bb6411 100644
--- a/pkgs/by-name/po/pot/package.nix
+++ b/pkgs/by-name/po/pot/package.nix
@@ -1,76 +1,49 @@
 { lib
 , stdenv
-, stdenvNoCC
 , rustPlatform
 , fetchFromGitHub
+, nodejs
+, pnpm
 , wrapGAppsHook3
 , cargo
 , rustc
 , cargo-tauri
 , pkg-config
-, nodePackages
 , esbuild
 , buildGoModule
-, jq
-, moreutils
 , libayatana-appindicator
 , gtk3
 , webkitgtk
 , libsoup
 , openssl
 , xdotool
-, cacert
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "pot";
   version = "2.7.9";
 
   src = fetchFromGitHub {
     owner = "pot-app";
     repo = "pot-desktop";
-    rev = version;
+    rev = finalAttrs.version;
     hash = "sha256-Y2gFLvRNBjOGxdpIeoY1CXEip0Ht73aymWIP5wuc9kU=";
   };
 
-  sourceRoot = "${src.name}/src-tauri";
+  sourceRoot = "${finalAttrs.src.name}/src-tauri";
 
   postPatch = ''
     substituteInPlace $cargoDepsCopy/libappindicator-sys-*/src/lib.rs \
       --replace "libayatana-appindicator3.so.1" "${libayatana-appindicator}/lib/libayatana-appindicator3.so.1"
   '';
 
-  pnpm-deps = stdenvNoCC.mkDerivation {
-    pname = "${pname}-pnpm-deps";
-    inherit src version;
-
-    nativeBuildInputs = [
-      jq
-      moreutils
-      nodePackages.pnpm
-      cacert
-    ];
-
-    installPhase = ''
-      export HOME=$(mktemp -d)
-      pnpm config set store-dir $out
-      # use --ignore-script and --no-optional to avoid downloading binaries
-      # use --frozen-lockfile to avoid checking git deps
-      pnpm install --frozen-lockfile --no-optional --ignore-script
-
-      # Remove timestamp and sort the json files
-      rm -rf $out/v3/tmp
-      for f in $(find $out -name "*.json"); do
-        sed -i -E -e 's/"checkedAt":[0-9]+,//g' $f
-        jq --sort-keys . $f | sponge $f
-      done
-    '';
-
-    dontFixup = true;
-    outputHashMode = "recursive";
-    outputHash = "sha256-LuY5vh642DgSa91eUcA/AT+ovDcP9tZFE2dKyicCOeQ=";
+  pnpmDeps = pnpm.fetchDeps {
+    inherit (finalAttrs) pname version src;
+    hash = "sha256-nRRUX6CH3s1cEoI80gtRmu0ovXpIwS+h1rFJo8kw60E=";
   };
 
+  pnpmRoot = "..";
+
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
     outputHashes = {
@@ -84,8 +57,9 @@ stdenv.mkDerivation rec {
     cargo
     rustc
     cargo-tauri
+    nodejs
+    pnpm.configHook
     wrapGAppsHook3
-    nodePackages.pnpm
     pkg-config
   ];
 
@@ -111,13 +85,13 @@ stdenv.mkDerivation rec {
     });
   })}";
 
-  preBuild = ''
-    export HOME=$(mktemp -d)
-    pnpm config set store-dir ${pnpm-deps}
+  preConfigure = ''
+    # pnpm.configHook has to write to .., as our sourceRoot is set to src-tauri
+    # TODO: move frontend into its own drv
     chmod +w ..
-    pnpm install --offline --frozen-lockfile --no-optional --ignore-script
-    chmod -R +w ../node_modules
-    pnpm rebuild
+  '';
+
+  preBuild = ''
     # Use cargo-tauri from nixpkgs instead of pnpm tauri from npm
     cargo tauri build -b deb
   '';
@@ -127,12 +101,11 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A cross-platform translation software";
+    description = "Cross-platform translation software";
     mainProgram = "pot";
     homepage = "https://pot.pylogmon.com";
     platforms = platforms.linux;
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ linsui ];
   };
-}
-
+})
diff --git a/pkgs/by-name/po/poutine/package.nix b/pkgs/by-name/po/poutine/package.nix
new file mode 100644
index 0000000000000..6ebd925ff2eb7
--- /dev/null
+++ b/pkgs/by-name/po/poutine/package.nix
@@ -0,0 +1,44 @@
+{
+  lib,
+  stdenv,
+  buildGoModule,
+  fetchFromGitHub,
+  installShellFiles,
+}:
+
+buildGoModule rec {
+  pname = "poutine";
+  version = "0.11.0";
+
+  src = fetchFromGitHub {
+    owner = "boostsecurityio";
+    repo = "poutine";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-T81Qi79VaZzfKL4niTZQW+gwwiBcyInALrvyUg1V4Ck=";
+  };
+
+  vendorHash = "sha256-/chq40j+puAI3KdI15vbZwrnzCKrU7g+Z/t9aOXQ1Sg=";
+
+  ldflags = [
+    "-s"
+    "-w"
+  ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
+    installShellCompletion --cmd ${meta.mainProgram} \
+      --bash <($out/bin/${meta.mainProgram} completion bash) \
+      --fish <($out/bin/${meta.mainProgram} completion fish) \
+      --zsh <($out/bin/${meta.mainProgram} completion zsh)
+  '';
+
+  meta = with lib; {
+    description = "Security scanner that detects misconfigurations and vulnerabilities in build pipelines of repositories";
+    homepage = "https://github.com/boostsecurityio/poutine";
+    changelog = "https://github.com/boostsecurityio/poutine/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "poutine";
+  };
+}
diff --git a/pkgs/by-name/po/powerjoular/package.nix b/pkgs/by-name/po/powerjoular/package.nix
new file mode 100644
index 0000000000000..62313198f92b1
--- /dev/null
+++ b/pkgs/by-name/po/powerjoular/package.nix
@@ -0,0 +1,45 @@
+{
+  stdenv,
+  lib,
+  fetchFromGitHub,
+  gnat,
+  gprbuild,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "powerjoular";
+  version = "0.7.3";
+
+  src = fetchFromGitHub {
+    owner = "joular";
+    repo = pname;
+    rev = version;
+    hash = "sha256-UjoGY1C58xhINmji7R63wqkWK9yCeXa0wwosnIcfYdA=";
+  };
+
+  nativeBuildInputs = [
+    gnat
+    gprbuild
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+    gprbuild
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    cp obj/powerjoular $out/bin
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "CLI software to monitor the power consumption of software and hardware components";
+    homepage = "https://github.com/joular/powerjoular";
+    maintainers = [ maintainers.julienmalka ];
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/po/powerpipe/package.nix b/pkgs/by-name/po/powerpipe/package.nix
new file mode 100644
index 0000000000000..353d2a5ba4932
--- /dev/null
+++ b/pkgs/by-name/po/powerpipe/package.nix
@@ -0,0 +1,71 @@
+{
+  buildGoModule,
+  fetchFromGitHub,
+  installShellFiles,
+  lib,
+  makeWrapper,
+  nix-update-script,
+  powerpipe,
+  testers,
+}:
+
+buildGoModule rec {
+  pname = "powerpipe";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "turbot";
+    repo = "powerpipe";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-KJ024dIU0GmeHCFa/pbyFIA+LitaudHC+NBGg8yNWxM=";
+  };
+
+  vendorHash = "sha256-XALFXUeWrS4nt+ONToCfYXvLWuk7ZhLWvJidnATcWtM=";
+  proxyVendor = true;
+
+  nativeBuildInputs = [
+    installShellFiles
+    makeWrapper
+  ];
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.version=${version}"
+  ];
+
+  doCheck = true;
+
+  checkFlags =
+    let
+      skippedTests = [
+        # test fails in the original github.com/turbot/powerpipe project as well
+        "TestGetAsSnapshotPropertyMap/card"
+      ];
+    in
+    [ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
+
+  postInstall = ''
+    wrapProgram $out/bin/powerpipe \
+      --set-default POWERPIPE_UPDATE_CHECK false \
+      --set-default POWERPIPE_TELEMETRY none
+  '';
+
+  passthru = {
+    tests.version = testers.testVersion {
+      command = "${lib.getExe powerpipe} --version";
+      package = powerpipe;
+      version = "v${version}";
+    };
+    updateScript = nix-update-script { };
+  };
+
+  meta = {
+    changelog = "https://github.com/turbot/powerpipe/blob/v${version}/CHANGELOG.md";
+    description = "Dynamically query your cloud, code, logs & more with SQL";
+    homepage = "https://powerpipe.io/";
+    license = lib.licenses.agpl3Only;
+    mainProgram = "powerpipe";
+    maintainers = with lib.maintainers; [ weitzj ];
+  };
+}
diff --git a/pkgs/by-name/po/powersploit/package.nix b/pkgs/by-name/po/powersploit/package.nix
index a3a86cb75c008..5a63dcf9f003f 100644
--- a/pkgs/by-name/po/powersploit/package.nix
+++ b/pkgs/by-name/po/powersploit/package.nix
@@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation {
 
   meta = {
     changelog = "https://github.com/PowerShellMafia/PowerSploit/releases/";
-    description = "A PowerShell Post-Exploitation Framework";
+    description = "PowerShell Post-Exploitation Framework";
     license = with lib.licenses; [ bsd3 ];
     maintainers = with lib.maintainers; [ shard7 ];
     platforms = lib.platforms.all;