From a269b980e929a1b39fa2f26428cb78a3dc78090d Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Mon, 10 Jun 2024 19:17:21 +0200 Subject: [PATCH 1/3] chromium: don't use pkgsBuildTarget MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I'm pretty sure this was a mistake — in Nixpkgs the target platform is the platform that the program being built should output executables for — i.e., it's only relevant for a compiler, which Chromium is not. Tested that cross-compilation of Electron still works. --- pkgs/applications/networking/browsers/chromium/common.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index e7597249acdb5..cfec6dab281df 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -3,7 +3,6 @@ , buildPackages , buildPlatform , pkgsBuildBuild -, pkgsBuildTarget # Channel data: , channel, upstream-info # Helper functions: @@ -382,8 +381,8 @@ let llvmCcAndBintools = symlinkJoin { name = "llvmCcAndBintools"; paths = [ - pkgsBuildTarget.${llvmPackages_attrName}.llvm - pkgsBuildTarget.${llvmPackages_attrName}.stdenv.cc + buildPackages.${llvmPackages_attrName}.llvm + buildPackages.${llvmPackages_attrName}.stdenv.cc ]; }; From a71762621bb17c2c19a31fa50926c78007907d76 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Mon, 10 Jun 2024 00:08:48 +0100 Subject: [PATCH 2/3] electron: fix build Just like with Firefox, we need to make sure there's only a single version of LLVM involved in building Chromium, or we get errors like this: ld.lld: error: Invalid record (Producer: 'LLVM18.1.7' Reader: 'LLVM 17.0.6') Fixes: 23d4f834536b ("cargo,clippy,rustc,rustfmt: 1.77.2 -> 1.78.0") --- .../applications/networking/browsers/chromium/common.nix | 9 ++++----- .../networking/browsers/chromium/default.nix | 8 ++------ 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index cfec6dab281df..a7955b7e61f23 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -12,7 +12,6 @@ , ninja, pkg-config , python3, perl , which -, llvmPackages_attrName , libuuid , overrideCC # postPatch: @@ -131,7 +130,7 @@ let # https://github.com/NixOS/nixpkgs/issues/142901 buildPlatformLlvmStdenv = let - llvmPackages = pkgsBuildBuild.${llvmPackages_attrName}; + llvmPackages = pkgsBuildBuild.rustc.llvmPackages; in overrideCC llvmPackages.stdenv (llvmPackages.stdenv.cc.override { @@ -164,7 +163,7 @@ let ninja pkg-config python3WithPackages perl which - buildPackages.${llvmPackages_attrName}.bintools + buildPackages.rustc.llvmPackages.bintools bison gperf ]; @@ -381,8 +380,8 @@ let llvmCcAndBintools = symlinkJoin { name = "llvmCcAndBintools"; paths = [ - buildPackages.${llvmPackages_attrName}.llvm - buildPackages.${llvmPackages_attrName}.stdenv.cc + buildPackages.rustc.llvmPackages.llvm + buildPackages.rustc.llvmPackages.stdenv.cc ]; }; diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index afd25b972d785..317cb7de1011b 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -24,11 +24,7 @@ }: let - # Sometimes we access `llvmPackages` via `pkgs`, and other times - # via `pkgsFooBar`, so a string (attrname) is the only way to have - # a single point of control over the LLVM version used. - llvmPackages_attrName = "llvmPackages_17"; - stdenv = pkgs.${llvmPackages_attrName}.stdenv; + stdenv = pkgs.rustc.llvmPackages.stdenv; # Helper functions for changes that depend on specific versions: warnObsoleteVersionConditional = min-version: result: @@ -48,7 +44,7 @@ let callPackage = newScope chromium; chromium = rec { - inherit stdenv llvmPackages_attrName upstream-info; + inherit stdenv upstream-info; mkChromiumDerivation = callPackage ./common.nix ({ inherit channel chromiumVersionAtLeast versionRange; From 9a95b60a38ee6eaae603cc3e8aaf15ec469084ea Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Tue, 11 Jun 2024 12:35:38 +0200 Subject: [PATCH 3/3] chromium: remove unused arguments --- pkgs/applications/networking/browsers/chromium/default.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index 317cb7de1011b..095fe13f9197a 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -1,9 +1,9 @@ -{ newScope, config, stdenv, fetchurl, makeWrapper +{ newScope, config, stdenv, makeWrapper , buildPackages , ed, gnugrep, coreutils, xdg-utils , glib, gtk3, gtk4, gnome, gsettings-desktop-schemas, gn, fetchgit , libva, pipewire, wayland -, gcc, nspr, nss, runCommand +, runCommand , lib, libkrb5 , widevine-cdm , electron-source # for warnObsoleteVersionConditional @@ -18,7 +18,6 @@ , cupsSupport ? true , pulseSupport ? config.pulseaudio or stdenv.isLinux , commandLineArgs ? "" -, pkgsBuildTarget , pkgsBuildBuild , pkgs }: