mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-26 08:53:21 +00:00
brave: format with nixfmt-rfc-style
This commit is contained in:
parent
d037904ba3
commit
301751f1c1
@ -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";
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user