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
openSUSE Build Service is sponsored by