limo: init at 1.0.8.2

This commit is contained in:
TomaSajt
2024-11-13 11:39:33 +01:00
parent 0f9bf0515e
commit b5711fd002
2 changed files with 124 additions and 0 deletions
+82
View File
@@ -0,0 +1,82 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
jsoncpp,
libarchive,
libcpr,
libloot,
pugixml,
libsForQt5,
withUnrar ? true,
unrar, # has an unfree license
}:
stdenv.mkDerivation (finalAttrs: {
pname = "limo";
version = "1.0.8.2";
src = fetchFromGitHub {
owner = "limo-app";
repo = "limo";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-6rv1IjWb/nrymd57CtrlAjX2KfMYlYNnfiodiRAJ1Ok=";
};
patches = lib.optionals (!withUnrar) [
# remove `unrar` as fallback when libarchive fails
./remove-unrar.patch
];
strictDeps = true;
nativeBuildInputs = [
cmake
pkg-config
libsForQt5.wrapQtAppsHook
];
buildInputs =
[
jsoncpp
libarchive
libcpr
libloot
pugixml
libsForQt5.qtbase
libsForQt5.qtsvg
libsForQt5.qtwayland
]
++ lib.optionals withUnrar [
unrar
];
cmakeFlags =
[
(lib.cmakeFeature "LIMO_INSTALL_PREFIX" (placeholder "out"))
(lib.cmakeBool "USE_SYSTEM_LIBUNRAR" true)
]
++ lib.optionals (!withUnrar) [
(lib.cmakeFeature "LIBUNRAR_PATH" "")
(lib.cmakeFeature "LIBUNRAR_INCLUDE_DIR" "")
];
meta = {
description = "General purpose mod manager with support for the NexusMods API and LOOT";
homepage = "https://github.com/limo-app/limo";
license = lib.licenses.gpl3Plus;
mainProgram = "Limo";
maintainers = with lib.maintainers; [
tomasajt
MattSturgeon
];
platforms = lib.platforms.linux;
};
})
+42
View File
@@ -0,0 +1,42 @@
diff --git a/src/core/installer.cpp b/src/core/installer.cpp
index ea384a8..aab8be0 100644
--- a/src/core/installer.cpp
+++ b/src/core/installer.cpp
@@ -7,7 +7,6 @@
#include <ranges>
#include <regex>
#define _UNIX
-#include <dll.hpp>
namespace sfs = std::filesystem;
namespace pu = path_utils;
@@ -35,6 +34,8 @@ void Installer::extract(const sfs::path& source_path,
}
catch(CompressionError& error)
{
+ throw error;
+ /*
std::string extension = source_path.extension().string();
std::transform(extension.begin(),
extension.end(),
@@ -48,6 +49,7 @@ void Installer::extract(const sfs::path& source_path,
}
else
throw error;
+ */
}
for(const auto& dir_entry : sfs::recursive_directory_iterator(dest_path))
{
@@ -428,6 +430,7 @@ void Installer::extractWithProgress(const sfs::path& source_path,
sfs::current_path(working_dir);
}
+/*
void Installer::extractRarArchive(const sfs::path& source_path, const sfs::path& dest_path)
{
log(Log::LOG_DEBUG, "Using fallback rar extraction");
@@ -459,3 +462,4 @@ void Installer::extractRarArchive(const sfs::path& source_path, const sfs::path&
throw CompressionError("Failed to extract RAR archive.");
RARCloseArchive(hArcData);
}
+*/