diff --git a/pkgs/by-name/mu/mudlet/package.nix b/pkgs/by-name/mu/mudlet/package.nix index 981ca5159bf8..b9bcfd325063 100644 --- a/pkgs/by-name/mu/mudlet/package.nix +++ b/pkgs/by-name/mu/mudlet/package.nix @@ -7,161 +7,99 @@ git, pkg-config, which, + assimp, boost, + discord-rpc, hunspell, libGLU, - libsForQt5, libsecret, libzip, lua5_1, - pcre, + pipewire, pugixml, - discord-rpc, + qt6Packages, yajl, withDiscordRpc ? false, }: let - overrideLua = - let - packageOverrides = self: super: { - # luasql-sqlite3 master branch broke compatibility with lua 5.1. Pin to - # an earlier commit. - # https://github.com/lunarmodules/luasql/issues/147 - luasql-sqlite3 = super.luaLib.overrideLuarocks super.luasql-sqlite3 (drv: { - version = "2.6.0-1-custom"; - src = fetchFromGitHub { - owner = "lunarmodules"; - repo = "luasql"; - rev = "8c58fd6ee32faf750daf6e99af015a31402578d1"; - hash = "sha256-XlTB5O81yWCrx56m0cXQp7EFzeOyfNeqGbuiYqMrTUk="; - }; - }); - }; - in - lua5_1.override { inherit packageOverrides; }; - - luaEnv = overrideLua.withPackages ( + luaEnv = lua5_1.withPackages ( ps: with ps; [ - luazip - luafilesystem - lrexlib-pcre - luasql-sqlite3 + lpeg + lrexlib-pcre2 lua-yajl + luafilesystem + luasql-sqlite3 luautf8 + luazip ] ); + libPathVar = if stdenv.hostPlatform.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH"; in stdenv.mkDerivation (finalAttrs: { pname = "mudlet"; - version = "4.19.1"; + version = "4.20.1"; + + __structuredAttrs = true; + strictDeps = true; src = fetchFromGitHub { owner = "Mudlet"; repo = "Mudlet"; rev = "Mudlet-${finalAttrs.version}"; fetchSubmodules = true; - hash = "sha256-I4RRIfHw9kZwxMlc9pvdtwPpq9EvNJU69WpGgZ+0uiw="; + hash = "sha256-o3f2ChQ7COql+WEe2diATx7wIR0fOlxkXcGWlL1AYkE="; }; - patches = [ - (fetchpatch { - name = "cmake4-fix.patch"; - url = "https://github.com/Mudlet/Mudlet/commit/933f2551fe3084f0fad6d8b971c6176fe154d8d7.patch?full_index=1"; - hash = "sha256-MElSRhTaT1a5r/Pz3e7MTrzq0krjdspgW0woAB2C8jc="; - }) - ]; - nativeBuildInputs = [ cmake git luaEnv pkg-config - libsForQt5.qttools + qt6Packages.qttools + qt6Packages.wrapQtAppsHook which - libsForQt5.wrapQtAppsHook ]; buildInputs = [ + assimp boost hunspell libGLU - libsForQt5.qtkeychain libsecret libzip luaEnv - pcre pugixml - libsForQt5.qtbase - libsForQt5.qtmultimedia + qt6Packages.qtbase + qt6Packages.qt5compat + qt6Packages.qtkeychain + qt6Packages.qtmultimedia yajl ] ++ lib.optional withDiscordRpc discord-rpc; cmakeFlags = [ # RPATH of binary /nix/store/.../bin/... contains a forbidden reference to /build/ - "-DCMAKE_SKIP_BUILD_RPATH=ON" + (lib.cmakeBool "CMAKE_SKIP_BUILD_RPATH" true) + (lib.cmakeBool "USE_FONTS" false) + (lib.cmakeBool "USE_OWN_QTKEYCHAIN" false) + (lib.cmakeBool "USE_UPDATER" false) ]; - env = { - WITH_FONTS = "NO"; - WITH_UPDATER = "NO"; - }; - - installPhase = '' - runHook preInstall - - mkdir -pv $out/lib - cp 3rdparty/edbee-lib/edbee-lib/qslog/lib/libQsLog${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib - mkdir -pv $out/share/mudlet - cp -r ../src/mudlet-lua/lua $out/share/mudlet/ - - mkdir -pv $out/share/pixmaps - cp -r ../mudlet.png $out/share/pixmaps/ - - cp -r ../translations $out/share/ - - '' - + lib.optionalString stdenv.hostPlatform.isDarwin '' + installPhase = lib.optionalString stdenv.hostPlatform.isDarwin '' mkdir -p $out/Applications cp -r src/mudlet.app/ $out/Applications/mudlet.app - mv $out/Applications/mudlet.app/Contents/MacOS/mudlet $out/Applications/mudlet.app/Contents/MacOS/mudlet-unwrapped - makeQtWrapper $out/Applications/Mudlet.app/Contents/MacOS/mudlet-unwrapped $out/Applications/Mudlet.app/Contents/MacOS/mudlet \ - --set LUA_CPATH "${luaEnv}/lib/lua/${lua5_1.luaversion}/?.so" \ - --prefix LUA_PATH : "$NIX_LUA_PATH" \ - --prefix DYLD_LIBRARY_PATH : "${ - lib.makeLibraryPath ( - [ - libsForQt5.qtkeychain - ] - ++ lib.optional withDiscordRpc discord-rpc - ) - }:$out/lib" \ - --chdir "$out"; + ''; - '' - + lib.optionalString (!stdenv.hostPlatform.isDarwin) '' - mkdir -pv $out/bin - cp src/mudlet $out/bin/mudlet-unwrapped - makeQtWrapper $out/bin/mudlet-unwrapped $out/bin/mudlet \ - --set LUA_CPATH "${luaEnv}/lib/lua/${lua5_1.luaversion}/?.so" \ - --prefix LUA_PATH : "$NIX_LUA_PATH" \ - --prefix LD_LIBRARY_PATH : "${ - lib.makeLibraryPath ( - [ - libsForQt5.qtkeychain - ] - ++ lib.optional withDiscordRpc discord-rpc - ) - }" \ - --chdir "$out"; - - mkdir -pv $out/share/applications - cp ../mudlet.desktop $out/share/applications/ - - '' - + '' - runHook postInstall + preFixup = '' + qtWrapperArgs+=(--set LUA_CPATH "${luaEnv}/lib/lua/${lua5_1.luaversion}/?.so") + qtWrapperArgs+=(--prefix LUA_PATH : "$NIX_LUA_PATH") + qtWrapperArgs+=(--prefix ${libPathVar} : "${ + lib.makeLibraryPath ( + lib.optional stdenv.hostPlatform.isLinux pipewire ++ lib.optional withDiscordRpc discord-rpc + ) + }") + qtWrapperArgs+=(--chdir "$out") ''; meta = { @@ -173,7 +111,6 @@ stdenv.mkDerivation (finalAttrs: { felixalbrigtsen ]; platforms = with lib.platforms; linux ++ darwin; - broken = stdenv.hostPlatform.isDarwin; license = lib.licenses.gpl2Plus; mainProgram = "mudlet"; };