mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-23 21:33:49 +00:00
Merge pull request #246963 from tjni/python-ninja
python3.pkgs.ninja-python: replace with a stub implementation
This commit is contained in:
commit
92e83bfab5
@ -43,13 +43,6 @@ buildPythonPackage rec {
|
||||
./add-build-flags.sh
|
||||
];
|
||||
|
||||
# Ugly work-around. Drop ninja dependency.
|
||||
# We already have ninja, but it comes without METADATA.
|
||||
# Building ninja-python-distributions is the way to go.
|
||||
postPatch = ''
|
||||
substituteInPlace pyproject.toml --replace "'ninja'," ""
|
||||
'';
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/mesonbuild/meson-python/blob/${version}/CHANGELOG.rst";
|
||||
description = "Meson Python build backend (PEP 517)";
|
||||
|
@ -1,72 +1,47 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, fetchurl
|
||||
, cmake
|
||||
, setuptools-scm
|
||||
, scikit-build
|
||||
, pytestCheckHook
|
||||
, pytest-virtualenv
|
||||
, flit-core
|
||||
, ninja
|
||||
}:
|
||||
let
|
||||
# these must match NinjaUrls.cmake
|
||||
ninja_src_url = "https://github.com/Kitware/ninja/archive/v1.11.1.g95dee.kitware.jobserver-1.tar.gz";
|
||||
ninja_src_sha256 = "7ba84551f5b315b4270dc7c51adef5dff83a2154a3665a6c9744245c122dd0db";
|
||||
ninja_src = fetchurl {
|
||||
url = ninja_src_url;
|
||||
sha256 = ninja_src_sha256;
|
||||
};
|
||||
in
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "ninja";
|
||||
version = "1.11.1";
|
||||
inherit (ninja) version;
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "scikit-build";
|
||||
repo = "ninja-python-distributions";
|
||||
rev = version;
|
||||
hash = "sha256-scCYsSEyN+u3qZhNhWYqHpJCl+JVJJbKz+T34gOXGJM=";
|
||||
};
|
||||
patches = [
|
||||
# make sure cmake doesn't try to download the ninja sources
|
||||
./no-download.patch
|
||||
];
|
||||
src = ./stub;
|
||||
|
||||
inherit ninja_src;
|
||||
postUnpack = ''
|
||||
# assume that if the hash matches, the source should be fine
|
||||
if ! grep "${ninja_src_sha256}" $sourceRoot/NinjaUrls.cmake; then
|
||||
echo "ninja_src_sha256 doesn't match the hash in NinjaUrls.cmake!"
|
||||
exit 1
|
||||
fi
|
||||
mkdir -p "$sourceRoot/Ninja-src"
|
||||
pushd "$sourceRoot/Ninja-src"
|
||||
tar -xavf ${ninja_src} --strip-components 1
|
||||
popd
|
||||
substituteInPlace "$sourceRoot/pyproject.toml" \
|
||||
--subst-var version
|
||||
|
||||
substituteInPlace "$sourceRoot/ninja/__init__.py" \
|
||||
--subst-var-by BIN_DIR "${ninja}/bin"
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
sed -i '/cov/d' setup.cfg
|
||||
'';
|
||||
|
||||
dontUseCmakeConfigure = true;
|
||||
inherit (ninja) setupHook;
|
||||
|
||||
nativeBuildInputs = [
|
||||
setuptools-scm
|
||||
scikit-build
|
||||
cmake
|
||||
flit-core
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
pytest-virtualenv
|
||||
preBuild = ''
|
||||
cp "${ninja.src}/misc/ninja_syntax.py" ninja/ninja_syntax.py
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [
|
||||
"ninja"
|
||||
"ninja.ninja_syntax"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A small build system with a focus on speed";
|
||||
longDescription = ''
|
||||
This is a stub of the ninja package on PyPI that uses the ninja program
|
||||
provided by nixpkgs instead of downloading ninja from the web.
|
||||
'';
|
||||
homepage = "https://github.com/scikit-build/ninja-python-distributions";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ _999eagle ];
|
||||
maintainers = with maintainers; [ _999eagle tjni ];
|
||||
};
|
||||
}
|
||||
|
@ -1,10 +0,0 @@
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -64,6 +64,7 @@
|
||||
# Download selected source archive
|
||||
ExternalProject_add(download_ninja_source
|
||||
SOURCE_DIR ${Ninja_SOURCE_DIR}
|
||||
+ DOWNLOAD_COMMAND ""
|
||||
URL ${${src_archive}_url}
|
||||
URL_HASH SHA256=${${src_archive}_sha256}
|
||||
DOWNLOAD_DIR ${ARCHIVE_DOWNLOAD_DIR}
|
@ -0,0 +1,9 @@
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
def _program(name, args):
|
||||
return subprocess.call([os.path.join('@BIN_DIR@', name)] + args, close_fds=False)
|
||||
|
||||
def ninja():
|
||||
raise SystemExit(_program('ninja', sys.argv[1:]))
|
11
pkgs/development/python-modules/ninja/stub/pyproject.toml
Normal file
11
pkgs/development/python-modules/ninja/stub/pyproject.toml
Normal file
@ -0,0 +1,11 @@
|
||||
[build-system]
|
||||
requires = ["flit_core"]
|
||||
build-backend = "flit_core.buildapi"
|
||||
|
||||
[project]
|
||||
name = "ninja"
|
||||
version = "@version@"
|
||||
description = "Ninja is a small build system with a focus on speed"
|
||||
|
||||
[project.scripts]
|
||||
ninja = "ninja:ninja"
|
@ -36,7 +36,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
absl-py
|
||||
fonttools
|
||||
lxml
|
||||
ninja-python
|
||||
ninja
|
||||
picosvg
|
||||
pillow
|
||||
regex
|
||||
@ -50,7 +50,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
nativeCheckInputs = with python3.pkgs; [
|
||||
pytestCheckHook
|
||||
|
||||
ninja-python
|
||||
ninja
|
||||
picosvg
|
||||
];
|
||||
|
||||
|
@ -210,6 +210,7 @@ mapAliases ({
|
||||
mutmut = throw "mutmut has been promoted to a top-level attribute"; # added 2022-10-02
|
||||
net2grid = gridnet; # add 2022-04-22
|
||||
nghttp2 = throw "in 1.52.0 removed deprecated python bindings."; # added 2023-06-08
|
||||
ninja-python = ninja; # add 2022-08-03
|
||||
nose-cover3 = throw "nose-cover3 has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-02-16
|
||||
nose_progressive = throw "nose_progressive has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; #added 2023-02-21
|
||||
notifymuch = throw "notifymuch has been promoted to a top-level attribute"; # added 2022-10-02
|
||||
|
@ -6443,7 +6443,9 @@ self: super: with self; {
|
||||
|
||||
mesonpep517 = callPackage ../development/python-modules/mesonpep517 { };
|
||||
|
||||
meson-python = callPackage ../development/python-modules/meson-python { };
|
||||
meson-python = callPackage ../development/python-modules/meson-python {
|
||||
inherit (pkgs) ninja;
|
||||
};
|
||||
|
||||
messagebird = callPackage ../development/python-modules/messagebird { };
|
||||
|
||||
@ -7035,7 +7037,7 @@ self: super: with self; {
|
||||
|
||||
nine = callPackage ../development/python-modules/nine { };
|
||||
|
||||
ninja-python = callPackage ../development/python-modules/ninja { };
|
||||
ninja = callPackage ../development/python-modules/ninja { inherit (pkgs) ninja; };
|
||||
|
||||
nipy = callPackage ../development/python-modules/nipy { };
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user