From ad61eeefebb1ebf3d71d5e3fed2bad3a11c08429 Mon Sep 17 00:00:00 2001 From: yuuko Date: Tue, 2 Sep 2025 13:51:48 -0700 Subject: vtf-thumbnailer: init @ 0.2.0 --- srcds-pkgs/default.nix | 1 + srcds-pkgs/vtf-thumbnailer/default.nix | 92 ++++++++++++++++++++++ srcds-pkgs/vtf-thumbnailer/fix-cmake-outputs.patch | 30 +++++++ .../vtf-thumbnailer/fix-miniz-cmake-dirs.patch | 28 +++++++ 4 files changed, 151 insertions(+) create mode 100644 srcds-pkgs/vtf-thumbnailer/default.nix create mode 100644 srcds-pkgs/vtf-thumbnailer/fix-cmake-outputs.patch create mode 100644 srcds-pkgs/vtf-thumbnailer/fix-miniz-cmake-dirs.patch diff --git a/srcds-pkgs/default.nix b/srcds-pkgs/default.nix index 0918276..cba167b 100644 --- a/srcds-pkgs/default.nix +++ b/srcds-pkgs/default.nix @@ -60,6 +60,7 @@ in { vpkedit = callPackage ./vpkedit {}; maretf = callPackage ./maretf {}; + vtf-thumbnailer = callPackage ./vtf-thumbnailer {}; }; in { lib , newScope diff --git a/srcds-pkgs/vtf-thumbnailer/default.nix b/srcds-pkgs/vtf-thumbnailer/default.nix new file mode 100644 index 0000000..4fef9c1 --- /dev/null +++ b/srcds-pkgs/vtf-thumbnailer/default.nix @@ -0,0 +1,92 @@ +{ lib, stdenv, fetchFromGitHub, fetchgit +, cmake, pkg-config, makeWrapper +, bzip2, xz, zstd, zlib-ng +, openssl, cryptopp +}: +stdenv.mkDerivation (self: { + pname = "vtf-thumbnailer"; + version = "0.2.0"; + + src = fetchFromGitHub { + owner = "craftablescience"; + repo = self.pname; + tag = "v${self.version}"; + fetchSubmodules = true; + hash = "sha256-cK8S9ozZXCzo8WWWazafyiPi+7YHWd950xODPd9x/aE="; + }; + + cryptopp-src = fetchgit { + url = "https://github.com/weidai11/cryptopp"; + tag = "CRYPTOPP_8_9_0"; + hash = "sha256-HV+afSFkiXdy840JbHBTR8lLL0GMwsN3QdwaoQmicpQ="; + }; + + zlib-src = fetchgit { + url = "https://github.com/zlib-ng/zlib-ng"; + tag = "2.2.5"; + hash = "sha256-VB4aegnZCZut9H/Hu2PBwwldpbM7E67D5QFYCKgq3mg="; + }; + + bzip2-src = fetchgit { + url = "https://gitlab.com/bzip2/bzip2"; + rev = "66c46b8c9436613fd81bc5d03f63a61933a4dcc3"; + hash = "sha256-JuwmLBwtUPW9Wt31wIX5NMCu0VTxt16XaBQ2c5rFTY4="; + }; + + xz-src = fetchgit { + url = "https://github.com/tukaani-project/xz"; + tag = "v5.8.1"; + hash = "sha256-29w1K3zC58oFkBvSdwpKu694S+42FxzqOtWBpS7iJ+A="; + }; + + zstd-src = fetchgit { + url = "https://github.com/facebook/zstd"; + tag = "v1.5.7"; + hash = "sha256-tNFWIT9ydfozB8dWcmTMuZLCQmQudTFJIkSr0aG7S44="; + }; + + nativeBuildInputs = [ + cmake + makeWrapper + ]; + + buildInputs = [ + bzip2 + cryptopp + openssl + pkg-config + xz + zlib-ng + zstd + ]; + + patches = [ + ./fix-miniz-cmake-dirs.patch + ./fix-cmake-outputs.patch + ]; + cmakeFlags = with self; [ + (lib.cmakeFeature "CRYPTOPP_SOURCES" "${cryptopp-src}") + (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_ZLIB" "${zlib-src}") + (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_BZIP2" "/build/bzip2tmp") + (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_LIBLZMA" "${xz-src}") + (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_ZSTD" "${zstd-src}") + (lib.cmakeBool "MZ_OPENSSL" true) + (lib.cmakeBool "MARETF_BUILD_INSTALLER" true) + (lib.cmakeFeature "CPACK_GENERATOR" "DEB") + ]; + + postUnpack = '' + cp -r ${self.bzip2-src} /build/bzip2tmp + chmod -R +w /build/bzip2tmp + ''; + + LANG = "C.UTF-8"; + + meta = { + description = "Adds previews for VTF files in your file explorer of choice on Windows and Linux"; + homepage = "https://github.com/craftablescience/vtf-thumbnailer"; + license = lib.licenses.mit; + platforms = [ "x86_64-linux" ]; + changelog = "https://github.com/craftablescience/vtf-thumbnailer/releases/tag/v${self.version}"; + }; +}) diff --git a/srcds-pkgs/vtf-thumbnailer/fix-cmake-outputs.patch b/srcds-pkgs/vtf-thumbnailer/fix-cmake-outputs.patch new file mode 100644 index 0000000..9d43063 --- /dev/null +++ b/srcds-pkgs/vtf-thumbnailer/fix-cmake-outputs.patch @@ -0,0 +1,30 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 37b256f..6f98eb4 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -118,14 +118,14 @@ else() + "${CMAKE_CURRENT_SOURCE_DIR}/src/common.h" + "${CMAKE_CURRENT_SOURCE_DIR}/src/linux.cpp") + target_link_libraries(${PROJECT_NAME} PUBLIC argparse::argparse) +- install(TARGETS ${PROJECT_NAME} DESTINATION .) ++ install(TARGETS ${PROJECT_NAME} DESTINATION "${CMAKE_INSTALL_PREFIX}/bin") + + # MIME type info + configure_file( + "${CMAKE_CURRENT_SOURCE_DIR}/installer/linux/mime-type.in" + "${CMAKE_CURRENT_SOURCE_DIR}/installer/linux/generated/mime-type.xml") + install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/installer/linux/generated/mime-type.xml" +- DESTINATION "/usr/share/mime/packages" ++ DESTINATION "${CMAKE_INSTALL_PREFIX}/share/mime/packages" + RENAME "${PROJECT_NAME}.xml") + + # Thumbnailer +@@ -133,7 +133,7 @@ else() + "${CMAKE_CURRENT_SOURCE_DIR}/installer/linux/thumbnailer.in" + "${CMAKE_CURRENT_SOURCE_DIR}/installer/linux/generated/${PROJECT_NAME}.thumbnailer") + install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/installer/linux/generated/${PROJECT_NAME}.thumbnailer" +- DESTINATION "/usr/share/thumbnailers") ++ DESTINATION "${CMAKE_INSTALL_PREFIX}/share/thumbnailers") + endif() + endif() + cs_configure_target(${PROJECT_NAME}) diff --git a/srcds-pkgs/vtf-thumbnailer/fix-miniz-cmake-dirs.patch b/srcds-pkgs/vtf-thumbnailer/fix-miniz-cmake-dirs.patch new file mode 100644 index 0000000..982aec8 --- /dev/null +++ b/srcds-pkgs/vtf-thumbnailer/fix-miniz-cmake-dirs.patch @@ -0,0 +1,28 @@ +--- a/ext/sourcepp/ext/miniz/miniz.pc.in ++++ b/ext/sourcepp/ext/miniz/miniz.pc.in +@@ -1,13 +1,12 @@ +-prefix=@CMAKE_INSTALL_PREFIX@ +-exec_prefix=${prefix} +-libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ +-includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/@PROJECT_NAME@ +- +-Name: @PROJECT_NAME@ +-Description: @PROJECT_DESCRIPTION@ +-Version: @MINIZ_VERSION@ +-URL: @PROJECT_HOMEPAGE_URL@ +- +-Requires: +-Libs: -L${libdir} -lminiz +-Cflags: -I${includedir} ++prefix=@CMAKE_INSTALL_PREFIX@ ++libdir=@CMAKE_INSTALL_FULL_LIBDIR@ ++includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@/@PROJECT_NAME@ ++ ++Name: @PROJECT_NAME@ ++Description: @PROJECT_DESCRIPTION@ ++Version: @MINIZ_VERSION@ ++URL: @PROJECT_HOMEPAGE_URL@ ++ ++Requires: ++Libs: -L${libdir} -lminiz ++Cflags: -I${includedir} -- cgit v1.2.3