Ihar Hrachyshka dd0f03a56c treewide: remove usage of deprecated apple_sdk framework stubs
They are not doing anything right now. This is in preparation for their
complete removal from the tree.

Note: several changes that affect the derivation inputs (e.g. removal of
references to stub paths in build instructions) were left out. They will
be cleaned up the next iteration and will require special care.

Note: this PR is a result of a mix of ugly regex (not AST) based
automation and some manual labor. For reference, the regex automation
part was hacked in: https://github.com/booxter/nix-clean-apple_sdk

Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
2025-04-19 20:28:20 -04:00

131 lines
3.6 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
gtk4,
libadwaita,
tdlib,
rlottie,
rustPlatform,
meson,
ninja,
pkg-config,
rustc,
cargo,
desktop-file-utils,
blueprint-compiler,
libxml2,
libshumate,
gst_all_1,
buildPackages,
}:
let
pname = "paper-plane";
version = "0.1.0-beta.5";
src = fetchFromGitHub {
owner = "paper-plane-developers";
repo = "paper-plane";
tag = "v${version}";
hash = "sha256-qcAHxNnF980BHMqLF86M06YQnEN5L/8nkyrX6HQjpBA=";
};
# Paper Plane requires a patch to the gtk4, but may be removed later
# https://github.com/paper-plane-developers/paper-plane/tree/main?tab=readme-ov-file#prerequisites
gtk4-paperplane = gtk4.overrideAttrs (prev: {
patches = (prev.patches or [ ]) ++ [ "${src}/build-aux/gtk-reversed-list.patch" ];
});
wrapPaperPlaneHook = buildPackages.wrapGAppsHook3.override {
gtk3 = gtk4-paperplane;
};
# libadwaita has gtk4 in propagatedBuildInputs so it must be overrided
# to avoid linking two libraries, while libshumate doesn't
libadwaita-paperplane = libadwaita.override {
gtk4 = gtk4-paperplane;
};
tdlib-paperplane = tdlib.overrideAttrs (prev: {
pname = "tdlib-paperplane";
version = "1.8.19";
src = fetchFromGitHub {
owner = "tdlib";
repo = "td";
rev = "2589c3fd46925f5d57e4ec79233cd1bd0f5d0c09";
hash = "sha256-mbhxuJjrV3nC8Ja7N0WWF9ByHovJLmoLLuuzoU4khjU=";
};
});
rlottie-paperplane = rlottie.overrideAttrs (prev: {
pname = "rlottie-paperplane";
version = "0-unstable-2022-09-14";
src = fetchFromGitHub {
owner = "paper-plane-developers";
repo = "rlottie";
rev = "1dd47cec7eb8e1f657f02dce9c497ae60f7cf8c5";
hash = "sha256-OIKnDikuJuRIR9Jvl1PnUA9UAV09EmgGdDTeWoVi7jk=";
};
patches = [ ];
env.NIX_CFLAGS_COMPILE = prev.env.NIX_CFLAGS_COMPILE + " -Wno-error";
});
in
stdenv.mkDerivation {
inherit pname version src;
cargoDeps = rustPlatform.fetchCargoVendor {
inherit pname version src;
hash = "sha256-QEX7w8eMV7DJFONjq23o8eCV+lliugS0pcdufFhcZrM=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
rustPlatform.cargoSetupHook
rustPlatform.bindgenHook
rustc
cargo
wrapPaperPlaneHook
desktop-file-utils
blueprint-compiler
libxml2.bin
];
buildInputs = [
libshumate
libadwaita-paperplane
tdlib-paperplane
rlottie-paperplane
gst_all_1.gstreamer
gst_all_1.gst-libav
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
];
mesonFlags = [
# The API ID and hash provided here are for use with Paper Plane only.
# Redistribution of the key in Nixpkgs has been explicitly permitted
# by Paper Plane developers. Please do not use it in other projects.
"-Dtg_api_id=22303002"
"-Dtg_api_hash=3cc0969992690f032197e6609b296599"
];
# Workaround for the gettext-sys issue
# https://github.com/Koka/gettext-rs/issues/114
env.NIX_CFLAGS_COMPILE = lib.optionalString (
stdenv.cc.isClang && lib.versionAtLeast stdenv.cc.version "16"
) "-Wno-error=incompatible-function-pointer-types";
meta = {
homepage = "https://github.com/paper-plane-developers/paper-plane";
description = "Chat over Telegram on a modern and elegant client";
longDescription = ''
Paper Plane is an alternative Telegram client. It uses libadwaita
for its user interface and strives to meet the design principles
of the GNOME desktop.
'';
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ aleksana ];
mainProgram = "paper-plane";
platforms = lib.platforms.unix;
};
}