Unverified Commit 3a49233b authored by Artturi's avatar Artturi Committed by GitHub
Browse files

Merge pull request #225504 from huantianad/dpkg-unpackCmdHook

parents 9daee206 cdd10639
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ stdenv.mkDerivation rec {

  dontBuild = true;
  nativeBuildInputs = [ dpkg makeWrapper ];
  unpackCmd = "dpkg-deb -x $src debcontents";

  installPhase = ''
    runHook preInstall
+2 −0
Original line number Diff line number Diff line
@@ -71,6 +71,8 @@ stdenv.mkDerivation rec {
      cp -r scripts/t/origins $out/etc/dpkg
    '';

  setupHook = ./setup-hook.sh;

  meta = with lib; {
    description = "The Debian package manager";
    homepage = "https://wiki.debian.org/Teams/Dpkg";
+12 −0
Original line number Diff line number Diff line
unpackCmdHooks+=(_tryDpkgDeb)
_tryDpkgDeb() {
    if ! [[ "$curSrc" =~ \.deb$ ]]; then return 1; fi
    # Don't use dpkg-deb -x as that will error if the archive contains a file
    # or directory with a setuid bit in its permissions. This is because dpkg
    # calls tar internally with the -p flag, preserving file permissions.
    #
    # We instead only use dpkg-deb to extract the tarfile containing the files
    # we want from the .deb, then finish extracting with tar directly.
    mkdir root
    dpkg-deb --fsys-tarfile "$curSrc" | tar --extract --directory=root
}