brave: format with nixfmt-rfc-style

This commit is contained in:
Sean Buckley 2024-11-06 19:42:19 -05:00
parent d037904ba3
commit 301751f1c1

View File

@ -1,103 +1,155 @@
{ lib, stdenv, fetchurl, buildPackages
, alsa-lib
, at-spi2-atk
, at-spi2-core
, atk
, cairo
, cups
, dbus
, dpkg
, expat
, fontconfig
, freetype
, gdk-pixbuf
, glib
, adwaita-icon-theme
, gsettings-desktop-schemas
, gtk3
, gtk4
, qt6
, libX11
, libXScrnSaver
, libXcomposite
, libXcursor
, libXdamage
, libXext
, libXfixes
, libXi
, libXrandr
, libXrender
, libXtst
, libdrm
, libkrb5
, libuuid
, libxkbcommon
, libxshmfence
, mesa
, nspr
, nss
, pango
, pipewire
, snappy
, udev
, wayland
, xdg-utils
, coreutils
, xorg
, zlib
{
lib,
stdenv,
fetchurl,
buildPackages,
alsa-lib,
at-spi2-atk,
at-spi2-core,
atk,
cairo,
cups,
dbus,
dpkg,
expat,
fontconfig,
freetype,
gdk-pixbuf,
glib,
adwaita-icon-theme,
gsettings-desktop-schemas,
gtk3,
gtk4,
qt6,
libX11,
libXScrnSaver,
libXcomposite,
libXcursor,
libXdamage,
libXext,
libXfixes,
libXi,
libXrandr,
libXrender,
libXtst,
libdrm,
libkrb5,
libuuid,
libxkbcommon,
libxshmfence,
mesa,
nspr,
nss,
pango,
pipewire,
snappy,
udev,
wayland,
xdg-utils,
coreutils,
xorg,
zlib,
# command line arguments which are always set e.g "--disable-gpu"
, commandLineArgs ? ""
# command line arguments which are always set e.g "--disable-gpu"
commandLineArgs ? "",
# Necessary for USB audio devices.
, pulseSupport ? stdenv.hostPlatform.isLinux
, libpulseaudio
# Necessary for USB audio devices.
pulseSupport ? stdenv.hostPlatform.isLinux,
libpulseaudio,
# For GPU acceleration support on Wayland (without the lib it doesn't seem to work)
, libGL
# For GPU acceleration support on Wayland (without the lib it doesn't seem to work)
libGL,
# For video acceleration via VA-API (--enable-features=VaapiVideoDecoder,VaapiVideoEncoder)
, libvaSupport ? stdenv.hostPlatform.isLinux
, libva
, enableVideoAcceleration ? libvaSupport
# For video acceleration via VA-API (--enable-features=VaapiVideoDecoder,VaapiVideoEncoder)
libvaSupport ? stdenv.hostPlatform.isLinux,
libva,
enableVideoAcceleration ? libvaSupport,
# For Vulkan support (--enable-features=Vulkan); disabled by default as it seems to break VA-API
, vulkanSupport ? false
, addDriverRunpath
, enableVulkan ? vulkanSupport
# For Vulkan support (--enable-features=Vulkan); disabled by default as it seems to break VA-API
vulkanSupport ? false,
addDriverRunpath,
enableVulkan ? vulkanSupport,
}:
{ pname
, version
, hash
, url
, platform
{
pname,
version,
hash,
url,
platform,
}:
let
inherit (lib) optional optionals makeLibraryPath makeSearchPathOutput makeBinPath
optionalString strings escapeShellArg;
inherit (lib)
optional
optionals
makeLibraryPath
makeSearchPathOutput
makeBinPath
optionalString
strings
escapeShellArg
;
deps = [
alsa-lib at-spi2-atk at-spi2-core atk cairo cups dbus expat
fontconfig freetype gdk-pixbuf glib gtk3 gtk4 libdrm libX11 libGL
libxkbcommon libXScrnSaver libXcomposite libXcursor libXdamage
libXext libXfixes libXi libXrandr libXrender libxshmfence
libXtst libuuid mesa nspr nss pango pipewire udev wayland
xorg.libxcb zlib snappy libkrb5 qt6.qtbase
]
++ optional pulseSupport libpulseaudio
++ optional libvaSupport libva;
alsa-lib
at-spi2-atk
at-spi2-core
atk
cairo
cups
dbus
expat
fontconfig
freetype
gdk-pixbuf
glib
gtk3
gtk4
libdrm
libX11
libGL
libxkbcommon
libXScrnSaver
libXcomposite
libXcursor
libXdamage
libXext
libXfixes
libXi
libXrandr
libXrender
libxshmfence
libXtst
libuuid
mesa
nspr
nss
pango
pipewire
udev
wayland
xorg.libxcb
zlib
snappy
libkrb5
qt6.qtbase
] ++ optional pulseSupport libpulseaudio ++ optional libvaSupport libva;
rpath = makeLibraryPath deps + ":" + makeSearchPathOutput "lib" "lib64" deps;
binpath = makeBinPath deps;
enableFeatures = optionals enableVideoAcceleration [ "VaapiVideoDecoder" "VaapiVideoEncoder" ]
enableFeatures =
optionals enableVideoAcceleration [
"VaapiVideoDecoder"
"VaapiVideoEncoder"
]
++ optional enableVulkan "Vulkan";
disableFeatures = [ "OutdatedBuildDetector" ] # disable automatic updates
disableFeatures =
[ "OutdatedBuildDetector" ] # disable automatic updates
# The feature disable is needed for VAAPI to work correctly: https://github.com/brave/brave-browser/issues/20935
++ optionals enableVideoAcceleration [ "UseChromeOSDirectVideoDecoder" ];
++ optionals enableVideoAcceleration [ "UseChromeOSDirectVideoDecoder" ];
in
stdenv.mkDerivation {
inherit pname version;
@ -120,7 +172,10 @@ stdenv.mkDerivation {
buildInputs = [
# needed for GSETTINGS_SCHEMAS_PATH
glib gsettings-desktop-schemas gtk3 gtk4
glib
gsettings-desktop-schemas
gtk3
gtk4
# needed for XDG_ICON_DIRS
adwaita-icon-theme
@ -129,51 +184,51 @@ stdenv.mkDerivation {
unpackPhase = "dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner";
installPhase = ''
runHook preInstall
runHook preInstall
mkdir -p $out $out/bin
mkdir -p $out $out/bin
cp -R usr/share $out
cp -R opt/ $out/opt
cp -R usr/share $out
cp -R opt/ $out/opt
export BINARYWRAPPER=$out/opt/brave.com/brave/brave-browser
export BINARYWRAPPER=$out/opt/brave.com/brave/brave-browser
# Fix path to bash in $BINARYWRAPPER
substituteInPlace $BINARYWRAPPER \
--replace /bin/bash ${stdenv.shell}
# Fix path to bash in $BINARYWRAPPER
substituteInPlace $BINARYWRAPPER \
--replace /bin/bash ${stdenv.shell}
ln -sf $BINARYWRAPPER $out/bin/brave
ln -sf $BINARYWRAPPER $out/bin/brave
for exe in $out/opt/brave.com/brave/{brave,chrome_crashpad_handler}; do
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${rpath}" $exe
done
for exe in $out/opt/brave.com/brave/{brave,chrome_crashpad_handler}; do
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${rpath}" $exe
done
# Fix paths
substituteInPlace $out/share/applications/brave-browser.desktop \
--replace /usr/bin/brave-browser-stable $out/bin/brave
substituteInPlace $out/share/gnome-control-center/default-apps/brave-browser.xml \
--replace /opt/brave.com $out/opt/brave.com
substituteInPlace $out/share/menu/brave-browser.menu \
--replace /opt/brave.com $out/opt/brave.com
substituteInPlace $out/opt/brave.com/brave/default-app-block \
--replace /opt/brave.com $out/opt/brave.com
# Fix paths
substituteInPlace $out/share/applications/brave-browser.desktop \
--replace /usr/bin/brave-browser-stable $out/bin/brave
substituteInPlace $out/share/gnome-control-center/default-apps/brave-browser.xml \
--replace /opt/brave.com $out/opt/brave.com
substituteInPlace $out/share/menu/brave-browser.menu \
--replace /opt/brave.com $out/opt/brave.com
substituteInPlace $out/opt/brave.com/brave/default-app-block \
--replace /opt/brave.com $out/opt/brave.com
# Correct icons location
icon_sizes=("16" "24" "32" "48" "64" "128" "256")
# Correct icons location
icon_sizes=("16" "24" "32" "48" "64" "128" "256")
for icon in ''${icon_sizes[*]}
do
mkdir -p $out/share/icons/hicolor/$icon\x$icon/apps
ln -s $out/opt/brave.com/brave/product_logo_$icon.png $out/share/icons/hicolor/$icon\x$icon/apps/brave-browser.png
done
for icon in ''${icon_sizes[*]}
do
mkdir -p $out/share/icons/hicolor/$icon\x$icon/apps
ln -s $out/opt/brave.com/brave/product_logo_$icon.png $out/share/icons/hicolor/$icon\x$icon/apps/brave-browser.png
done
# Replace xdg-settings and xdg-mime
ln -sf ${xdg-utils}/bin/xdg-settings $out/opt/brave.com/brave/xdg-settings
ln -sf ${xdg-utils}/bin/xdg-mime $out/opt/brave.com/brave/xdg-mime
# Replace xdg-settings and xdg-mime
ln -sf ${xdg-utils}/bin/xdg-settings $out/opt/brave.com/brave/xdg-settings
ln -sf ${xdg-utils}/bin/xdg-mime $out/opt/brave.com/brave/xdg-mime
runHook postInstall
runHook postInstall
'';
preFixup = ''
@ -181,16 +236,25 @@ stdenv.mkDerivation {
gappsWrapperArgs+=(
--prefix LD_LIBRARY_PATH : ${rpath}
--prefix PATH : ${binpath}
--suffix PATH : ${lib.makeBinPath [ xdg-utils coreutils ]}
${optionalString (enableFeatures != []) ''
--add-flags "--enable-features=${strings.concatStringsSep "," enableFeatures}\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+,WaylandWindowDecorations}}"
''}
${optionalString (disableFeatures != []) ''
--add-flags "--disable-features=${strings.concatStringsSep "," disableFeatures}"
''}
--suffix PATH : ${
lib.makeBinPath [
xdg-utils
coreutils
]
}
${
optionalString (enableFeatures != [ ]) ''
--add-flags "--enable-features=${strings.concatStringsSep "," enableFeatures}\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+,WaylandWindowDecorations}}"
''
}
${
optionalString (disableFeatures != [ ]) ''
--add-flags "--disable-features=${strings.concatStringsSep "," disableFeatures}"
''
}
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto}}"
${optionalString vulkanSupport ''
--prefix XDG_DATA_DIRS : "${addDriverRunpath.driverLink}/share"
--prefix XDG_DATA_DIRS : "${addDriverRunpath.driverLink}/share"
''}
--add-flags ${escapeShellArg commandLineArgs}
)
@ -206,7 +270,9 @@ stdenv.mkDerivation {
meta = {
homepage = "https://brave.com/";
description = "Privacy-oriented browser for Desktop and Laptop computers";
changelog = "https://github.com/brave/brave-browser/blob/master/CHANGELOG_DESKTOP.md#" + lib.replaceStrings [ "." ] [ "" ] version;
changelog =
"https://github.com/brave/brave-browser/blob/master/CHANGELOG_DESKTOP.md#"
+ lib.replaceStrings [ "." ] [ "" ] version;
longDescription = ''
Brave browser blocks the ads and trackers that slow you down,
chew up your bandwidth, and invade your privacy. Brave lets you
@ -214,8 +280,17 @@ stdenv.mkDerivation {
'';
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.mpl20;
maintainers = with lib.maintainers; [ uskudnik rht jefflabonte nasirhm buckley310 ];
platforms = [ "aarch64-linux" "x86_64-linux" ];
maintainers = with lib.maintainers; [
uskudnik
rht
jefflabonte
nasirhm
buckley310
];
platforms = [
"aarch64-linux"
"x86_64-linux"
];
mainProgram = "brave";
};
}