From e51a9df08a2077d92deb71e8c63f987d2380851a Mon Sep 17 00:00:00 2001
From: jopejoe1 <johannes@joens.email>
Date: Tue, 26 Nov 2024 21:00:18 +0100
Subject: [PATCH] treewide: use dpkg setup hook

---
 .../audio/bitwig-studio/bitwig-studio3.nix            |  5 -----
 .../audio/bitwig-studio/bitwig-studio4.nix            |  5 -----
 .../audio/bitwig-studio/bitwig-studio5.nix            |  6 +-----
 pkgs/applications/editors/standardnotes/default.nix   |  2 --
 .../graphics/odafileconverter/default.nix             |  9 ++-------
 pkgs/applications/misc/parsec/bin.nix                 |  8 --------
 pkgs/applications/misc/pdfstudio/common.nix           |  1 -
 pkgs/applications/misc/rescuetime/default.nix         |  6 +-----
 .../networking/breitbandmessung/default.nix           |  2 --
 .../networking/instant-messengers/franz/generic.nix   |  2 --
 pkgs/applications/networking/mullvad-vpn/default.nix  |  2 --
 pkgs/applications/office/morgen/default.nix           |  5 +----
 pkgs/by-name/al/alfaview/package.nix                  |  4 ----
 pkgs/by-name/bd/bdf2psf/package.nix                   |  6 ------
 pkgs/by-name/bl/bluemail/package.nix                  |  2 --
 pkgs/by-name/br/brave/make-brave.nix                  |  6 ------
 pkgs/by-name/cu/cups-brother-hll2375dw/package.nix    |  2 --
 pkgs/by-name/ff/fflinuxprint/package.nix              |  3 ---
 pkgs/by-name/ga/gamepad-tool/package.nix              |  5 -----
 pkgs/by-name/he/headset/package.nix                   |  2 --
 pkgs/by-name/ho/holochain-launcher/package.nix        |  2 --
 pkgs/by-name/hy/hyper/package.nix                     |  6 ------
 pkgs/by-name/id/ideamaker/package.nix                 |  6 ------
 pkgs/by-name/in/insync-emblem-icons/package.nix       |  8 --------
 pkgs/by-name/in/insync/package.nix                    |  8 --------
 pkgs/by-name/ip/ipscan/package.nix                    |  8 ++++----
 pkgs/by-name/ji/jigasi/package.nix                    |  2 --
 pkgs/by-name/ke/keeweb/package.nix                    |  5 +----
 pkgs/by-name/ko/koreader/package.nix                  |  2 --
 pkgs/by-name/li/lightworks/package.nix                |  8 ++++----
 pkgs/by-name/lu/lunacy/package.nix                    |  5 -----
 pkgs/by-name/mo/molly-guard/package.nix               |  6 +-----
 pkgs/by-name/on/onlyoffice-desktopeditors/package.nix |  4 ----
 pkgs/by-name/op/opera/package.nix                     |  2 --
 pkgs/by-name/pi/picoscope/package.nix                 |  7 +------
 pkgs/by-name/pi/pixeluvo/package.nix                  |  4 ----
 pkgs/by-name/po/polar-bookshelf/package.nix           |  2 --
 pkgs/by-name/po/polar-bookshelf1/package.nix          |  4 ----
 pkgs/by-name/po/positron-bin/package.nix              |  4 +---
 pkgs/by-name/sp/spacedrive/package.nix                |  8 --------
 pkgs/by-name/ss/sslmate-agent/package.nix             |  4 ----
 pkgs/by-name/st/staruml/package.nix                   |  6 ------
 pkgs/by-name/te/terra-station/package.nix             |  6 +-----
 pkgs/by-name/th/thedesk/package.nix                   |  4 ----
 pkgs/by-name/ti/tidal-hifi/package.nix                |  2 --
 pkgs/by-name/un/unifi/package.nix                     |  6 ------
 pkgs/by-name/up/upwork/package.nix                    |  4 ----
 pkgs/by-name/wi/wire-desktop/package.nix              |  8 --------
 pkgs/by-name/wk/wkhtmltopdf/package.nix               | 11 +----------
 pkgs/by-name/wo/wonderdraft/package.nix               |  6 ++++--
 pkgs/by-name/ye/yesplaymusic/package.nix              |  5 +----
 pkgs/misc/jitsi-meet-prosody/default.nix              |  4 ++--
 pkgs/servers/jicofo/default.nix                       |  2 +-
 pkgs/servers/jitsi-videobridge/default.nix            |  7 ++++---
 pkgs/servers/plex/raw.nix                             |  4 ----
 55 files changed, 31 insertions(+), 232 deletions(-)

diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
index e1bb11e8eabeb7..4d5e5dbc265953 100644
--- a/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
+++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
@@ -15,11 +15,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook3 ];
 
-  unpackCmd = ''
-    mkdir -p root
-    dpkg-deb -x $curSrc root
-  '';
-
   dontBuild = true;
   dontWrapGApps = true; # we only want $gappsWrapperArgs here
 
diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
index 1c94371b2b48f5..47b2fbbeb968ad 100644
--- a/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
+++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
@@ -33,11 +33,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook3 ];
 
-  unpackCmd = ''
-    mkdir -p root
-    dpkg-deb -x $curSrc root
-  '';
-
   dontBuild = true;
   dontWrapGApps = true; # we only want $gappsWrapperArgs here
 
diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix
index eeb2fffe8f38f1..5e189db20f0c99 100644
--- a/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix
+++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix
@@ -32,17 +32,13 @@ stdenv.mkDerivation rec {
   version = "5.2.5";
 
   src = fetchurl {
+    name = "bitwig-studio-${version}.deb";
     url = "https://www.bitwig.com/dl/Bitwig%20Studio/${version}/installer_linux/";
     hash = "sha256-x6Uw6o+a3nArMm1Ev5ytGtLDGQ3r872WqlC022zT8Hk=";
   };
 
   nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook3 ];
 
-  unpackCmd = ''
-    mkdir -p root
-    dpkg-deb -x $curSrc root
-  '';
-
   dontBuild = true;
   dontWrapGApps = true; # we only want $gappsWrapperArgs here
 
diff --git a/pkgs/applications/editors/standardnotes/default.nix b/pkgs/applications/editors/standardnotes/default.nix
index ff52167dd3442d..f7cd2872a227be 100644
--- a/pkgs/applications/editors/standardnotes/default.nix
+++ b/pkgs/applications/editors/standardnotes/default.nix
@@ -33,8 +33,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ makeWrapper dpkg desktop-file-utils asar ];
 
-  unpackPhase = "dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner";
-
   installPhase = let
     libPath = lib.makeLibraryPath [
       libsecret
diff --git a/pkgs/applications/graphics/odafileconverter/default.nix b/pkgs/applications/graphics/odafileconverter/default.nix
index ba1d5bdce07385..acc00b4fa0bd41 100644
--- a/pkgs/applications/graphics/odafileconverter/default.nix
+++ b/pkgs/applications/graphics/odafileconverter/default.nix
@@ -18,15 +18,10 @@ in mkDerivation {
     sha256 = "10027a3ab18efd04ca75aa699ff550eca3bdfe6f7084460d3c00001bffb50070";
   };
 
-  unpackPhase = ''
-    dpkg -x $src oda_unpacked
-    sourceRoot=$PWD/oda_unpacked
-  '';
-
   installPhase = ''
     mkdir -p $out/bin $out/lib
-    cp -vr $sourceRoot/usr/bin/ODAFileConverter_${version} $out/libexec
-    cp -vr $sourceRoot/usr/share $out/share
+    cp -vr usr/bin/ODAFileConverter_${version} $out/libexec
+    cp -vr usr/share $out/share
   '';
 
   dontWrapQtApps = true;
diff --git a/pkgs/applications/misc/parsec/bin.nix b/pkgs/applications/misc/parsec/bin.nix
index f85e6acbd1f00c..b94c65c081254b 100644
--- a/pkgs/applications/misc/parsec/bin.nix
+++ b/pkgs/applications/misc/parsec/bin.nix
@@ -33,14 +33,6 @@ stdenvNoCC.mkDerivation {
     sha256 = "sha256-9F56u+jYj2CClhbnGlLi65FxS1Vq00coxwu7mjVTY1w=";
   };
 
-  unpackPhase = ''
-    runHook preUnpack
-
-    dpkg-deb -x $src .
-
-    runHook postUnpack
-  '';
-
   nativeBuildInputs = [ dpkg autoPatchelfHook makeWrapper ];
 
   buildInputs = [
diff --git a/pkgs/applications/misc/pdfstudio/common.nix b/pkgs/applications/misc/pdfstudio/common.nix
index 1fc5ffaf2e6693..8edb816977c69c 100644
--- a/pkgs/applications/misc/pdfstudio/common.nix
+++ b/pkgs/applications/misc/pdfstudio/common.nix
@@ -46,7 +46,6 @@ let
       })
     ];
 
-    unpackCmd = "dpkg-deb -x $src ./${program}-${version}";
     dontBuild = true;
 
     postPatch = ''
diff --git a/pkgs/applications/misc/rescuetime/default.nix b/pkgs/applications/misc/rescuetime/default.nix
index 41988c2829578d..fa1cfe4afb623e 100644
--- a/pkgs/applications/misc/rescuetime/default.nix
+++ b/pkgs/applications/misc/rescuetime/default.nix
@@ -20,11 +20,7 @@ in mkDerivation rec {
   nativeBuildInputs = [ dpkg ];
   # avoid https://github.com/NixOS/patchelf/issues/99
   dontStrip = true;
-  unpackPhase = ''
-    mkdir pkg
-    dpkg-deb -x $src pkg
-    sourceRoot=pkg
-  '';
+
   installPhase = ''
     mkdir -p $out/bin
     cp usr/bin/rescuetime $out/bin
diff --git a/pkgs/applications/networking/breitbandmessung/default.nix b/pkgs/applications/networking/breitbandmessung/default.nix
index 9a6cc8a4f739a4..6bcd3c662e86c3 100644
--- a/pkgs/applications/networking/breitbandmessung/default.nix
+++ b/pkgs/applications/networking/breitbandmessung/default.nix
@@ -24,8 +24,6 @@ let
         makeWrapper
       ];
 
-      unpackPhase = "dpkg-deb -x $src .";
-
       installPhase = ''
         mkdir -p $out/bin
         mv usr/share $out/share
