File ninja.spec of Package ninja-1.11.1-65.d_t_b.1.src
#
# spec file for package ninja
#
# Copyright (c) 2022 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.11.1
Release: 65.d_t_b.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}/%{name}-%{version}.tar.gz
Source1: macros.ninja
Patch1: ninja-disable-maxprocs-test.patch
Patch2: ninja-re2c-g.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 -p1
%build
export CFLAGS="%{optflags}"
%if "%__isa_bits" == "32"
CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
%endif
export CXXFLAGS="$CFLAGS"
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
* Wed Aug 31 2022 foss@grueninger.de
- update to 1.11.1:
* A fix for a potential SIGFPE in the new (Docker-compatible)
default number of jobs detection.
* Wed May 18 2022 info@paolostivanin.com
- update to 1.11.0:
* this release adds Validation Nodes which are a new way to add jobs
like linters or static analyzers to the build graph
* support cpu limit on docker
* fixes to disk_interface
* fixes to ninja -t parameter
* optimize ninja -d stats
* add -q (quiet) option
- rebase ninja-disable-maxprocs-test.patch
- rebase ninja-re2c-g.patch
* Mon Apr 5 2021 crrodriguez@opensuse.org
- ninja-re2c-g.patch tell re2c to generate gcc specific code using
the -g flag, this usually results in lexers that are 20-25%% faster.
* Tue Dec 29 2020 dmueller@suse.com
- update to 1.10.2:
* The browse tool is now enabled when building with CMake
(so it's part of the official binaries again)
* it should now work in all circumstances to run the restat tool
by the generator on Windows
* Wed Nov 4 2020 lnussel@suse.de
- LFS fix for 32bit arch builds (gh#ninja-build/ninja#829)
* Mon Aug 24 2020 dmueller@suse.com
- update to 1.10.1:
* https://groups.google.com/g/ninja-build/c/QQM54eAhrjU/m/q5zn_zTlAQAJ
* Mon Feb 3 2020 foss@grueninger.de
- 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 mpluskal@suse.com
- Run more tests
- Small spec file improvements
* Wed Jan 30 2019 foss@grueninger.de
- 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.pl
- fix bash-completion path
* Thu Dec 6 2018 idonmez@suse.com
- 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