Commit Graph

250 Commits

Author SHA1 Message Date
John Ericson
18c38f8aee treewide: All the linker to be chosen independently
This will begin the process of breaking up the `useLLVM` monolith. That
is good in general, but I hope will be good for NetBSD and Darwin in
particular.

Co-authored-by: sterni <sternenseemann@systemli.org>
2021-05-14 21:29:51 +00:00
Michael Weiss
e2adee6827
chromiumDev: Fix the build
python.withPackages avoids the problem with mixed Python 2 and Python 3
dependencies.
2021-05-12 22:54:12 +02:00
Jan Tojnar
468cb5980b gnome: rename from gnome3
Since GNOME version is now 40, it no longer makes sense to use the old attribute name.
2021-05-08 09:47:42 +02:00
Michael Weiss
c0ead3d0c4
chromiumBeta: Add curl as dependency to fix the build
This fixes the following build error:
[14969/46739] CXX obj/third_party/crashpad/crashpad/util/util/http_transport_libcurl.o[KK[K.o[KKy_reader.or.od.ooor_linux.mojom-shared.o
FAILED: obj/third_party/crashpad/crashpad/util/util/http_transport_libcurl.o
clang++ [...]
../../third_party/crashpad/crashpad/util/net/http_transport_libcurl.cc:17:10: fatal error: 'curl/curl.h' file not found
#include <curl/curl.h>
         ^~~~~~~~~~~~~
1 error generated.
2021-05-07 16:13:28 +02:00
Alyssa Ross
a8afbb45c1 treewide: use lib.warnIf where appropriate 2021-04-28 21:44:21 +00:00
Jan Tojnar
0f1c4558d3
Merge branch 'master' into staging-next
Choose binwalk 2.3.1, 27 is legacy version for Python 2.
2021-04-25 02:50:48 +02:00
Michael Weiss
eb335f697e
chromium: Warn about and cleanup old chromiumVersionAtLeast conditionals 2021-04-24 12:47:12 +02:00
Michael Weiss
a82f2a0146
ungoogled-chromium: 89.0.4389.114 -> 90.0.4430.85 2021-04-24 12:21:28 +02:00
github-actions[bot]
6e7c70d02d
Merge master into staging-next 2021-04-24 00:16:17 +00:00
Michael Weiss
0dee033ce7
chromiumDev: Fix the configuration phase (#120464)
The Python 3 support still isn't ready...
2021-04-23 23:24:13 +02:00
github-actions[bot]
120744d620
Merge master into staging-next 2021-04-22 12:06:24 +00:00
Michael Weiss
7495ee4f5f
chromiumDev: 91.0.4472.10 -> 91.0.4472.19 2021-04-22 12:04:15 +02:00
github-actions[bot]
799ebbc91d
Merge master into staging-next 2021-04-21 18:13:29 +00:00
Michael Weiss
80f4cce6fa
chromiumDev: Fix the patch phase 2021-04-21 15:00:14 +02:00
Vladimír Čunát
d2eb7a7887
Merge branch 'staging' into staging-next
A few conflicts but relatively clear ones (I think).
2021-04-14 10:08:25 +02:00
Michael Weiss
acf402b0c0
chromiumDev: Fix the build
Mixing Python 2 and Python 3 causes issues with the Python dependencies.
2021-04-13 13:30:54 +02:00
Michael Weiss
8c60448e26
chromiumDev: Fix two build errors
Python 3 is now required (hard-coded in some scripts, but other scripts
still require Python 2) and a patch is required for [0].

[0]: https://bugs.chromium.org/p/chromium/issues/detail?id=1192875
2021-04-13 10:19:51 +02:00
Luke Granger-Brown
08b22e605b Merge remote-tracking branch 'upstream/staging-next' into down-integrate-staging 2021-04-12 18:49:01 +00:00
Michael Weiss
5d775bb2b0
chromiumBeta: Fix the build (#119087) 2021-04-11 10:43:29 +02:00
Michael Weiss
227efbd318
chromium: Fix the build (libva redefinition)
The recent libva 2.11.0 update (780fa55) broke the chromium and
ungoogled-chromium builds. Fix #118931.
2021-04-10 12:06:42 +02:00
Gabriel Ebner
aa0b68b26a chromium: add explicit mesa dependency 2021-04-09 09:26:12 +02:00
Sandro Jäckel
dcb501f993
kerberos: deprecate alias 2021-04-04 03:18:56 +02:00
Michael Weiss
dc8eacfba0
Merge pull request #114979 from primeos/chromium-pipewire-0.3
chromium: Switch from PipeWire 0.2 to the current 0.3.x releases
2021-03-11 11:30:13 +01:00
Michael Weiss
36e5fe006a
chromium: Switch from PipeWire 0.2 to the current 0.3.x releases
This should make it work more reliable and support additional features
like window sharing. See [0] for more details.

[0]: https://jgrulich.cz/2020/12/18/webrtc-chromium-updates-in-2020/
2021-03-04 17:53:06 +01:00
Michael Weiss
dc9f2c5e70
chromium: Remove google_default_client_{id,secret}
Reason: Google is limiting access to their private Chrome APIs starting
on March 15, 2021 [0]. Closes #110245.

From the mailing list thread [1]:
"The changes we announced affect the OAuth 2.0 client id and secret
which are used for signing into Chrome, not the API key."
"To avoid using that API, it's sufficient to either not set the OAuth
2.0 credentials, or disabling the Google signin integration" (e.g. by
passing the flag --allow-browser-signin=false)

[0]: https://blog.chromium.org/2021/01/limiting-private-api-availability-in.html
[1]: https://groups.google.com/a/chromium.org/g/chromium-packagers/c/SG6jnsP4pWM/
2021-03-03 13:13:17 +01:00
Michael Weiss
576464c74d
chromium: Remove our old overrides for VA-API and Ozone
These gn arguments aren't required anymore as they're now equal to the
current defaults.
2021-02-06 12:28:50 +01:00
Ben Siraphob
a6ac3eedbd treewide: xdg_utils -> xdg-utils 2021-02-01 15:05:09 +07:00
Michael Weiss
d1c040f8c6
chromiumDev: Build without TFLite and apply a fix
During d6d4228b39 I failed to notice that the current chromiumDev
version is older than the first one that contained the commit to fix the
dependency on opus in webcodecs.
This should hopefully fix build of chromiumDev (if there are no
additional issues).
2021-02-01 01:43:30 +01:00
Michael Weiss
d6d4228b39
chromiumBeta: Backport a patch to fix the build
The build was failing with:
In file included from ../../third_party/blink/renderer/modules/webcodecs/audio_encoder.cc:7:
In file included from ../../media/audio/audio_opus_encoder.h:16:
gen/shim_headers/opus_shim/third_party/opus/src/include/opus.h:5:10: error: 'opus.h' file not found with <angled> include; use "quotes" instead
#include <opus.h>
         ^~~~~~~~
         "opus.h"
[...]
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
[42272/44233] CXX obj/third_party/blink/renderer/modules/webcodecs/webcodecs/decoder_template.oo[K

Note: This also fixes the ungoogled-chromium channel name in versionRange.
2021-01-30 12:08:17 +01:00
Michael Weiss
241db3bb01
chromium{Beta,Dev}: Disable PGO to "fix" a build error
This also fixes/improves versionRange because the ungoogled-chromium
version will lag behind the Chromium version.
2021-01-28 22:32:32 +01:00
Michael Weiss
fac05ac695
chromium: Don't set "channel" in the environment
The "channel" variable shouldn't be part of the final derivation. This
also makes it possible to avoid unnecessary rebuilds for identical
channels (e.g. major updates are tested via the "beta" channel first and
usually neither the source-code archive nor the dependencies change when
the update makes it into the "stable" channel - this means we could
better use chromiumBeta to test major updates in advance).
2021-01-23 11:54:11 +01:00
Jonathan Ringer
9bb3fccb5b treewide: pkgs.pkgconfig -> pkgs.pkg-config, move pkgconfig to alias.nix
continuation of #109595

pkgconfig was aliased in 2018, however, it remained in
all-packages.nix due to its wide usage. This cleans
up the remaining references to pkgs.pkgsconfig and
moves the entry to aliases.nix.

python3Packages.pkgconfig remained unchanged because
it's the canonical name of the upstream package
on pypi.
2021-01-19 01:16:25 -08:00
Ben Siraphob
badf51221d treewide: stdenv.lib -> lib 2021-01-16 17:58:11 +07:00
Michael Weiss
351f3c043d
chromiumDev: Fix the build (libxshmfence is now required)
Error:
../../components/viz/service/display_embedder/output_presenter_x11.cc:8:10:
fatal error: 'X11/xshmfence.h' file not found
         ^~~~~~~~~~~~~~~~~
1 error generated.
2020-12-25 10:22:06 +01:00
Michael Weiss
240a8f746e
ungoogled-chromium: Move ungoogled-src.nix into upstream-info.json
This also adds a dedicated channel for ungoogled-chromium that enables
us to update ungoogled-chromium independently of chromium.
TODO: Automate ungoogled-chromium updates via update.py (currently it
needs to be updated manually).

Note: Unfortunately this changes the ungoogled-chromium derivation
because common.nix passes the channel as an argument to
stdenv.mkDerivation (this makes it more difficult to verify this commit
but the result should remain the same).
2020-12-10 17:41:22 +01:00
Michael Weiss
2b6b434477
ungoogled-chromium: Merge back into chromium
I used nix-instantiate to verify that the derivations for chromium and
ungoogled-chromium remain unchanged (only the meta attributes change
slightly as I added myself as ungoogled-chromium to receive
notifications for PRs/issues).
2020-12-10 17:41:11 +01:00
Michael Weiss
f09799441f
chromium: Drop gn build arguments that match the default 2020-11-28 17:48:16 +01:00
Michael Weiss
fb0239c654
chromium: Set use_vaapi=!stdenv.isAarch64 for M87
I've removed that option in 063b369908 but forgot that M87 still
defaults to use_vaapi=false.
2020-11-28 17:38:28 +01:00
Michael Weiss
063b369908
chromium: Cleanup useOzone and useVaapi
But since Ozone is still experimental I'll keep useOzone in common.nix
for some time.
2020-11-27 23:03:48 +01:00
Frederik Rietdijk
ce9c513856 Merge staging-next into staging 2020-11-27 15:09:41 +01:00
Michael Weiss
2d5bb88418
chromium: Enable Ozone's DRM/GBM platform [0]
We've only set ozone_platform_gbm=false to fix the build with Mesa's
libgbm (vs. Google's own minigbm). However, since this issue has
resolved itself we can now drop it. Building with the recommended
settings should also avoid some issues (e.g. #104885).

[0]: https://chromium.googlesource.com/chromium/src.git/+/master/docs/ozone_overview.md#drm_gbm
2020-11-27 12:56:54 +01:00
Graham Christensen
bc49a0815a
utillinux: rename to util-linux 2020-11-24 12:42:06 -05:00
Michael Weiss
54673b1f3b
chromium: 86.0.4240.198 -> 87.0.4280.66
https://chromereleases.googleblog.com/2020/11/stable-channel-update-for-desktop_17.html

This update includes 33 security fixes.

CVEs:
CVE-2020-16018 CVE-2020-16019 CVE-2020-16020 CVE-2020-16021
CVE-2020-16022 CVE-2020-16015 CVE-2020-16014 CVE-2020-16023
CVE-2020-16024 CVE-2020-16025 CVE-2020-16026 CVE-2020-16027
CVE-2020-16028 CVE-2020-16029 CVE-2020-16030 CVE-2019-8075
CVE-2020-16031 CVE-2020-16032 CVE-2020-16033 CVE-2020-16034
CVE-2020-16035 CVE-2020-16012 CVE-2020-16036

Note: We'll finally build with use_ozone=true on Hydra now :) \o/
2020-11-17 22:53:12 +01:00
Michael Weiss
197ddbced2
mesa: Replace all usages of old aliases 2020-11-08 22:56:55 +01:00
Michael Weiss
d7f5386474
chromium: Extend update.py to automatically update gn
The gn version depends on the channel and new gn versions aren't always
backward compatible. Therefore we should also include it in
upstream-info.json (I've scoped it under "deps" as we'll likely have to
add more like this in the future).
2020-11-03 20:00:25 +01:00
TredwellGit
2bb011032c
chromium: use official build settings (#101467)
LLD: https://lld.llvm.org/
When you link a large program on a multicore machine, you can expect that LLD runs more than twice as fast as the GNU gold linker. Your mileage may vary, though.
Link-time optimization (LTO) is supported by default.
Some default settings have been tuned for the 21st century. For example, the stack is marked as non-executable by default to tighten security.

LTO & ThinLTO: https://clang.llvm.org/docs/ThinLTO.html
LTO (Link Time Optimization) achieves better runtime performance through whole-program analysis and cross-module optimization. However, monolithic LTO implements this by merging all input into a single module, which is not scalable in time or memory, and also prevents fast incremental compiles. ThinLTO is a new approach that is designed to scale like a non-LTO build, while retaining most of the performance achievement of full LTO.

PGO: https://llvm.org/docs/HowToBuildWithPGO.html https://blog.chromium.org/2020/08/chrome-just-got-faster-with-profile.html
Allows your compiler to better optimize code for how it actually runs. Users report that applying this to Clang and LLVM can decrease overall compile time by 20%.
Because PGO uses real usage scenarios that match the workflows of Chrome users around the world, the most common tasks get prioritized and made faster. Delivers up to 10% faster page loads.

CFI: https://clang.llvm.org/docs/ControlFlowIntegrity.html https://www.chromium.org/developers/testing/control-flow-integrity
Aborts the program upon detecting certain forms of undefined behavior that can potentially allow attackers to subvert the program’s control flow. These schemes have been optimized for performance, allowing developers to enable them in release builds.
By default, a program compiled with CFI will crash with SIGILL if it detects a CFI violation.

Additionally:
Use minizip instead of zlib. Chromium says zlib but actually uses minizip.
Remove old unused workarounds.
Make shell scripts POSIX compliant.
Update documentation URLs.
Prepare for using system libraries.
2020-10-24 12:27:40 +02:00
Michael Weiss
50a2f50acb
chromiumDev: 88.0.4292.2 -> 88.0.4298.4
This should also fix VA-API for chromiumBeta (though that part needs
some cleanup). However, chromiumDev likely still fails due to the
absence of dirmd (not included in the tarball so far, we might have to
package and add it as a dependency).
2020-10-23 17:49:46 +02:00
Michael Weiss
b36db49ae7
chromium: Add some brief documentation
Wanted to do this for a long time to collect important knowledge and
make it easier to pass maintainership.
Only time will tell if this'll be useful or become outdated instead.
2020-10-23 11:39:05 +02:00
Vladimír Čunát
65d6adcf3e
Merge #100713: chromium: build on all cores 2020-10-20 20:58:16 +02:00
conferno
c557c27ac3
chromium: fix build on i686 (#100512)
ld.gold runs out of memory on i686.
2020-10-16 19:37:28 +02:00