summaryrefslogtreecommitdiffstats
path: root/pkgs
diff options
context:
space:
mode:
authorEric Dallo <ericdallo06@hotmail.com>2020-12-12 07:43:21 -0300
committerGitHub <noreply@github.com>2020-12-12 10:43:21 +0000
commit7bb9e5053beb4b7a089f7a40947c4bd1b85ab6a9 (patch)
treea6d2a99d813bccfc11a4f608b047f2631e020992 /pkgs
parentf448ec33655c48d7306456bee77f3cdabf3757fa (diff)
hover: init at 0.43.0 (#80075)
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/development/tools/hover/default.nix100
-rw-r--r--pkgs/development/tools/hover/fix-assets-path.patch78
-rw-r--r--pkgs/top-level/all-packages.nix2
3 files changed, 180 insertions, 0 deletions
diff --git a/pkgs/development/tools/hover/default.nix b/pkgs/development/tools/hover/default.nix
new file mode 100644
index 000000000000..7b50f473d8f6
--- /dev/null
+++ b/pkgs/development/tools/hover/default.nix
@@ -0,0 +1,100 @@
+{ lib
+, buildGoModule
+, buildFHSUserEnv
+, dejavu_fonts
+, pkgconfig
+, fetchFromGitHub
+, stdenv
+, roboto
+, writeScript
+, xorg
+, libglvnd
+, addOpenGLRunpath
+, makeWrapper
+, gcc
+, go
+, flutter
+}:
+
+let
+ pname = "hover";
+ version = "0.43.0";
+
+ libs = with xorg; [
+ libX11.dev
+ libXcursor.dev
+ libXext.dev
+ libXi.dev
+ libXinerama.dev
+ libXrandr.dev
+ libXrender.dev
+ libXfixes.dev
+ libXxf86vm
+ libglvnd.dev
+ xorgproto
+ ];
+ hover = buildGoModule rec {
+ inherit pname version;
+
+ meta = with stdenv.lib; {
+ description = "A build tool to run Flutter applications on desktop";
+ homepage = "https://github.com/go-flutter-desktop/hover";
+ license = licenses.bsd3;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = [ maintainers.ericdallo maintainers.thiagokokada];
+ };
+
+ subPackages = [ "." ];
+
+ vendorSha256 = "1wr08phjm87dxim47i8449rmq5wfscvjyz65g3lxmv468x209pam";
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "go-flutter-desktop";
+ repo = pname;
+ sha256 = "0iw6sxg86wfdbihl2hxzn43ppdzl1p7g5b9wl8ac3xa9ix8759ax";
+ };
+
+ nativeBuildInputs = [ addOpenGLRunpath makeWrapper ];
+
+ buildInputs = libs;
+
+ checkRun = false;
+
+ patches = [
+ ./fix-assets-path.patch
+ ];
+
+ postPatch = ''
+ sed -i 's|@assetsFolder@|'"''${out}/share/assets"'|g' internal/fileutils/assets.go
+ '';
+
+ postInstall = ''
+ mkdir -p $out/share
+ cp -r assets $out/share/assets
+ chmod -R a+rx $out/share/assets
+
+ wrapProgram "$out/bin/hover" \
+ --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath libs}
+ '';
+
+ postFixup = ''
+ addOpenGLRunpath $out/bin/hover
+ '';
+ };
+
+in
+buildFHSUserEnv rec {
+ name = pname;
+ targetPkgs = pkgs: [
+ dejavu_fonts
+ flutter
+ gcc
+ go
+ hover
+ pkgconfig
+ roboto
+ ] ++ libs;
+
+ runScript = "hover";
+}
diff --git a/pkgs/development/tools/hover/fix-assets-path.patch b/pkgs/development/tools/hover/fix-assets-path.patch
new file mode 100644
index 000000000000..27d49197e567
--- /dev/null
+++ b/pkgs/development/tools/hover/fix-assets-path.patch
@@ -0,0 +1,78 @@
+diff --git a/internal/fileutils/assets.go b/internal/fileutils/assets.go
+index 83eacd9..0b80e51 100644
+--- a/internal/fileutils/assets.go
++++ b/internal/fileutils/assets.go
+@@ -1,28 +1,7 @@
+ //go:generate rice embed
+ package fileutils
+
+-import (
+- "os"
+- "sync"
+-
+- rice "github.com/GeertJohan/go.rice"
+- "github.com/go-flutter-desktop/hover/internal/log"
+-)
+-
+-var (
+- assetsBox *rice.Box
+- assetsBoxOnce sync.Once
+-)
+-
+ // AssetsBox hover's assets box
+-func AssetsBox() *rice.Box {
+- assetsBoxOnce.Do(func() {
+- var err error
+- assetsBox, err = rice.FindBox("../../assets")
+- if err != nil {
+- log.Errorf("Failed to find hover assets: %v", err)
+- os.Exit(1)
+- }
+- })
+- return assetsBox
++func AssetsBox() string {
++ return "@assetsFolder@"
+ }
+diff --git a/internal/fileutils/file.go b/internal/fileutils/file.go
+index cb75563..3822e80 100644
+--- a/internal/fileutils/file.go
++++ b/internal/fileutils/file.go
+@@ -11,8 +11,6 @@ import (
+ "strings"
+ "text/template"
+
+- rice "github.com/GeertJohan/go.rice"
+-
+ "github.com/go-flutter-desktop/hover/internal/log"
+ )
+
+@@ -215,24 +213,24 @@ func ExecuteTemplateFromFile(boxed, to string, templateData interface{}) {
+ }
+
+ // ExecuteTemplateFromAssetsBox create file from a template asset
+-func ExecuteTemplateFromAssetsBox(boxed, to string, assetsBox *rice.Box, templateData interface{}) {
+- templateString, err := assetsBox.String(boxed)
++func ExecuteTemplateFromAssetsBox(boxed, to string, assetsBox string, templateData interface{}) {
++ templateString, err := ioutil.ReadFile(boxed + "/" + boxed)
+ if err != nil {
+ log.Errorf("Failed to find template file: %v\n", err)
+ os.Exit(1)
+ }
+- executeTemplateFromString(templateString, to, templateData)
++ executeTemplateFromString(string(templateString), to, templateData)
+ }
+
+ // CopyAsset copies a file from asset
+-func CopyAsset(boxed, to string, assetsBox *rice.Box) {
++func CopyAsset(boxed string, to string, assetsBox string) {
+ file, err := os.Create(to)
+ if err != nil {
+ log.Errorf("Failed to create %s: %v", to, err)
+ os.Exit(1)
+ }
+ defer file.Close()
+- boxedFile, err := assetsBox.Open(boxed)
++ boxedFile, err := os.OpenFile(assetsBox + "/" + boxed, os.O_RDONLY, 0666)
+ if err != nil {
+ log.Errorf("Failed to find boxed file %s: %v", boxed, err)
+ os.Exit(1)
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 970cdf7ad7ef..0ddb64d0a486 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -21831,6 +21831,8 @@ in
gtk = gtk3;
};
+ hover = callPackage ../development/tools/hover { };
+
hovercraft = python3Packages.callPackage ../applications/misc/hovercraft { };
howl = callPackage ../applications/editors/howl { };