From 88a473fc12e24ba850ae4b120ae0c766d9dd6840 Mon Sep 17 00:00:00 2001 From: Jörg Thalheim Date: Sat, 21 Dec 2019 07:24:51 +0000 Subject: mercurial: 4.9.1 -> 5.2.1 also switch to python3 --- .../version-management/mercurial/default.nix | 74 ++++++++++------------ 1 file changed, 35 insertions(+), 39 deletions(-) (limited to 'pkgs') diff --git a/pkgs/applications/version-management/mercurial/default.nix b/pkgs/applications/version-management/mercurial/default.nix index ee0ab3756663..792e647324ae 100644 --- a/pkgs/applications/version-management/mercurial/default.nix +++ b/pkgs/applications/version-management/mercurial/default.nix @@ -1,21 +1,19 @@ -{ stdenv, fetchurl, python2Packages, makeWrapper, unzip +{ stdenv, fetchurl, python3Packages, makeWrapper, unzip , guiSupport ? false, tk ? null , ApplicationServices -, mercurialSrc ? fetchurl rec { - meta.name = "mercurial-${meta.version}"; - meta.version = "4.9.1"; - url = "https://mercurial-scm.org/release/${meta.name}.tar.gz"; - sha256 = "0iybbkd9add066729zg01kwz5hhc1s6lhp9rrnsmzq6ihyxj3p8v"; - } }: let - inherit (python2Packages) docutils hg-git dulwich python; + inherit (python3Packages) docutils dulwich python; -in python2Packages.buildPythonApplication { +in python3Packages.buildPythonApplication rec { + pname = "mercurial"; + version = "5.2.1"; - inherit (mercurialSrc.meta) name version; - src = mercurialSrc; + src = fetchurl { + url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz"; + sha256 = "1pxkd37b0a1mi2zakk1hi122lgz1ffy2fxdnbs8acwlqpw55bc8q"; + }; format = "other"; @@ -24,41 +22,39 @@ in python2Packages.buildPythonApplication { buildInputs = [ makeWrapper docutils unzip ] ++ stdenv.lib.optionals stdenv.isDarwin [ ApplicationServices ]; - propagatedBuildInputs = [ hg-git dulwich ]; + propagatedBuildInputs = [ dulwich ]; makeFlags = [ "PREFIX=$(out)" ]; - postInstall = (stdenv.lib.optionalString guiSupport - '' - mkdir -p $out/etc/mercurial - cp contrib/hgk $out/bin - cat >> $out/etc/mercurial/hgrc << EOF - [extensions] - hgk=$out/lib/${python.libPrefix}/site-packages/hgext/hgk.py - EOF - # setting HG so that hgk can be run itself as well (not only hg view) - WRAP_TK=" --set TK_LIBRARY ${tk}/lib/${tk.libPrefix} - --set HG $out/bin/hg - --prefix PATH : ${tk}/bin " - '') + - '' - for i in $(cd $out/bin && ls); do - wrapProgram $out/bin/$i \ - $WRAP_TK - done + postInstall = (stdenv.lib.optionalString guiSupport '' + mkdir -p $out/etc/mercurial + cp contrib/hgk $out/bin + cat >> $out/etc/mercurial/hgrc << EOF + [extensions] + hgk=$out/lib/${python.libPrefix}/site-packages/hgext/hgk.py + EOF + # setting HG so that hgk can be run itself as well (not only hg view) + WRAP_TK=" --set TK_LIBRARY ${tk}/lib/${tk.libPrefix} + --set HG $out/bin/hg + --prefix PATH : ${tk}/bin " + '') + '' + for i in $(cd $out/bin && ls); do + wrapProgram $out/bin/$i \ + $WRAP_TK + done - # copy hgweb.cgi to allow use in apache - mkdir -p $out/share/cgi-bin - cp -v hgweb.cgi contrib/hgweb.wsgi $out/share/cgi-bin - chmod u+x $out/share/cgi-bin/hgweb.cgi + # copy hgweb.cgi to allow use in apache + mkdir -p $out/share/cgi-bin + cp -v hgweb.cgi contrib/hgweb.wsgi $out/share/cgi-bin + chmod u+x $out/share/cgi-bin/hgweb.cgi - # install bash/zsh completions - install -v -m644 -D contrib/bash_completion $out/share/bash-completion/completions/_hg - install -v -m644 -D contrib/zsh_completion $out/share/zsh/site-functions/_hg - ''; + # install bash/zsh completions + install -v -m644 -D contrib/bash_completion $out/share/bash-completion/completions/_hg + install -v -m644 -D contrib/zsh_completion $out/share/zsh/site-functions/_hg + ''; meta = { - inherit (mercurialSrc.meta) version; + inherit version; description = "A fast, lightweight SCM system for very large distributed projects"; homepage = https://www.mercurial-scm.org; downloadPage = https://www.mercurial-scm.org/release/; -- cgit 1.4.1 From 001999e25b746f2ce8e23fc2010f8bb25d10810e Mon Sep 17 00:00:00 2001 From: Jörg Thalheim Date: Sat, 21 Dec 2019 07:26:11 +0000 Subject: python3.pkgs.qscintilla-qt5: don't propagate pyqt5 Since this package symlinks pyqt5 in its own tree, propagating pyqt5 is detected as a conflict by our python setup hook. --- pkgs/development/python-modules/qscintilla-qt5/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'pkgs') diff --git a/pkgs/development/python-modules/qscintilla-qt5/default.nix b/pkgs/development/python-modules/qscintilla-qt5/default.nix index 96485bd1f062..b5ce1eb26fe1 100644 --- a/pkgs/development/python-modules/qscintilla-qt5/default.nix +++ b/pkgs/development/python-modules/qscintilla-qt5/default.nix @@ -12,8 +12,7 @@ buildPythonPackage { format = "other"; nativeBuildInputs = [ lndir sip qtbase ]; - buildInputs = [ qscintilla ]; - propagatedBuildInputs = [ pyqt5 ]; + buildInputs = [ qscintilla pyqt5 ]; postPatch = '' substituteInPlace Python/configure.py \ -- cgit 1.4.1 From 7063f6f29ac310a62fc20bc4bc1b37117f3d0fa5 Mon Sep 17 00:00:00 2001 From: Jörg Thalheim Date: Sat, 21 Dec 2019 07:27:31 +0000 Subject: tortoisehg: 5.0.2 -> 5.2.1 This version is not yet released. However given that python2 will soon go end-of-life (without security updates), this seems like a good move. The package was also lacking proper qt wrapping and unusable before. --- .../version-management/tortoisehg/default.nix | 51 ++++++++++------------ 1 file changed, 23 insertions(+), 28 deletions(-) (limited to 'pkgs') diff --git a/pkgs/applications/version-management/tortoisehg/default.nix b/pkgs/applications/version-management/tortoisehg/default.nix index 779c33627e8f..653db11ab5d3 100644 --- a/pkgs/applications/version-management/tortoisehg/default.nix +++ b/pkgs/applications/version-management/tortoisehg/default.nix @@ -1,43 +1,38 @@ -{ lib, fetchurl, python2Packages -, mercurial +{ lib, fetchurl, python3Packages +, mercurial, qt5 }@args: let tortoisehgSrc = fetchurl rec { meta.name = "tortoisehg-${meta.version}"; - meta.version = "5.0.2"; - url = "https://bitbucket.org/tortoisehg/targz/downloads/${meta.name}.tar.gz"; - sha256 = "1fkawx4ymaacah2wpv2w7rxmv1mx08mg4x4r4fxh41jz1njjb8sz"; + meta.version = "5.2.1"; + url = "https://bitbucket.org/tortoisehg/thg/get/14221e991a5b623e0072d3bd340b759dbe9072ca.tar.gz"; + sha256 = "01rpzf5z99izcdda1ps9bhqvhw6qghagd8c1y7x19rv223zi05dv"; }; - mercurial = - if args.mercurial.meta.version == tortoisehgSrc.meta.version - then args.mercurial - else args.mercurial.override { - mercurialSrc = fetchurl rec { - meta.name = "mercurial-${meta.version}"; - meta.version = tortoisehgSrc.meta.version; - url = "https://mercurial-scm.org/release/${meta.name}.tar.gz"; - sha256 = "1y60hfc8gh4ha9sw650qs7hndqmvbn0qxpmqwpn4q18z5xwm1f19"; - }; - }; - -in python2Packages.buildPythonApplication { + tortoiseMercurial = mercurial.overridePythonAttrs (old: rec { + inherit (tortoisehgSrc.meta) version; + src = fetchurl { + url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz"; + sha256 = "1pxkd37b0a1mi2zakk1hi122lgz1ffy2fxdnbs8acwlqpw55bc8q"; + }; + }); +in python3Packages.buildPythonApplication { inherit (tortoisehgSrc.meta) name version; src = tortoisehgSrc; - pythonPath = with python2Packages; [ pyqt4 mercurial qscintilla iniparse ]; - - propagatedBuildInputs = with python2Packages; [ qscintilla iniparse ]; + propagatedBuildInputs = with python3Packages; [ + tortoiseMercurial qscintilla-qt5 iniparse + ]; + nativeBuildInputs = [ qt5.wrapQtAppsHook ]; doCheck = false; # tests fail with "thg: cannot connect to X server" - dontStrip = true; - buildPhase = ""; - installPhase = '' - ${python2Packages.python.executable} setup.py install --prefix=$out + postInstall = '' mkdir -p $out/share/doc/tortoisehg - cp COPYING.txt $out/share/doc/tortoisehg/Copying.txt.gz - ln -s $out/bin/thg $out/bin/tortoisehg #convenient alias + cp COPYING.txt $out/share/doc/tortoisehg/Copying.txt + # convenient alias + ln -s $out/bin/thg $out/bin/tortoisehg + wrapQtApp $out/bin/thg ''; checkPhase = '' @@ -45,7 +40,7 @@ in python2Packages.buildPythonApplication { $out/bin/thg version ''; - passthru.mercurial = mercurial; + passthru.mercurial = tortoiseMercurial; meta = { description = "Qt based graphical tool for working with Mercurial"; -- cgit 1.4.1