mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-21 04:13:12 +00:00
f9723bc4de
mesa.drivers is basically an implementation detail and should never be used as a dependency of other expressions. It also no longer exists on Darwin. mesa.osmesa is very niche and should generally be avoided. mesa.libdrm is used in exactly one place and it's irrelevant there.
119 lines
3.3 KiB
Nix
119 lines
3.3 KiB
Nix
{ lib
|
|
, cosmic-icons
|
|
, fetchFromGitHub
|
|
, fontconfig
|
|
, freetype
|
|
, just
|
|
, libglvnd
|
|
, libinput
|
|
, libxkbcommon
|
|
, makeBinaryWrapper
|
|
, mesa
|
|
, pkg-config
|
|
, rustPlatform
|
|
, stdenv
|
|
, vulkan-loader
|
|
, wayland
|
|
, xorg
|
|
}:
|
|
|
|
rustPlatform.buildRustPackage rec {
|
|
pname = "cosmic-term";
|
|
version = "unstable-2024-04-14";
|
|
src = fetchFromGitHub {
|
|
owner = "pop-os";
|
|
repo = pname;
|
|
rev = "3e41d261a9d5d2284cd6ae85acde2562b8a5ccd6";
|
|
hash = "sha256-IVLwWG4WUGXK9jY/d0Vr8RX/Klj1mUe4Q7Huv0BkjDo=";
|
|
};
|
|
|
|
cargoLock = {
|
|
lockFile = ./Cargo.lock;
|
|
outputHashes = {
|
|
"accesskit-0.12.2" = "sha256-ksaYMGT/oug7isQY8/1WD97XDUsX2ShBdabUzxWffYw=";
|
|
"atomicwrites-0.4.2" = "sha256-QZSuGPrJXh+svMeFWqAXoqZQxLq/WfIiamqvjJNVhxA=";
|
|
"clipboard_macos-0.1.0" = "sha256-PEH+aCpjDCEIj8s39nIeWxb7qu3u9IfriGqf0pYObMk=";
|
|
"cosmic-config-0.1.0" = "sha256-x/xWMR5w2oEbghTSa8iCi24DA2s99+tcnga8K6jS6HQ=";
|
|
"cosmic-files-0.1.0" = "sha256-KzWlmeZP3F5Kavi9FFXo3o8nB/h79TtOhqWUyI1ZRB0=";
|
|
"cosmic-text-0.11.2" = "sha256-K9cZeClr1zz4LanJS0WPEpxAplQrXfCjFKrSn5n4rDA=";
|
|
"d3d12-0.19.0" = "sha256-usrxQXWLGJDjmIdw1LBXtBvX+CchZDvE8fHC0LjvhD4=";
|
|
"glyphon-0.5.0" = "sha256-j1HrbEpUBqazWqNfJhpyjWuxYAxkvbXzRKeSouUoPWg=";
|
|
"libc-0.2.151" = "sha256-VcNTcLOnVXMlX86yeY0VDfIfKOZyyx/DO1Hbe30BsaI=";
|
|
"smithay-clipboard-0.8.0" = "sha256-OZOGbdzkgRIeDFrAENXE7g62eQTs60Je6lYVr0WudlE=";
|
|
"softbuffer-0.4.1" = "sha256-a0bUFz6O8CWRweNt/OxTvflnPYwO5nm6vsyc/WcXyNg=";
|
|
"taffy-0.3.11" = "sha256-SCx9GEIJjWdoNVyq+RZAGn0N71qraKZxf9ZWhvyzLaI=";
|
|
"winit-0.29.10" = "sha256-ScTII2AzK3SC8MVeASZ9jhVWsEaGrSQ2BnApTxgfxK4=";
|
|
};
|
|
};
|
|
|
|
# COSMIC applications now uses vergen for the About page
|
|
# Update the COMMIT_DATE to match when the commit was made
|
|
env.VERGEN_GIT_COMMIT_DATE = "2024-04-14";
|
|
env.VERGEN_GIT_SHA = src.rev;
|
|
|
|
postPatch = ''
|
|
substituteInPlace justfile --replace '#!/usr/bin/env' "#!$(command -v env)"
|
|
'';
|
|
|
|
nativeBuildInputs = [
|
|
just
|
|
pkg-config
|
|
makeBinaryWrapper
|
|
];
|
|
|
|
buildInputs = [
|
|
fontconfig
|
|
freetype
|
|
libglvnd
|
|
libinput
|
|
libxkbcommon
|
|
vulkan-loader
|
|
wayland
|
|
xorg.libX11
|
|
];
|
|
|
|
dontUseJustBuild = true;
|
|
|
|
justFlags = [
|
|
"--set"
|
|
"prefix"
|
|
(placeholder "out")
|
|
"--set"
|
|
"bin-src"
|
|
"target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-term"
|
|
];
|
|
|
|
# Force linking to libEGL, which is always dlopen()ed, and to
|
|
# libwayland-client, which is always dlopen()ed except by the
|
|
# obscure winit backend.
|
|
RUSTFLAGS = map (a: "-C link-arg=${a}") [
|
|
"-Wl,--push-state,--no-as-needed"
|
|
"-lEGL"
|
|
"-lwayland-client"
|
|
"-Wl,--pop-state"
|
|
];
|
|
|
|
# LD_LIBRARY_PATH can be removed once tiny-xlib is bumped above 0.2.2
|
|
postInstall = ''
|
|
wrapProgram "$out/bin/${pname}" \
|
|
--suffix XDG_DATA_DIRS : "${cosmic-icons}/share" \
|
|
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [
|
|
libxkbcommon
|
|
vulkan-loader
|
|
xorg.libX11
|
|
xorg.libXcursor
|
|
xorg.libXi
|
|
xorg.libXrandr
|
|
]}
|
|
'';
|
|
|
|
meta = with lib; {
|
|
homepage = "https://github.com/pop-os/cosmic-term";
|
|
description = "Terminal for the COSMIC Desktop Environment";
|
|
license = licenses.gpl3Only;
|
|
maintainers = with maintainers; [ ahoneybun nyanbinary ];
|
|
platforms = platforms.linux;
|
|
mainProgram = "cosmic-term";
|
|
};
|
|
}
|