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 000000000000..37512aded12f --- /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 c3941e0b1b96..6afadb1b5c79 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 - ''; + nativeBuildInputs = [ + cmake + pkg-config + wrapQtAppsHook + ]; - hardeningDisable = [ "format" ]; + buildInputs = [ + qtbase + qtscript + qtsvg + ]; - nativeBuildInputs = [ pkg-config qmake ]; - buildInputs = [ qtscript qtsvg ]; - - postInstall = '' - install -Dm755 -t $out/share/man/man1 doc/*.1.gz - ''; + 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. + 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. + 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 0a1bd0f2873e..d7aba854d087 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -32607,7 +32607,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 { };