Unverified Commit a3ef1bcf authored by Aleksana's avatar Aleksana Committed by GitHub
Browse files

mangayomi: 0.6.25 -> 0.6.3 (#428507)

parents ab3afdee 97d8d594
Loading
Loading
Loading
Loading
+0 −90
Original line number Diff line number Diff line
--- old/rust_builder/cargokit/cmake/cargokit.cmake	2024-11-08 13:36:13.345889693 +0000
+++ new/rust_builder/cargokit/cmake/cargokit.cmake	2024-11-08 13:45:26.019632176 +0000
@@ -17,83 +17,22 @@
 function(apply_cargokit target manifest_dir lib_name any_symbol_name)
 
     set(CARGOKIT_LIB_NAME "${lib_name}")
-    set(CARGOKIT_LIB_FULL_NAME "${CMAKE_SHARED_MODULE_PREFIX}${CARGOKIT_LIB_NAME}${CMAKE_SHARED_MODULE_SUFFIX}")
-    if (CMAKE_CONFIGURATION_TYPES)
-        set(CARGOKIT_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>")
-        set(OUTPUT_LIB "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/${CARGOKIT_LIB_FULL_NAME}")
-    else()
-        set(CARGOKIT_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}")
-        set(OUTPUT_LIB "${CMAKE_CURRENT_BINARY_DIR}/${CARGOKIT_LIB_FULL_NAME}")
-    endif()
-    set(CARGOKIT_TEMP_DIR "${CMAKE_CURRENT_BINARY_DIR}/cargokit_build")
-
-    if (FLUTTER_TARGET_PLATFORM)
-        set(CARGOKIT_TARGET_PLATFORM "${FLUTTER_TARGET_PLATFORM}")
-    else()
-        set(CARGOKIT_TARGET_PLATFORM "windows-x64")
-    endif()
-
-    set(CARGOKIT_ENV
-        "CARGOKIT_CMAKE=${CMAKE_COMMAND}"
-        "CARGOKIT_CONFIGURATION=$<CONFIG>"
-        "CARGOKIT_MANIFEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/${manifest_dir}"
-        "CARGOKIT_TARGET_TEMP_DIR=${CARGOKIT_TEMP_DIR}"
-        "CARGOKIT_OUTPUT_DIR=${CARGOKIT_OUTPUT_DIR}"
-        "CARGOKIT_TARGET_PLATFORM=${CARGOKIT_TARGET_PLATFORM}"
-        "CARGOKIT_TOOL_TEMP_DIR=${CARGOKIT_TEMP_DIR}/tool"
-        "CARGOKIT_ROOT_PROJECT_DIR=${CMAKE_SOURCE_DIR}"
-    )
-
-    if (WIN32)
-        set(SCRIPT_EXTENSION ".cmd")
-        set(IMPORT_LIB_EXTENSION ".lib")
-    else()
-        set(SCRIPT_EXTENSION ".sh")
-        set(IMPORT_LIB_EXTENSION "")
-        execute_process(COMMAND chmod +x "${cargokit_cmake_root}/run_build_tool${SCRIPT_EXTENSION}")
-    endif()
-
-    # Using generators in custom command is only supported in CMake 3.20+
-    if (CMAKE_CONFIGURATION_TYPES AND ${CMAKE_VERSION} VERSION_LESS "3.20.0")
-        foreach(CONFIG IN LISTS CMAKE_CONFIGURATION_TYPES)
-            add_custom_command(
-                OUTPUT
-                "${CMAKE_CURRENT_BINARY_DIR}/${CONFIG}/${CARGOKIT_LIB_FULL_NAME}"
-                "${CMAKE_CURRENT_BINARY_DIR}/_phony_"
-                COMMAND ${CMAKE_COMMAND} -E env ${CARGOKIT_ENV}
-                "${cargokit_cmake_root}/run_build_tool${SCRIPT_EXTENSION}" build-cmake
-                VERBATIM
-            )
-        endforeach()
-    else()
-        add_custom_command(
-            OUTPUT
-            ${OUTPUT_LIB}
-            "${CMAKE_CURRENT_BINARY_DIR}/_phony_"
-            COMMAND ${CMAKE_COMMAND} -E env ${CARGOKIT_ENV}
-            "${cargokit_cmake_root}/run_build_tool${SCRIPT_EXTENSION}" build-cmake
-            VERBATIM
-        )
-    endif()
-
-
-    set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/_phony_" PROPERTIES SYMBOLIC TRUE)
 
     if (TARGET ${target})
         # If we have actual cmake target provided create target and make existing
         # target depend on it
-        add_custom_target("${target}_cargokit" DEPENDS ${OUTPUT_LIB})
+        add_custom_target("${target}_cargokit" DEPENDS @output_lib@)
         add_dependencies("${target}" "${target}_cargokit")
-        target_link_libraries("${target}" PRIVATE "${OUTPUT_LIB}${IMPORT_LIB_EXTENSION}")
+        target_link_libraries("${target}" PRIVATE @output_lib@)
         if(WIN32)
             target_link_options(${target} PRIVATE "/INCLUDE:${any_symbol_name}")
         endif()
     else()
         # Otherwise (FFI) just use ALL to force building always
-        add_custom_target("${target}_cargokit" ALL DEPENDS ${OUTPUT_LIB})
+        add_custom_target("${target}_cargokit" ALL DEPENDS @output_lib@)
     endif()
 
     # Allow adding the output library to plugin bundled libraries
-    set("${target}_cargokit_lib" ${OUTPUT_LIB} PARENT_SCOPE)
+    set("${target}_cargokit_lib" @output_lib@ PARENT_SCOPE)
 
 endfunction()
+8 −0
Original line number Diff line number Diff line
{
  "desktop_webview_window": "sha256-wRxQPlJZZe4t2C6+G5dMx3+w8scxWENLwII08dlZ4IA=",
  "epubx": "sha256-Rf9zaabPvP7D4NgyJ+LpSB8zHjBvhq2wE0p9Sy7uOXM=",
  "flutter_qjs": "sha256-uF3+lQyc6oXWjg9xm8PVXRNZ3AXrw7+FH/lPIQPzaJY=",
  "flutter_web_auth_2": "sha256-3aci73SP8eXg6++IQTQoyS+erUUuSiuXymvR32sxHFw=",
  "media_kit_video": "sha256-t8lqS44lylLhMyvlY5G1k7EXfpDq8WshBVg8D/z0Hbc=",
  "re_editor": "sha256-alfzTs9lUHTsaZgXADb1X3T4ZB6KrhIEeGY0wuvZJtU="
}
+21 −24
Original line number Diff line number Diff line
{
  lib,
  fetchFromGitHub,
  stdenv,
  flutter332,
  webkitgtk_4_1,
  mpv,
  rustPlatform,
  stdenv,
  fetchFromGitHub,
  copyDesktopItems,
  mpv-unwrapped,
  webkitgtk_4_1,
  makeDesktopItem,
  replaceVars,
  writeText,
}:

let
  pname = "mangayomi";
  version = "0.6.25";
  version = "0.6.3";

  src = fetchFromGitHub {
    owner = "kodjodevf";
    repo = "mangayomi";
    tag = "v${version}";
    hash = "sha256-vuikoTyvUESz9ZESo4gy76syLYVO1WZdvoJf6NsyW4Y=";
    hash = "sha256-nlA5DLYSj9VVpDo7o5Umccoz8RAF+ac3LWV7108t2Ds=";
  };

  metaCommon = {
@@ -36,8 +36,6 @@ let

    sourceRoot = "${src.name}/rust";

    useFetchCargoVendor = true;

    cargoHash = "sha256-DDHBLQWscORg4+0CX5c2wmrhm2t7wOpotZFB+85w+EA=";

    passthru.libraryPath = "lib/librust_lib_mangayomi.so";
@@ -58,36 +56,35 @@ flutter332.buildFlutterApplication {
        inherit version src;
        inherit (src) passthru;

        patches = [
          (replaceVars ./cargokit.patch {
            output_lib = "${rustDep}/${rustDep.passthru.libraryPath}";
          })
        ];
        postPatch =
          let
            fakeCargokitCmake = writeText "FakeCargokit.cmake" ''
              function(apply_cargokit target manifest_dir lib_name any_symbol_name)
                set("''${target}_cargokit_lib" ${rustDep}/${rustDep.passthru.libraryPath} PARENT_SCOPE)
              endfunction()
            '';
          in
          ''
            cp ${fakeCargokitCmake} rust_builder/cargokit/cmake/cargokit.cmake
          '';

        installPhase = ''
          runHook preInstall

          cp -r . $out
          cp -r . "$out"

          runHook postInstall
        '';
      };
  };

  gitHashes = {
    desktop_webview_window = "sha256-wRxQPlJZZe4t2C6+G5dMx3+w8scxWENLwII08dlZ4IA=";
    flutter_qjs = "sha256-uF3+lQyc6oXWjg9xm8PVXRNZ3AXrw7+FH/lPIQPzaJY=";
    flutter_web_auth_2 = "sha256-3aci73SP8eXg6++IQTQoyS+erUUuSiuXymvR32sxHFw=";
    epubx = "sha256-Rf9zaabPvP7D4NgyJ+LpSB8zHjBvhq2wE0p9Sy7uOXM=";
    media_kit_video = "sha256-t8lqS44lylLhMyvlY5G1k7EXfpDq8WshBVg8D/z0Hbc=";
    re_editor = "sha256-alfzTs9lUHTsaZgXADb1X3T4ZB6KrhIEeGY0wuvZJtU=";
  };
  gitHashes = lib.importJSON ./gitHashes.json;

  nativeBuildInputs = [ copyDesktopItems ];

  buildInputs = [
    mpv-unwrapped
    webkitgtk_4_1
    mpv
  ];

  desktopItems = [
+43 −3
Original line number Diff line number Diff line
@@ -440,11 +440,11 @@
      "dependency": "direct main",
      "description": {
        "name": "d4rt",
        "sha256": "d38cde299f9e434b3c2bd0c07a7f3743e2853dfed60a3ed1f97685c34d922062",
        "sha256": "40ecf0b73603a8268050e890eb4d037b5bdf4184f439cc18d593e83b100a19e7",
        "url": "https://pub.dev"
      },
      "source": "hosted",
      "version": "0.0.7"
      "version": "0.0.9"
    },
    "dart_style": {
      "dependency": "transitive",
@@ -1054,6 +1054,36 @@
      "source": "hosted",
      "version": "2.1.0"
    },
    "hive": {
      "dependency": "direct main",
      "description": {
        "name": "hive",
        "sha256": "8dcf6db979d7933da8217edcec84e9df1bdb4e4edc7fc77dbd5aa74356d6d941",
        "url": "https://pub.dev"
      },
      "source": "hosted",
      "version": "2.2.3"
    },
    "hive_flutter": {
      "dependency": "direct main",
      "description": {
        "name": "hive_flutter",
        "sha256": "dca1da446b1d808a51689fb5d0c6c9510c0a2ba01e22805d492c73b68e33eecc",
        "url": "https://pub.dev"
      },
      "source": "hosted",
      "version": "1.1.0"
    },
    "hive_generator": {
      "dependency": "direct dev",
      "description": {
        "name": "hive_generator",
        "sha256": "06cb8f58ace74de61f63500564931f9505368f45f98958bd7a6c35ba24159db4",
        "url": "https://pub.dev"
      },
      "source": "hosted",
      "version": "2.0.1"
    },
    "html": {
      "dependency": "direct main",
      "description": {
@@ -2141,6 +2171,16 @@
      "source": "hosted",
      "version": "1.5.0"
    },
    "source_helper": {
      "dependency": "transitive",
      "description": {
        "name": "source_helper",
        "sha256": "86d247119aedce8e63f4751bd9626fc9613255935558447569ad42f9f5b48b3c",
        "url": "https://pub.dev"
      },
      "source": "hosted",
      "version": "1.3.5"
    },
    "source_span": {
      "dependency": "transitive",
      "description": {
@@ -2763,7 +2803,7 @@
    }
  },
  "sdks": {
    "dart": ">=3.8.0 <4.0.0",
    "dart": ">=3.8.1 <4.0.0",
    "flutter": ">=3.29.0"
  }
}
+51 −0
Original line number Diff line number Diff line
#! /usr/bin/env nix-shell
#! nix-shell -i python3 -p python3 nix-prefetch-git

import json
import subprocess
import sys
from pathlib import Path

THIS_FOLDER = Path(__file__).parent.resolve()
PUBSPEC_LOCK = THIS_FOLDER / "pubspec.lock.json"
GIT_HASHES = THIS_FOLDER / "gitHashes.json"


def fetch_git_hash(url: str, rev: str) -> str:
    result = subprocess.run(
        ["nix-prefetch-git", "--url", url, "--rev", rev],
        capture_output=True,
        text=True,
        check=True,
    )
    return json.loads(result.stdout)["hash"]


def main() -> None:
    if not PUBSPEC_LOCK.exists():
        sys.exit(1)
    try:
        data = json.loads(PUBSPEC_LOCK.read_text())
    except json.JSONDecodeError:
        sys.exit(1)
    output: dict[str, str] = {}
    for name, info in data.get("packages", {}).items():
        if info.get("source") != "git":
            continue
        desc = info.get("description")
        if not isinstance(desc, dict):
            continue
        url = desc.get("url")
        rev = desc.get("resolved-ref")
        if not (isinstance(url, str) and isinstance(rev, str)):
            continue
        try:
            package_hash = fetch_git_hash(url, rev)
        except subprocess.CalledProcessError:
            continue
        output[name] = package_hash
    GIT_HASHES.write_text(json.dumps(output, indent=2) + "\n")


if __name__ == "__main__":
    main()
Loading