about summary refs log tree commit diff
path: root/pkgs/applications/misc
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/misc')
-rw-r--r--pkgs/applications/misc/HentaiAtHome/default.nix4
-rw-r--r--pkgs/applications/misc/bambu-studio/0001-not-for-upstream-CMakeLists-Link-against-webkit2gtk-.patch34
-rw-r--r--pkgs/applications/misc/bambu-studio/default.nix175
-rw-r--r--pkgs/applications/misc/bambu-studio/orca-slicer.nix24
-rw-r--r--pkgs/applications/misc/confy/default.nix21
-rw-r--r--pkgs/applications/misc/input-leap/default.nix8
-rw-r--r--pkgs/applications/misc/sweethome3d/default.nix33
-rw-r--r--pkgs/applications/misc/sweethome3d/editors.nix38
-rw-r--r--pkgs/applications/misc/wofi-emoji/default.nix48
9 files changed, 315 insertions, 70 deletions
diff --git a/pkgs/applications/misc/HentaiAtHome/default.nix b/pkgs/applications/misc/HentaiAtHome/default.nix
index d5023c64fd1bc..7c1cba95f30d8 100644
--- a/pkgs/applications/misc/HentaiAtHome/default.nix
+++ b/pkgs/applications/misc/HentaiAtHome/default.nix
@@ -10,11 +10,11 @@
 }:
 stdenvNoCC.mkDerivation rec {
   pname = "HentaiAtHome";
-  version = "1.6.2";
+  version = "1.6.3";
 
   src = fetchzip {
     url = "https://repo.e-hentai.org/hath/HentaiAtHome_${version}_src.zip";
-    hash = "sha256-ioL/GcnbYjt1IETH8521d1TcLGtENdFzceJui1ywXTY=";
+    hash = "sha512-kBB5mn9MwpkZ0z+Fl5ABs4YWBkXkMRcADYSAPkeifyhbYQQPOnijXKYZCkzE4UB3uQ1j6Kj6WnpO/4jquYEiOQ==";
     stripRoot = false;
   };
 
diff --git a/pkgs/applications/misc/bambu-studio/0001-not-for-upstream-CMakeLists-Link-against-webkit2gtk-.patch b/pkgs/applications/misc/bambu-studio/0001-not-for-upstream-CMakeLists-Link-against-webkit2gtk-.patch
new file mode 100644
index 0000000000000..15f1bf8f0b59e
--- /dev/null
+++ b/pkgs/applications/misc/bambu-studio/0001-not-for-upstream-CMakeLists-Link-against-webkit2gtk-.patch
@@ -0,0 +1,34 @@
+From 7eed499898226222a949a792e0400ec10db4a1c9 Mon Sep 17 00:00:00 2001
+From: Zhaofeng Li <hello@zhaofeng.li>
+Date: Tue, 22 Nov 2022 13:00:39 -0700
+Subject: [PATCH] [not for upstream] CMakeLists: Link against webkit2gtk in
+ libslic3r_gui
+
+WebView.cpp uses symbols from webkitgtk directly. Upstream setup
+links wxGTK statically so webkitgtk is already pulled in.
+
+> /nix/store/039g378vc3pc3dvi9dzdlrd0i4q93qwf-binutils-2.39/bin/ld: slic3r/liblibslic3r_gui.a(WebView.cpp.o): undefined reference to symbol 'webkit_web_view_run_javascript_finish'
+> /nix/store/039g378vc3pc3dvi9dzdlrd0i4q93qwf-binutils-2.39/bin/ld: /nix/store/8yvy428jy2nwq4dhmrcs7gj5r27a2pv6-webkitgtk-2.38.2+abi=4.0/lib/libwebkit2gtk-4.0.so.37: error adding symbols: DSO missing from command line
+---
+ src/CMakeLists.txt | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 9c5cb96..e92a0e3 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -175,6 +175,11 @@ if (WIN32)
+     target_link_libraries(BambuStudio_app_gui PRIVATE boost_headeronly)
+ endif ()
+ 
++# We link against webkit2gtk symbols in src/slic3r/GUI/Widgets/WebView.cpp
++if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
++    target_link_libraries(libslic3r_gui "-lwebkit2gtk-4.0")
++endif ()
++
+ # Link the resources dir to where Slic3r GUI expects it
+ set(output_dlls_Release "")
+ set(output_dlls_Debug "")
+-- 
+2.38.1
+
diff --git a/pkgs/applications/misc/bambu-studio/default.nix b/pkgs/applications/misc/bambu-studio/default.nix
new file mode 100644
index 0000000000000..1455558dcc2e0
--- /dev/null
+++ b/pkgs/applications/misc/bambu-studio/default.nix
@@ -0,0 +1,175 @@
+{ stdenv
+, lib
+, openexr
+, jemalloc
+, c-blosc
+, binutils
+, fetchFromGitHub
+, cmake
+, pkg-config
+, wrapGAppsHook
+, boost179
+, cereal
+, cgal_5
+, curl
+, dbus
+, eigen
+, expat
+, gcc-unwrapped
+, glew
+, glfw
+, glib
+, glib-networking
+, gmp
+, gstreamer
+, gst-plugins-base
+, gst-plugins-bad
+, gst-plugins-good
+, gtest
+, gtk3
+, hicolor-icon-theme
+, ilmbase
+, libpng
+, mesa
+, mpfr
+, nlopt
+, opencascade-occt
+, openvdb
+, pcre
+, qhull
+, systemd
+, tbb_2021_8
+, webkitgtk
+, wxGTK31
+, xorg
+, fetchpatch
+, withSystemd ? stdenv.isLinux
+}:
+let
+  wxGTK31' = wxGTK31.overrideAttrs (old: {
+    configureFlags = old.configureFlags ++ [
+      # Disable noisy debug dialogs
+      "--enable-debug=no"
+    ];
+  });
+  openvdb_tbb_2021_8 = openvdb.overrideAttrs (old: rec {
+    buildInputs = [ openexr boost179 tbb_2021_8 jemalloc c-blosc ilmbase ];
+  });
+in
+stdenv.mkDerivation rec {
+  pname = "bambu-studio";
+  version = "01.08.04.51";
+
+  src = fetchFromGitHub {
+    owner = "bambulab";
+    repo = "BambuStudio";
+    rev = "v${version}";
+    hash = "sha256-rqD1+3Q4ZUBgS57iCItuLX6ZMP7VQuedaJmgKB1szgs=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    binutils
+    boost179
+    cereal
+    cgal_5
+    curl
+    dbus
+    eigen
+    expat
+    gcc-unwrapped
+    glew
+    glfw
+    glib
+    glib-networking
+    gmp
+    gstreamer
+    gst-plugins-base
+    gst-plugins-bad
+    gst-plugins-good
+    gtk3
+    hicolor-icon-theme
+    ilmbase
+    libpng
+    mesa.osmesa
+    mpfr
+    nlopt
+    opencascade-occt
+    openvdb_tbb_2021_8
+    pcre
+    tbb_2021_8
+    webkitgtk
+    wxGTK31'
+    xorg.libX11
+  ] ++ lib.optionals withSystemd [
+    systemd
+  ] ++ checkInputs;
+
+  patches = [
+    # Fix for webkitgtk linking
+    ./0001-not-for-upstream-CMakeLists-Link-against-webkit2gtk-.patch
+  ];
+
+  doCheck = true;
+  checkInputs = [ gtest ];
+
+  separateDebugInfo = true;
+
+  # The build system uses custom logic - defined in
+  # cmake/modules/FindNLopt.cmake in the package source - for finding the nlopt
+  # library, which doesn't pick up the package in the nix store.  We
+  # additionally need to set the path via the NLOPT environment variable.
+  NLOPT = nlopt;
+
+  # Disable compiler warnings that clutter the build log.
+  # It seems to be a known issue for Eigen:
+  # http://eigen.tuxfamily.org/bz/show_bug.cgi?id=1221
+  NIX_CFLAGS_COMPILE = "-Wno-ignored-attributes";
+
+  # prusa-slicer uses dlopen on `libudev.so` at runtime
+  NIX_LDFLAGS = lib.optionalString withSystemd "-ludev";
+
+  # TODO: macOS
+  prePatch = ''
+    # Since version 2.5.0 of nlopt we need to link to libnlopt, as libnlopt_cxx
+    # now seems to be integrated into the main lib.
+    sed -i 's|nlopt_cxx|nlopt|g' cmake/modules/FindNLopt.cmake
+  '';
+
+  cmakeFlags = [
+    "-DSLIC3R_STATIC=0"
+    "-DSLIC3R_FHS=1"
+    "-DSLIC3R_GTK=3"
+
+    # BambuStudio-specific
+    "-DBBL_RELEASE_TO_PUBLIC=1"
+    "-DBBL_INTERNAL_TESTING=0"
+    "-DDEP_WX_GTK3=ON"
+    "-DSLIC3R_BUILD_TESTS=0"
+    "-DCMAKE_CXX_FLAGS=-DBOOST_LOG_DYN_LINK"
+  ];
+
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix LD_LIBRARY_PATH : "$out/lib"
+
+      # Fixes intermittent crash
+      # The upstream setup links in glew statically
+      --prefix LD_PRELOAD : "${glew.out}/lib/libGLEW.so"
+    )
+  '';
+
+  meta = with lib; {
+    description = "PC Software for BambuLab's 3D printers";
+    homepage = "https://github.com/bambulab/BambuStudio";
+    license = licenses.agpl3;
+    maintainers = with maintainers; [ zhaofengli ];
+    mainProgram = "bambu-studio";
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/bambu-studio/orca-slicer.nix b/pkgs/applications/misc/bambu-studio/orca-slicer.nix
new file mode 100644
index 0000000000000..251423d24d357
--- /dev/null
+++ b/pkgs/applications/misc/bambu-studio/orca-slicer.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromGitHub, makeDesktopItem, bambu-studio }:
+let
+  orca-slicer = bambu-studio.overrideAttrs (finalAttrs: previousAttrs: {
+    version = "1.9.0";
+    pname = "orca-slicer";
+
+    src = fetchFromGitHub {
+      owner = "SoftFever";
+      repo = "OrcaSlicer";
+      rev = "v${finalAttrs.version}";
+      hash = "sha256-v6REKDlFhyW6kEEfpcm8Sjezkh6uLaBusMuVk8n3Ts0=";
+    };
+
+    meta = with lib; {
+      description = "G-code generator for 3D printers (Bambu, Prusa, Voron, VzBot, RatRig, Creality, etc";
+      homepage = "https://github.com/SoftFever/OrcaSlicer";
+      license = licenses.agpl3Only;
+      maintainers = with maintainers; [ zhaofengli ovlach pinpox ];
+      mainProgram = "orca-slicer";
+      platforms = platforms.linux;
+    };
+  });
+in
+orca-slicer
diff --git a/pkgs/applications/misc/confy/default.nix b/pkgs/applications/misc/confy/default.nix
index b8e57bd84b952..5d9a97d95425f 100644
--- a/pkgs/applications/misc/confy/default.nix
+++ b/pkgs/applications/misc/confy/default.nix
@@ -1,9 +1,9 @@
-{ blueprint-compiler
+{ lib
+, blueprint-compiler
 , desktop-file-utils
 , fetchFromSourcehut
 , gobject-introspection
 , gtk4
-, lib
 , libadwaita
 , libnotify
 , meson
@@ -14,25 +14,25 @@
 , wrapGAppsHook
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "confy";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchFromSourcehut {
     owner = "~fabrixxm";
     repo = "confy";
-    rev = version;
-    hash = "sha256-q8WASTNbiBuKb2tPQBmUL9ji60PRAPnYOTYxnUn0MAw=";
+    rev = finalAttrs.version;
+    hash = "sha256-BXQDnRRt2Kuqc1Gwx6Ba6BoEWhICTCsWWkGlBsStyT8=";
   };
 
   nativeBuildInputs = [
     blueprint-compiler
     desktop-file-utils
+    gobject-introspection
     meson
     ninja
     pkg-config
     wrapGAppsHook
-    gobject-introspection
   ];
 
   buildInputs = [
@@ -50,10 +50,11 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
+    changelog = "https://git.sr.ht/~fabrixxm/confy/refs/${finalAttrs.version}";
     description = "Conferences schedule viewer";
     homepage = "https://confy.kirgroup.net/";
-    changelog = "https://git.sr.ht/~fabrixxm/confy/refs/${version}";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
+    mainProgram = "confy";
     maintainers = with maintainers; [ michaelgrahamevans ];
   };
-}
+})
diff --git a/pkgs/applications/misc/input-leap/default.nix b/pkgs/applications/misc/input-leap/default.nix
index 810dd76db68e7..567bb08fb911d 100644
--- a/pkgs/applications/misc/input-leap/default.nix
+++ b/pkgs/applications/misc/input-leap/default.nix
@@ -26,13 +26,13 @@
 
 mkDerivation rec {
   pname = "input-leap";
-  version = "unstable-2023-05-24";
+  version = "unstable-2023-12-27";
 
   src = fetchFromGitHub {
     owner = "input-leap";
     repo = "input-leap";
-    rev = "5e2f37bf9ec17627ae33558d99f90b7608ace422";
-    hash = "sha256-55RqdRu/Hi2OTiLjAFJ6Gdgg9iO5NIIJCsOkUQjR9hk=";
+    rev = "ecf1fb6645af7b79e6ea984d3c9698ca0ab6f391";
+    hash = "sha256-TEv1xR1wUG3wXNATLLIZKOtW05X96wsPNOlE77OQK54=";
     fetchSubmodules = true;
   };
 
@@ -55,7 +55,7 @@ mkDerivation rec {
   '';
 
   postFixup = ''
-    substituteInPlace $out/share/applications/input-leap.desktop \
+    substituteInPlace $out/share/applications/io.github.input_leap.InputLeap.desktop \
       --replace "Exec=input-leap" "Exec=$out/bin/input-leap"
   '';
 
diff --git a/pkgs/applications/misc/sweethome3d/default.nix b/pkgs/applications/misc/sweethome3d/default.nix
index 5755c5610281d..bc429817d55ae 100644
--- a/pkgs/applications/misc/sweethome3d/default.nix
+++ b/pkgs/applications/misc/sweethome3d/default.nix
@@ -1,11 +1,10 @@
 { lib
 , stdenv
+, fetchzip
 , fetchurl
 , makeWrapper
 , makeDesktopItem
-# sweethome3d 6.5.2 does not yet fully build&run with jdk 9 and later?
-, jdk8
-, jre8
+, jdk
 , ant
 , gtk3
 , gsettings-desktop-schemas
@@ -13,6 +12,7 @@
 , autoPatchelfHook
 , libXxf86vm
 , unzip
+, libGL
 }:
 
 let
@@ -42,7 +42,7 @@ let
     };
 
     postPatch = ''
-      addAutoPatchelfSearchPath ${jre8}/lib/openjdk/jre/lib/
+      addAutoPatchelfSearchPath ${jdk}/lib/openjdk/lib/
       autoPatchelf lib
 
       # Nix cannot see the runtime references to the paths we just patched in
@@ -51,8 +51,11 @@ let
       find . -name '*.so' | xargs strings | { grep '/nix/store' || :; } >> ./.jar-paths
     '';
 
-    nativeBuildInputs = [ makeWrapper unzip autoPatchelfHook ];
-    buildInputs = [ ant jdk8 p7zip gtk3 gsettings-desktop-schemas libXxf86vm ];
+    nativeBuildInputs = [ makeWrapper autoPatchelfHook ];
+    buildInputs = [ ant jdk p7zip gtk3 gsettings-desktop-schemas libXxf86vm ];
+
+    # upstream targets Java 7 by default
+    env.ANT_ARGS = "-DappletClassSource=8 -DappletClassTarget=8 -DclassSource=8 -DclassTarget=8";
 
     buildPhase = ''
       runHook preBuild
@@ -75,13 +78,9 @@ let
 
       cp "${sweethome3dItem}/share/applications/"* $out/share/applications
 
-      # MESA_GL_VERSION_OVERRIDE is needed since the update from MESA 19.3.3 to 20.0.2:
-      # without it a "Profiles [GL4bc, GL3bc, GL2, GLES1] not available on device null"
-      # exception is thrown on startup.
-      # https://discourse.nixos.org/t/glx-not-recognised-after-mesa-update/6753
-      makeWrapper ${jre8}/bin/java $out/bin/$exec \
-        --set MESA_GL_VERSION_OVERRIDE 2.1 \
+      makeWrapper ${jdk}/bin/java $out/bin/$exec \
         --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3.out}/share:${gsettings-desktop-schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
+        --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libGL ]}" \
         --add-flags "-Dsun.java2d.opengl=true -jar $out/share/java/${module}-${version}.jar -cp $out/share/java/Furniture.jar:$out/share/java/Textures.jar:$out/share/java/Help.jar -d${toString stdenv.hostPlatform.parsed.cpu.bits}"
 
 
