diff --git a/pkgs/by-name/gi/gitqlient/dont-attempt-submodule-update.patch b/pkgs/by-name/gi/gitqlient/dont-attempt-submodule-update.patch new file mode 100644 index 000000000000..3a335a12fe17 --- /dev/null +++ b/pkgs/by-name/gi/gitqlient/dont-attempt-submodule-update.patch @@ -0,0 +1,24 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 697b90dd..d3e75d2f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -28,19 +28,6 @@ add_compile_definitions(SHA_VER="${GQ_SHA}") + add_compile_definitions(VER="${VERSION}") + add_compile_definitions(QT_DEPRECATED_WARNINGS) + +-if (NOT EXISTS "${PROJECT_SOURCE_DIR}/src/AuxiliarCustomWidgets/.git" OR +- NOT EXISTS "${PROJECT_SOURCE_DIR}/src/QLogger/.git" OR +- NOT EXISTS "${PROJECT_SOURCE_DIR}/src/QPinnableTabWidget/.git" OR +- NOT EXISTS "${PROJECT_SOURCE_DIR}/src/git/.git") +- message(STATUS "Submodule update:") +- execute_process(COMMAND git submodule update --init --recursive +- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} +- RESULT_VARIABLE GIT_SUBMOD_RESULT) +- if(NOT GIT_SUBMOD_RESULT EQUAL "0") +- message(FATAL_ERROR "git submodule update --init --recursive failed with ${GIT_SUBMOD_RESULT}, please checkout submodules") +- endif() +-endif() +- + find_package(Qt6 COMPONENTS Core Widgets Network REQUIRED) + + file(GLOB SRC_FILES diff --git a/pkgs/by-name/gi/gitqlient/install-to-store.patch b/pkgs/by-name/gi/gitqlient/install-to-store.patch new file mode 100644 index 000000000000..0b0059393c8e --- /dev/null +++ b/pkgs/by-name/gi/gitqlient/install-to-store.patch @@ -0,0 +1,28 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d3e75d2f..c8d56287 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -163,7 +163,6 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux") + target_link_options(${PROJECT_NAME} PUBLIC "-no-pie") + + set(CPACK_PACKAGING_INSTALL_PREFIX "/usr") +- set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/install/usr) + + install( + PROGRAMS ${CMAKE_BINARY_DIR}/${PROJECT_NAME} +@@ -250,7 +249,6 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux") + include(CPack) + + elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin") +- set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/install) + install( + TARGETS ${PROJECT_NAME} + RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" +@@ -260,7 +258,6 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin") + elseif (CMAKE_SYSTEM_NAME STREQUAL "Windows") + include(InstallRequiredSystemLibraries) + +- set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/install) + install( + TARGETS ${PROJECT_NAME} + RUNTIME DESTINATION . diff --git a/pkgs/by-name/gi/gitqlient/package.nix b/pkgs/by-name/gi/gitqlient/package.nix index 75d9dc1f4cb2..a787c695cb05 100644 --- a/pkgs/by-name/gi/gitqlient/package.nix +++ b/pkgs/by-name/gi/gitqlient/package.nix @@ -2,39 +2,45 @@ lib, stdenv, fetchFromGitHub, - libsForQt5, + qt6, + cmake, gitUpdater, }: stdenv.mkDerivation (finalAttrs: { pname = "gitqlient"; - version = "1.6.3"; + version = "1.6.3-unstable-2025-09-11"; # cmake does not install correctly on tagged release src = fetchFromGitHub { owner = "francescmm"; repo = "gitqlient"; - tag = "v${finalAttrs.version}"; + rev = "faa3e2c19205123944bb88427a569c6f1b4366a1"; fetchSubmodules = true; - hash = "sha256-gfWky5KTSj+5FC++QIVTJbrDOYi/dirTzs6LvTnO74A="; + hash = "sha256-CBgzTwJWssL0NaNqfesHkOG4pi6QQYxjxWHFcG00U0U="; }; + patches = [ + # fetcher removes .git directory, but cmake attempts to update submodules if .git is missing + ./dont-attempt-submodule-update.patch + # install logic in unstable is slightly better, but still attempts to install to source tree, not store + ./install-to-store.patch + ]; + nativeBuildInputs = [ - libsForQt5.qmake - libsForQt5.wrapQtAppsHook + cmake + qt6.wrapQtAppsHook ]; buildInputs = [ - libsForQt5.qtwebengine - ]; - - qmakeFlags = [ - "GitQlient.pro" + qt6.qtbase ]; passthru.updateScript = gitUpdater { rev-prefix = "v"; }; + env.NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations"; # QCheckBox::stateChanged is deprecated + meta = { homepage = "https://github.com/francescmm/GitQlient"; description = "Multi-platform Git client written with Qt";