# # spec file for package ninja # # Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: ninja Version: 1.10.0 Release: 1.1 Summary: A small build system closest in spirit to Make License: Apache-2.0 Group: Development/Tools/Building URL: https://ninja-build.org/ Source0: https://github.com/ninja-build/ninja/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz Source1: macros.ninja Patch1: ninja-disable-maxprocs-test.patch BuildRequires: gcc-c++ BuildRequires: python3-base BuildRequires: re2c %description Ninja is yet another build system. It takes as input the interdependencies of files (typically source code and output executables) and orchestrates building them, quickly. %prep %autosetup -p0 %build export CFLAGS="%{optflags}" export CXXFLAGS="%{optflags}" python3 ./configure.py --bootstrap --verbose %install install -D -p -m 0755 ninja %{buildroot}%{_bindir}/ninja install -D -p -m 0644 misc/zsh-completion %{buildroot}%{_datadir}/zsh/site-functions/_ninja install -D -p -m 0644 misc/ninja.vim %{buildroot}%{_datadir}/vim/site/syntax/ninja.vim install -D -p -m 0644 misc/bash-completion %{buildroot}%{_datadir}/bash-completion/completions/ninja install -D -p -m 0644 %{SOURCE1} %{buildroot}%{_rpmconfigdir}/macros.d/macros.ninja %check ./ninja all ./ninja_test python3 ./misc/ninja_syntax_test.py python3 ./misc/output_test.py %files %license COPYING %{_bindir}/ninja %{_datadir}/bash-completion %{_datadir}/vim %{_datadir}/zsh %{_rpmconfigdir}/macros.d/macros.ninja %changelog * Mon Feb 3 2020 Christoph G - update to version 1.10.0: * New dyndep binding to support Fortran and C++20 modules * Also there are three new tools: cleandead, restat, rules * Wed Sep 11 2019 Martin Pluskal - Run more tests - Small spec file improvements * Wed Jan 30 2019 Christoph G - Update to version 1.9.0: * High-resolution timestamps - Update ninja-disable-maxprocs-test.patch to include upstream changes - Drop ninja-64bit-timestamps.patch as it is part of 1.9.0 * Mon Jan 14 2019 Adam Mizerski - fix bash-completion path * Thu Dec 6 2018 Ismail Dönmez - Add ninja-64bit-timestamps.patch from upstream to use 64bit timestamps, fixes bsc#1118619 - Fix bash-completion install path * Tue Sep 12 2017 mpluskal@suse.com - Update to version 1.8.2: * Restore tolerance of self-referencing phony build statements * Factor ManifestParser options into a structure - Drop support for building on old distributions * Thu Sep 7 2017 idonmez@suse.com - Version update to 1.8.1 * Support more path components * Performance improvement in highly parallerized and large build * Wed Dec 7 2016 mpluskal@suse.com - Add macros.ninja (boo#1014177) - Backport latest release to SLE12 bsc#1055189 fate#323787 * Tue Dec 6 2016 badshah400@gmail.com - Add macros.ninja as an external source file and install it to the %%{_rpmconfigdir}/macros.d/; this installs macros for RPM that are in turn used by the RPM macros for meson. * Sun Nov 13 2016 mpluskal@suse.com - Update to version 1.7.2: * %%e and %%r work again in dumb terminals (#1146, #1148) * `-t browse` now HTML-escapes rule names (#1157) * an edge may now have 0 explicit outputs if it has implicit outputs (#1159) * make misc/measure.py python 3-compatible * misc/write_fake_manifest.py now optionally writes source files, use it to quickly produce large, buildable projects for testing (#1109, #1198) * on newer FreeBSDs, use ppoll() - Refresh ninja-disable-maxprocs-test.patch * Fri Apr 29 2016 idonmez@suse.com - Update to version 1.7.1 * Change default NINJA_STATUS to [%%f/%%t] github issue #1143 * Thu Apr 28 2016 foss@grueninger.de - update to version 1.7.0 * ninja now supports implicit outputs. * Ninja's output has slightly changed, to make it easier to automated tools to look at ninja's output. * Ninja now explicitly handles SIGHUP and cleans up after itself. * Ninja now uses posix_spawn instead of fork/exec to launch subprocesses (on POSIX). - adjust links to new wesite * Tue Apr 26 2016 matz@suse.de - Make it build on SLE11 (use python2 there). * Tue Feb 23 2016 sndirsch@suse.com - needed for building current llvm on sle12 (fate #315643-315645, 319159-319161, 319618) * Sat Jan 30 2016 mpluskal@suse.com - Update dependencies - Use optflags when building - Make building more verbose * Wed Jul 1 2015 foss@grueninger.de - Update to version 1.6.0 * rules are now scoped to the subninja they're in. * dupe edges with multiple outputs now uses first edge instead of last (#867) * pools actually work now * generators can now run more often than twice if needed * unexpected output names now cause a rebuild instead of a hard error * POSIX-specific changes + child processes get detached from terminal + check for SIGINT after ppoll/pselect -> faster Ctrl-C + add an explicit SIGTERM signal handler * Ran ninja under afl-fuzz and fixed all crashes and bugs it found + fix crashes on cyclic graphs with multiple outputs + failing stat() now aborts build + cyclic rule bindings no longer crash + dependency cycles with multiple outputs no longer get ninja into a stuck state - Update ninja-disable-maxprocs-test.patch to match upstream changes - use Python 3 for configure * Wed Nov 26 2014 idonmez@suse.com - Update to version 1.5.3 * Reaping finished subprocesses now has precedence over starting new jobs * ninja no longer depends on googletest - Install bash/zsh completion - Install vim syntax file - Implement %%check - Add ninja-disable-maxprocs-test.patch to disable max procs test, it needs a ulimit raise. * Thu Sep 11 2014 idonmez@suse.com - Only depend on python-base to trim down BuildRequires - Do not build the html manual - Use upstream pristine tarball * Sun Jun 29 2014 idonmez@suse.com - Update to version 1.5.1 * Recompacting removes more entries from the build and deps logs. * Add a manifest parsing perftest and generator that generates random build manifests. * $in, $out are escaped more robustly. * `depfile=$out.d` now works if $out gets escaped. * ninja doesn't error out when it tries to create a directory and the directory already exists. * Ninja now accepts both / and \ on windows when making directories. * \r\n line endings are now accepted in depfiles. * depfile file names can now contain '{' and '}'. * -t compdb no longer crashes on edges with emtpy inputs. * 'keeprsp' is now included in the spelling suggestestions for -d * Many improvements to ninja-mode.el. * ninja_syntax.py is now faster. * bash completion and zsh completion provides completions more often. * ninja.vim now highlights $$ correctly. * Wed Sep 18 2013 idonmez@suse.com - Update to version 1.4.0 * Bug fixes - Fix version field. Its 1.x not 3.x * Wed Jun 5 2013 idonmez@suse.com - Update to git hash 0f53fd3 * Version 3.0 now * Don't poll pipes using POLLRDHUP * Recompact the deps log when it gets too big * Wed Apr 17 2013 idonmez@suse.com - Update to git hash 7bf53c6 * Build ninja itself in deps mode * Bugfixes * Documentation updates * Tue Mar 12 2013 idonmez@suse.com - Update to git hash ecc876e * Add compdb command to generate compile_commands.json for clang. * Add elapsed time (%%e) to NINJA_STATUS. * Fri Feb 22 2013 idonmez@suse.com - Update to git hash b26d217 * Documentation updates * Fix wrong usage of std::string::find * Thu Jan 10 2013 idonmez@suse.com - First release