cross compilation: remove unused patches; note upstreaming status

This commit is contained in:
Colin 2024-02-27 14:53:26 +00:00
parent b1e943c9bb
commit 50aa16df81
2 changed files with 114 additions and 208 deletions

View File

@ -47,6 +47,15 @@ in
# default waybar
config.top = import ./waybar-top.nix { inherit lib pkgs; };
packageUnwrapped = pkgs.waybar.override {
# not *required*, however this does cut down on some cross-compilation issues
# and also avoids building entirely unused dependencies
sway = config.sane.programs.sway.package;
cavaSupport = false; #< doesn't cross
hyprlandSupport = false; #< doesn't cross
sndioSupport = false; #< useless
};
sandbox.method = "bwrap";
sandbox.wrapperType = "wrappedDerivation";
sandbox.net = "all"; #< to show net connection status and BW

View File

@ -92,8 +92,6 @@ let
# - the former is [an order of magnitude] faster, but the latter gets me closer to a pure installation.
needsBinfmtOrQemu = buildInQemu {};
# wrapGAppsHook4Fix = p: rmNativeInputs [ final.wrapGAppsHook4 ] (addNativeInputs [ final.wrapGAppsNoGuiHook final.gtk4 ] p);
emulated = mkEmulated final prev;
linuxMinimal = final.linux.override {
@ -346,30 +344,31 @@ in with final; {
# adwaita-qt6 = derivation { name = "null-derivation"; builder = "/dev/null"; }; # null;
# adwaita-qt6 = stdenv.mkDerivation { name = "null-derivation"; };
# adwaita-qt6 = emptyDirectory;
# same story as qdwaita-qt6
# same story as adwaita-qt6
# qgnomeplatform-qt6 = emptyDirectory;
apacheHttpd_2_4 = prev.apacheHttpd_2_4.overrideAttrs (upstream: {
configureFlags = upstream.configureFlags or [] ++ [
"ap_cv_void_ptr_lt_long=no" # configure can't AC_TRY_RUN, and can't validate that sizeof (void*) == sizeof long
];
# let nix figure out the perl shebangs.
# some of these perl scripts are shipped on the host, others in the .dev output for the build machine.
# postPatch methods create cycles
# postPatch = ''
# substituteInPlace configure --replace \
# '/replace/with/path/to/perl/interpreter' \
# '/usr/bin/perl'
# '';
# postPatch = ''
# substituteInPlace support/apxs.in --replace \
# '@perlbin@' \
# '/usr/bin/perl'
# '';
postFixup = upstream.postFixup or "" + ''
sed -i 's:/replace/with/path/to/perl/interpreter:${buildPackages.perl}/bin/perl:' $dev/bin/apxs
'';
});
# 2024/02/27: upstreaming is unblocked (but this solution no longer works)
# apacheHttpd_2_4 = prev.apacheHttpd_2_4.overrideAttrs (upstream: {
# configureFlags = upstream.configureFlags or [] ++ [
# "ap_cv_void_ptr_lt_long=no" # configure can't AC_TRY_RUN, and can't validate that sizeof (void*) == sizeof long
# ];
# # let nix figure out the perl shebangs.
# # some of these perl scripts are shipped on the host, others in the .dev output for the build machine.
# # postPatch methods create cycles
# # postPatch = ''
# # substituteInPlace configure --replace \
# # '/replace/with/path/to/perl/interpreter' \
# # '/usr/bin/perl'
# # '';
# # postPatch = ''
# # substituteInPlace support/apxs.in --replace \
# # '@perlbin@' \
# # '/usr/bin/perl'
# # '';
# postFixup = upstream.postFixup or "" + ''
# sed -i 's:/replace/with/path/to/perl/interpreter:${buildPackages.perl}/bin/perl:' $dev/bin/apxs
# '';
# });
# apacheHttpd_2_4 = (prev.apacheHttpd_2_4.override {
# # fixes `configure: error: Size of "void *" is less than size of "long"`
@ -402,6 +401,7 @@ in with final; {
# });
# };
# 2024/02/27: upstreaming is unblocked
appstream = prev.appstream.overrideAttrs (upstream: {
# fixes: "Message: Native appstream required for cross-building"
# error introduced in:
@ -416,10 +416,6 @@ in with final; {
# ];
});
# error: "imdi/imdi_make: line 1: ^?ELF^B^A^A^B<>^A<>@<40>^W^A@8: not found"
# 2023/12/20: upstreaming is unblocked; implemented in nixpatches/list.nix
# argyllcms = needsBinfmtOrQemu prev.argyllcms;
# binutils = prev.binutils.override {
# # fix that resulting binary files would specify build #!sh as their interpreter.
# # dtrx is the primary beneficiary of this.
@ -429,11 +425,6 @@ in with final; {
# shell = runtimeShell;
# };
# brltty = prev.brltty.override {
# # configure: error: no acceptable C compiler found in $PATH
# inherit (emulated) stdenv;
# };
# 2023/10/23: upstreaming blocked by gvfs, webkitgtk 4.1
# fixes: "error: Package <foo> not found in specified Vala API directories or GObject-Introspection GIR directories"
# needs binfmt for docs: "scangobj.py:execute_command:1293:WARNING:Running scanner failed: [Errno 8] Exec format error: './calls-scan', command: ./calls-scan"
@ -446,6 +437,7 @@ in with final; {
mesonFlags = lib.remove "-Dgtk_doc=true" upstream.mesonFlags;
});
# 2024/02/27: upstreaming is unblocked
# cdrtools = prev.cdrtools.override {
# # "configure: error: installation or configuration problem: C compiler cc not found."
# inherit (emulated) stdenv;
@ -471,7 +463,7 @@ in with final; {
# }));
# cinny-desktop = needsBinfmt prev.cinny-desktop;
# 2023/07/31: upstreaming is unblocked, implemented on servo
# 2024/02/27: upstreaming is blocked on appstream, qtsvg
# clapper = prev.clapper.overrideAttrs (upstream: {
# # use the host gjs (meson's find_program expects it to be executable)
# postPatch = (upstream.postPatch or "") + ''
@ -498,22 +490,6 @@ in with final; {
# ];
# });
# dconf = (prev.dconf.override {
# # we need dconf to build with vala, because dconf-editor requires that.
# # this only happens if dconf *isn't* cross-compiled
# inherit (emulated) stdenv;
# }).overrideAttrs (upstream: {
# nativeBuildInputs = lib.remove glib upstream.nativeBuildInputs;
# });
# 2023/12/20: out for PR: <https://github.com/NixOS/nixpkgs/pull/275732>
dconf = prev.dconf.overrideAttrs (upstream: {
# we need dconf to build with vala, because dconf-editor requires that.
# upstream nixpkgs explicitly disables that on cross compilation, but in fact, it works.
# so just undo upstream's mods.
buildInputs = upstream.buildInputs ++ [ vala ];
mesonFlags = lib.remove "-Dvapi=false" upstream.mesonFlags;
});
# used for cargo2nix rust projects (e.g. fractal, flare)
# defaultCrateOverrides = let
# crateNeedsBinfmt = cname: {
@ -653,6 +629,7 @@ in with final; {
# };
# });
# 2024/02/27: upstreaming is unblocked
firejail = prev.firejail.overrideAttrs (upstream: {
# firejail executes its build outputs to produce the default filter list.
# i think we *could* copy the default filters from pkgsBuildBuild, but that doesn't seem future proof
@ -708,7 +685,7 @@ in with final; {
'';
}));
# 2023/12/08: upstreaming is unblocked
# 2024/02/27: upstreaming is blocked on appstream
flatpak = prev.flatpak.overrideAttrs (upstream: {
# fixes "No package 'libxml-2.0' found"
buildInputs = upstream.buildInputs ++ [ libxml2 ];
@ -798,7 +775,7 @@ in with final; {
crateOverrideFn = cantBinfmt;
});
# 2023/07/31: upstreaming is unblocked -- if i can rework to not use emulation
# 2024/02/27: upstreaming is unblocked -- if i can rework to not use emulation
# fwupd-efi = prev.fwupd-efi.override {
# # fwupd-efi queries meson host_machine to decide what arch to build for.
# # for some reason, this gives x86_64 unless meson itself is emulated.
@ -818,7 +795,7 @@ in with final; {
# # ];
# });
# solves (meson) "Run-time dependency libgcab-1.0 found: NO (tried pkgconfig and cmake)", and others.
# 2023/07/31: upstreaming is blocked on argyllcms, fwupd-efi, libavif
# 2024/02/27: upstreaming is blocked on fwupd-efi
# fwupd = (addBuildInputs
# [ gcab ]
# (mvToBuildInputs [ gnutls ] prev.fwupd)
@ -830,7 +807,7 @@ in with final; {
# outputs = lib.remove "devdoc" upstream.outputs;
# });
# 2023/07/31: upstreaming is blocked on qttranslations (via pipewire)
# 2024/02/27: upstreaming is blocked on qtsvg (via pipewire)
# N.B.: should be able to remove gnupg/ssh from {native}buildInputs when upstreaming
gcr_4 = prev.gcr_4.overrideAttrs (upstream: {
# fixes (meson): "ERROR: Program 'gpg2 gpg' not found or not executable"
@ -846,7 +823,7 @@ in with final; {
# ];
# });
# 2023/12/19: upstreaming is unblocked
# 2024/02/27: upstreaming is unblocked
glycin-loaders = prev.glycin-loaders.overrideAttrs (upstream:
let
cargoEnvWrapper = buildPackages.writeShellScript "cargo-env-wrapper" ''
@ -886,7 +863,7 @@ in with final; {
# 2023/12/20: upstreaming is blocked on webp-pixbuf-loader
gthumb = mvInputs { nativeBuildInputs = [ glib ]; } prev.gthumb;
# 2023/12/20: upstreaming is blocked on qtsvg (via pipewire), jbig2dec
# 2023/12/20: upstreaming is blocked on qtsvg (via pipewire)
gnome-frog = prev.gnome-frog.overrideAttrs (upstream: {
# blueprint-compiler runs on the build machine, but tries to load gobject-introspection types meant for the host.
postPatch = (upstream.postPatch or "") + ''
@ -897,14 +874,6 @@ in with final; {
});
gnome = prev.gnome.overrideScope (self: super: {
# fixes "error: Package `dconf' not found in specified Vala API directories or GObject-Introspection GIR directories"
# - but ONLY if `dconf` was built with the vala feature.
# - dconf is NOT built with vala when cross-compiled
# - that's an explicit choice/limitation in nixpkgs upstream
# - TODO: vapi stuff is contained in <dconf.dev:/share/vala/vapi/dconf.vapi>
# it's cross-platform; should be possible to ship dconf only in buildInputs & point dconf-editor to the right place
# 2023/12/20: out for PR: <https://github.com/NixOS/nixpkgs/pull/275732>
# dconf-editor = addNativeInputs [ dconf ] super.dconf-editor;
evolution-data-server = super.evolution-data-server.overrideAttrs (upstream: {
# 2023/12/08: upstreaming is unblocked, but depends on webkitgtk 4.1
cmakeFlags = upstream.cmakeFlags ++ [
@ -951,14 +920,16 @@ in with final; {
];
});
# 2023/07/31: upstreaming is blocked on argyllcms, libavif
# 2024/02/27: upstreaming is unblocked
# fixes: "src/meson.build:3:0: ERROR: Program 'glib-compile-resources' not found or not executable"
# gnome-color-manager = mvToNativeInputs [ glib ] super.gnome-color-manager;
# 2023/08/01: upstreaming is blocked by apache-httpd, argyllcms, ibus, libavif, webp-pixbuf-loader
# fixes "subprojects/gvc/meson.build:30:0: ERROR: Program 'glib-mkenums mkenums' not found or not executable"
# gnome-control-center = mvToNativeInputs [ glib ] super.gnome-control-center;
gnome-keyring = super.gnome-keyring.overrideAttrs (orig: {
# 2023/07/31: upstreaming is unblocked, but requires a different fix
# 2024/02/27: upstreaming is unblocked
# fixes "configure.ac:374: error: possibly undefined macro: AM_PATH_LIBGCRYPT"
nativeBuildInputs = orig.nativeBuildInputs ++ [ libgcrypt openssh glib ];
});
@ -998,7 +969,7 @@ in with final; {
];
});
gnome-settings-daemon = super.gnome-settings-daemon.overrideAttrs (orig: {
# 2023/07/31: upstreaming is blocked on argyllcms, libavif
# 2023/07/31: upstreaming is blocked on qtsvg (ffado)
# glib solves: "Program 'glib-mkenums mkenums' not found or not executable"
nativeBuildInputs = orig.nativeBuildInputs ++ [ glib ];
# pkg-config solves: "plugins/power/meson.build:22:0: ERROR: Dependency lookup for glib-2.0 with method 'pkgconfig' failed: Pkg-config binary for machine 0 not found."
@ -1024,7 +995,7 @@ in with final; {
# gnome-user-share = addNativeInputs [ glib ] super.gnome-user-share;
mutter = super.mutter.overrideAttrs (orig: {
# 2023/07/31: upstreaming is blocked on argyllcms, libavif
# 2024/02/27: upstreaming is blocked on appstream, possibly others
# N.B.: not all of this suitable to upstreaming, as-is.
# mesa and xorgserver are removed here because they *themselves* don't build for `buildPackages` (temporarily: 2023/10/26)
nativeBuildInputs = lib.subtractLists [ mesa xorg.xorgserver ] orig.nativeBuildInputs;
@ -1045,8 +1016,6 @@ in with final; {
# # fixes: "meson.build:226:6: ERROR: Program 'gtk-update-icon-cache' not found or not executable"
# nativeBuildInputs = [ gtk4 ];
# }
# # fixes -msse2, -mfpmath=sse flags
# (wrapGAppsHook4Fix super.nautilus)
# );
});
@ -1072,7 +1041,7 @@ in with final; {
# gnome_vfs = useEmulatedStdenv super.gnome_vfs;
# });
# 2023/12/08: upstreaming is blocked on python3Packages.eyeD3
# 2024/02/27: upstreaming is blocked on python3Packages.eyeD3
gpodder = prev.gpodder.overridePythonAttrs (upstream: {
# fix gobject-introspection overrides import that otherwise fails on launch
nativeBuildInputs = upstream.nativeBuildInputs ++ [
@ -1082,10 +1051,6 @@ in with final; {
strictDeps = true;
});
# hdf5 = prev.hdf5.override {
# inherit (emulated) stdenv;
# };
# out for PR: <https://github.com/NixOS/nixpkgs/pull/263182>
# hspell = prev.hspell.overrideAttrs (upstream: {
# # build perl is needed by the Makefile,
@ -1096,9 +1061,11 @@ in with final; {
# '';
# });
# 2024/02/27: upstreaming is blocked on gconf
# "setup: line 1595: ant: command not found"
# i2p = mvToNativeInputs [ ant gettext ] prev.i2p;
# 2024/02/27: upstreaming is unblocked (see `pkgs/patched/ibus`)
# ibus = (prev.ibus.override {
# inherit (emulated)
# stdenv # fixes: "configure: error: cannot run test program while cross compiling"
@ -1130,10 +1097,10 @@ in with final; {
'';
});
# 2023/10/23: upstreaming blocked on argyllcms
# 2024/02/27: upstreaming is unblocked
graphicsmagick = prev.graphicsmagick.overrideAttrs (upstream: {
# by default the build holds onto a reference to build `mv`
# N.B.: `imagemagick` package has this identical issue
# N.B.: `imagemagick` package has this identical issue (but requires a different fix?)
configureFlags = upstream.configureFlags ++ [
"MVDelegate=${coreutils}/bin/mv"
];
@ -1167,18 +1134,6 @@ in with final; {
# };
# };
# 2023/12/20: upstreamed into staging, waiting on staging -> master merge: <https://github.com/NixOS/nixpkgs/pull/275027>
# jbig2dec = prev.jbig2dec.overrideAttrs (_: {
# # adding configureFlags here fixes: "configure: error: cannot run C compiled programs."
# # autogen needs the --host flag, i guess
# # preConfigure = ''
# # ./autogen.sh $configureFlags
# # '';
# # alternatively, we've set `configureScript` and so no longer need the preConfigure step
# configureScript = "./autogen.sh";
# preConfigure = "";
# });
# jellyfin-media-player = mvToBuildInputs
# [ libsForQt5.wrapQtAppsHook ] # this shouldn't be: but otherwise we get mixed qtbase deps
# (prev.jellyfin-media-player.overrideAttrs (upstream: {
@ -1221,22 +1176,6 @@ in with final; {
# autoPatchelfHook
# ];
# });
# koreader-from-src = prev.koreader-from-src.override {
# # fixes runtime error: luajit: ./ffi/util.lua:757: attempt to call field 'pack' (a nil value)
# # inherit (emulated) luajit;
# luajit = buildInQemu (luajit.override {
# buildPackages.stdenv = emulated.stdenv; # it uses buildPackages.stdenv for HOST_CC
# });
# };
# failure:
# ```
# cd /build/koreader/base/thirdparty/lua-htmlparser/build/aarch64-unknown-linux-gnu/lua-htmlparser-prefix/src/lua-htmlparser && luarocks make --tree=/build/koreader/base/build/aarch64-unknown-linux-gnu/rocks rockspecs/htmlparser-scm-0.rockspec ...
# bin/.luarocks-wrapped: line 2: package.loaded[luarocks.core.hardcoded]: command not found
# bin/.luarocks-wrapped: bin/luarocks: line 3: syntax error near unexpected token `]]'
# bin/.luarocks-wrapped: bin/luarocks: line 3: `package.path=[[/nix/store/b7wa76cvxki14k9cmdi0vzd954nx6nww-luarocks-aarch64-unknown-linux-gnu-3.9.1/share/lua/5.1/?.lua;]] .. package.path'
# ```
# koreader-from-src = needsBinfmt prev.koreader-from-src;
lemoa = prev.lemoa.overrideAttrs (upstream:
let
@ -1257,23 +1196,13 @@ in with final; {
);
# 2024/01/14: patched and built; verified no native runtime deps
# 2024/02/27: upstreaming is unblocked
# fixes "proto/meson.build:17:15: ERROR: Failed running '/nix/store/sx2814jd7xim65qbiqry94vkq2b4xv5b-python3-aarch64-unknown-linux-gnu-3.11.7-env/bin/python3', binary or interpreter not executable."
# source runs python during build only as a sanity check: we could instead disable that.
# this library is probably only used by xwayland: <https://github.com/NixOS/nixpkgs/pull/280256>
# in turn used by gdm
# it's a dependency of waybar (via sway), but doesn't actually occur in the output!
libei = prev.libei.override { python3 = buildPackages.python3; };
# libgweather = rmNativeInputs [ glib ] (prev.libgweather.override {
# # alternative to emulating python3 is to specify it in `buildInputs` instead of `nativeBuildInputs` (upstream),
# # but presumably that's just a different way to emulate it.
# # the python gobject-introspection stuff is a tangled mess that's impossible to debug:
# # don't dig further, leave this for some other dedicated soul.
# inherit (emulated)
# stdenv # fixes "Run-time dependency vapigen found: NO (tried pkgconfig)"
# gobject-introspection # fixes gir x86-64 python -> aarch64 shared object import
# python3 # fixes build-aux/meson/gen_locations_variant.py x86-64 python -> aarch64 import of glib
# ;
# });
# libgweather = prev.libgweather.overrideAttrs (upstream: {
# nativeBuildInputs = (lib.remove gobject-introspection upstream.nativeBuildInputs) ++ [
# buildPackages.gobject-introspection # fails to fix "gi._error.GError: g-invoke-error-quark: Could not locate g_option_error_quark: /nix/store/dsx6kqmyg7f3dz9hwhz7m3jrac4vn3pc-glib-aarch64-unknown-linux-gnu-2.74.3/lib/libglib-2.0.so.0"
@ -1341,7 +1270,7 @@ in with final; {
# callPackage = self.newScope { inherit (self) qtCompatVersion qtModule srcs; inherit stdenv; };
# });
# 2023/11/21: upstreaming is unblocked
# 2024/02/27: upstreaming is unblocked
# but i don't think either the pkg-config fix (which breaks binfmt cross) nor disabling docs is the right fix.
libshumate = prev.libshumate.overrideAttrs (upstream: {
# fixes "Build-time dependency gi-docgen found: NO (tried pkgconfig and cmake)"
@ -1750,7 +1679,7 @@ in with final; {
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
(py-final: py-prev: {
# 2023/12/08: upstreaming is unblocked (eyeD3 is a dep of gpodder)
# 2024/02/27: upstreaming is unblocked (eyeD3 is a dep of gpodder)
eyed3 = py-prev.eyed3.overrideAttrs (orig: {
# weird double-wrapping of the output executable, but somehow with the build python ends up on PYTHONPATH
postInstall = "";
@ -2044,62 +1973,48 @@ in with final; {
}
);
squeekboard = prev.squeekboard.overrideAttrs (upstream: {
# fixes: "meson.build:1:0: ERROR: 'rust' compiler binary not defined in cross or native file"
# new error: "meson.build:1:0: ERROR: Rust compiler rustc --target aarch64-unknown-linux-gnu -C linker=aarch64-unknown-linux-gnu-gcc can not compile programs."
# NB(2023/03/04): upstream nixpkgs has a new squeekboard that's closer to cross-compiling; use that
# NB(2023/08/24): this emulates the entire rust build process
mesonFlags =
let
# ERROR: 'rust' compiler binary not defined in cross or native file
crossFile = writeText "cross-file.conf" ''
[binaries]
rust = [ 'rustc', '--target', '${rust.toRustTargetSpec stdenv.hostPlatform}' ]
'';
in
# upstream.mesonFlags or [] ++
[
"-Dtests=false"
"-Dnewer=true"
"-Donline=false"
]
++ lib.optional
(stdenv.hostPlatform != stdenv.buildPlatform)
"--cross-file=${crossFile}"
;
# squeekboard = prev.squeekboard.overrideAttrs (upstream: {
# # fixes: "meson.build:1:0: ERROR: 'rust' compiler binary not defined in cross or native file"
# # new error: "meson.build:1:0: ERROR: Rust compiler rustc --target aarch64-unknown-linux-gnu -C linker=aarch64-unknown-linux-gnu-gcc can not compile programs."
# # NB(2023/03/04): upstream nixpkgs has a new squeekboard that's closer to cross-compiling; use that
# # NB(2023/08/24): this emulates the entire rust build process
# mesonFlags =
# let
# # ERROR: 'rust' compiler binary not defined in cross or native file
# crossFile = writeText "cross-file.conf" ''
# [binaries]
# rust = [ 'rustc', '--target', '${rust.toRustTargetSpec stdenv.hostPlatform}' ]
# '';
# in
# # upstream.mesonFlags or [] ++
# [
# "-Dtests=false"
# "-Dnewer=true"
# "-Donline=false"
# ]
# ++ lib.optional
# (stdenv.hostPlatform != stdenv.buildPlatform)
# "--cross-file=${crossFile}"
# ;
# cargoDeps = null;
# cargoVendorDir = "vendor";
# # cargoDeps = null;
# # cargoVendorDir = "vendor";
# depsBuildBuild = (upstream.depsBuildBuild or []) ++ [
# pkg-config
# ];
# this is identical to upstream, but somehow build fails if i remove it??
nativeBuildInputs = [
meson
ninja
pkg-config
glib
wayland
wrapGAppsHook
rustPlatform.cargoSetupHook
cargo
rustc
];
});
# squeekboard = prev.squeekboard.override {
# inherit (emulated)
# rustPlatform # fixes original "'rust' compiler binary not defined in cross or native file"
# rustc
# # depsBuildBuild = (upstream.depsBuildBuild or []) ++ [
# # pkg-config
# # ];
# # this is identical to upstream, but somehow build fails if i remove it??
# nativeBuildInputs = [
# meson
# ninja
# pkg-config
# glib
# wayland
# rustPlatform.cargoSetupHook
# cargo
# stdenv # fixes "gcc: error: unrecognized command line option '-m64'"
# glib # fixes error when linking src/squeekboard: "/nix/store/3c0dqm093ylw8ks7myzxdaif0m16rgcl-binutils-2.40/bin/ld: /nix/store/jzh15bi6zablx3d9s928w3lgqy6and91-glib-2.74.3/lib/libgio-2.0.so"
# wayland # fixes error when linking src/squeekboard: "/nix/store/3c0dqm093ylw8ks7myzxdaif0m16rgcl-binutils-2.40/bin/ld: /nix/store/ni0vb1pnaznx85378i3h9xhw9cay68g5-wayland-1.21.0/lib/libwayland-client.so: error adding symbols: file in wrong format"
# # gtk3 # fails to fix: "/nix/store/acl3fg3z4i96d6lha2cbr16k7bl1zjs5-binutils-2.40/bin/ld: /nix/store/k2jd14yl5qcl3kwifhhs271607fjafbx-gtk+3-3.24.36/lib/libgtk-3.so: error adding symbols: file in wrong format"
# wrapGAppsHook # introduces a competing gtk3 at link-time, unless emulated
# ;
# };
# rustc
# ];
# });
# 2023/12/08: upstreaming is blocked by qtsvg (via pipewire)
tangram = prev.tangram.overrideAttrs (upstream: {
@ -2113,11 +2028,6 @@ in with final; {
'';
});
# twitter-color-emoji = prev.twitter-color-emoji.override {
# # fails to fix original error
# inherit (emulated) stdenv;
# };
# fixes: "ar: command not found"
# `ar` is provided by bintools
# 2023/12/08: upstreaming is blocked on gnustep-base cross compilation
@ -2149,34 +2059,23 @@ in with final; {
# # setting this to null means visidata will work as normal but not be able to load hdf files.
# h5py = null;
# };
vlc = prev.vlc.overrideAttrs (orig: {
# 2023/11/21: upstreaming is blocked on qtsvg, qtx11extras
# fixes: "configure: error: could not find the LUA byte compiler"
# fixes: "configure: error: protoc compiler needed for chromecast was not found"
nativeBuildInputs = orig.nativeBuildInputs ++ [ lua5 protobuf ];
# fix that it can't find the c compiler
# makeFlags = orig.makeFlags or [] ++ [ "CC=${prev.stdenv.cc.targetPrefix}cc" ];
env = orig.env // {
BUILDCC = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc";
};
});
# vlc = prev.vlc.overrideAttrs (orig: {
# # 2023/11/21: upstreaming is blocked on qtsvg, qtx11extras
# # fixes: "configure: error: could not find the LUA byte compiler"
# # fixes: "configure: error: protoc compiler needed for chromecast was not found"
# nativeBuildInputs = orig.nativeBuildInputs ++ [ lua5 protobuf ];
# # fix that it can't find the c compiler
# # makeFlags = orig.makeFlags or [] ++ [ "CC=${prev.stdenv.cc.targetPrefix}cc" ];
# env = orig.env // {
# BUILDCC = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc";
# };
# });
# fixes "perl: command not found"
# 2023/07/30: upstreaming is unblocked, but requires alternative fix
# - i think the build script tries to run the generated binary?
vpnc = mvToNativeInputs [ perl ] prev.vpnc;
# wrapGAppsHook = prev.wrapGAppsHook.override {
# # prevents build gtk3 from being propagated into places it shouldn't (e.g. waybar)
# isGraphical = false;
# };
# wrapGAppsHook4 = prev.wrapGAppsHook4.override {
# # fixes -msse2, -mfpmath=sse flags being inherited by consumers.
# # ^ maybe that's because of the stuff in depsTargetTargetPropagated?
# # N.B.: this makes the hook functionally equivalent to `wrapGAppsNoGuiHook`
# isGraphical = false;
# # gtk3 = emptyDirectory;
# };
# 2023/11/21: upstreaming is blocked on flatpak
xdg-desktop-portal = prev.xdg-desktop-portal.overrideAttrs (upstream: {
nativeBuildInputs = upstream.nativeBuildInputs ++ [
@ -2201,25 +2100,23 @@ in with final; {
)
);
# 2023/12/08: upstreaming is blocked on wlroots-hyprland
# 2024/02/27: upstreaming is blocked on wlroots-hyprland (libei)
# needs binfmt: "meson.build:420:8: ERROR: Dependency lookup for scdoc with method 'pkgconfig' failed: Pkg-config binary for machine 0 not found. Giving up."
waybar = (prev.waybar.override {
runTests = false;
runTests = false; #< upstream expects `catch2_3` as a runtime requirement
cavaSupport = false; # doesn't cross compile
hyprlandSupport = false; # doesn't cross compile
# fixes: "/nix/store/sc1pz0zaqwpai24zh7xx0brjinflmc6v-aarch64-unknown-linux-gnu-binutils-2.40/bin/aarch64-unknown-linux-gnu-ld: /nix/store/ghxl1zrfnvh69dmv7xa1swcbyx06va4y-wayland-1.22.0/lib/libwayland-client.so: error adding symbols: file in wrong format"
wrapGAppsHook = wrapGAppsHook.override {
isGraphical = false;
# tries to invoke the pkgsHostHost compiler :s
makeWrapper = null;
};
wrapGAppsHook = wrapGAppsNoGuiHook;
}).overrideAttrs (upstream: {
nativeBuildInputs = upstream.nativeBuildInputs ++ [
buildPackages.wayland-scanner
(makeShellWrapper.overrideAttrs (_: {
# else it tries to invoke the host CC compiler (??)
shell = runtimeShell;
}))
];
# buildInputs = upstream.buildInputs ++ [ catch2_3 ]; #< either this or override `runTests = false`
mesonFlags = upstream.mesonFlags ++ [
# fixes "Dependency lookup for scdoc with method 'pkgconfig' failed: Pkg-config binary for machine 0 not found. Giving up."
"-Dman-pages=disabled"
@ -2244,7 +2141,7 @@ in with final; {
});
# webkitgtk = prev.webkitgtk.override { stdenv = ccacheStdenv; };
# 2023/12/08: upstreaming is unblocked
# 2024/02/27: upstreaming is unblocked
webp-pixbuf-loader = prev.webp-pixbuf-loader.overrideAttrs (upstream: {
# fixes: "Builder called die: Cannot wrap '/nix/store/kpp8qhzdjqgvw73llka5gpnsj0l4jlg8-gdk-pixbuf-aarch64-unknown-linux-gnu-2.42.10/bin/gdk-pixbuf-thumbnailer' because it is not an executable file"
# gdk-pixbuf doesn't create a `bin/` directory when cross-compiling, breaks some thumbnailing stuff.