YTCAGLMETYZOR3KTLNMA2EKQBQRBBD7JYAU3TAWZVROCTJEH7ZZAC
E45IV4XK2CL72KA2L3NFHYRAOQQOT2B6LLA2LHUESZYO43DXTNYAC
RXCY7LD6ZRIOIKZEYKLMCYPMQPXF4DOEEFBDLVR2B22BXLZJFFBQC
A3TVGLVHSVLMEHLHB3TPBSD3QGNVGX3DIK6BEBDTTHWBNW4ALMRAC
PNSLB3HLQELG4BZJYQB2T2R4ZFYQVPZHQZXAEOBCR4ZVMJ36LYNAC
2BMHPXLWOZ2YRXCLF7NECGDY7DJJG2DOL2VQFZFIJDMPC5DVDLNQC
OJA2ZIR22LIUDKJHGQEBA6NO5EV6RIVJLT7WDO32W3KZLN7QISQAC
3YIDMP6OLDU3WSPGQC26LM2EFLNNUP6CF2GJK2IQ3QBPXSU3UE7QC
2I3TNVERHL3E2QXCDM67P4DU5OMO66X4ZWPGIK5S52NMIPS3NBMQC
ZNA55M3OW2RZXC4MA5UDS4V3KRBSAKFNAYVYE4I2EASXUSI4WXMQC
OWFOCHWRU53CS6GDG4PQDOG7C36CBCJN64OV3YTI3YGPZ4G2K4TQC
BS7ABBU7XUN2MNHAKACMC2Z5GWNYW2ZJM2EWYX2P4NQILVBWZMGAC
U62UDC3T5EFVY3SEFTCPZJVWSQ2EU3FO7N7SROJ6AYM6I2BDRJAAC
6XELOGDCC2DQEL4VZZIGLIK6EJHY7Q2I76L4DVRJXO3VLYGYPHNAC
YEMYZP24MMAEYZJTLAYTOOBVILR7467ZX2K5T2PDGXW75IQE2NJQC
2XQC6RDJ66ONMC4WFLYRSAG3LTA4M4TDNP2SY2OWATCRA56EJBUAC
2TFLQ4P6QLMUCNYZ2IW4OFW4BFSP5ASAFVLGQFCELWTYKZQINZ2QC
WK4IYZI6AY6YRIDWXVAWKX77K72LZZLDY3SKM5SPJ47HZT7RCRAQC
stdenvNoCC.mkDerivation rec {
pname = "iterm2";
inherit version;
src = fetchzip {
url = "https://iterm2.com/downloads/stable/iTerm2-${lib.replaceStrings ["."] ["_"] version}.zip";
};
dontFixup = true;
installPhase = ''
runHook preInstall
APP_DIR="$out/Applications/iTerm2.app"
mkdir -p "$APP_DIR"
cp -r . "$APP_DIR"
mkdir -p "$out/bin"
cat << EOF > "$out/bin/iterm2"
#!${stdenvNoCC.shell}
open -na "$APP_DIR" --args "$@"
EOF
chmod +x "$out/bin/iterm2"
runHook postInstall
'';
meta = with lib; {
description = "Replacement for Terminal and the successor to iTerm";
homepage = "https://www.iterm2.com/";
hydraPlatforms = []; # The build is little more than copying the binary
license = licenses.gpl2;
};
}
maintainers = with maintainers; [steinybot tricktron];
platforms = ["x86_64-darwin" "aarch64-darwin"];
sourceProvenance = [sourceTypes.binaryNativeCode];
inherit hash;
{
fetchzip,
lib,
stdenvNoCC,
version,
}:
/*
This cannot be built from source as it requires entitlements and
for that it needs to be code signed. Automatic updates will have
to be disabled via preferences instead of at build time. To do
that edit $HOME/Library/Preferences/com.googlecode.iterm2.plist
and add:
SUEnableAutomaticChecks = 0;
*/
hash
{
pkgs ? import <nixpkgs> {},
lib ? pkgs.lib,
stdenv ? pkgs.stdenv,
fetchurl ? pkgs.fetchurl,
perl ? pkgs.perl,
}:
stdenv.mkDerivation rec {
pname = "gnused-prefixed";
version = "4.8";
src = fetchurl {
url = "mirror://gnu/sed/sed-${version}.tar.xz";
sha256 = "0cznxw73fzv1n3nj2zsq6nf73rvsbxndp444xkpahdqvlzz0r6zp";
};
outputs = ["out" "info"];
configureFlags = ["--program-prefix=g"];
nativeBuildInputs = [perl];
preConfigure = "patchShebangs ./build-aux/help2man";
# Prevents attempts of running 'help2man' on cross-built binaries.
PERL =
if stdenv.hostPlatform == stdenv.buildPlatform
then null
else "missing";
meta = {
homepage = "https://www.gnu.org/software/sed/";
description = "GNU sed, a batch stream editor";
longDescription = ''
Sed (stream editor) isn't really a true text editor or text
processor. Instead, it is used to filter text, i.e., it takes
text input and performs some operation (or set of operations) on
it and outputs the modified text. Sed is typically used for
extracting part of a file using pattern matching or substituting
multiple occurrences of a string within a file. This version installs sed
with a `g` program prefix, for use on macOS.
'';
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.unix;
maintainers = [];
};
}
{
pkgs ? import <nixpkgs> {},
lib ? pkgs.lib,
stdenv ? pkgs.stdenv,
fetchurl ? pkgs.fetchurl,
perl ? pkgs.perl,
}:
stdenv.mkDerivation rec {
pname = "gnused-prefixed";
src = fetchurl {
url = "mirror://gnu/sed/sed-${version}.tar.xz";
};
outputs = ["out" "info"];
configureFlags = ["--program-prefix=g"];
nativeBuildInputs = [perl];
preConfigure = "patchShebangs ./build-aux/help2man";
# Prevents attempts of running 'help2man' on cross-built binaries.
PERL =
if stdenv.hostPlatform == stdenv.buildPlatform
then null
else "missing";
meta = {
homepage = "https://www.gnu.org/software/sed/";
description = "GNU sed, a batch stream editor";
longDescription = ''
Sed (stream editor) isn't really a true text editor or text
processor. Instead, it is used to filter text, i.e., it takes
text input and performs some operation (or set of operations) on
it and outputs the modified text. Sed is typically used for
extracting part of a file using pattern matching or substituting
multiple occurrences of a string within a file. This version installs sed
with a `g` program prefix, for use on macOS.
'';
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.unix;
maintainers = [];
};
}
sha256 = "biJrcy4c1zlGStaGK9Ghq6QteYKSLaelNRljHSSXUYE=";
version = "4.9";
{
pkgs ? import <nixpkgs> {},
lib ? pkgs.lib,
stdenv ? pkgs.stdenv,
fetchurl ? pkgs.fetchurl,
perl ? pkgs.perl,
}:
stdenv.mkDerivation rec {
pname = "gnused-prefixed";
version = "4.9";
src = fetchurl {
url = "mirror://gnu/sed/sed-${version}.tar.xz";
sha256 = "biJrcy4c1zlGStaGK9Ghq6QteYKSLaelNRljHSSXUYE=";
};
outputs = ["out" "info"];
configureFlags = ["--program-prefix=g"];
nativeBuildInputs = [perl];
preConfigure = "patchShebangs ./build-aux/help2man";
# Prevents attempts of running 'help2man' on cross-built binaries.
PERL =
if stdenv.hostPlatform == stdenv.buildPlatform
then null
else "missing";
meta = {
homepage = "https://www.gnu.org/software/sed/";
description = "GNU sed, a batch stream editor";
longDescription = ''
Sed (stream editor) isn't really a true text editor or text
processor. Instead, it is used to filter text, i.e., it takes
text input and performs some operation (or set of operations) on
it and outputs the modified text. Sed is typically used for
extracting part of a file using pattern matching or substituting
multiple occurrences of a string within a file. This version installs sed
with a `g` program prefix, for use on macOS.
'';
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.unix;
maintainers = [];
};
}
result
{
fetchzip,
lib,
stdenvNoCC,
version,
hash
}:
/*
This cannot be built from source as it requires entitlements and
for that it needs to be code signed. Automatic updates will have
to be disabled via preferences instead of at build time. To do
that edit $HOME/Library/Preferences/com.googlecode.iterm2.plist
and add:
SUEnableAutomaticChecks = 0;
*/
stdenvNoCC.mkDerivation rec {
pname = "iterm2";
inherit version;
src = fetchzip {
url = "https://iterm2.com/downloads/stable/iTerm2-${lib.replaceStrings ["."] ["_"] version}.zip";
inherit hash;
};
dontFixup = true;
installPhase = ''
runHook preInstall
APP_DIR="$out/Applications/iTerm2.app"
mkdir -p "$APP_DIR"
cp -r . "$APP_DIR"
mkdir -p "$out/bin"
cat << EOF > "$out/bin/iterm2"
#!${stdenvNoCC.shell}
open -na "$APP_DIR" --args "$@"
EOF
chmod +x "$out/bin/iterm2"
runHook postInstall
'';
meta = with lib; {
description = "Replacement for Terminal and the successor to iTerm";
homepage = "https://www.iterm2.com/";
hydraPlatforms = []; # The build is little more than copying the binary
license = licenses.gpl2;
maintainers = with maintainers; [steinybot tricktron];
platforms = ["x86_64-darwin" "aarch64-darwin"];
sourceProvenance = [sourceTypes.binaryNativeCode];
};
}
mkTool = {
name,
lispDeps,
}: system: let
pkgs = nixpkgs.legacyPackages.${system};
sbcl = pkgs.sbcl.withPackages lispDeps;
in
pkgs.stdenv.mkDerivation {
inherit system name;
src = ./tools;
builder = ./build.sh;
dontStrip = true;
buildInputs = [
pkgs.makeWrapper
pkgs.openssl.dev
sbcl
pkgs.which
pkgs.zsh
];
};
mkZenburn = mkTool {
name = "zenburn";
lispDeps = ps:
with ps; [
alexandria
dufy
net_dot_didierverna_dot_clon
net_dot_didierverna_dot_clon_dot_termio
serapeum
#uiop
];
};
mkCls = mkTool {
name = "cls";
lispDeps = ps:
with ps; [
alexandria
data-lens
local-time
net_dot_didierverna_dot_clon
net_dot_didierverna_dot_clon_dot_termio
yason
#uiop
];
};
mkGitPickPatch = mkTool {
name = "git-pick-patch";
lispDeps = ps:
with ps; [
alexandria
serapeum
cl-ppcre
];
};
mkJsonFormatter = mkTool {
name = "json-formatter";
lispDeps = ps:
with ps; [
net_dot_didierverna_dot_clon
net_dot_didierverna_dot_clon_dot_termio
alexandria
serapeum
com_dot_inuoe_dot_jzon
];
};
mkPrefixedSed = system: let
pkgs = nixpkgs.legacyPackages.${system};
in
pkgs.callPackage ./nix/personal-flake/elangley-overlay/prefixed-gnused {};
mkCurl = system: let
pkgs = nixpkgs.legacyPackages.${system};
in
pkgs.curl.override {
openssl = pkgs.quictls;
http3Support = true;
};
mkTools = system: {
zenburn = mkZenburn system;
cls = mkCls system;
git-pick-patch = mkGitPickPatch system;
json-formatter = mkJsonFormatter system;
mycurl = mkCurl system;
gsed = mkPrefixedSed system;
};
packages = builtins.mapAttrs (system: f: f system) {
"aarch64-darwin" = darwinPackages;
"aarch64-linux" = mkTools;
"x86_64-linux" = mkTools;
};
packages = import ./nix/packages inputs;
{
pkgs ? import <nixpkgs> {},
lib ? pkgs.lib,
stdenv ? pkgs.stdenv,
fetchurl ? pkgs.fetchurl,
perl ? pkgs.perl,
}:
stdenv.mkDerivation rec {
pname = "gnused-prefixed";
version = "4.9";
src = fetchurl {
url = "mirror://gnu/sed/sed-${version}.tar.xz";
sha256 = "biJrcy4c1zlGStaGK9Ghq6QteYKSLaelNRljHSSXUYE=";
};
outputs = ["out" "info"];
configureFlags = ["--program-prefix=g"];
nativeBuildInputs = [perl];
preConfigure = "patchShebangs ./build-aux/help2man";
# Prevents attempts of running 'help2man' on cross-built binaries.
PERL =
if stdenv.hostPlatform == stdenv.buildPlatform
then null
else "missing";
meta = {
homepage = "https://www.gnu.org/software/sed/";
description = "GNU sed, a batch stream editor";
longDescription = ''
Sed (stream editor) isn't really a true text editor or text
processor. Instead, it is used to filter text, i.e., it takes
text input and performs some operation (or set of operations) on
it and outputs the modified text. Sed is typically used for
extracting part of a file using pattern matching or substituting
multiple occurrences of a string within a file. This version installs sed
with a `g` program prefix, for use on macOS.
'';
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.unix;
maintainers = [];
};
}
result
{
fetchzip,
lib,
stdenvNoCC,
version,
hash
}:
/*
This cannot be built from source as it requires entitlements and
for that it needs to be code signed. Automatic updates will have
to be disabled via preferences instead of at build time. To do
that edit $HOME/Library/Preferences/com.googlecode.iterm2.plist
and add:
SUEnableAutomaticChecks = 0;
*/
stdenvNoCC.mkDerivation rec {
pname = "iterm2";
inherit version;
src = fetchzip {
url = "https://iterm2.com/downloads/stable/iTerm2-${lib.replaceStrings ["."] ["_"] version}.zip";
inherit hash;
};
dontFixup = true;
installPhase = ''
runHook preInstall
APP_DIR="$out/Applications/iTerm2.app"
mkdir -p "$APP_DIR"
cp -r . "$APP_DIR"
mkdir -p "$out/bin"
cat << EOF > "$out/bin/iterm2"
#!${stdenvNoCC.shell}
open -na "$APP_DIR" --args "$@"
EOF
chmod +x "$out/bin/iterm2"
runHook postInstall
'';
meta = with lib; {
description = "Replacement for Terminal and the successor to iTerm";
homepage = "https://www.iterm2.com/";
hydraPlatforms = []; # The build is little more than copying the binary
license = licenses.gpl2;
maintainers = with maintainers; [steinybot tricktron];
platforms = ["x86_64-darwin" "aarch64-darwin"];
sourceProvenance = [sourceTypes.binaryNativeCode];
};
}