mudlet: 4.19.1 -> 4.20.1 (#517599)

This commit is contained in:
Michael Daniels
2026-05-31 14:49:20 +00:00
committed by GitHub
+38 -101
View File
@@ -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";
};