aboutsummaryrefslogtreecommitdiff
path: root/srcds-pkgs/vtf-thumbnailer
diff options
context:
space:
mode:
Diffstat (limited to 'srcds-pkgs/vtf-thumbnailer')
-rw-r--r--srcds-pkgs/vtf-thumbnailer/default.nix92
-rw-r--r--srcds-pkgs/vtf-thumbnailer/fix-cmake-outputs.patch30
-rw-r--r--srcds-pkgs/vtf-thumbnailer/fix-miniz-cmake-dirs.patch28
3 files changed, 150 insertions, 0 deletions
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}