diff --git a/SOURCES/0001-Rename-mentions-of-the-executable-name-to-be-ninja-b.patch b/SOURCES/0001-Rename-mentions-of-the-executable-name-to-be-ninja-b.patch new file mode 100644 index 00000000..a62a5c53 --- /dev/null +++ b/SOURCES/0001-Rename-mentions-of-the-executable-name-to-be-ninja-b.patch @@ -0,0 +1,102 @@ +From 277589c0ca3250034edacee159cdf6860d5d7ae2 Mon Sep 17 00:00:00 2001 +From: Igor Gnatenko +Date: Mon, 28 Nov 2016 20:00:03 +0100 +Subject: [PATCH 1/2] Rename mentions of the executable name to be ninja-build + +Signed-off-by: Igor Gnatenko +--- + misc/bash-completion | 4 ++-- + misc/zsh-completion | 2 +- + src/msvc_helper_main-win32.cc | 2 +- + src/ninja.cc | 8 ++++---- + src/version.cc | 2 +- + 5 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/misc/bash-completion b/misc/bash-completion +index e604cd4..be2009c 100644 +--- a/misc/bash-completion ++++ b/misc/bash-completion +@@ -49,9 +49,9 @@ _ninja_target() { + C) eval dir="$OPTARG" ;; + esac + done; +- targets_command="eval ninja -C \"${dir}\" -t targets all 2>/dev/null | cut -d: -f1" ++ targets_command="eval ninja-build -C \"${dir}\" -t targets all 2>/dev/null | cut -d: -f1" + COMPREPLY=($(compgen -W '`${targets_command}`' -- "$cur")) + fi + return + } +-complete -F _ninja_target ninja ++complete -F _ninja_target ninja ninja-build +diff --git a/misc/zsh-completion b/misc/zsh-completion +index 446e269..eca884a 100644 +--- a/misc/zsh-completion ++++ b/misc/zsh-completion +@@ -1,4 +1,4 @@ +-#compdef ninja ++#compdef ninja ninja-build + # Copyright 2011 Google Inc. All Rights Reserved. + # + # Licensed under the Apache License, Version 2.0 (the "License"); +diff --git a/src/msvc_helper_main-win32.cc b/src/msvc_helper_main-win32.cc +index e419cd7..6472beb 100644 +--- a/src/msvc_helper_main-win32.cc ++++ b/src/msvc_helper_main-win32.cc +@@ -28,7 +28,7 @@ namespace { + + void Usage() { + printf( +-"usage: ninja -t msvc [options] -- cl.exe /showIncludes /otherArgs\n" ++"usage: ninja-build -t msvc [options] -- cl.exe /showIncludes /otherArgs\n" + "options:\n" + " -e ENVFILE load environment block from ENVFILE as environment\n" + " -o FILE write output dependency information to FILE.d\n" +diff --git a/src/ninja.cc b/src/ninja.cc +index 25eafe8..ab6a320 100644 +--- a/src/ninja.cc ++++ b/src/ninja.cc +@@ -193,7 +193,7 @@ struct Tool { + /// Print usage information. + void Usage(const BuildConfig& config) { + fprintf(stderr, +-"usage: ninja [options] [targets...]\n" ++"usage: ninja-build [options] [targets...]\n" + "\n" + "if targets are unspecified, builds the 'default' target (see manual).\n" + "\n" +@@ -285,9 +285,9 @@ Node* NinjaMain::CollectTarget(const char* cpath, string* err) { + *err = + "unknown target '" + Node::PathDecanonicalized(path, slash_bits) + "'"; + if (path == "clean") { +- *err += ", did you mean 'ninja -t clean'?"; ++ *err += ", did you mean 'ninja-build -t clean'?"; + } else if (path == "help") { +- *err += ", did you mean 'ninja -h'?"; ++ *err += ", did you mean 'ninja-build -h'?"; + } else { + Node* suggestion = state_.SpellcheckNode(path); + if (suggestion) { +@@ -583,7 +583,7 @@ int NinjaMain::ToolClean(const Options* options, int argc, char* argv[]) { + break; + case 'h': + default: +- printf("usage: ninja -t clean [options] [targets]\n" ++ printf("usage: ninja-build -t clean [options] [targets]\n" + "\n" + "options:\n" + " -g also clean files marked as ninja generator output\n" +diff --git a/src/version.cc b/src/version.cc +index eafa082..a9964d7 100644 +--- a/src/version.cc ++++ b/src/version.cc +@@ -38,7 +38,7 @@ void CheckNinjaVersion(const string& version) { + ParseVersion(version, &file_major, &file_minor); + + if (bin_major > file_major) { +- Warning("ninja executable version (%s) greater than build file " ++ Warning("ninja-build executable version (%s) greater than build file " + "ninja_required_version (%s); versions may be incompatible.", + kNinjaVersion, version.c_str()); + return; +-- +2.10.2 diff --git a/SOURCES/0002-Disable-test-which-takes-too-many-resources-for-koji.patch b/SOURCES/0002-Disable-test-which-takes-too-many-resources-for-koji.patch new file mode 100644 index 00000000..4d2a17b6 --- /dev/null +++ b/SOURCES/0002-Disable-test-which-takes-too-many-resources-for-koji.patch @@ -0,0 +1,25 @@ +From 0b06a4ddd8da8d7e6d0de78a0fd3facd0739fcba Mon Sep 17 00:00:00 2001 +From: Igor Gnatenko +Date: Mon, 28 Nov 2016 20:01:20 +0100 +Subject: [PATCH 2/2] Disable test which takes too many resources for koji + +Signed-off-by: Igor Gnatenko +--- + src/subprocess_test.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/subprocess_test.cc b/src/subprocess_test.cc +index 0a8c206..38dfd4a 100644 +--- a/src/subprocess_test.cc ++++ b/src/subprocess_test.cc +@@ -214,7 +214,7 @@ TEST_F(SubprocessTest, SetWithMulti) { + } + } + +-#if defined(USE_PPOLL) ++#if 0 && defined(USE_PPOLL) + TEST_F(SubprocessTest, SetWithLots) { + // Arbitrary big number; needs to be over 1024 to confirm we're no longer + // hostage to pselect. +-- +2.10.2 diff --git a/SOURCES/macros.ninja b/SOURCES/macros.ninja new file mode 100644 index 00000000..3173942b --- /dev/null +++ b/SOURCES/macros.ninja @@ -0,0 +1,11 @@ +%__ninja %{_bindir}/ninja-build +%__ninja_common_opts -v %{?_smp_mflags} + +%ninja_build \ + %{__ninja} %{__ninja_common_opts} + +%ninja_install \ + DESTDIR=%{buildroot} %{__ninja} install %{__ninja_common_opts} + +%ninja_test \ + %{__ninja} test %{__ninja_common_opts} diff --git a/SOURCES/ninja.vim b/SOURCES/ninja.vim new file mode 100644 index 00000000..1f1814ac --- /dev/null +++ b/SOURCES/ninja.vim @@ -0,0 +1 @@ +au! BufNewFile,BufRead *.ninja setf ninja diff --git a/SPECS/ninja-build.spec b/SPECS/ninja-build.spec new file mode 100644 index 00000000..0b480816 --- /dev/null +++ b/SPECS/ninja-build.spec @@ -0,0 +1,159 @@ +Name: ninja-build +Version: 1.7.2 +Release: 2%{?dist} +Summary: A small build system with a focus on speed +License: ASL 2.0 +URL: http://martine.github.com/ninja/ +Source0: https://github.com/martine/ninja/archive/v%{version}.tar.gz#/ninja-%{version}.tar.gz +Source1: ninja.vim +Source2: macros.ninja +Patch0001: 0001-Rename-mentions-of-the-executable-name-to-be-ninja-b.patch +Patch0002: 0002-Disable-test-which-takes-too-many-resources-for-koji.patch +BuildRequires: gcc-c++ +%if 0%{?rhel} && 0%{?rhel} <= 7 +BuildRequires: python2-devel +%else +BuildRequires: python3-devel +%endif +BuildRequires: asciidoc +BuildRequires: gtest-devel +BuildRequires: re2c >= 0.11.3 +Requires: emacs-filesystem +Requires: vim-filesystem + +%description +Ninja is a small build system with a focus on speed. It differs from other +build systems in two major respects: it is designed to have its input files +generated by a higher-level build system, and it is designed to run builds as +fast as possible. + +%prep +%autosetup -n ninja-%{version} -p1 + +%build +CFLAGS="%{optflags}" LDFLAGS="%{?__global_ldflags}" \ +%if 0%{?rhel} && 0%{?rhel} <= 7 +%{__python2} \ +%else +%{__python3} \ +%endif + configure.py --bootstrap --verbose +./ninja -v manual +./ninja -v ninja_test + +%install +# TODO: Install ninja_syntax.py? +install -Dpm0755 ninja %{buildroot}%{_bindir}/ninja-build +install -Dpm0644 misc/bash-completion %{buildroot}%{_datadir}/bash-completion/completions/ninja-build +install -Dpm0644 misc/ninja-mode.el %{buildroot}%{_datadir}/emacs/site-lisp/ninja-mode.el +install -Dpm0644 misc/ninja.vim %{buildroot}%{_datadir}/vim/vimfiles/syntax/ninja.vim +install -Dpm0644 %{S:1} %{buildroot}%{_datadir}/vim/vimfiles/ftdetect/ninja.vim +install -Dpm0644 misc/zsh-completion %{buildroot}%{_datadir}/zsh/site-functions/_ninja +install -Dpm0644 %{S:2} %{buildroot}%{rpmmacrodir}/macros.ninja + +%check +./ninja_test + +%files +%license COPYING +%doc HACKING.md README doc/manual.html +%{_bindir}/ninja-build +%{_datadir}/bash-completion/completions/ninja-build +%{_datadir}/emacs/site-lisp/ninja-mode.el +%{_datadir}/vim/vimfiles/syntax/ninja.vim +%{_datadir}/vim/vimfiles/ftdetect/ninja.vim +# zsh does not have a -filesystem package +%{_datadir}/zsh/ +%{rpmmacrodir}/macros.ninja + +%changelog +* Sat Dec 03 2016 Igor Gnatenko - 1.7.2-2 +- Add EPEL hacks + +* Mon Nov 28 2016 Igor Gnatenko - 1.7.2-1 +- Update to 1.7.2 + +* Mon Oct 10 2016 Igor Gnatenko - 1.7.1-3 +- Fix install ninja.vim + +* Sat Oct 08 2016 Igor Gnatenko - 1.7.1-2 +- Add RPM macro + +* Sat Jul 23 2016 Ben Boeckel - 1.7.1-1 +- update to 1.7.1 +- fix bash completion for the binary rename (#1352330) +- disable test which fails to koji rlimit settings + +* Thu Feb 04 2016 Fedora Release Engineering - 1.6.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Mon Nov 16 2015 Ben Boeckel - 1.6.0-2 +- Add patch to rename mentions of the binary name + +* Sun Jul 19 2015 Ben Boeckel - 1.6.0-1 +- Update to 1.6.0 + +* Wed Jun 17 2015 Fedora Release Engineering - 1.5.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat May 02 2015 Kalev Lember - 1.5.3-3 +- Rebuilt for GCC 5 C++11 ABI change + +* Sun Feb 08 2015 Ben Boeckel - 1.5.3-2 +- Update bash-completions location + +* Wed Dec 10 2014 Ben Boeckel - 1.5.3-1 +- Update to 1.5.3 + +* Sun Aug 17 2014 Fedora Release Engineering - 1.5.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Tue Aug 05 2014 Christopher Meng - 1.5.1-1 +- Update to 1.5.1 + +* Sat Jun 07 2014 Fedora Release Engineering - 1.4.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Wed Nov 20 2013 Ben Boeckel - 1.4.0-1 +- Update to 1.4.0 + +* Sun Nov 3 2013 Ville Skyttä - 1.3.4-4 +- Use special %%doc to install all docs (#994005). + +* Sat Aug 03 2013 Fedora Release Engineering - 1.3.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Fri Jun 21 2013 Dan Horák - 1.3.4-2 +- workaround possible too low limits for number of processes and open files, + fixes build on ppc/ppc64 and s390(x) + +* Sun Jun 09 2013 Ben Boeckel - 1.3.4-1 +- Update to 1.3.4 +- Run test suite + +* Thu Feb 14 2013 Fedora Release Engineering - 1.0.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Sun Nov 04 2012 Ben Boeckel - 1.0.0-1 +- Update to 1.0.0 + +* Thu Jul 19 2012 Ben Boeckel - 0-0.6.20120719git5dc55a3 +- Update to new snapshot + +* Mon Jul 09 2012 Ben Boeckel - 0-0.5.20120709gitb90d038 +- Preserve timestamps on install +- Install as ninja-build to avoid conflicts with the ninja IRC package +- Update snapshot + +* Tue Jun 19 2012 Ben Boeckel - 0-0.4.20120605git54553d3 +- Add an ftdetect file for ninja +- Fix zsh-stuff directory ownership + +* Thu Jun 07 2012 Ben Boeckel - 0-0.3.20120605git54553d3 +- Add a Group tag + +* Tue Jun 05 2012 Ben Boeckel - 0-0.2.20120605git54553d3 +- Update to new snapshot + +* Fri Mar 30 2012 Ben Boeckel - 0-0.1.20120330gitabd33d5 +- Initial package