diff --git a/default.nix b/default.nix index 2e8e7ee..1532b18 100644 --- a/default.nix +++ b/default.nix @@ -16,7 +16,6 @@ zju-connect = pkgs.callPackage ./pkgs/zju-connect { }; wpsoffice-cn = pkgs.libsForQt5.callPackage ./pkgs/wpsoffice-cn { }; - brave-browser-gtk4-12-5 = unstable.callPackage ./pkgs/brave-browser { }; # some-qt5-package = pkgs.libsForQt5.callPackage ./pkgs/some-qt5-package { }; # ... } diff --git a/pkgs/brave-browser/default.nix b/pkgs/brave-browser/default.nix deleted file mode 100644 index bb59834..0000000 --- a/pkgs/brave-browser/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -# Expression generated by update.sh; do not edit it by hand! -{ stdenv, callPackage, ... }@args: - -callPackage ./make-brave.nix (removeAttrs args [ "callPackage" ]) - ( - if stdenv.isAarch64 then - { - pname = "brave"; - version = "1.65.122"; - url = "https://github.com/brave/brave-browser/releases/download/v1.65.126/brave-browser_1.65.126_arm64.deb"; - hash = "sha256-v2PbixM9g+AhvR6tJ9QDbaXF7ERlBBrNMIsLofFbAfU="; - platform = "aarch64-linux"; - } - else if stdenv.isx86_64 then - { - pname = "brave"; - version = "1.65.122"; - url = "https://github.com/brave/brave-browser/releases/download/v1.65.126/brave-browser_1.65.126_amd64.deb"; - hash = "sha256-DbdwCu9LwCeoH46egVY4AsOxcJDWilD2MdpyNdyJizw="; - platform = "x86_64-linux"; - } - else - throw "Unsupported platform." - ) diff --git a/pkgs/brave-browser/make-brave.nix b/pkgs/brave-browser/make-brave.nix deleted file mode 100644 index 3aed8ba..0000000 --- a/pkgs/brave-browser/make-brave.nix +++ /dev/null @@ -1,244 +0,0 @@ -{ lib, stdenv, fetchurl, wrapGAppsHook3, makeWrapper -, alsa-lib -, at-spi2-atk -, at-spi2-core -, atk -, cairo -, cups -, dbus -, dpkg -, expat -, fontconfig -, freetype -, gdk-pixbuf -, glib -, gnome -, gsettings-desktop-schemas -, gtk3 -, gtk4 -, 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 -, buildPackages -, compileSchemas ? stdenv.hostPlatform.emulatorAvailable buildPackages - -# command line arguments which are always set e.g "--disable-gpu" -, commandLineArgs ? "" - -# Necessary for USB audio devices. -, pulseSupport ? stdenv.isLinux -, libpulseaudio - -# 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.isLinux -, libva -, enableVideoAcceleration ? libvaSupport - -# For Vulkan support (--enable-features=Vulkan); disabled by default as it seems to break VA-API -, vulkanSupport ? false -, addOpenGLRunpath -, enableVulkan ? vulkanSupport -}: - -{ pname -, version -, hash -, url -, platform -}: - -let - inherit (lib) optional optionals makeLibraryPath makeSearchPathOutput makeBinPath - optionalString strings escapeShellArg; - - gtk-4-12-5 = gtk4.overrideAttrs (final: prev : rec { - version = "4.12.5"; - src = fetchurl { - url = "mirror://gnome/sources/gtk/${lib.versions.majorMinor final.version}/gtk-${final.version}.tar.xz"; - hash = "sha256-KLNW1ZDuaO9ibi75ggst0hRBSEqaBCpaPwxA6d/E9Pg="; - }; - postPatch = '' - # this conditional gates the installation of share/gsettings-schemas/.../glib-2.0/schemas/gschemas.compiled. - substituteInPlace meson.build \ - --replace 'if not meson.is_cross_build()' 'if ${lib.boolToString compileSchemas}' - files=( - build-aux/meson/gen-demo-header.py - build-aux/meson/gen-visibility-macros.py - demos/gtk-demo/geninclude.py - gdk/broadway/gen-c-array.py - gdk/gen-gdk-gresources-xml.py - gtk/gen-gtk-gresources-xml.py - gtk/gentypefuncs.py - ) - chmod +x ''${files[@]} - patchShebangs ''${files[@]} - ''; - }); - - deps = [ - alsa-lib at-spi2-atk at-spi2-core atk cairo cups dbus expat - fontconfig freetype gdk-pixbuf glib gtk3 gtk-4-12-5 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 - ] - ++ optional pulseSupport libpulseaudio - ++ optional libvaSupport libva; - - rpath = makeLibraryPath deps + ":" + makeSearchPathOutput "lib" "lib64" deps; - binpath = makeBinPath deps; - - enableFeatures = optionals enableVideoAcceleration [ "VaapiVideoDecoder" "VaapiVideoEncoder" ] - ++ optional enableVulkan "Vulkan"; - - 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" ]; -in -stdenv.mkDerivation { - inherit pname version; - - src = fetchurl { - inherit url hash; - }; - - dontConfigure = true; - dontBuild = true; - dontPatchELF = true; - doInstallCheck = true; - - nativeBuildInputs = [ - dpkg - (wrapGAppsHook3.override { inherit makeWrapper; }) - ]; - - buildInputs = [ - # needed for GSETTINGS_SCHEMAS_PATH - glib gsettings-desktop-schemas gtk3 gtk-4-12-5 - - # needed for XDG_ICON_DIRS - gnome.adwaita-icon-theme - ]; - - unpackPhase = "dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner"; - - installPhase = '' - runHook preInstall - - mkdir -p $out $out/bin - - cp -R usr/share $out - cp -R opt/ $out/opt - - export BINARYWRAPPER=$out/opt/brave.com/brave/brave-browser - - # Fix path to bash in $BINARYWRAPPER - substituteInPlace $BINARYWRAPPER \ - --replace /bin/bash ${stdenv.shell} - - 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 - - # 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") - - 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 - - runHook postInstall - ''; - - preFixup = '' - # Add command line args to wrapGApp. - 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}" - ''} - --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto}}" - ${optionalString vulkanSupport '' - --prefix XDG_DATA_DIRS : "${addOpenGLRunpath.driverLink}/share" - ''} - --add-flags ${escapeShellArg commandLineArgs} - ) - ''; - - installCheckPhase = '' - # Bypass upstream wrapper which suppresses errors - $out/opt/brave.com/brave/brave --version - ''; - - passthru.updateScript = ./update.sh; - - 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; - longDescription = '' - Brave browser blocks the ads and trackers that slow you down, - chew up your bandwidth, and invade your privacy. Brave lets you - contribute to your favorite creators automatically. - ''; - sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; - license = lib.licenses.mpl20; - maintainers = with lib.maintainers; [ uskudnik rht jefflabonte nasirhm buckley310 ]; - platforms = [ "aarch64-linux" "x86_64-linux" ]; - mainProgram = "brave"; - }; -}