9bb3fccb5b
continuation of #109595 pkgconfig was aliased in 2018, however, it remained in all-packages.nix due to its wide usage. This cleans up the remaining references to pkgs.pkgsconfig and moves the entry to aliases.nix. python3Packages.pkgconfig remained unchanged because it's the canonical name of the upstream package on pypi.
142 lines
3.1 KiB
Nix
142 lines
3.1 KiB
Nix
{ stdenv
|
|
, lib
|
|
, fetchFromGitHub
|
|
, rustPlatform
|
|
|
|
, cmake
|
|
, gzip
|
|
, installShellFiles
|
|
, makeWrapper
|
|
, ncurses
|
|
, pkg-config
|
|
, python3
|
|
|
|
, expat
|
|
, fontconfig
|
|
, freetype
|
|
, libGL
|
|
, libX11
|
|
, libXcursor
|
|
, libXi
|
|
, libXrandr
|
|
, libXxf86vm
|
|
, libxcb
|
|
, libxkbcommon
|
|
, wayland
|
|
, xdg_utils
|
|
|
|
# Darwin Frameworks
|
|
, AppKit
|
|
, CoreGraphics
|
|
, CoreServices
|
|
, CoreText
|
|
, Foundation
|
|
, OpenGL
|
|
}:
|
|
let
|
|
rpathLibs = [
|
|
expat
|
|
fontconfig
|
|
freetype
|
|
libGL
|
|
libX11
|
|
libXcursor
|
|
libXi
|
|
libXrandr
|
|
libXxf86vm
|
|
libxcb
|
|
] ++ lib.optionals stdenv.isLinux [
|
|
libxkbcommon
|
|
wayland
|
|
];
|
|
in
|
|
rustPlatform.buildRustPackage rec {
|
|
pname = "alacritty";
|
|
version = "0.7.1";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "alacritty";
|
|
repo = pname;
|
|
rev = "v${version}";
|
|
sha256 = "8alCFtr+3aJsqQ2Ra8u5/SRHfDvMq2kRvRCKo/zwMK0=";
|
|
};
|
|
|
|
cargoSha256 = "kqRlxieChnhWtYYf67gi+2bncIzO56xpnv2uLjcINVM=";
|
|
|
|
nativeBuildInputs = [
|
|
cmake
|
|
gzip
|
|
installShellFiles
|
|
makeWrapper
|
|
ncurses
|
|
pkg-config
|
|
python3
|
|
];
|
|
|
|
buildInputs = rpathLibs
|
|
++ lib.optionals stdenv.isDarwin [
|
|
AppKit
|
|
CoreGraphics
|
|
CoreServices
|
|
CoreText
|
|
Foundation
|
|
OpenGL
|
|
];
|
|
|
|
outputs = [ "out" "terminfo" ];
|
|
|
|
postPatch = ''
|
|
substituteInPlace alacritty/src/config/mouse.rs \
|
|
--replace xdg-open ${xdg_utils}/bin/xdg-open
|
|
'';
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
install -D $releaseDir/alacritty $out/bin/alacritty
|
|
|
|
'' + (
|
|
if stdenv.isDarwin then ''
|
|
mkdir $out/Applications
|
|
cp -r extra/osx/Alacritty.app $out/Applications
|
|
ln -s $out/bin $out/Applications/Alacritty.app/Contents/MacOS
|
|
'' else ''
|
|
install -D extra/linux/Alacritty.desktop -t $out/share/applications/
|
|
install -D extra/logo/compat/alacritty-term.svg $out/share/icons/hicolor/scalable/apps/Alacritty.svg
|
|
|
|
# patchelf generates an ELF that binutils' "strip" doesn't like:
|
|
# strip: not enough room for program headers, try linking with -N
|
|
# As a workaround, strip manually before running patchelf.
|
|
strip -S $out/bin/alacritty
|
|
|
|
patchelf --set-rpath "${lib.makeLibraryPath rpathLibs}" $out/bin/alacritty
|
|
''
|
|
) + ''
|
|
|
|
installShellCompletion --zsh extra/completions/_alacritty
|
|
installShellCompletion --bash extra/completions/alacritty.bash
|
|
installShellCompletion --fish extra/completions/alacritty.fish
|
|
|
|
install -dm 755 "$out/share/man/man1"
|
|
gzip -c extra/alacritty.man > "$out/share/man/man1/alacritty.1.gz"
|
|
|
|
install -Dm 644 alacritty.yml $out/share/doc/alacritty.yml
|
|
|
|
install -dm 755 "$terminfo/share/terminfo/a/"
|
|
tic -xe alacritty,alacritty-direct -o "$terminfo/share/terminfo" extra/alacritty.info
|
|
mkdir -p $out/nix-support
|
|
echo "$terminfo" >> $out/nix-support/propagated-user-env-packages
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
dontPatchELF = true;
|
|
|
|
meta = with lib; {
|
|
description = "A cross-platform, GPU-accelerated terminal emulator";
|
|
homepage = "https://github.com/alacritty/alacritty";
|
|
license = licenses.asl20;
|
|
maintainers = with maintainers; [ Br1ght0ne mic92 cole-h ma27 ];
|
|
platforms = platforms.unix;
|
|
};
|
|
}
|