From e40233e13695dc11c7ee67df6c751ff81a2e173b Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Thu, 19 Oct 2017 14:54:59 +0200 Subject: [PATCH] scons: 2.5.1 -> 3.0.0 "SCons release 3.0.0 now available from the download page at SourceForge. This release should be used instead of 2.5.1. This release fixes several issues. TThis will be the first release to support Python versions earlier than 2.7 as well as 3.5+." "NOTE: This is a major release. You should expect that some targets may rebuild when upgrading. Significant changes in some python action signatures. Also switching between PY 2.7 and PY 3.5, 3.6 will cause rebuilds." --- .../tools/build-managers/scons/common.nix | 32 +++++++++++++++++++ .../tools/build-managers/scons/default.nix | 32 +++++-------------- .../build-managers/scons/default.upstream | 10 ------ .../scons/print-statements.patch | 13 ++++++++ pkgs/top-level/all-packages.nix | 4 ++- 5 files changed, 56 insertions(+), 35 deletions(-) create mode 100644 pkgs/development/tools/build-managers/scons/common.nix delete mode 100644 pkgs/development/tools/build-managers/scons/default.upstream create mode 100644 pkgs/development/tools/build-managers/scons/print-statements.patch diff --git a/pkgs/development/tools/build-managers/scons/common.nix b/pkgs/development/tools/build-managers/scons/common.nix new file mode 100644 index 00000000000..de36925368d --- /dev/null +++ b/pkgs/development/tools/build-managers/scons/common.nix @@ -0,0 +1,32 @@ +{ version, sha256 }: + +{ stdenv, fetchurl, fetchpatch, python2Packages }: + +let name = "scons"; +in python2Packages.buildPythonApplication { + name = "${name}-${version}"; + + src = fetchurl { + url = "mirror://sourceforge/scons/${name}-${version}.tar.gz"; + inherit sha256; + }; + + # Fix a regression in 3.0.0 (causes build errors for some packages) + patches = stdenv.lib.optional (version == "3.0.0") ./print-statements.patch; + + meta = with stdenv.lib; { + homepage = http://scons.org/; + description = "An improved, cross-platform substitute for Make"; + license = licenses.mit; + longDescription = '' + SCons is an Open Source software construction tool. Think of + SCons as an improved, cross-platform substitute for the classic + Make utility with integrated functionality similar to + autoconf/automake and compiler caches such as ccache. In short, + SCons is an easier, more reliable and faster way to build + software. + ''; + platforms = platforms.all; + maintainers = [ primeos ]; + }; +} diff --git a/pkgs/development/tools/build-managers/scons/default.nix b/pkgs/development/tools/build-managers/scons/default.nix index 1b2a8220361..8e40777815c 100644 --- a/pkgs/development/tools/build-managers/scons/default.nix +++ b/pkgs/development/tools/build-managers/scons/default.nix @@ -1,30 +1,14 @@ -{stdenv, fetchurl, python2Packages}: +{ callPackage, stdenv }: let - name = "scons"; - version = "2.5.1"; -in python2Packages.buildPythonApplication { - name = "${name}-${version}"; - - src = fetchurl { - url = "mirror://sourceforge/scons/${name}-${version}.tar.gz"; + mkScons = args: callPackage (import ./common.nix args) { }; +in { + scons_2_5_1 = mkScons { + version = "2.5.1"; sha256 = "1wji1z9jdkhnmm99apx6fhld9cs52rr56aigniyrcsmlwy52298b"; }; - # No tests - doCheck = false; - - meta = { - homepage = http://scons.org/; - description = "An improved, cross-platform substitute for Make"; - license = stdenv.lib.licenses.mit; - longDescription = '' - SCons is an Open Source software construction tool. Think of - SCons as an improved, cross-platform substitute for the classic - Make utility with integrated functionality similar to - autoconf/automake and compiler caches such as ccache. In short, - SCons is an easier, more reliable and faster way to build - software. - ''; - platforms = stdenv.lib.platforms.all; + scons_3_0_0 = mkScons { + version = "3.0.0"; + sha256 = "05jjykllk4icnq6gfrkgkbc4ggxm7983q6r33mrhpilqbd02ylqg"; }; } diff --git a/pkgs/development/tools/build-managers/scons/default.upstream b/pkgs/development/tools/build-managers/scons/default.upstream deleted file mode 100644 index f9dae2818c8..00000000000 --- a/pkgs/development/tools/build-managers/scons/default.upstream +++ /dev/null @@ -1,10 +0,0 @@ -url http://sourceforge.net/projects/scons/files/scons/ -SF_version_dir -version_link '[.]tar[.]gz/download$' -SF_redirect -ensure_hash - -do_overwrite() { - set_var_value version "$CURRENT_VERSION" - set_var_value sha256 "$CURRENT_HASH" -} diff --git a/pkgs/development/tools/build-managers/scons/print-statements.patch b/pkgs/development/tools/build-managers/scons/print-statements.patch new file mode 100644 index 00000000000..a963bf78aba --- /dev/null +++ b/pkgs/development/tools/build-managers/scons/print-statements.patch @@ -0,0 +1,13 @@ +diff --git a/src/engine/SCons/Script/SConscript.py b/src/engine/SCons/Script/SConscript.py +index 558e28f9..8fea9c4d 100644 +--- src/engine/SCons/Script/SConscript.py ++++ src/engine/SCons/Script/SConscript.py +@@ -5,8 +5,6 @@ + + """ + +-from __future__ import print_function +- + # + # __COPYRIGHT__ + # diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2ced90b2d0f..1b362df2e59 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7536,7 +7536,9 @@ with pkgs; selendroid = callPackage ../development/tools/selenium/selendroid { }; - scons = callPackage ../development/tools/build-managers/scons { }; + sconsPackages = callPackage ../development/tools/build-managers/scons { }; + scons = sconsPackages.scons_3_0_0; + scons_2_5_1 = sconsPackages.scons_2_5_1; sbt = callPackage ../development/tools/build-managers/sbt { }; sbt-with-scala-native = callPackage ../development/tools/build-managers/sbt/scala-native.nix { };