mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-26 17:03:01 +00:00
ladybird: init at unstable-2022-07-20
This commit is contained in:
parent
9eddb61dcf
commit
7c302eb4e5
94
pkgs/applications/networking/browsers/ladybird/default.nix
Normal file
94
pkgs/applications/networking/browsers/ladybird/default.nix
Normal file
@ -0,0 +1,94 @@
|
||||
{ lib
|
||||
, gcc11Stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, ninja
|
||||
, unzip
|
||||
, wrapQtAppsHook
|
||||
, makeWrapper
|
||||
, qtbase
|
||||
, qttools
|
||||
}:
|
||||
|
||||
let serenity = fetchFromGitHub {
|
||||
owner = "SerenityOS";
|
||||
repo = "serenity";
|
||||
rev = "094ba6525f0217f3b8d5e467cef326caeb659e8a";
|
||||
hash = "sha256-IHXe2Td9iRSL1oQVwL2gZHxEM2ID4SghZwK6ewjFV1Y=";
|
||||
};
|
||||
|
||||
in gcc11Stdenv.mkDerivation {
|
||||
pname = "ladybird";
|
||||
version = "unstable-2022-07-20";
|
||||
|
||||
# Remember to update `serenity` too!
|
||||
src = fetchFromGitHub {
|
||||
owner = "awesomekling";
|
||||
repo = "ladybird";
|
||||
rev = "9e3a1f47d484cee6f23c4dae6c51750af155a8fc";
|
||||
hash = "sha256-1cPWpPvjM/VcVUEf2k+MvGvTgZ3Fc4LFHZCLh1wU78Y=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
ninja
|
||||
unzip
|
||||
wrapQtAppsHook
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
qtbase
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DSERENITY_SOURCE_DIR=${serenity}"
|
||||
# Disable network operations
|
||||
"-DENABLE_TIME_ZONE_DATABASE_DOWNLOAD=false"
|
||||
"-DENABLE_UNICODE_DATABASE_DOWNLOAD=false"
|
||||
];
|
||||
|
||||
NIX_CFLAGS_COMPILE = [ "-Wno-error" ];
|
||||
|
||||
# Upstream install rules are missing
|
||||
# https://github.com/awesomekling/ladybird/issues/36
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -Dm755 ladybird $out/bin/ladybird
|
||||
mkdir -p $out/lib/ladybird
|
||||
cp -d _deps/lagom-build/*.so* $out/lib/ladybird/
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# Patch rpaths
|
||||
# https://github.com/awesomekling/ladybird/issues/36
|
||||
preFixup = ''
|
||||
for f in $out/bin/ladybird $out/lib/ladybird/*.so; do
|
||||
old_rpath=$(patchelf --print-rpath "$f")
|
||||
# Remove reference to libraries from build directory
|
||||
rpath_without_build=$(sed -e 's@[^:]*/_deps/lagom-build:@@g' <<< $old_rpath)
|
||||
# Add directory where we install those libraries
|
||||
new_rpath=$out/lib/ladybird:$rpath_without_build
|
||||
patchelf --set-rpath "$new_rpath" "$f"
|
||||
done
|
||||
'';
|
||||
|
||||
# According to the readme, the program needs access to the serenity sources
|
||||
# at runtime
|
||||
postFixup = ''
|
||||
wrapProgram $out/bin/ladybird --set SERENITY_SOURCE_DIR "${serenity}"
|
||||
'';
|
||||
|
||||
# Stripping results in a symbol lookup error
|
||||
dontStrip = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "A browser using the SerenityOS LibWeb engine with a Qt GUI";
|
||||
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.
|
||||
# We also use patchelf in preFixup, so we restrict that to linux only.
|
||||
platforms = [ "x86_64-linux" "i686-linux" ];
|
||||
};
|
||||
}
|
@ -28282,6 +28282,8 @@ with pkgs;
|
||||
|
||||
ladspa-sdk = callPackage ../applications/audio/ladspa-sdk { };
|
||||
|
||||
ladybird = qt6.callPackage ../applications/networking/browsers/ladybird { };
|
||||
|
||||
lazpaint = callPackage ../applications/graphics/lazpaint { };
|
||||
|
||||
caps = callPackage ../applications/audio/caps { };
|
||||
|
Loading…
Reference in New Issue
Block a user