cross compilation: remove unused patches; note upstreaming status
This commit is contained in:
parent
b1e943c9bb
commit
50aa16df81
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue