about summary refs log tree commit diff
path: root/pkgs/applications/networking/browsers
diff options
context:
space:
mode:
authorRobert Scott <code@humanleg.org.uk>2022-11-29 21:55:26 +0000
committerGitHub <noreply@github.com>2022-11-29 21:55:26 +0000
commit250c00dbc9fd64428c1bb2c85c2f3374f986f102 (patch)
tree19f3568c853a22f68170b2136815e7362e6cead8 /pkgs/applications/networking/browsers
parentf79febbc8c92d45a2df8a31e39e52c6be625a078 (diff)
parent390c6824022d6bfc3753ca4127acf077f3c7c0c5 (diff)
Merge pull request #203532 from wegank/ladybird-fix
ladybird: fix build
Diffstat (limited to 'pkgs/applications/networking/browsers')
-rw-r--r--pkgs/applications/networking/browsers/ladybird/default.nix29
1 files changed, 23 insertions, 6 deletions
diff --git a/pkgs/applications/networking/browsers/ladybird/default.nix b/pkgs/applications/networking/browsers/ladybird/default.nix
index 0bd3cc79df257..1bba399997f46 100644
--- a/pkgs/applications/networking/browsers/ladybird/default.nix
+++ b/pkgs/applications/networking/browsers/ladybird/default.nix
@@ -1,5 +1,5 @@
 { lib
-, gcc11Stdenv
+, stdenv
 , fetchFromGitHub
 , cmake
 , ninja
@@ -7,7 +7,6 @@
 , wrapQtAppsHook
 , libxcrypt
 , qtbase
-, qttools
 , nixosTests
 }:
 
@@ -17,8 +16,8 @@ let serenity = fetchFromGitHub {
   rev = "a0f3e2c9a2b82117aa7c1a3444ad0d31baa070d5";
   hash = "sha256-8Xde59ZfdkTD39mYSv0lfFjBHFDWTUwfozE+Q9Yq6C8=";
 };
-
-in gcc11Stdenv.mkDerivation {
+in
+stdenv.mkDerivation {
   pname = "ladybird";
   version = "unstable-2022-09-29";
 
@@ -30,6 +29,11 @@ in gcc11Stdenv.mkDerivation {
     hash = "sha256-XQj2Bohk8F6dGCAManOmmDP5b/SqEeZXZbLDYPfvi2E=";
   };
 
+  postPatch = ''
+    substituteInPlace CMakeLists.txt \
+      --replace "MACOSX_BUNDLE TRUE" "MACOSX_BUNDLE FALSE"
+  '';
+
   nativeBuildInputs = [
     cmake
     ninja
@@ -49,6 +53,20 @@ in gcc11Stdenv.mkDerivation {
     "-DENABLE_UNICODE_DATABASE_DOWNLOAD=false"
   ];
 
+  # error: use of undeclared identifier 'aligned_alloc'
+  NIX_CFLAGS_COMPILE = toString (lib.optionals (stdenv.isDarwin && lib.versionOlder stdenv.targetPlatform.darwinSdkVersion "11.0") [
+    "-include mm_malloc.h"
+    "-Daligned_alloc=_mm_malloc"
+  ]);
+
+  # https://github.com/NixOS/nixpkgs/issues/201254
+  NIX_LDFLAGS = lib.optionalString (stdenv.isLinux && stdenv.isAarch64 && stdenv.cc.isGNU) "-lgcc";
+
+  # https://github.com/SerenityOS/serenity/issues/10055
+  postInstall = lib.optionalString stdenv.isDarwin ''
+    install_name_tool -add_rpath $out/lib $out/bin/ladybird
+  '';
+
   passthru.tests = {
     nixosTest = nixosTests.ladybird;
   };
@@ -58,7 +76,6 @@ in gcc11Stdenv.mkDerivation {
     homepage = "https://github.com/awesomekling/ladybird";
     license = licenses.bsd2;
     maintainers = with maintainers; [ fgaz ];
-    # SerenityOS only works on x86, and can only be built on unix systems.
-    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
+    platforms = platforms.unix;
   };
 }