tinyxxd: init at 1.3.5, use as default xxd (#335277)

Emily 322e57fa 75813864

Changed files
+55 -3
nixos
doc
manual
release-notes
pkgs
by-name
ti
tinyxxd
top-level
+2
nixos/doc/manual/release-notes/rl-2411.section.md
···
- The `shadowstack` hardening flag has been added, though disabled by default.
+
- `xxd` is now provided by the `tinyxxd` package, rather than `vim.xxd`, to reduce closure size and vulnerability impact. Since it has the same options and semantics as Vim's `xxd` utility, there is no user impact. Vim's `xxd` remains available as the `vim.xxd` package.
+
- `restic` module now has an option for inhibiting system sleep while backups are running, defaulting to off (not inhibiting sleep), available as [`services.restic.backups.<name>.inhibitsSleep`](#opt-services.restic.backups._name_.inhibitsSleep).
- Support for *runner registration tokens* has been [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/380872)
+50
pkgs/by-name/ti/tinyxxd/package.nix
···
+
{
+
lib,
+
stdenv,
+
fetchFromGitHub,
+
installShellFiles,
+
vim,
+
}:
+
+
stdenv.mkDerivation (finalAttrs: {
+
pname = "tinyxxd";
+
version = "1.3.5";
+
+
src = fetchFromGitHub {
+
repo = "tinyxxd";
+
owner = "xyproto";
+
rev = "v${finalAttrs.version}";
+
hash = "sha256-W7BrQga98ACrhTHF3UlGQMRmcdJaxgorDP6FpD5mr2A=";
+
};
+
+
nativeBuildInputs = [ installShellFiles ];
+
+
installFlags = [ "PREFIX=$(out)" ];
+
+
postInstall = ''
+
installManPage tinyxxd.1
+
+
# Allow using `tinyxxd` as `xxd`. This is similar to the Arch packaging.
+
# https://gitlab.archlinux.org/archlinux/packaging/packages/tinyxxd/-/blob/main/PKGBUILD
+
ln -s $out/bin/{tiny,}xxd
+
ln -s $out/share/man/man1/{tiny,}xxd.1.gz
+
'';
+
+
meta = {
+
homepage = "https://github.com/xyproto/tinyxxd";
+
description = "Drop-in replacement and standalone version of the hex dump utility that comes with ViM";
+
license = [
+
lib.licenses.mit # or
+
lib.licenses.gpl2Only
+
];
+
mainProgram = "tinyxxd";
+
maintainers = with lib.maintainers; [
+
emily
+
philiptaron
+
];
+
platforms = lib.platforms.unix;
+
+
# If the two `xxd` providers are present, choose this one.
+
priority = (vim.xxd.meta.priority or lib.meta.defaultPriority) - 1;
+
};
+
})
+3 -3
pkgs/top-level/unixtools.nix
···
darwin = pkgs.darwin.basic_cmds;
};
xxd = {
-
linux = pkgs.vim.xxd;
-
darwin = pkgs.vim.xxd;
-
freebsd = pkgs.vim.xxd;
+
linux = pkgs.tinyxxd;
+
darwin = pkgs.tinyxxd;
+
freebsd = pkgs.tinyxxd;
};
};