Unverified Commit 33b8ca48 authored by Weijia Wang's avatar Weijia Wang Committed by GitHub
Browse files

Merge pull request #251051 from pacien/translatelocally-init

translatelocally: init at unstable-2023-08-25
parents 57a0c58e 7d797175
Loading
Loading
Loading
Loading
+62 −0
Original line number Diff line number Diff line
{ lib, stdenv, fetchFromGitHub
, cmake, qt6, libarchive, pcre2, protobuf, gperftools, blas
}:

let
  rev = "f8a2dba0a63989c6b3a7be36f736ed478cad1dd2";

in stdenv.mkDerivation (finalAttrs: {
  pname = "translatelocally";
  version = "unstable-2023-08-25";

  src = fetchFromGitHub {
    owner = "XapaJIaMnu";
    repo = "translateLocally";
    inherit rev;
    hash = "sha256-uUdDi0CwCR/FQjw5D2s088d/Tp7NQOI0ia30oOhlGoc=";
    fetchSubmodules = true;
  };

  patches = [
    ./version_without_git.patch
  ];

  postPatch = ''
    echo '#define GIT_REVISION "${rev} ${finalAttrs.version}"' > \
      3rd_party/bergamot-translator/3rd_party/marian-dev/src/common/git_revision.h
  '';

  nativeBuildInputs = [
    cmake
    protobuf
    qt6.wrapQtAppsHook
  ];

  buildInputs = [
    qt6.qttools
    qt6.qtbase
    qt6.qtsvg
    libarchive
    pcre2
    protobuf
    gperftools  # provides tcmalloc
    blas
  ];

  cmakeFlags = [
    "-DBLAS_LIBRARIES=-lblas"
    "-DCBLAS_LIBRARIES=-lcblas"
  ];

  meta = with lib; {
    mainProgram = "translateLocally";
    homepage = "https://translatelocally.com/";
    description = "Fast and secure translation on your local machine, powered by marian and Bergamot.";
    license = licenses.mit;
    maintainers = with maintainers; [ pacien ];
    platforms = platforms.linux;

    # https://github.com/XapaJIaMnu/translateLocally/issues/150
    broken = stdenv.isAarch64;
  };
})
+66 −0
Original line number Diff line number Diff line
Submodule 3rd_party/bergamot-translator contains modified content
Submodule 3rd_party/marian-dev contains modified content
diff --git a/3rd_party/bergamot-translator/3rd_party/marian-dev/cmake/GetVersionFromFile.cmake b/3rd_party/bergamot-translator/3rd_party/marian-dev/cmake/GetVersionFromFile.cmake
index 31352565..d90a366d 100644
--- a/3rd_party/bergamot-translator/3rd_party/marian-dev/cmake/GetVersionFromFile.cmake
+++ b/3rd_party/bergamot-translator/3rd_party/marian-dev/cmake/GetVersionFromFile.cmake
@@ -22,10 +22,8 @@ else()
 endif()
 
 # Get current commit SHA from git
-execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
-  WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-  OUTPUT_VARIABLE PROJECT_VERSION_GIT_SHA
-  OUTPUT_STRIP_TRAILING_WHITESPACE)
+# (dummy value for nix package without the .git)
+set(PROJECT_VERSION_GIT_SHA 000000000000)
 
 # Get partial versions into a list
 string(REGEX MATCHALL "-.*$|[0-9]+" PROJECT_PARTIAL_VERSION_LIST
diff --git a/3rd_party/bergamot-translator/3rd_party/marian-dev/src/CMakeLists.txt b/3rd_party/bergamot-translator/3rd_party/marian-dev/src/CMakeLists.txt
index 76aa0e2b..ca982bd3 100644
--- a/3rd_party/bergamot-translator/3rd_party/marian-dev/src/CMakeLists.txt
+++ b/3rd_party/bergamot-translator/3rd_party/marian-dev/src/CMakeLists.txt
@@ -149,23 +149,8 @@ target_compile_options(marian PRIVATE ${ALL_WARNINGS})
 #
 # We set MARIAN_GIT_DIR to the appropriate path, depending on whether
 # ${CMAKE_CURRENT_SOURCE_DIR}/../.git is a directory or file.
-set(MARIAN_GIT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../.git)
-if(NOT IS_DIRECTORY ${MARIAN_GIT_DIR}) # i.e., it's a submodule
-  file(READ ${MARIAN_GIT_DIR} MARIAN_GIT_DIR)
-  string(REGEX REPLACE "gitdir: (.*)\n" "\\1" MARIAN_GIT_DIR ${MARIAN_GIT_DIR})
-  if(NOT IS_ABSOLUTE ${MARIAN_GIT_DIR})
-    get_filename_component(MARIAN_GIT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../${MARIAN_GIT_DIR}" ABSOLUTE)
-  endif()
-endif(NOT IS_DIRECTORY ${MARIAN_GIT_DIR})
-
-add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/common/git_revision.h
-  WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-  COMMAND git log -1 --pretty=format:\#define\ GIT_REVISION\ \"\%h\ \%ai\" > ${CMAKE_CURRENT_SOURCE_DIR}/common/git_revision.h
-  DEPENDS ${MARIAN_GIT_DIR}/logs/HEAD
-  VERBATIM
-)
-add_custom_target(marian_version DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/common/git_revision.h)
-add_dependencies(marian marian_version) # marian must depend on it so that it gets created first
+# (generated by nix package instead)
+
 # make sure all local dependencies are installed first before this is built
 add_dependencies(marian 3rd_party_installs)
 
diff --git a/cmake/GetVersionFromFile.cmake b/cmake/GetVersionFromFile.cmake
index 83b7975..71cd861 100644
--- a/cmake/GetVersionFromFile.cmake
+++ b/cmake/GetVersionFromFile.cmake
@@ -23,10 +23,8 @@ else()
 endif()
 
 # Get current commit SHA from git
-execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
-  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
-  OUTPUT_VARIABLE PROJECT_VERSION_GIT_SHA
-  OUTPUT_STRIP_TRAILING_WHITESPACE)
+# (dummy value for nix package without the .git)
+set(PROJECT_VERSION_GIT_SHA 000000000000)
 
 # Get partial versions into a list
 string(REGEX MATCHALL "-.*$|[0-9]+" PROJECT_PARTIAL_VERSION_LIST
+2 −0
Original line number Diff line number Diff line
@@ -14028,6 +14028,8 @@ with pkgs;
  transifex-cli = callPackage ../applications/misc/transifex-cli { };
  translatelocally = callPackage ../applications/misc/translatelocally { };
  translate-shell = callPackage ../applications/misc/translate-shell { };
  translatepy = with python3.pkgs; toPythonApplication translatepy;