Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| feff32f4c0 | |||
| 706db3c704 |
@@ -19,19 +19,15 @@ If you want to use this repo directly as a flake input:
|
|||||||
{
|
{
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
my-nur.url = "github:<YOUR_GITHUB_USER>/nur-packages";
|
chiasson.url = "git+https://git.chiasson.cloud/Olivier/nur-packages";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, my-nur, ... }:
|
outputs = { self, nixpkgs, chiasson, ... }:
|
||||||
let
|
let
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
pkgs = import nixpkgs {
|
|
||||||
inherit system;
|
|
||||||
overlays = [ my-nur.overlays.default ];
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
packages.${system}.default = pkgs.librepods;
|
packages.${system}.default = chiasson.packages.${system}.librepods;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
# example-package = pkgs.callPackage ./pkgs/example-package { };
|
# example-package = pkgs.callPackage ./pkgs/example-package { };
|
||||||
librepods = pkgs.callPackage ./pkgs/librepods { };
|
librepods = pkgs.callPackage ./pkgs/librepods { };
|
||||||
|
flow-browser-bin = pkgs.callPackage ./pkgs/flow-browser-bin { };
|
||||||
# some-qt5-package = pkgs.libsForQt5.callPackage ./pkgs/some-qt5-package { };
|
# some-qt5-package = pkgs.libsForQt5.callPackage ./pkgs/some-qt5-package { };
|
||||||
# ...
|
# ...
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,80 @@
|
|||||||
|
{ lib
|
||||||
|
, appimageTools
|
||||||
|
, fetchurl
|
||||||
|
, runCommand
|
||||||
|
, stdenv
|
||||||
|
, vips
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
pname = "flow-browser-bin";
|
||||||
|
version = "0.8.6";
|
||||||
|
|
||||||
|
# Flow bundles `sharp`, which attempts to dlopen libvips with a filename that
|
||||||
|
# includes the libvips version (e.g. libvips-cpp.so.8.17.3). Nixpkgs provides
|
||||||
|
# libvips with a different SONAME-based filename (e.g. libvips-cpp.so.42.19.3),
|
||||||
|
# so we provide compatibility symlinks in the FHS env.
|
||||||
|
vipsSharpCompat = runCommand "flow-browser-vips-compat" { } ''
|
||||||
|
mkdir -p $out/lib
|
||||||
|
# Link to the SONAME symlinks provided by nixpkgs, so we don't hardcode the
|
||||||
|
# 42.x.y patchlevel.
|
||||||
|
ln -s ${vips.out}/lib/libvips-cpp.so.42 $out/lib/libvips-cpp.so.${vips.version}
|
||||||
|
ln -s ${vips.out}/lib/libvips.so.42 $out/lib/libvips.so.${vips.version}
|
||||||
|
'';
|
||||||
|
|
||||||
|
src =
|
||||||
|
if stdenv.hostPlatform.system == "x86_64-linux" then
|
||||||
|
fetchurl {
|
||||||
|
url = "https://github.com/MultiboxLabs/flow-browser/releases/download/v${version}/flow-browser-${version}-x86_64.AppImage";
|
||||||
|
sha256 = "1s4i419vlwgqzy8p73msb6djf6bbdk530inwc6hr7rwz611cf0gz";
|
||||||
|
}
|
||||||
|
else if stdenv.hostPlatform.system == "aarch64-linux" then
|
||||||
|
fetchurl {
|
||||||
|
url = "https://github.com/MultiboxLabs/flow-browser/releases/download/v${version}/flow-browser-${version}-arm64.AppImage";
|
||||||
|
sha256 = "0n2cp0519z43z5aa6mc7xzrhp6mpfjl7fkls29hk6db4mzv6sfsn";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
throw "flow-browser-bin: unsupported system: ${stdenv.hostPlatform.system}";
|
||||||
|
|
||||||
|
appimageContents = appimageTools.extractType2 {
|
||||||
|
inherit pname version src;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
appimageTools.wrapType2 {
|
||||||
|
inherit pname version src;
|
||||||
|
|
||||||
|
extraPkgs = pkgs: [ vipsSharpCompat ];
|
||||||
|
|
||||||
|
# Ensure `sharp` can find libvips in the bubblewrapped FHS env.
|
||||||
|
# (Relying on /usr/lib64 + ld.so cache can be flaky depending on the env.)
|
||||||
|
profile = ''
|
||||||
|
export LD_LIBRARY_PATH="${vipsSharpCompat}/lib''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
|
||||||
|
'';
|
||||||
|
|
||||||
|
extraInstallCommands = ''
|
||||||
|
# Desktop entry
|
||||||
|
install -D -m 444 ${appimageContents}/Flow.desktop \
|
||||||
|
$out/share/applications/flow-browser.desktop
|
||||||
|
|
||||||
|
substituteInPlace $out/share/applications/flow-browser.desktop \
|
||||||
|
--replace-fail 'Exec=AppRun' 'Exec=${pname}'
|
||||||
|
|
||||||
|
# Icon
|
||||||
|
install -D -m 444 ${appimageContents}/usr/share/icons/hicolor/512x512/apps/Flow.png \
|
||||||
|
$out/share/icons/hicolor/512x512/apps/flow-browser.png
|
||||||
|
|
||||||
|
substituteInPlace $out/share/applications/flow-browser.desktop \
|
||||||
|
--replace-fail 'Icon=Flow' 'Icon=flow-browser'
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "A modern, privacy-focused browser with a minimalistic design (binary AppImage)";
|
||||||
|
homepage = "https://github.com/multiboxlabs/flow-browser";
|
||||||
|
license = lib.licenses.gpl3Only;
|
||||||
|
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||||
|
platforms = [ "x86_64-linux" "aarch64-linux" ];
|
||||||
|
mainProgram = "flow-browser-bin";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user