@@ -102,22 +101,20 @@ let
       inherit license;
       maintainers = [ lib.maintainers.edwtjo ];
       platforms = lib.platforms.linux;
+      mainProgram = exec;
     };
   };
-
-  d2u = lib.replaceStrings ["."] ["_"];
-
 in {
 
   application = mkSweetHome3D rec {
     pname = lib.toLower module + "-application";
-    version = "7.2";
+    version = "7.3";
     module = "SweetHome3D";
     description = "Design and visualize your future home";
     license = lib.licenses.gpl2Plus;
-    src = fetchurl {
+    src = fetchzip {
       url = "mirror://sourceforge/sweethome3d/${module}-${version}-src.zip";
-      sha256 = "sha256-Io3HfussfSy6CLHE0JCAk0gjBAla/u+pS1Gan8BxozY=";
+      hash = "sha256-adMQzQE+xAZpMJyQFm01A+AfvcB5YHsJvk+533BUf1Q=";
     };
     desktopName = "Sweet Home 3D";
     icons = {
diff --git a/pkgs/applications/misc/sweethome3d/editors.nix b/pkgs/applications/misc/sweethome3d/editors.nix
index 6c737f469c670..f4fe14fb6751b 100644
--- a/pkgs/applications/misc/sweethome3d/editors.nix
+++ b/pkgs/applications/misc/sweethome3d/editors.nix
@@ -1,11 +1,9 @@
 { lib
 , stdenv
-, fetchurl
+, fetchzip
 , makeWrapper
 , makeDesktopItem
-# sweethome3d 6.5.2 does not yet fully build&run with jdk 9 and later?
-, jdk8
-, jre8
+, jdk
 , ant
 , gtk3
 , gsettings-desktop-schemas
@@ -20,14 +18,6 @@ let
     + removeSuffix "libraryeditor" (toLower m)
     + "-editor";
 
-  applicationSrc = stdenv.mkDerivation {
-    name = "application-src";
-    src = sweethome3dApp.src;
-    nativeBuildInputs = [ unzip ];
-    buildPhase = "";
-    installPhase = "cp -r . $out";
-  };
-
   mkEditorProject =
   { pname, module, version, src, license, description, desktopName }:
 
@@ -43,18 +33,21 @@ let
       categories = [ "Graphics" "2DGraphics" "3DGraphics" ];
     };
 
-    nativeBuildInputs = [ makeWrapper unzip ];
-    buildInputs = [ ant jre8 jdk8 gtk3 gsettings-desktop-schemas ];
+    nativeBuildInputs = [ makeWrapper ];
+    buildInputs = [ ant jdk gtk3 gsettings-desktop-schemas ];
+
+    # upstream targets Java 7 by default
+    env.ANT_ARGS = "-DappletClassSource=8 -DappletClassTarget=8 -DclassSource=8 -DclassTarget=8";
 
     postPatch = ''
-      sed -i -e 's,../SweetHome3D,${applicationSrc},g' build.xml
+      sed -i -e 's,../SweetHome3D,${sweethome3dApp.src},g' build.xml
       sed -i -e 's,lib/macosx/java3d-1.6/jogl-all.jar,lib/java3d-1.6/jogl-all.jar,g' build.xml
     '';
 
     buildPhase = ''
       runHook preBuild
 
-      ant -lib ${applicationSrc}/libtest -lib ${applicationSrc}/lib -lib ${jdk8}/lib
+      ant -lib ${sweethome3dApp.src}/libtest -lib ${sweethome3dApp.src}/lib -lib ${jdk}/lib
 
       runHook postBuild
     '';
@@ -64,7 +57,7 @@ let
       mkdir -p $out/share/{java,applications}
       cp ${module}-${version}.jar $out/share/java/.
       cp "${editorItem}/share/applications/"* $out/share/applications
-      makeWrapper ${jre8}/bin/java $out/bin/$exec \
+      makeWrapper ${jdk}/bin/java $out/bin/$exec \
         --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3.out}/share:${gsettings-desktop-schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
         --add-flags "-jar $out/share/java/${module}-${version}.jar -d${toString stdenv.hostPlatform.parsed.cpu.bits}"
     '';
@@ -77,6 +70,7 @@ let
       inherit license;
       maintainers = [ lib.maintainers.edwtjo ];
       platforms = lib.platforms.linux;
+      mainProgram = exec;
     };
 
   };
@@ -91,9 +85,9 @@ in {
     pname = module;
     description = "Easily create SH3T files and edit the properties of the texture images it contain";
     license = lib.licenses.gpl2Plus;
-    src = fetchurl {
+    src = fetchzip {
       url = "mirror://sourceforge/sweethome3d/${module}-${version}-src.zip";
-      sha256 = "03vb9y645qzffxxdhgbjb0d98k3lafxckg2vh2s86j62b6357d0h";
+      hash = "sha256-v8hMEUujTgWvFnBTF8Dnd1iWgoIXBzGMUxBgmjdxx+g=";
     };
     desktopName = "Sweet Home 3D - Textures Library Editor";
   };
@@ -103,10 +97,10 @@ in {
     module = "FurnitureLibraryEditor";
     pname = module;
     description = "Quickly create SH3F files and edit the properties of the 3D models it contain";
-    license = lib.licenses.gpl2;
-    src = fetchurl {
+    license = lib.licenses.gpl2Plus;
+    src = fetchzip {
       url = "mirror://sourceforge/sweethome3d/${module}-${version}-src.zip";
-      sha256 = "sha256-r5xJlUctUdcknJfm8rbz+bdzFhqgHsHpHwxEC4mItws=";
+      hash = "sha256-pqsSxQPzsyx4PS98fgU6UFhPWhpQoepGm0uJtkvV46c=";
     };
     desktopName = "Sweet Home 3D - Furniture Library Editor";
   };
diff --git a/pkgs/applications/misc/wofi-emoji/default.nix b/pkgs/applications/misc/wofi-emoji/default.nix
index f759ee34fb0f4..1c39bbe183487 100644
--- a/pkgs/applications/misc/wofi-emoji/default.nix
+++ b/pkgs/applications/misc/wofi-emoji/default.nix
@@ -1,26 +1,45 @@
-{ stdenv, lib, fetchurl, fetchFromGitHub, jq, wofi, wtype, wl-clipboard }:
+{
+  stdenv,
+  lib,
+  fetchurl,
+  fetchFromGitHub,
+  jq,
+  wofi,
+  wtype,
+  wl-clipboard,
+}:
 
-let emojiJSON = fetchurl {
-  url = "https://raw.githubusercontent.com/muan/emojilib/v3.0.10/dist/emoji-en-US.json";
-  hash = "sha256-UhAB5hVp5vV2d1FjIb2TBd2FJ6OPBbiP31HGAEDQFnA=";};
+let
+  emojiJSON = fetchurl {
+    url = "https://raw.githubusercontent.com/muan/emojilib/v3.0.11/dist/emoji-en-US.json";
+    hash = "sha256-WHqCSNgDzc6ZASdVrwPvsU4MtBcYLKDp2D2Hykrq1sI=";
+  };
 in
 stdenv.mkDerivation rec {
   pname = "wofi-emoji";
-  version = "unstable-2023-06-19";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "Zeioth";
-    repo = pname;
-    rev = "796d688b71ac9fa1e5b2c1b9a3fa11dba801b02b";
-    hash = "sha256-HBsqekNuKqxaKaSeLboukLm4Lkg9JakPO7uN3Z8QBC8=";
+    repo = "wofi-emoji";
+    rev = "v${version}";
+    hash = "sha256-wLZK7RcDxxlYuu27WNj+SoRoBiCqk9whp4Fyg0SOoPA=";
   };
 
   nativeBuildInputs = [ jq ];
-  buildInputs = [ wofi wtype wl-clipboard ];
+  buildInputs = [
+    wofi
+    wtype
+    wl-clipboard
+  ];
 
   postPatch = ''
     substituteInPlace build.sh \
       --replace 'curl ${emojiJSON.url}' 'cat ${emojiJSON}'
+    substituteInPlace wofi-emoji \
+      --replace 'wofi' '${wofi}/bin/wofi' \
+      --replace 'wtype' '${wtype}/bin/wtype' \
+      --replace 'wl-copy' '${wl-clipboard}/bin/wl-copy'
   '';
 
   buildPhase = ''
@@ -40,11 +59,12 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Simple emoji selector for Wayland using wofi and wl-clipboard";
-    homepage = "https://github.com/dln/wofi-emoji";
-    license = licenses.mit;
-    maintainers = [ maintainers.ymarkus ];
-    platforms = platforms.all;
+    homepage = "https://github.com/Zeioth/wofi-emoji";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ ymarkus ];
+    platforms = lib.platforms.all;
+    mainProgram = "wofi-emoji";
   };
 }