about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndersonTorres <torres.anderson.85@protonmail.com>2022-09-18 11:25:35 -0300
committerAndersonTorres <torres.anderson.85@protonmail.com>2022-10-23 22:51:39 -0300
commit169d4a1704fc124eef376593b278f2a15dc87817 (patch)
treed7efde2fba0c2ae43a1095dc10b3b1c0d8922dbe
parent1aa35f048a10cab250d038fa84311a0b589f0836 (diff)
vym: 2.7.1 -> 2.8.42
-rw-r--r--pkgs/applications/misc/vym/000-fix-zip-paths.diff21
-rw-r--r--pkgs/applications/misc/vym/default.nix98
-rw-r--r--pkgs/top-level/all-packages.nix4
3 files changed, 78 insertions, 45 deletions
diff --git a/pkgs/applications/misc/vym/000-fix-zip-paths.diff b/pkgs/applications/misc/vym/000-fix-zip-paths.diff
new file mode 100644
index 0000000000000..37512aded12fa
--- /dev/null
+++ b/pkgs/applications/misc/vym/000-fix-zip-paths.diff
@@ -0,0 +1,21 @@
+diff -Naur source-old/src/main.cpp source-new/src/main.cpp
+--- source-old/src/main.cpp	1969-12-31 21:00:01.000000000 -0300
++++ source-new/src/main.cpp	2022-10-23 22:30:00.463905363 -0300
+@@ -286,13 +286,10 @@
+     // Platform specific settings
+     vymPlatform = QSysInfo::prettyProductName();
+ 
+-#if defined(Q_OS_WINDOWS)
+-    // Only Windows 10 has tar. Older windows versions not supported.
+-    zipToolPath = "tar";
+-#else
+-    zipToolPath = "/usr/bin/zip";
+-    unzipToolPath = "/usr/bin/unzip";
+-#endif
++    // Nixpkgs-specific hack
++    zipToolPath = "@zipPath@";
++    unzipToolPath = "@unzipPath@";
++
+     iconPath = vymBaseDir.path() + "/icons/";
+     flagsPath = vymBaseDir.path() + "/flags/";
+ 
diff --git a/pkgs/applications/misc/vym/default.nix b/pkgs/applications/misc/vym/default.nix
index c3941e0b1b967..6afadb1b5c79b 100644
--- a/pkgs/applications/misc/vym/default.nix
+++ b/pkgs/applications/misc/vym/default.nix
@@ -1,59 +1,69 @@
-{ lib, mkDerivation, fetchurl, pkg-config, qmake, qtscript, qtsvg }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, qmake
+, qtbase
+, qtscript
+, qtsvg
+, substituteAll
+, unzip
+, wrapQtAppsHook
+, zip
+}:
 
-mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "vym";
-  version = "2.7.1";
+  version = "2.8.42";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/project/vym/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "0lyf0m4y5kn5s47z4sg10215f3jsn3k1bl389jfbh2f5v4srav4g";
+  src = fetchFromGitHub {
+    owner = "insilmaril";
+    repo = "vym";
+    rev = "89f50bcba953c410caf459b0a4bfbd09018010b7"; # not tagged yet (why??)
+    hash = "sha256-xMXvc8gt3nfKWbU+WoS24wCUTGDQRhG0Q9m7yDhY5/w=";
   };
 
-  # Hardcoded paths scattered about all have form share/vym
-  # which is encouraging, although we'll need to patch them (below).
-  qmakeFlags = [
-    "DATADIR=${placeholder "out"}/share"
-    "DOCDIR=${placeholder "out"}/share/doc/vym"
+  patches = [
+    (substituteAll {
+      src = ./000-fix-zip-paths.diff;
+      zipPath = "${zip}/bin/zip";
+      unzipPath = "${unzip}/bin/unzip";
+    })
   ];
 
-  postPatch = ''
-    for x in \
-      exportoofiledialog.cpp \
-      main.cpp \
-      mainwindow.cpp \
-      tex/*.{tex,lyx}; \
-    do
-      substituteInPlace $x \
-        --replace /usr/share/vym $out/share/vym \
-        --replace /usr/local/share/vym $out/share/vym \
-        --replace /usr/share/doc $out/share/doc/vym
-    done
-  '';
-
-  hardeningDisable = [ "format" ];
-
-  nativeBuildInputs = [ pkg-config qmake ];
-  buildInputs = [ qtscript qtsvg ];
-
-  postInstall = ''
-    install -Dm755 -t $out/share/man/man1 doc/*.1.gz
-  '';
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    qtbase
+    qtscript
+    qtsvg
+  ];
+
+  qtWrapperArgs = [
+    "--prefix PATH : ${lib.makeBinPath [ unzip zip ]}"
+  ];
 
   meta = with lib; {
+    homepage = "http://www.insilmaril.de/vym/";
     description = "A mind-mapping software";
     longDescription = ''
-      VYM (View Your Mind) is a tool to generate and manipulate maps which show your thoughts.
-      Such maps can help you to improve your creativity and effectivity. You can use them
-      for time management, to organize tasks, to get an overview over complex contexts,
-      to sort your ideas etc.
-
-      Maps can be drawn by hand on paper or a flip chart and help to structure your thoughs.
-      While a tree like structure like shown on this page can be drawn by hand or any drawing software
-      vym offers much more features to work with such maps.
+      VYM (View Your Mind) is a tool to generate and manipulate maps which show
+      your thoughts. Such maps can help you to improve your creativity and
+      effectivity. You can use them for time management, to organize tasks, to
+      get an overview over complex contexts, to sort your ideas etc.
+
+      Maps can be drawn by hand on paper or a flip chart and help to structure
+      your thoughs. While a tree like structure like shown on this page can be
+      drawn by hand or any drawing software vym offers much more features to
+      work with such maps.
     '';
-    homepage = "http://www.insilmaril.de/vym/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = [ maintainers.AndersonTorres ];
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index ff8399e0b9a48..971d9b6f78d4d 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -32070,7 +32070,9 @@ with pkgs;
 
   yeahwm = callPackage ../applications/window-managers/yeahwm { };
 
-  vym = qt5.callPackage ../applications/misc/vym { };
+  vym = callPackage ../applications/misc/vym {
+    inherit (libsForQt5) qmake qtscript qtsvg qtbase wrapQtAppsHook;
+  };
 
   wad = callPackage ../tools/security/wad { };