caido: split into caido-cli and caido-desktop (#492185)

This commit is contained in:
Peder Bergebakken Sundt
2026-04-11 16:51:17 +00:00
committed by GitHub
4 changed files with 189 additions and 208 deletions
+69
View File
@@ -0,0 +1,69 @@
{
lib,
stdenv,
fetchurl,
autoPatchelfHook,
unzip,
libgcc,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "caido-cli";
version = "0.55.3";
src = fetchurl (
{
x86_64-linux = {
url = "https://caido.download/releases/v${finalAttrs.version}/caido-cli-v${finalAttrs.version}-linux-x86_64.tar.gz";
hash = "sha256-ys5gMO0jGy5d8ncwQo9ES0gn7Ddckf3496CAyGgKEus=";
};
aarch64-linux = {
url = "https://caido.download/releases/v${finalAttrs.version}/caido-cli-v${finalAttrs.version}-linux-aarch64.tar.gz";
hash = "sha256-JvWktRnNyzu98NeSOFJ6nhF60uQfSL6ys5BmTkYuwCQ=";
};
x86_64-darwin = {
url = "https://caido.download/releases/v${finalAttrs.version}/caido-cli-v${finalAttrs.version}-mac-x86_64.zip";
hash = "sha256-bnFGa8GMDTdCjk9xJL9rGvZ1H6MMzzXrlWXGRlE5XPg=";
};
aarch64-darwin = {
url = "https://caido.download/releases/v${finalAttrs.version}/caido-cli-v${finalAttrs.version}-mac-aarch64.zip";
hash = "sha256-UVBQKkGsYJ84cthFkCXrHI85t8LJPy4z5sP5TobVNeA=";
};
}
.${stdenv.hostPlatform.system}
or (throw "caido-cli: unsupported system ${stdenv.hostPlatform.system}")
);
nativeBuildInputs =
lib.optionals stdenv.isLinux [ autoPatchelfHook ] ++ lib.optionals stdenv.isDarwin [ unzip ];
buildInputs = lib.optionals stdenv.isLinux [ libgcc ];
sourceRoot = ".";
installPhase = ''
runHook preInstall
install -m 755 -D caido-cli $out/bin/caido-cli
runHook postInstall
'';
meta = {
description = "Caido CLI lightweight web security auditing toolkit";
homepage = "https://caido.io/";
changelog = "https://github.com/caido/caido/releases/tag/v${finalAttrs.version}";
license = lib.licenses.unfree;
mainProgram = "caido-cli";
maintainers = with lib.maintainers; [
blackzeshi
m0streng0
octodi
];
platforms = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
})
+119
View File
@@ -0,0 +1,119 @@
{
lib,
stdenv,
fetchurl,
appimageTools,
makeWrapper,
_7zz,
}:
let
pname = "caido-desktop";
version = "0.55.3";
sources = {
x86_64-linux = {
url = "https://caido.download/releases/v${version}/caido-desktop-v${version}-linux-x86_64.AppImage";
hash = "sha256-pGRmFYE7uO5Ka94Kfjl9LR5PAwZ5dCxHqCqJKhtLPco=";
};
aarch64-linux = {
url = "https://caido.download/releases/v${version}/caido-desktop-v${version}-linux-aarch64.AppImage";
hash = "sha256-s99+HXf7Ada2wiPUZ/5M/p09JiadFn5GnKrzqo9yNPQ=";
};
x86_64-darwin = {
url = "https://caido.download/releases/v${version}/caido-desktop-v${version}-mac-x86_64.dmg";
hash = "sha256-V33bRaTwhxozBR/wV83bU89TZluenKpFc8GU0KaaO8w=";
};
aarch64-darwin = {
url = "https://caido.download/releases/v${version}/caido-desktop-v${version}-mac-aarch64.dmg";
hash = "sha256-fEzPN84zoSvlIgUBYVmPta7SUmTDRQghoJMTZXW7eI4=";
};
};
src = fetchurl (
sources.${stdenv.hostPlatform.system}
or (throw "caido-desktop: unsupported system ${stdenv.hostPlatform.system}")
);
meta = {
description = "Caido Desktop lightweight web security auditing toolkit";
homepage = "https://caido.io/";
changelog = "https://github.com/caido/caido/releases/tag/v${version}";
license = lib.licenses.unfree;
mainProgram = "caido-desktop";
maintainers = with lib.maintainers; [
blackzeshi
m0streng0
octodi
];
platforms = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
appimageContents = appimageTools.extractType2 { inherit pname version src; };
linux = appimageTools.wrapType2 {
inherit
pname
version
src
meta
;
nativeBuildInputs = [ makeWrapper ];
extraPkgs = pkgs: [ pkgs.libthai ];
extraInstallCommands = ''
install -m 444 -D ${appimageContents}/caido.desktop \
-t $out/share/applications
install -m 444 -D ${appimageContents}/caido.png \
$out/share/icons/hicolor/512x512/apps/caido.png
wrapProgram $out/bin/${pname} \
--set WEBKIT_DISABLE_COMPOSITING_MODE 1 \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}"
'';
};
darwin = stdenv.mkDerivation {
inherit
pname
version
src
meta
;
nativeBuildInputs = [
_7zz
makeWrapper
];
unpackPhase = ''
runHook preUnpack
7zz x $src || true
runHook postUnpack
'';
sourceRoot = "Caido.app";
installPhase = ''
runHook preInstall
mkdir -p $out/Applications/Caido.app $out/bin
cp -R . $out/Applications/Caido.app/
makeWrapper $out/Applications/Caido.app/Contents/MacOS/Caido \
$out/bin/${pname}
runHook postInstall
'';
};
in
if stdenv.isLinux then
linux
else if stdenv.isDarwin then
darwin
else
throw "caido-desktop: unsupported platform ${stdenv.hostPlatform.system}"
-208
View File
@@ -1,208 +0,0 @@
{
lib,
stdenv,
fetchurl,
appimageTools,
makeWrapper,
autoPatchelfHook,
_7zz,
unzip,
libgcc,
appVariants ? [ ],
}:
let
pname = "caido";
appVariantList = [
"cli"
"desktop"
];
version = "0.55.1";
system = stdenv.hostPlatform.system;
isLinux = stdenv.isLinux;
isDarwin = stdenv.isDarwin;
# CLI sources
cliSources = {
x86_64-linux = {
url = "https://caido.download/releases/v${version}/caido-cli-v${version}-linux-x86_64.tar.gz";
hash = "sha256-4xRkEN/ZA+JUFMB2qoEZT0Bzv2Qc7Y9kcj251MCAhKE=";
};
aarch64-linux = {
url = "https://caido.download/releases/v${version}/caido-cli-v${version}-linux-aarch64.tar.gz";
hash = "sha256-gMQkF0+mq2nRBy0oBenFvp69byWCkqmt8E4ZpKuNxKw=";
};
x86_64-darwin = {
url = "https://caido.download/releases/v${version}/caido-cli-v${version}-mac-x86_64.zip";
hash = "sha256-C+EfmSBJMyxYXLfzxCrY7ZVtg8nwtie8w0Lj1Dy7o/k=";
};
aarch64-darwin = {
url = "https://caido.download/releases/v${version}/caido-cli-v${version}-mac-aarch64.zip";
hash = "sha256-b0cBS3RwsiLgJNqHWxi672MVZNfTYNOEJ2k0h2qNnP0=";
};
};
# Desktop sources
desktopSources = {
x86_64-linux = {
url = "https://caido.download/releases/v${version}/caido-desktop-v${version}-linux-x86_64.AppImage";
hash = "sha256-zfts2h8QWTxe/dISwgKRQiSx2nD6vtE1atPfREyGX/U=";
};
aarch64-linux = {
url = "https://caido.download/releases/v${version}/caido-desktop-v${version}-linux-aarch64.AppImage";
hash = "sha256-fYqzukRptCB466LIPbVre2EwBFt4Bsq9amQ4kjQuV2Q=";
};
x86_64-darwin = {
url = "https://caido.download/releases/v${version}/caido-desktop-v${version}-mac-x86_64.dmg";
hash = "sha256-UsGT5n0MGVwWCXACo74Harb4J/qt/3TyD0+EFYNmPxw=";
};
aarch64-darwin = {
url = "https://caido.download/releases/v${version}/caido-desktop-v${version}-mac-aarch64.dmg";
hash = "sha256-iZHZayj2VYjMY9+p+xrlX+vP/DcbCRPQizQEqtF39EU=";
};
};
cliSource = cliSources.${system} or (throw "Unsupported system for caido-cli: ${system}");
desktopSource =
desktopSources.${system} or (throw "Unsupported system for caido-desktop: ${system}");
cli = fetchurl {
url = cliSource.url;
hash = cliSource.hash;
};
desktop = fetchurl {
url = desktopSource.url;
hash = desktopSource.hash;
};
appimageContents = appimageTools.extractType2 {
inherit pname version;
src = desktop;
};
wrappedDesktop =
if isLinux then
appimageTools.wrapType2 {
src = desktop;
inherit pname version;
nativeBuildInputs = [ makeWrapper ];
extraPkgs = pkgs: [ pkgs.libthai ];
extraInstallCommands = ''
install -m 444 -D ${appimageContents}/caido.desktop -t $out/share/applications
install -m 444 -D ${appimageContents}/caido.png \
$out/share/icons/hicolor/512x512/apps/caido.png
wrapProgram $out/bin/caido \
--set WEBKIT_DISABLE_COMPOSITING_MODE 1 \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}"
'';
}
else if isDarwin then
stdenv.mkDerivation {
src = desktop;
inherit pname version;
nativeBuildInputs = [ _7zz ];
sourceRoot = ".";
unpackPhase = ''
runHook preUnpack
${_7zz}/bin/7zz x $src
runHook postUnpack
'';
installPhase = ''
runHook preInstall
mkdir -p $out/Applications
cp -r Caido.app $out/Applications/
mkdir -p $out/bin
ln -s $out/Applications/Caido.app/Contents/MacOS/Caido $out/bin/caido
runHook postInstall
'';
meta = {
platforms = [
"x86_64-darwin"
"aarch64-darwin"
];
};
}
else
throw "Desktop variant is not supported on ${stdenv.hostPlatform.system}";
wrappedCli =
if isLinux then
stdenv.mkDerivation {
src = cli;
inherit pname version;
nativeBuildInputs = [ autoPatchelfHook ];
buildInputs = [ libgcc ];
sourceRoot = ".";
installPhase = ''
runHook preInstall
install -m755 -D caido-cli $out/bin/caido-cli
runHook postInstall
'';
}
else if isDarwin then
stdenv.mkDerivation {
src = cli;
inherit pname version;
nativeBuildInputs = [ unzip ];
sourceRoot = ".";
installPhase = ''
runHook preInstall
install -m755 -D caido-cli $out/bin/caido-cli
runHook postInstall
'';
meta = {
platforms = [
"x86_64-darwin"
"aarch64-darwin"
];
};
}
else
throw "CLI variant is not supported on ${stdenv.hostPlatform.system}";
meta = {
description = "Lightweight web security auditing toolkit";
homepage = "https://caido.io/";
changelog = "https://github.com/caido/caido/releases/tag/v${version}";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [
octodi
blackzeshi
];
platforms = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
};
in
lib.checkListOfEnum "${pname}: appVariants" appVariantList appVariants (
if appVariants == [ "desktop" ] then
wrappedDesktop
else if appVariants == [ "cli" ] then
wrappedCli
else
stdenv.mkDerivation {
inherit pname version meta;
dontUnpack = true;
installPhase = ''
mkdir -p $out/bin
ln -s ${wrappedDesktop}/bin/caido $out/bin/caido
ln -s ${wrappedCli}/bin/caido-cli $out/bin/caido-cli
'';
}
)
+1
View File
@@ -414,6 +414,7 @@ mapAliases {
bwidget = throw "'bwidget' has been renamed to/replaced by 'tclPackages.bwidget'"; # Converted to throw 2025-10-27
bzrtp = throw "'bzrtp' has been moved to 'linphonePackages.bzrtp'"; # Added 2025-09-20
c0 = throw "'c0' has been removed due to being broken for more than a year; see RFC 180"; # Added 2026-02-05
caido = warnAlias "'caido' has been split into 'caido-cli' and 'caido-desktop'." caido-desktop; # Added 2026-03-03
calculix = throw "'calculix' has been renamed to/replaced by 'calculix-ccx'"; # Converted to throw 2025-10-27
calligra = throw "'calligra' has been renamed to/replaced by 'kdePackages.calligra'"; # Converted to throw 2025-10-27
callPackage_i686 = throw "'callPackage_i686' has been renamed to/replaced by 'pkgsi686Linux.callPackage'"; # Converted to throw 2025-10-27