diff --git a/pkgs/applications/networking/instant-messengers/franz/generic.nix b/pkgs/applications/networking/instant-messengers/franz/generic.nix
index 5009ab5af0df04..397f24b1296567 100644
--- a/pkgs/applications/networking/instant-messengers/franz/generic.nix
+++ b/pkgs/applications/networking/instant-messengers/franz/generic.nix
@@ -71,8 +71,6 @@ in stdenv.mkDerivation (rec {
   ];
   runtimeDependencies = [ libglvnd (lib.getLib stdenv.cc.cc) (lib.getLib udev) libnotify libappindicator-gtk3 ];
 
-  unpackPhase = "dpkg-deb -x $src .";
-
   installPhase = ''
     mkdir -p $out/bin
     cp -r opt $out
diff --git a/pkgs/applications/networking/mullvad-vpn/default.nix b/pkgs/applications/networking/mullvad-vpn/default.nix
index 098051c72fb107..4f927b6db49eb6 100644
--- a/pkgs/applications/networking/mullvad-vpn/default.nix
+++ b/pkgs/applications/networking/mullvad-vpn/default.nix
@@ -99,8 +99,6 @@ stdenv.mkDerivation {
   dontBuild = true;
   dontConfigure = true;
 
-  unpackPhase = "dpkg-deb -x $src .";
-
   runtimeDependencies = [ (lib.getLib systemd) libGL libnotify libappindicator wayland ];
 
   installPhase = ''
diff --git a/pkgs/applications/office/morgen/default.nix b/pkgs/applications/office/morgen/default.nix
index dae08cd485c613..61fb95b66a1e21 100644
--- a/pkgs/applications/office/morgen/default.nix
+++ b/pkgs/applications/office/morgen/default.nix
@@ -6,6 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.5.9";
 
   src = fetchurl {
+    name = "morgen-${version}.deb";
     url = "https://dl.todesktop.com/210203cqcj00tw1/versions/${version}/linux/deb";
     hash = "sha256-ZKlj/QuQnrqQepsJY6KCROC2fXK/4Py5tmI/FVnRi9w=";
   };
@@ -19,10 +20,6 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ alsa-lib gtk3 libxshmfence mesa nss ];
 
-  unpackCmd = ''
-    dpkg-deb -x ${src} ./morgen-${pname}
-  '';
-
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/by-name/al/alfaview/package.nix b/pkgs/by-name/al/alfaview/package.nix
index 14fa1a9a2a065b..b0e15b5328425a 100644
--- a/pkgs/by-name/al/alfaview/package.nix
+++ b/pkgs/by-name/al/alfaview/package.nix
@@ -50,10 +50,6 @@ stdenv.mkDerivation rec {
   dontBuild = true;
   dontConfigure = true;
 
-  unpackPhase = ''
-    dpkg-deb -x ${src} ./
-  '';
-
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/by-name/bd/bdf2psf/package.nix b/pkgs/by-name/bd/bdf2psf/package.nix
index 0a01b1f9a885b7..f7bb5e66e03274 100644
--- a/pkgs/by-name/bd/bdf2psf/package.nix
+++ b/pkgs/by-name/bd/bdf2psf/package.nix
@@ -14,12 +14,6 @@ stdenv.mkDerivation rec {
   dontConfigure = true;
   dontBuild = true;
 
-  unpackPhase = ''
-    runHook preUnpack
-    dpkg-deb -x $src .
-    runHook postUnpack
-  '';
-
   installPhase = ''
     runHook preInstall
     substituteInPlace usr/bin/bdf2psf --replace /usr/bin/perl "${perl}/bin/perl"
diff --git a/pkgs/by-name/bl/bluemail/package.nix b/pkgs/by-name/bl/bluemail/package.nix
index f565a5732f5dc4..40d861faaf5cd1 100644
--- a/pkgs/by-name/bl/bluemail/package.nix
+++ b/pkgs/by-name/bl/bluemail/package.nix
@@ -64,8 +64,6 @@ stdenv.mkDerivation rec {
     udev
   ];
 
-  unpackCmd = "${dpkg}/bin/dpkg-deb -x $src debcontents";
-
   dontBuild = true;
   dontStrip = true;
   dontWrapGApps = true;
diff --git a/pkgs/by-name/br/brave/make-brave.nix b/pkgs/by-name/br/brave/make-brave.nix
index 48b1ad51bb105a..61cdcdb08273bd 100644
--- a/pkgs/by-name/br/brave/make-brave.nix
+++ b/pkgs/by-name/br/brave/make-brave.nix
@@ -189,12 +189,6 @@ stdenv.mkDerivation {
     adwaita-icon-theme
   ];
 
-  unpackPhase =
-    if stdenv.hostPlatform.isLinux then
-      "dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner"
-    else
-      "unzip $src";
-
   installPhase =
     lib.optionalString stdenv.hostPlatform.isLinux ''
       runHook preInstall
diff --git a/pkgs/by-name/cu/cups-brother-hll2375dw/package.nix b/pkgs/by-name/cu/cups-brother-hll2375dw/package.nix
index a6c2db9f90b1cb..5f27b6364d858e 100644
--- a/pkgs/by-name/cu/cups-brother-hll2375dw/package.nix
+++ b/pkgs/by-name/cu/cups-brother-hll2375dw/package.nix
@@ -38,8 +38,6 @@ stdenv.mkDerivation rec {
     hash = "sha256-N5VCBZLFrfw29QjjzlSvQ12urvyaf7ez/RJ08UwqHdk=";
   };
 
-  unpackPhase = "dpkg-deb -x $src .";
-
   patches = [
     # The brother lpdwrapper uses a temporary file to convey the printer settings.
     # The original settings file will be copied with "400" permissions and the "brprintconflsr3"
diff --git a/pkgs/by-name/ff/fflinuxprint/package.nix b/pkgs/by-name/ff/fflinuxprint/package.nix
index 8cfd29b5c1cc9a..83a4d223b970e5 100644
--- a/pkgs/by-name/ff/fflinuxprint/package.nix
+++ b/pkgs/by-name/ff/fflinuxprint/package.nix
@@ -16,9 +16,6 @@ stdenv.mkDerivation (finalAttrs: {
     curlOpts = "--user-agent Mozilla/5.0"; # HTTP 410 otherwise
   };
 
-  sourceRoot = ".";
-  unpackCmd = "dpkg-deb -x $curSrc .";
-
   nativeBuildInputs = [
     autoPatchelfHook
     dpkg
diff --git a/pkgs/by-name/ga/gamepad-tool/package.nix b/pkgs/by-name/ga/gamepad-tool/package.nix
index 3ca6cabddf62bb..f01951c4b7cbd8 100644
--- a/pkgs/by-name/ga/gamepad-tool/package.nix
+++ b/pkgs/by-name/ga/gamepad-tool/package.nix
@@ -11,11 +11,6 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   nativeBuildInputs = [ dpkg qt5.wrapQtAppsHook autoPatchelfHook ];
 
-  unpackCmd = ''
-    mkdir -p root
-    dpkg-deb -x $curSrc root
-  '';
-
   dontBuild = true;
 
   buildInputs = [
diff --git a/pkgs/by-name/he/headset/package.nix b/pkgs/by-name/he/headset/package.nix
index 009ce3f0b7033c..4d9ca19f50e130 100644
--- a/pkgs/by-name/he/headset/package.nix
+++ b/pkgs/by-name/he/headset/package.nix
@@ -20,8 +20,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ makeWrapper dpkg ];
 
-  unpackPhase = "dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner";
-
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/by-name/ho/holochain-launcher/package.nix b/pkgs/by-name/ho/holochain-launcher/package.nix
index 85109890fb8eef..7ae6626d9662c3 100644
--- a/pkgs/by-name/ho/holochain-launcher/package.nix
+++ b/pkgs/by-name/ho/holochain-launcher/package.nix
@@ -35,8 +35,6 @@ stdenv.mkDerivation rec {
     glib-networking
   ];
 
-  unpackCmd = "dpkg-deb -x $curSrc source";
-
   installPhase = ''
     mv usr $out
     mv $out/bin/holochain-launcher-${prerelease} $out/bin/holochain-launcher
diff --git a/pkgs/by-name/hy/hyper/package.nix b/pkgs/by-name/hy/hyper/package.nix
index 4db56792b73377..9f46b59d6a5378 100644
--- a/pkgs/by-name/hy/hyper/package.nix
+++ b/pkgs/by-name/hy/hyper/package.nix
@@ -24,12 +24,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ dpkg ];
 
-  unpackPhase = ''
-    mkdir pkg
-    dpkg-deb -x $src pkg
-    sourceRoot=pkg
-  '';
-
   installPhase = ''
     mkdir -p "$out/bin"
     mv opt "$out/"
diff --git a/pkgs/by-name/id/ideamaker/package.nix b/pkgs/by-name/id/ideamaker/package.nix
index 8d6a67529b726b..20b894708736a9 100644
--- a/pkgs/by-name/id/ideamaker/package.nix
+++ b/pkgs/by-name/id/ideamaker/package.nix
@@ -131,12 +131,6 @@ stdenv.mkDerivation (finalAttrs: {
       libsForQt5.quazip
     ];
 
-  unpackPhase = ''
-    runHook preUnpack
-    dpkg-deb -x $src .
-    runHook postUnpack
-  '';
-
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/by-name/in/insync-emblem-icons/package.nix b/pkgs/by-name/in/insync-emblem-icons/package.nix
index b31f05170a635c..c6969afe2e6762 100644
--- a/pkgs/by-name/in/insync-emblem-icons/package.nix
+++ b/pkgs/by-name/in/insync-emblem-icons/package.nix
@@ -19,14 +19,6 @@ stdenv.mkDerivation (finalAttrs: {
 
   nativeBuildInputs = [ dpkg ];
 
-  unpackPhase = ''
-    runHook preUnpack
-
-    dpkg-deb --fsys-tarfile "$src" | tar -x --no-same-permissions --no-same-owner
-
-    runHook postUnpack
-  '';
-
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/by-name/in/insync/package.nix b/pkgs/by-name/in/insync/package.nix
index 125f8be1d8b4e9..95bcfbd33a8ef4 100644
--- a/pkgs/by-name/in/insync/package.nix
+++ b/pkgs/by-name/in/insync/package.nix
@@ -46,14 +46,6 @@ let
       libthai
     ] ++ (with libsForQt5; [ qt5.qtvirtualkeyboard ]);
 
-    unpackPhase = ''
-      runHook preUnpack
-
-      dpkg-deb --fsys-tarfile "$src" | tar -x --no-same-permissions --no-same-owner
-
-      runHook postUnpack
-    '';
-
     installPhase = ''
       runHook preInstall
 
diff --git a/pkgs/by-name/ip/ipscan/package.nix b/pkgs/by-name/ip/ipscan/package.nix
index f4b10cbd806bad..350f2525ffb691 100644
--- a/pkgs/by-name/ip/ipscan/package.nix
+++ b/pkgs/by-name/ip/ipscan/package.nix
@@ -20,10 +20,10 @@ stdenv.mkDerivation rec {
     hash = "sha256-UPkUwZV3NIeVfL3yYvqOhm4X5xW+40GOlZGy8WGhYmk=";
   };
 
-  sourceRoot = ".";
-  unpackCmd = "${dpkg}/bin/dpkg-deb -x $src .";
-
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [
+    dpkg
+    makeWrapper
+  ];
 
   buildInputs = [ jdk ];
 
diff --git a/pkgs/by-name/ji/jigasi/package.nix b/pkgs/by-name/ji/jigasi/package.nix
index 28204cb1384e5d..cccf7c70ab3216 100644
--- a/pkgs/by-name/ji/jigasi/package.nix
+++ b/pkgs/by-name/ji/jigasi/package.nix
@@ -15,8 +15,6 @@ stdenv.mkDerivation {
 
   dontBuild = true;
 
-  unpackCmd = "dpkg-deb -x $src debcontents";
-
   installPhase = ''
     runHook preInstall
     substituteInPlace usr/share/${pname}/${pname}.sh \
diff --git a/pkgs/by-name/ke/keeweb/package.nix b/pkgs/by-name/ke/keeweb/package.nix
index 48b9a603d84170..2a16f765c6efba 100644
--- a/pkgs/by-name/ke/keeweb/package.nix
+++ b/pkgs/by-name/ke/keeweb/package.nix
@@ -112,14 +112,11 @@ else
     nativeBuildInputs = [
       autoPatchelfHook
       wrapGAppsHook3
+      dpkg
     ];
 
     buildInputs = libraries;
 
-    unpackPhase = ''
-      ${dpkg}/bin/dpkg-deb --fsys-tarfile $src | tar --extract
-    '';
-
     installPhase = ''
       runHook preInstall
 
diff --git a/pkgs/by-name/ko/koreader/package.nix b/pkgs/by-name/ko/koreader/package.nix
index 4d4f2332995efa..c132d0a04a862c 100644
--- a/pkgs/by-name/ko/koreader/package.nix
+++ b/pkgs/by-name/ko/koreader/package.nix
@@ -40,7 +40,6 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-gHn1xqBc7M9wkek1Ja1gry8TKIuUxQP8T45x3z2S4uc=";
   };
 
-  sourceRoot = ".";
   nativeBuildInputs = [ makeWrapper dpkg ];
   buildInputs = [
     glib
@@ -50,7 +49,6 @@ stdenv.mkDerivation rec {
     sdcv
     SDL2
   ];
-  unpackCmd = "dpkg-deb -x ${src} .";
 
   dontConfigure = true;
   dontBuild = true;
diff --git a/pkgs/by-name/li/lightworks/package.nix b/pkgs/by-name/li/lightworks/package.nix
index 5ecd39de3d931d..da20ab5e4ba4cb 100644
--- a/pkgs/by-name/li/lightworks/package.nix
+++ b/pkgs/by-name/li/lightworks/package.nix
@@ -65,10 +65,10 @@ let
       else
         throw "${pname}-${version} is not supported on ${stdenv.hostPlatform.system}";
 
-    nativeBuildInputs = [ makeWrapper ];
-    buildInputs = [ dpkg ];
-
-    unpackPhase = "dpkg-deb -x ${src} ./";
+    nativeBuildInputs = [
+      dpkg
+      makeWrapper
+    ];
 
     installPhase = ''
       mkdir -p $out/bin
diff --git a/pkgs/by-name/lu/lunacy/package.nix b/pkgs/by-name/lu/lunacy/package.nix
index 1fcc9ed4e745d8..19ede033157002 100644
--- a/pkgs/by-name/lu/lunacy/package.nix
+++ b/pkgs/by-name/lu/lunacy/package.nix
@@ -27,11 +27,6 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-roD/bKv1N2sru/tZ6Zl1J2AyY1mgj2ssB2a42kwBNHM=";
   };
 
-  unpackCmd = ''
-    mkdir -p root
-    dpkg-deb -x $src root
-  '';
-
   buildInputs = [
     zlib
     libgcc
diff --git a/pkgs/by-name/mo/molly-guard/package.nix b/pkgs/by-name/mo/molly-guard/package.nix
index 1100751f451e08..a444f5231788c6 100644
--- a/pkgs/by-name/mo/molly-guard/package.nix
+++ b/pkgs/by-name/mo/molly-guard/package.nix
@@ -9,11 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1k6b1hn8lc4rj9n036imsl7s9lqj6ny3acdhnbnamsdkkndmxrw7";
   };
 
-  buildInputs = [ dpkg ];
-
-  unpackCmd = ''
-    dpkg-deb -x "$src" source
-  '';
+  nativeBuildInputs = [ dpkg ];
 
   installPhase = ''
     sed -i "s|/lib/molly-guard|${systemd}/sbin|g" lib/molly-guard/molly-guard
diff --git a/pkgs/by-name/on/onlyoffice-desktopeditors/package.nix b/pkgs/by-name/on/onlyoffice-desktopeditors/package.nix
index d2e0f96b9db434..565661df3d5459 100644
--- a/pkgs/by-name/on/onlyoffice-desktopeditors/package.nix
+++ b/pkgs/by-name/on/onlyoffice-desktopeditors/package.nix
@@ -120,10 +120,6 @@ let
 
     dontWrapQtApps = true;
 
-    unpackPhase = ''
-      dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner
-    '';
-
     installPhase = ''
       runHook preInstall
 
diff --git a/pkgs/by-name/op/opera/package.nix b/pkgs/by-name/op/opera/package.nix
index a6f2cf3d4f08d6..c2ca46cf3373b1 100644
--- a/pkgs/by-name/op/opera/package.nix
+++ b/pkgs/by-name/op/opera/package.nix
@@ -58,8 +58,6 @@ stdenv.mkDerivation rec {
     hash = "sha256-PBbozIdA+cfEzGIyL1P+25FZtrnd7ldctOtZYomKd/8=";
   };
 
-  unpackPhase = "dpkg-deb -x $src .";
-
   nativeBuildInputs = [
     dpkg
     autoPatchelfHook
diff --git a/pkgs/by-name/pi/picoscope/package.nix b/pkgs/by-name/pi/picoscope/package.nix
index 056a682d1c1cb9..eef60df059f898 100644
--- a/pkgs/by-name/pi/picoscope/package.nix
+++ b/pkgs/by-name/pi/picoscope/package.nix
@@ -29,8 +29,7 @@ let
       src = fetchurl { inherit (sources.libpicoipp) url sha256; };
       nativeBuildInputs = [ dpkg autoPatchelfHook ];
       buildInputs = [ (lib.getLib stdenv.cc.cc) ];
-      sourceRoot = ".";
-      unpackCmd = "dpkg-deb -x $src .";
+
       installPhase = ''
         runHook preInstall
         mkdir -p $out/lib
@@ -57,8 +56,6 @@ let
       src = fetchurl { inherit url sha256; };
       # picoscope does a signature check, so we can't patchelf these
       nativeBuildInputs = [ dpkg ];
-      sourceRoot = ".";
-      unpackCmd = "dpkg-deb -x $src .";
       installPhase = ''
         runHook preInstall
         mkdir -p $out/lib
@@ -82,8 +79,6 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ dpkg makeWrapper ];
   buildInputs = [ gtk-sharp-3_0 mono glib libusb1 zlib ];
 
-  unpackCmd = "dpkg-deb -x $src .";
-  sourceRoot = ".";
   scopeLibs = lib.attrVals (map (x: "lib${x}") scopes) scopePkgs;
   MONO_PATH = "${gtk-sharp-3_0}/lib/mono/gtk-sharp-3.0:" + (lib.makeLibraryPath
     ([
diff --git a/pkgs/by-name/pi/pixeluvo/package.nix b/pkgs/by-name/pi/pixeluvo/package.nix
index 9d19e137096580..c89c2707116b6b 100644
--- a/pkgs/by-name/pi/pixeluvo/package.nix
+++ b/pkgs/by-name/pi/pixeluvo/package.nix
@@ -26,10 +26,6 @@ stdenv.mkDerivation rec {
   dontBuild = true;
   dontConfigure = true;
 
-  unpackPhase = ''
-    dpkg-deb -x ${src} ./
-  '';
-
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/by-name/po/polar-bookshelf/package.nix b/pkgs/by-name/po/polar-bookshelf/package.nix
index 1e29c225f92c49..955b45784e923e 100644
--- a/pkgs/by-name/po/polar-bookshelf/package.nix
+++ b/pkgs/by-name/po/polar-bookshelf/package.nix
@@ -93,8 +93,6 @@ stdenv.mkDerivation rec {
 
   runtimeLibs = lib.makeLibraryPath [ libudev0-shim glibc curl openssl libnghttp2 ];
 
-  unpackPhase = "dpkg-deb -x $src .";
-
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/by-name/po/polar-bookshelf1/package.nix b/pkgs/by-name/po/polar-bookshelf1/package.nix
index 572a981b4ccf85..cd04ca69d1e4b3 100644
--- a/pkgs/by-name/po/polar-bookshelf1/package.nix
+++ b/pkgs/by-name/po/polar-bookshelf1/package.nix
@@ -87,10 +87,6 @@ stdenv.mkDerivation rec {
 
   runtimeLibs = lib.makeLibraryPath [ libudev0-shim glibc curl openssl libnghttp2 ];
 
-  unpackPhase = ''
-    dpkg-deb -x $src .
-  '';
-
   installPhase = ''
     mkdir -p $out/share/polar-bookshelf $out/bin $out/lib
     mv opt/Polar\ Bookshelf/* $out/share/polar-bookshelf
diff --git a/pkgs/by-name/po/positron-bin/package.nix b/pkgs/by-name/po/positron-bin/package.nix
index 8a155f6390fcad..f99fa66da7f307 100644
--- a/pkgs/by-name/po/positron-bin/package.nix
+++ b/pkgs/by-name/po/positron-bin/package.nix
@@ -41,7 +41,6 @@ stdenv.mkDerivation {
     [ makeShellWrapper ]
     ++ lib.optionals stdenv.hostPlatform.isLinux [
       alsa-lib
-      dpkg
       gtk3
       libglvnd
       libxkbcommon
@@ -62,6 +61,7 @@ stdenv.mkDerivation {
   nativeBuildInputs =
     lib.optionals stdenv.hostPlatform.isLinux [
       autoPatchelfHook
+      dpkg
     ]
     ++ lib.optionals stdenv.hostPlatform.isDarwin [
       _7zz
@@ -72,8 +72,6 @@ stdenv.mkDerivation {
     (lib.getLib systemd)
   ];
 
-  postUnpack = lib.optionalString stdenv.hostPlatform.isLinux ''dpkg-deb --fsys-tarfile "$src" | tar -x --no-same-owner'';
-
   installPhase =
     if stdenv.hostPlatform.isDarwin then
       ''
diff --git a/pkgs/by-name/sp/spacedrive/package.nix b/pkgs/by-name/sp/spacedrive/package.nix
index 89fa1d158208ab..db17baa6534bc9 100644
--- a/pkgs/by-name/sp/spacedrive/package.nix
+++ b/pkgs/by-name/sp/spacedrive/package.nix
@@ -115,14 +115,6 @@ else
       gst_all_1.gstreamer
     ];
 
-    unpackPhase = ''
-      runHook preUnpack
-
-      dpkg-deb -x $src .
-
-      runHook postUnpack
-    '';
-
     installPhase = ''
       runHook preInstall
 
diff --git a/pkgs/by-name/ss/sslmate-agent/package.nix b/pkgs/by-name/ss/sslmate-agent/package.nix
index 174507afc21c4c..e605f8673241f6 100644
--- a/pkgs/by-name/ss/sslmate-agent/package.nix
+++ b/pkgs/by-name/ss/sslmate-agent/package.nix
@@ -14,10 +14,6 @@ stdenv.mkDerivation rec {
     autoPatchelfHook
   ];
 
-  unpackCmd = ''
-    dpkg-deb -x ${src} ./sslmate-agent-${pname}
-  '';
-
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/by-name/st/staruml/package.nix b/pkgs/by-name/st/staruml/package.nix
index 84703b0c8c88b7..3df3516b239d37 100644
--- a/pkgs/by-name/st/staruml/package.nix
+++ b/pkgs/by-name/st/staruml/package.nix
@@ -35,12 +35,6 @@ stdenv.mkDerivation (finalAttrs: {
   nativeBuildInputs = [ wrapGAppsHook3 dpkg ];
   buildInputs = [ glib hicolor-icon-theme ];
 
-  unpackPhase = ''
-    mkdir pkg
-    dpkg-deb -x $src pkg
-    sourceRoot=pkg
-  '';
-
   installPhase = ''
     mkdir -p $out/bin
     mv opt $out
diff --git a/pkgs/by-name/te/terra-station/package.nix b/pkgs/by-name/te/terra-station/package.nix
index 582949edc2db16..fe96eebecc1fd4 100644
--- a/pkgs/by-name/te/terra-station/package.nix
+++ b/pkgs/by-name/te/terra-station/package.nix
@@ -30,15 +30,11 @@ stdenv.mkDerivation rec {
     inherit sha256;
   };
 
-  nativeBuildInputs = [ makeWrapper asar ];
+  nativeBuildInputs = [ makeWrapper asar dpkg ];
 
   dontConfigure = true;
   dontBuild = true;
 
-  unpackPhase = ''
-    ${dpkg}/bin/dpkg-deb -x $src .
-  '';
-
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/by-name/th/thedesk/package.nix b/pkgs/by-name/th/thedesk/package.nix
index d1c4dd88583a60..9a398494c429e3 100644
--- a/pkgs/by-name/th/thedesk/package.nix
+++ b/pkgs/by-name/th/thedesk/package.nix
@@ -21,10 +21,6 @@ stdenv.mkDerivation rec {
   dontBuild = true;
   dontConfigure = true;
 
-  unpackPhase = ''
-    dpkg-deb -x ${src} ./
-  '';
-
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/by-name/ti/tidal-hifi/package.nix b/pkgs/by-name/ti/tidal-hifi/package.nix
index fa1c896fb66ca9..de6fb5b0b2de2b 100644
--- a/pkgs/by-name/ti/tidal-hifi/package.nix
+++ b/pkgs/by-name/ti/tidal-hifi/package.nix
@@ -92,8 +92,6 @@ stdenv.mkDerivation (finalAttrs: {
   runtimeDependencies =
     [ (lib.getLib systemd) libnotify libdbusmenu xdg-utils ];
 
-  unpackPhase = "dpkg-deb -x $src .";
-
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/by-name/un/unifi/package.nix b/pkgs/by-name/un/unifi/package.nix
index 14ff5538431430..6ecd33f5e242df 100644
--- a/pkgs/by-name/un/unifi/package.nix
+++ b/pkgs/by-name/un/unifi/package.nix
@@ -18,12 +18,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ dpkg ];
 
-  unpackPhase = ''
-    runHook preUnpack
-    dpkg-deb -x $src ./
-    runHook postUnpack
-  '';
-
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/by-name/up/upwork/package.nix b/pkgs/by-name/up/upwork/package.nix
index 6516e05b0f3575..6062be7b720071 100644
--- a/pkgs/by-name/up/upwork/package.nix
+++ b/pkgs/by-name/up/upwork/package.nix
@@ -32,10 +32,6 @@ stdenv.mkDerivation rec {
 
   dontWrapGApps = true;
 
-  unpackPhase = ''
-    dpkg-deb -x ${src} ./
-  '';
-
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/by-name/wi/wire-desktop/package.nix b/pkgs/by-name/wi/wire-desktop/package.nix
index 1b4ae2a4e74a03..9c6ab2a0b60e89 100644
--- a/pkgs/by-name/wi/wire-desktop/package.nix
+++ b/pkgs/by-name/wi/wire-desktop/package.nix
@@ -109,14 +109,6 @@ let
       systemd
     ];
 
-    unpackPhase = ''
-      runHook preUnpack
-
-      dpkg-deb -x $src .
-
-      runHook postUnpack
-    '';
-
     installPhase = ''
       runHook preInstall
 
diff --git a/pkgs/by-name/wk/wkhtmltopdf/package.nix b/pkgs/by-name/wk/wkhtmltopdf/package.nix
index 980081b3dde7a0..430648cb8a6e61 100644
--- a/pkgs/by-name/wk/wkhtmltopdf/package.nix
+++ b/pkgs/by-name/wk/wkhtmltopdf/package.nix
@@ -56,19 +56,10 @@ let
       (lib.getLib libpng)
     ];
 
-    unpackPhase = ''
-      runHook preUnpack
-
-      mkdir pkg
-      dpkg-deb -x $src pkg
-
-      runHook postUnpack
-    '';
-
     installPhase = ''
       runHook preInstall
 
-      cp -r pkg/usr/local $out
+      cp -r usr/local $out
 
       runHook postInstall
     '';
diff --git a/pkgs/by-name/wo/wonderdraft/package.nix b/pkgs/by-name/wo/wonderdraft/package.nix
index ee49c10a70077c..c6cf971b9beaee 100644
--- a/pkgs/by-name/wo/wonderdraft/package.nix
+++ b/pkgs/by-name/wo/wonderdraft/package.nix
@@ -17,8 +17,10 @@ stdenv.mkDerivation rec {
     url = "https://wonderdraft.net/";
     hash = "sha256-3eYnEH6P94z9axFsrkJA4QMcHyg/gNRczqL3h5Sc2Tg=";
   };
-  sourceRoot = ".";
-  unpackCmd = "${dpkg}/bin/dpkg-deb -x $curSrc .";
+
+  nativeBuildInputs = [
+    dpkg
+  ];
 
   dontConfigure = true;
   dontBuild = true;
diff --git a/pkgs/by-name/ye/yesplaymusic/package.nix b/pkgs/by-name/ye/yesplaymusic/package.nix
index 077ba877587940..c10184161f934f 100644
--- a/pkgs/by-name/ye/yesplaymusic/package.nix
+++ b/pkgs/by-name/ye/yesplaymusic/package.nix
@@ -100,6 +100,7 @@ else stdenv.mkDerivation {
     autoPatchelfHook
     wrapGAppsHook3
     makeWrapper
+    dpkg
   ];
 
   buildInputs = libraries;
@@ -108,10 +109,6 @@ else stdenv.mkDerivation {
     (lib.getLib systemd)
   ];
 
-  unpackPhase = ''
-    ${dpkg}/bin/dpkg-deb -x $src .
-  '';
-
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/misc/jitsi-meet-prosody/default.nix b/pkgs/misc/jitsi-meet-prosody/default.nix
index 00bd87d9b29887..d2ceaf524b176c 100644
--- a/pkgs/misc/jitsi-meet-prosody/default.nix
+++ b/pkgs/misc/jitsi-meet-prosody/default.nix
@@ -8,9 +8,9 @@ stdenv.mkDerivation rec {
     sha256 = "LsZItRkFvpYaj5DwEv4C6tRpmypHadzSVv8/Wto2/68=";
   };
 
-  dontBuild = true;
+  nativeBuildInputs = [ dpkg ];
 
-  unpackCmd = "${dpkg}/bin/dpkg-deb -x $src debcontents";
+  dontBuild = true;
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/servers/jicofo/default.nix b/pkgs/servers/jicofo/default.nix
index 2da338a3e9405f..c905a046309106 100644
--- a/pkgs/servers/jicofo/default.nix
+++ b/pkgs/servers/jicofo/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
 
   dontBuild = true;
 
-  unpackCmd = "${dpkg}/bin/dpkg-deb -x $src debcontents";
+  nativeBuildInputs = [ dpkg ];
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/servers/jitsi-videobridge/default.nix b/pkgs/servers/jitsi-videobridge/default.nix
index 7a78a1cf3eff75..409ada4fcce147 100644
--- a/pkgs/servers/jitsi-videobridge/default.nix
+++ b/pkgs/servers/jitsi-videobridge/default.nix
@@ -13,9 +13,10 @@ stdenv.mkDerivation {
 
   dontBuild = true;
 
-  unpackCmd = "${dpkg}/bin/dpkg-deb -x $src debcontents";
-
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [
+    dpkg
+    makeWrapper
+  ];
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/servers/plex/raw.nix b/pkgs/servers/plex/raw.nix
index c892130b3a6cf9..2a432f693bc6e1 100644
--- a/pkgs/servers/plex/raw.nix
+++ b/pkgs/servers/plex/raw.nix
@@ -28,10 +28,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ dpkg ];
 
-  unpackPhase = ''
-    dpkg-deb -R $src .
-  '';
-
   installPhase = ''
     runHook preInstall
     mkdir -p "$out/lib"