Architecture specific change in rpms/RxCpp.git
by githook-noreply@fedoraproject.org
The package rpms/RxCpp.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/RxCpp.git/commit/?id=53a3580717e7....
Change:
+%ifnarch %{power64}
Thanks.
Full change:
============
commit 53a3580717e7927c0455fb4d5885d20a5b3bd562
Author: Björn Esser <besser82(a)fedoraproject.org>
Date: Fri May 18 19:41:39 2018 +0200
Initial import (rhbz#1579523)
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d594513
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/RxCpp-4.0.0.tar.gz
diff --git a/RxCpp-4.0.0-to_master.patch b/RxCpp-4.0.0-to_master.patch
new file mode 100644
index 0000000..61fc73a
--- /dev/null
+++ b/RxCpp-4.0.0-to_master.patch
@@ -0,0 +1,2908 @@
+From b0e30f09e66f682d87e675e11f3a03db49c237b3 Mon Sep 17 00:00:00 2001
+From: Kirk Shoop <kirk.shoop(a)microsoft.com>
+Date: Wed, 22 Mar 2017 19:45:30 -0700
+Subject: [PATCH 01/29] Update README.md
+
+---
+ README.md | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/README.md b/README.md
+index 39b67ef09..e8b782486 100644
+--- a/README.md
++++ b/README.md
+@@ -7,7 +7,7 @@ Linux & OSX | [![Linux & Osx Status](http://img.shields.io/travis/Reactive-Exten
+
+ Source | Badges |
+ ------------- | :--------------- |
+-Github | [![GitHub license](https://img.shields.io/github/license/Reactive-Extensions/RxCpp.... <br/> [![GitHub release](https://img.shields.io/github/release/Reactive-Extensions/RxCpp.... <br/> [![GitHub commits](https://img.shields.io/github/commits-since/Reactive-Extensions/...
++Github | [![GitHub license](https://img.shields.io/github/license/Reactive-Extensions/RxCpp.... <br/> [![GitHub release](https://img.shields.io/github/release/Reactive-Extensions/RxCpp.... <br/> [![GitHub commits](https://img.shields.io/github/commits-since/Reactive-Extensions/...
+ Gitter.im | [![Join in on gitter.im](https://img.shields.io/gitter/room/Reactive-Extensions/RxCpp.svg?style=flat-square)](https://gitter.im/Reactive-Extensions/RxCpp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+ Packages | [![NuGet version](http://img.shields.io/nuget/v/RxCpp.svg?style=flat-square)](http... [![vcpkg port](https://img.shields.io/badge/vcpkg-port-blue.svg?style=flat-square)...
+ Documentation | [![rxcpp doxygen documentation](https://img.shields.io/badge/rxcpp-latest-brightgreen.svg?style=flat-square)](http://reactive-extensions.github.io/RxCpp) <br/> [![reactivex intro](https://img.shields.io/badge/reactivex.io-intro-brightgreen.svg?style=flat-square)](http://reactivex.io/intro.html) [![rx marble diagrams](https://img.shields.io/badge/rxmarbles-diagrams-brightgreen.svg...
+
+From 00fdd5b890664222e1b8dca317907950eea1f8f6 Mon Sep 17 00:00:00 2001
+From: Grigoriy Chudnov <g.chudnov(a)gmail.com>
+Date: Thu, 30 Mar 2017 17:22:35 +0300
+Subject: [PATCH 02/29] appveyor vs2017 image update (#365)
+
+* appveyor vs2017 image update
+
+* update appveyor config
+---
+ appveyor.yml | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/appveyor.yml b/appveyor.yml
+index 97e26a369..68ea4349b 100644
+--- a/appveyor.yml
++++ b/appveyor.yml
+@@ -6,13 +6,16 @@ branches:
+ - master
+ - appveyor
+
+-image: Visual Studio 2017 RC
++image: Visual Studio 2017
+
+ environment:
+ matrix:
+- - VSVER: Visual Studio 12 2013 Win64
+- - VSVER: Visual Studio 14 2015 Win64
+- - VSVER: Visual Studio 15 2017 Win64
++ - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
++ VSVER: Visual Studio 12 2013 Win64
++ - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
++ VSVER: Visual Studio 14 2015 Win64
++ - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
++ VSVER: Visual Studio 15 2017 Win64
+
+ platform:
+ - x64
+
+From e024142dc3b23c229e6b375fdf7c5516df7c8437 Mon Sep 17 00:00:00 2001
+From: Anatoly Shirokov <anatoly.shirokov(a)gmail.com>
+Date: Thu, 30 Mar 2017 18:42:44 +0300
+Subject: [PATCH 03/29] fixed
+ https://github.com/Reactive-Extensions/RxCpp/issues/366
+
+---
+ Rx/v2/src/rxcpp/schedulers/rx-test.hpp | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/Rx/v2/src/rxcpp/schedulers/rx-test.hpp b/Rx/v2/src/rxcpp/schedulers/rx-test.hpp
+index 86d426aaa..3f73e526a 100644
+--- a/Rx/v2/src/rxcpp/schedulers/rx-test.hpp
++++ b/Rx/v2/src/rxcpp/schedulers/rx-test.hpp
+@@ -340,8 +340,9 @@ class hot_observable
+ template<class T>
+ rxt::testable_observable<T> test_type::make_hot_observable(std::vector<rxn::recorded<std::shared_ptr<rxn::detail::notification_base<T>>>> messages) const
+ {
+- return rxt::testable_observable<T>(
+- std::make_shared<hot_observable<T>>(state, create_worker(composite_subscription()), std::move(messages)));
++ auto worker = create_worker(composite_subscription());
++ auto shared = std::make_shared<hot_observable<T>>(state, worker, std::move(messages));
++ return rxt::testable_observable<T>(shared);
+ }
+
+ template<class F>
+
+From 201dd99b6494564c9e8990d0a5c32b23431128d4 Mon Sep 17 00:00:00 2001
+From: Kirk Shoop <kirk.shoop(a)microsoft.com>
+Date: Mon, 10 Apr 2017 16:03:58 -0700
+Subject: [PATCH 04/29] Kirkshoop/filterimprovement (#371)
+
+* filter: mutable predicate and value forwarding
+
+* add as_const to protect predicate from stealing
+---
+ Rx/v2/src/rxcpp/operators/rx-filter.hpp | 11 ++++++----
+ Rx/v2/src/rxcpp/rx-util.hpp | 38 +++++++++++++++++++++------------
+ 2 files changed, 31 insertions(+), 18 deletions(-)
+
+diff --git a/Rx/v2/src/rxcpp/operators/rx-filter.hpp b/Rx/v2/src/rxcpp/operators/rx-filter.hpp
+index ef6e133d9..86ce64920 100644
+--- a/Rx/v2/src/rxcpp/operators/rx-filter.hpp
++++ b/Rx/v2/src/rxcpp/operators/rx-filter.hpp
+@@ -58,22 +58,25 @@ struct filter
+ typedef rxu::decay_t<Subscriber> dest_type;
+ typedef observer<value_type, this_type> observer_type;
+ dest_type dest;
+- test_type test;
++ mutable test_type test;
+
+ filter_observer(dest_type d, test_type t)
+ : dest(std::move(d))
+ , test(std::move(t))
+ {
+ }
+- void on_next(source_value_type v) const {
++
++ template <class Value>
++ void on_next(Value&& v) const {
+ auto filtered = on_exception([&](){
+- return !this->test(v);},
++ return !this->test(rxu::as_const(v));
++ },
+ dest);
+ if (filtered.empty()) {
+ return;
+ }
+ if (!filtered.get()) {
+- dest.on_next(v);
++ dest.on_next(std::forward<Value>(v));
+ }
+ }
+ void on_error(std::exception_ptr e) const {
+diff --git a/Rx/v2/src/rxcpp/rx-util.hpp b/Rx/v2/src/rxcpp/rx-util.hpp
+index 77e0d3fcb..9c6534fc6 100644
+--- a/Rx/v2/src/rxcpp/rx-util.hpp
++++ b/Rx/v2/src/rxcpp/rx-util.hpp
+@@ -51,6 +51,16 @@ typename std::enable_if<!std::is_array<T0>::value && std::is_pod<T0>::value, std
+ return to_vector({t0, tn...});
+ }
+
++// lifted from https://github.com/ericniebler/range-v3/blob/630fc70baa07cbfd222f329e44a3...
++// removed constexpr & noexcept to support older VC compilers
++template<typename T>
++/*constexpr*/ T const &as_const(T & t) /*noexcept*/
++{
++ return t;
++}
++template<typename T>
++void as_const(T const &&) = delete;
++
+ template<class T, T... ValueN>
+ struct values {};
+
+@@ -157,7 +167,7 @@ using types_checked_t = typename types_checked_from<TN...>::type;
+ template<class Types, class =types_checked>
+ struct expand_value_types { struct type; };
+ template<class... TN>
+-struct expand_value_types<types<TN...>, types_checked_t<typename std::decay<TN>::type::value_type...>>
++struct expand_value_types<types<TN...>, types_checked_t<typename std::decay<TN>::type::value_type...>>
+ {
+ using type = types<typename std::decay<TN>::type::value_type...>;
+ };
+@@ -517,7 +527,7 @@ inline std::string what(std::exception_ptr ep) {
+ }
+ return std::string();
+ }
+-
++
+ namespace detail {
+
+ template <class T>
+@@ -754,7 +764,7 @@ struct is_string : std::false_type {
+ };
+
+ template <typename T>
+-struct is_string<T,
++struct is_string<T,
+ typename types_checked_from<
+ typename T::value_type,
+ typename T::traits_type,
+@@ -796,32 +806,32 @@ namespace rxu=util;
+
+
+ //
+-// due to an noisy static_assert issue in more than one std lib impl,
+-// rxcpp maintains a whitelist filter for the types that are allowed
++// due to an noisy static_assert issue in more than one std lib impl,
++// rxcpp maintains a whitelist filter for the types that are allowed
+ // to be hashed. this allows is_hashable<T> to work.
+ //
+ // NOTE: this should eventually be removed!
+ //
+-template <class T, typename = void>
++template <class T, typename = void>
+ struct filtered_hash;
+
+ #if RXCPP_HASH_ENUM
+-template <class T>
++template <class T>
+ struct filtered_hash<T, typename std::enable_if<std::is_enum<T>::value>::type> : std::hash<T> {
+ };
+ #elif RXCPP_HASH_ENUM_UNDERLYING
+-template <class T>
++template <class T>
+ struct filtered_hash<T, typename std::enable_if<std::is_enum<T>::value>::type> : std::hash<typename std::underlying_type<T>::type> {
+ };
+ #endif
+
+-template <class T>
++template <class T>
+ struct filtered_hash<T, typename std::enable_if<std::is_integral<T>::value>::type> : std::hash<T> {
+ };
+-template <class T>
++template <class T>
+ struct filtered_hash<T, typename std::enable_if<std::is_pointer<T>::value>::type> : std::hash<T> {
+ };
+-template <class T>
++template <class T>
+ struct filtered_hash<T, typename std::enable_if<rxu::is_string<T>::value>::type> : std::hash<T> {
+ };
+ template <class T>
+@@ -850,10 +860,10 @@ struct is_hashable
+ : std::false_type {};
+
+ template<typename T>
+-struct is_hashable<T,
++struct is_hashable<T,
+ typename rxu::types_checked_from<
+- typename filtered_hash<T>::result_type,
+- typename filtered_hash<T>::argument_type,
++ typename filtered_hash<T>::result_type,
++ typename filtered_hash<T>::argument_type,
+ typename std::result_of<filtered_hash<T>(T)>::type>::type>
+ : std::true_type {};
+
+
+From b41b15f1daf97519433742ff86adad9d0ae8acdd Mon Sep 17 00:00:00 2001
+From: Kirk Shoop <kirk.shoop(a)microsoft.com>
+Date: Mon, 10 Apr 2017 22:33:25 -0700
+Subject: [PATCH 05/29] fix async lifetime in window_toggle (#372)
+
+---
+ Rx/v2/src/rxcpp/operators/rx-window_toggle.hpp | 4 +++-
+ Rx/v2/test/operators/window_toggle.cpp | 4 ++--
+ 2 files changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/Rx/v2/src/rxcpp/operators/rx-window_toggle.hpp b/Rx/v2/src/rxcpp/operators/rx-window_toggle.hpp
+index 1460feba3..c17d4bccd 100644
+--- a/Rx/v2/src/rxcpp/operators/rx-window_toggle.hpp
++++ b/Rx/v2/src/rxcpp/operators/rx-window_toggle.hpp
+@@ -120,6 +120,8 @@ struct window_toggle
+ localState->dest.remove(innerscope);
+ });
+
++ localState->dest.add(localState->cs);
++
+ auto source = on_exception(
+ [&](){return localState->coordinator.in(localState->openings);},
+ localState->dest);
+@@ -252,7 +254,7 @@ struct window_toggle
+
+ static subscriber<T, observer_type> make(dest_type d, window_toggle_values v) {
+ auto cs = composite_subscription();
+- auto coordinator = v.coordination.create_coordinator();
++ auto coordinator = v.coordination.create_coordinator(d.get_subscription());
+
+ return make_subscriber<T>(cs, observer_type(this_type(cs, std::move(d), std::move(v), std::move(coordinator))));
+ }
+diff --git a/Rx/v2/test/operators/window_toggle.cpp b/Rx/v2/test/operators/window_toggle.cpp
+index fc9088ba2..b85c1baac 100644
+--- a/Rx/v2/test/operators/window_toggle.cpp
++++ b/Rx/v2/test/operators/window_toggle.cpp
+@@ -35,7 +35,7 @@ SCENARIO("window toggle, basic", "[window_toggle][operators]"){
+
+ WHEN("ints are split into windows"){
+ using namespace std::chrono;
+-
++
+ int wi = 0;
+
+ auto res = w.start(
+@@ -310,7 +310,7 @@ SCENARIO("window toggle, disposed", "[window_toggle][operators]"){
+
+ THEN("there was one subscription and one unsubscription to the observable"){
+ auto required = rxu::to_vector({
+- o_on.subscribe(200, 590)
++ o_on.subscribe(200, 420)
+ });
+ auto actual = xs.subscriptions();
+ REQUIRE(required == actual);
+
+From 18e8de22bbea8e295a80d9398599d50aa3e5be53 Mon Sep 17 00:00:00 2001
+From: Michael Maier <maiermic(a)users.noreply.github.com>
+Date: Thu, 27 Apr 2017 01:06:19 +0200
+Subject: [PATCH 06/29] subscribe in reverse order to observables (#375)
+
+---
+ Rx/v2/src/rxcpp/operators/rx-with_latest_from.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Rx/v2/src/rxcpp/operators/rx-with_latest_from.hpp b/Rx/v2/src/rxcpp/operators/rx-with_latest_from.hpp
+index bce0596d4..febba994c 100644
+--- a/Rx/v2/src/rxcpp/operators/rx-with_latest_from.hpp
++++ b/Rx/v2/src/rxcpp/operators/rx-with_latest_from.hpp
+@@ -193,7 +193,7 @@ struct with_latest_from : public operator_base<rxu::value_type_t<with_latest_fro
+ }
+ template<class State, int... IndexN>
+ void subscribe_all(std::shared_ptr<State> state, rxu::values<int, IndexN...>) const {
+- bool subscribed[] = {(subscribe_one<IndexN>(state), true)...};
++ bool subscribed[] = {(subscribe_one<(sizeof...(IndexN)) - 1 - IndexN>(state), true)...};
+ subscribed[0] = (*subscribed); // silence warning
+ }
+
+
+From 2caf64951c1505bf7511c72d8c245d929a2aecbc Mon Sep 17 00:00:00 2001
+From: Paul Esson <paul.esson(a)gmail.com>
+Date: Thu, 25 May 2017 15:36:23 +1000
+Subject: [PATCH 07/29] Update DeveloperManual.md (#380)
+
+Fix headings so they work with the Github markdown parser
+---
+ DeveloperManual.md | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/DeveloperManual.md b/DeveloperManual.md
+index 2d10b75e8..3ce4c2874 100644
+--- a/DeveloperManual.md
++++ b/DeveloperManual.md
+@@ -1,6 +1,6 @@
+-#Developer Manual
++# Developer Manual
+
+-##Some comments on the scheduler system
++## Some comments on the scheduler system
+
+ The scheduler in rxcpp v2 is based on the scheduler and worker constructs that *RxJava* uses (Eric Meijer was involved) The docs for *RxJava* will have an explanation for ```scheduler``` and ```worker```. RxCpp adds ```schedulable```, ```coordination``` and ```coordinator```.
+
+
+From a1730f951348b602d5dee0643daafad6a913f7c7 Mon Sep 17 00:00:00 2001
+From: ZINEKS <wutiantong(a)icloud.com>
+Date: Mon, 5 Jun 2017 22:33:57 +0800
+Subject: [PATCH 08/29] Add get_subscription() for subject (#381)
+
+---
+ Rx/v2/src/rxcpp/subjects/rx-subject.hpp | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/Rx/v2/src/rxcpp/subjects/rx-subject.hpp b/Rx/v2/src/rxcpp/subjects/rx-subject.hpp
+index 066f1527b..a77c0c4e8 100644
+--- a/Rx/v2/src/rxcpp/subjects/rx-subject.hpp
++++ b/Rx/v2/src/rxcpp/subjects/rx-subject.hpp
+@@ -254,6 +254,10 @@ class subject
+ return s.has_observers();
+ }
+
++ composite_subscription get_subscription() const {
++ return s.get_subscription();
++ }
++
+ subscriber_type get_subscriber() const {
+ return s.get_subscriber();
+ }
+
+From 1d75538fa780e530bcd724433257c65b3fe36b29 Mon Sep 17 00:00:00 2001
+From: Kirk Shoop <kirk.shoop(a)microsoft.com>
+Date: Thu, 15 Jun 2017 07:06:24 -0700
+Subject: [PATCH 09/29] disambiguate onerror from onnext (#383)
+
+---
+ Rx/v2/src/rxcpp/rx-observer.hpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Rx/v2/src/rxcpp/rx-observer.hpp b/Rx/v2/src/rxcpp/rx-observer.hpp
+index 39f427ed6..62aed3cfd 100644
+--- a/Rx/v2/src/rxcpp/rx-observer.hpp
++++ b/Rx/v2/src/rxcpp/rx-observer.hpp
+@@ -495,6 +495,7 @@ auto make_observer(OnNext on)
+ template<class T, class DefaultOnError = detail::OnErrorEmpty, class OnError>
+ auto make_observer(OnError oe)
+ -> typename std::enable_if<
++ !detail::is_on_next_of<T, OnError>::value &&
+ detail::is_on_error<OnError>::value,
+ observer<T, detail::stateless_observer_tag, detail::OnNextEmpty<T>, OnError>>::type {
+ return observer<T, detail::stateless_observer_tag, detail::OnNextEmpty<T>, OnError>(
+
+From 5aea424898994b3d409db268486202244cfe5053 Mon Sep 17 00:00:00 2001
+From: Grigoriy Chudnov <g.chudnov(a)gmail.com>
+Date: Sat, 15 Jul 2017 01:49:47 +0300
+Subject: [PATCH 10/29] fix timeout when no items are emitted (#387)
+
+---
+ Rx/v2/src/rxcpp/operators/rx-timeout.hpp | 14 ++++++++++++++
+ Rx/v2/test/operators/timeout.cpp | 18 +++++++++++-------
+ 2 files changed, 25 insertions(+), 7 deletions(-)
+
+diff --git a/Rx/v2/src/rxcpp/operators/rx-timeout.hpp b/Rx/v2/src/rxcpp/operators/rx-timeout.hpp
+index 6750e34e4..841df12f9 100644
+--- a/Rx/v2/src/rxcpp/operators/rx-timeout.hpp
++++ b/Rx/v2/src/rxcpp/operators/rx-timeout.hpp
+@@ -126,6 +126,20 @@ struct timeout
+ localState->cs.add([=](){
+ localState->worker.schedule(selectedDisposer.get());
+ });
++
++ auto work = [v, localState](const rxsc::schedulable&) {
++ auto new_id = ++localState->index;
++ auto produce_time = localState->worker.now() + localState->period;
++
++ localState->worker.schedule(produce_time, produce_timeout(new_id, localState));
++ };
++ auto selectedWork = on_exception(
++ [&](){return localState->coordinator.act(work);},
++ localState->dest);
++ if (selectedWork.empty()) {
++ return;
++ }
++ localState->worker.schedule(selectedWork.get());
+ }
+
+ static std::function<void(const rxsc::schedulable&)> produce_timeout(std::size_t id, state_type state) {
+diff --git a/Rx/v2/test/operators/timeout.cpp b/Rx/v2/test/operators/timeout.cpp
+index 3005209d9..dbbea6c5d 100644
+--- a/Rx/v2/test/operators/timeout.cpp
++++ b/Rx/v2/test/operators/timeout.cpp
+@@ -3,13 +3,15 @@
+
+ using namespace std::chrono;
+
+-SCENARIO("should not timeout if the source never emits any items", "[timeout][operators]"){
++SCENARIO("should timeout if the source never emits any items", "[timeout][operators]"){
+ GIVEN("a source"){
+ auto sc = rxsc::make_test();
+ auto so = rx::synchronize_in_one_worker(sc);
+ auto w = sc.create_worker();
+ const rxsc::test::messages<int> on;
+
++ rxcpp::timeout_error ex("timeout has occurred");
++
+ auto xs = sc.make_hot_observable({
+ on.next(150, 1)
+ });
+@@ -23,15 +25,17 @@ SCENARIO("should not timeout if the source never emits any items", "[timeout][op
+ }
+ );
+
+- THEN("the output is empty"){
+- auto required = std::vector<rxsc::test::messages<int>::recorded_type>();
++ THEN("the error notification message is captured"){
++ auto required = rxu::to_vector({
++ on.error(211, ex)
++ });
+ auto actual = res.get_observer().messages();
+ REQUIRE(required == actual);
+ }
+
+ THEN("there was 1 subscription/unsubscription to the source"){
+ auto required = rxu::to_vector({
+- on.subscribe(200, 1001)
++ on.subscribe(200, 212)
+ });
+ auto actual = xs.subscriptions();
+ REQUIRE(required == actual);
+@@ -40,7 +44,7 @@ SCENARIO("should not timeout if the source never emits any items", "[timeout][op
+ }
+ }
+
+-SCENARIO("should not timeout if the source observable is empty", "[timeout][operators]"){
++SCENARIO("should not timeout if completed before the specified timeout duration", "[timeout][operators]"){
+ GIVEN("a source"){
+ auto sc = rxsc::make_test();
+ auto so = rx::synchronize_in_one_worker(sc);
+@@ -56,7 +60,7 @@ SCENARIO("should not timeout if the source observable is empty", "[timeout][oper
+
+ auto res = w.start(
+ [so, xs]() {
+- return xs.timeout(so, milliseconds(10));
++ return xs.timeout(so, milliseconds(100));
+ }
+ );
+
+@@ -189,7 +193,7 @@ SCENARIO("should not timeout if there is an error", "[timeout][operators]"){
+
+ auto res = w.start(
+ [so, xs]() {
+- return xs.timeout(milliseconds(40), so);
++ return xs.timeout(milliseconds(100), so);
+ }
+ );
+
+
+From fea65be680234ba0677b84223de5563716b5c1aa Mon Sep 17 00:00:00 2001
+From: Kirk Shoop <kirk.shoop(a)microsoft.com>
+Date: Thu, 20 Jul 2017 16:28:54 -0700
+Subject: [PATCH 11/29] std::unexpected has been deprecated
+
+---
+ Rx/v2/src/rxcpp/rx-util.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Rx/v2/src/rxcpp/rx-util.hpp b/Rx/v2/src/rxcpp/rx-util.hpp
+index 9c6534fc6..97ff73f92 100644
+--- a/Rx/v2/src/rxcpp/rx-util.hpp
++++ b/Rx/v2/src/rxcpp/rx-util.hpp
+@@ -693,7 +693,7 @@ class unwinder
+ try {
+ (*function)();
+ } catch (...) {
+- std::unexpected();
++ std::terminate();
+ }
+ }
+ }
+
+From 139f190166912b01e0cf31efcc3518d0f5d8a3d6 Mon Sep 17 00:00:00 2001
+From: Daniel Rees <drees(a)developertown.com>
+Date: Sun, 23 Jul 2017 18:37:38 -0400
+Subject: [PATCH 12/29] Typo in rx-never documentation
+
+changed "rx-naver.hpp" to "rx-never.hpp"
+---
+ Rx/v2/src/rxcpp/sources/rx-never.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Rx/v2/src/rxcpp/sources/rx-never.hpp b/Rx/v2/src/rxcpp/sources/rx-never.hpp
+index cd6f4d03d..ea343996d 100644
+--- a/Rx/v2/src/rxcpp/sources/rx-never.hpp
++++ b/Rx/v2/src/rxcpp/sources/rx-never.hpp
+@@ -7,7 +7,7 @@
+
+ #include "../rx-includes.hpp"
+
+-/*! \file rx-naver.hpp
++/*! \file rx-never.hpp
+
+ \brief Returns an observable that never sends any items or notifications to observer.
+
+
+From 5b7b2a5519f712a7831053865a4ae6082dac4ed5 Mon Sep 17 00:00:00 2001
+From: Peter Majchrak <petoknm(a)gmail.com>
+Date: Sat, 22 Jul 2017 19:37:05 +0200
+Subject: [PATCH 13/29] Add 'include' to the install path of the headers
+
+---
+ projects/CMake/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/projects/CMake/CMakeLists.txt b/projects/CMake/CMakeLists.txt
+index 6130d0591..7230ca782 100644
+--- a/projects/CMake/CMakeLists.txt
++++ b/projects/CMake/CMakeLists.txt
+@@ -133,5 +133,5 @@ SET_TARGET_PROPERTIES(RxCpp PROPERTIES LINKER_LANGUAGE CXX)
+
+ set(CMAKE_SKIP_INSTALL_ALL_DEPENDENCY TRUE CACHE BOOL "Don't require all projects to be built in order to install" FORCE)
+
+-install(DIRECTORY ${RXCPP_DIR}/Rx/v2/src/rxcpp/ DESTINATION rxcpp
++install(DIRECTORY ${RXCPP_DIR}/Rx/v2/src/rxcpp/ DESTINATION include/rxcpp
+ FILES_MATCHING PATTERN "*.hpp")
+
+From 7d9859639c3abcf80d6a424dd3cffea8f11c7738 Mon Sep 17 00:00:00 2001
+From: Kirk Shoop <kirk.shoop(a)microsoft.com>
+Date: Fri, 1 Sep 2017 17:15:10 -0700
+Subject: [PATCH 14/29] shutdown event loop threads (#394)
+
+attempt to fix #393
+use event_loop lifetime to unsubscribe from new_thread workers
+
+tested with all the perf tests, but messing with thread lifetime can
+break existing code.
+---
+ Rx/v2/src/rxcpp/schedulers/rx-eventloop.hpp | 16 ++++++++++++----
+ Rx/v2/src/rxcpp/schedulers/rx-newthread.hpp | 18 ++++++++----------
+ 2 files changed, 20 insertions(+), 14 deletions(-)
+
+diff --git a/Rx/v2/src/rxcpp/schedulers/rx-eventloop.hpp b/Rx/v2/src/rxcpp/schedulers/rx-eventloop.hpp
+index da45e8d94..4f837670b 100644
+--- a/Rx/v2/src/rxcpp/schedulers/rx-eventloop.hpp
++++ b/Rx/v2/src/rxcpp/schedulers/rx-eventloop.hpp
+@@ -30,15 +30,21 @@ struct event_loop : public scheduler_interface
+
+ composite_subscription lifetime;
+ worker controller;
++ std::shared_ptr<const scheduler_interface> alive;
+
+ public:
+ virtual ~loop_worker()
+ {
+ }
+- loop_worker(composite_subscription cs, worker w)
++ loop_worker(composite_subscription cs, worker w, std::shared_ptr<const scheduler_interface> alive)
+ : lifetime(cs)
+ , controller(w)
++ , alive(alive)
+ {
++ auto token = controller.add(cs);
++ cs.add([token, w](){
++ w.remove(token);
++ });
+ }
+
+ virtual clock_type::time_point now() const {
+@@ -57,6 +63,7 @@ struct event_loop : public scheduler_interface
+ mutable thread_factory factory;
+ scheduler newthread;
+ mutable std::atomic<std::size_t> count;
++ composite_subscription loops_lifetime;
+ std::vector<worker> loops;
+
+ public:
+@@ -69,7 +76,7 @@ struct event_loop : public scheduler_interface
+ {
+ auto remaining = std::max(std::thread::hardware_concurrency(), unsigned(4));
+ while (remaining--) {
+- loops.push_back(newthread.create_worker());
++ loops.push_back(newthread.create_worker(loops_lifetime));
+ }
+ }
+ explicit event_loop(thread_factory tf)
+@@ -79,11 +86,12 @@ struct event_loop : public scheduler_interface
+ {
+ auto remaining = std::max(std::thread::hardware_concurrency(), unsigned(4));
+ while (remaining--) {
+- loops.push_back(newthread.create_worker());
++ loops.push_back(newthread.create_worker(loops_lifetime));
+ }
+ }
+ virtual ~event_loop()
+ {
++ loops_lifetime.unsubscribe();
+ }
+
+ virtual clock_type::time_point now() const {
+@@ -91,7 +99,7 @@ struct event_loop : public scheduler_interface
+ }
+
+ virtual worker create_worker(composite_subscription cs) const {
+- return worker(cs, std::make_shared<loop_worker>(cs, loops[++count % loops.size()]));
++ return worker(cs, std::make_shared<loop_worker>(cs, loops[++count % loops.size()], this->shared_from_this()));
+ }
+ };
+
+diff --git a/Rx/v2/src/rxcpp/schedulers/rx-newthread.hpp b/Rx/v2/src/rxcpp/schedulers/rx-newthread.hpp
+index c68399634..e31ed5511 100644
+--- a/Rx/v2/src/rxcpp/schedulers/rx-newthread.hpp
++++ b/Rx/v2/src/rxcpp/schedulers/rx-newthread.hpp
+@@ -37,16 +37,6 @@ struct new_thread : public scheduler_interface
+
+ virtual ~new_worker_state()
+ {
+- std::unique_lock<std::mutex> guard(lock);
+- if (worker.joinable() && worker.get_id() != std::this_thread::get_id()) {
+- lifetime.unsubscribe();
+- guard.unlock();
+- worker.join();
+- }
+- else {
+- lifetime.unsubscribe();
+- worker.detach();
+- }
+ }
+
+ explicit new_worker_state(composite_subscription cs)
+@@ -84,6 +74,14 @@ struct new_thread : public scheduler_interface
+ auto expired = std::move(keepAlive->q);
+ if (!keepAlive->q.empty()) std::terminate();
+ keepAlive->wake.notify_one();
++
++ if (keepAlive->worker.joinable() && keepAlive->worker.get_id() != std::this_thread::get_id()) {
++ guard.unlock();
++ keepAlive->worker.join();
++ }
++ else {
++ keepAlive->worker.detach();
++ }
+ });
+
+ state->worker = tf([keepAlive](){
+
+From de1df9fb30aa2951752a6c8fa39cc8f78916cbe5 Mon Sep 17 00:00:00 2001
+From: Eric Niebler <eniebler(a)boost.org>
+Date: Mon, 11 Sep 2017 16:23:44 -0700
+Subject: [PATCH 15/29] Correct prefix for test executables (#398)
+
+---
+ README.md | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/README.md b/README.md
+index e8b782486..8106c4ae8 100644
+--- a/README.md
++++ b/README.md
+@@ -212,11 +212,11 @@ The build only produces test and example binaries.
+ # Running tests
+
+ * You can use the CMake test runner `ctest`
+-* You can run the test binaries directly `rxcppv2_test_*`
++* You can run the test binaries directly `rxcpp_test_*`
+ * Tests can be selected by name or tag
+ Example of by-tag
+
+-`rxcppv2_test_subscription [perf]`
++`rxcpp_test_subscription [perf]`
+
+ # Documentation
+
+
+From e9931b7813ca96f54575768cfdeb998c4f15ed10 Mon Sep 17 00:00:00 2001
+From: Eric Niebler <eniebler(a)boost.org>
+Date: Mon, 11 Sep 2017 10:43:31 -0700
+Subject: [PATCH 16/29] Fix clang-trunk -Wunused-lambda-capture warnings
+
+---
+ Rx/v2/test/operators/group_by.cpp | 6 +++---
+ Rx/v2/test/operators/pairwise.cpp | 2 +-
+ Rx/v2/test/subjects/subject.cpp | 24 ++++++++++++------------
+ 3 files changed, 16 insertions(+), 16 deletions(-)
+
+diff --git a/Rx/v2/test/operators/group_by.cpp b/Rx/v2/test/operators/group_by.cpp
+index 606d7dfaf..2c7c177f9 100644
+--- a/Rx/v2/test/operators/group_by.cpp
++++ b/Rx/v2/test/operators/group_by.cpp
+@@ -47,13 +47,13 @@ SCENARIO("range partitioned by group_by across hardware threads to derive pi", "
+ [](work w) -> int {return w.index % std::thread::hardware_concurrency();},
+ [](work w){return w;}).
+ map(
+- [=, &c](rxcpp::grouped_observable<int, work> onproc) {
++ [=](rxcpp::grouped_observable<int, work> onproc) {
+ auto key = onproc.get_key();
+ // share a producer thread across all the ranges in this group of chunks
+ auto producerthread = rxcpp::observe_on_one_worker(rxcpp::observe_on_new_thread().create_coordinator().get_scheduler());
+ return onproc.
+ map(
+- [=, &c](work w){
++ [=](work w){
+ std::stringstream message;
+ message << std::setw(3) << w.index << ": range - " << w.first << "-" << w.last;
+
+@@ -123,7 +123,7 @@ SCENARIO("range partitioned by dividing work across hardware threads to derive p
+ return work{index, first, last};
+ }).
+ map(
+- [=, &c](work w){
++ [=](work w){
+ std::stringstream message;
+ message << std::setw(3) << w.index << ": range - " << w.first << "-" << w.last;
+
+diff --git a/Rx/v2/test/operators/pairwise.cpp b/Rx/v2/test/operators/pairwise.cpp
+index 7ba0c42c7..c28ae32c4 100644
+--- a/Rx/v2/test/operators/pairwise.cpp
++++ b/Rx/v2/test/operators/pairwise.cpp
+@@ -21,7 +21,7 @@ SCENARIO("pairwise - enough items to create pairs", "[pairwise][operators]") {
+ WHEN("taken pairwise") {
+
+ auto res = w.start(
+- [xs, &invoked]() {
++ [xs]() {
+ return xs
+ | rxo::pairwise()
+ // forget type to workaround lambda deduction bug on msvc 2013
+diff --git a/Rx/v2/test/subjects/subject.cpp b/Rx/v2/test/subjects/subject.cpp
+index 79eb31f82..b6c6d67a8 100644
+--- a/Rx/v2/test/subjects/subject.cpp
++++ b/Rx/v2/test/subjects/subject.cpp
+@@ -138,7 +138,7 @@ class async_subscriber
+ };
+ }
+ SCENARIO("for loop calls ready on_next(int)", "[hide][for][asyncobserver][ready][perf]"){
+- const int& onnextcalls = static_onnextcalls;
++ static const int& onnextcalls = static_onnextcalls;
+ GIVEN("a for loop"){
+ WHEN("calling on_next 100 million times"){
+ using namespace std::chrono;
+@@ -152,7 +152,7 @@ SCENARIO("for loop calls ready on_next(int)", "[hide][for][asyncobserver][ready]
+ asyncwithready::async_subscriber<int, decltype(onnext)> scbr(onnext);
+ asyncwithready::ready::onthen_type chunk;
+ int i = 0;
+- chunk = [&chunk, scbr, i, onnextcalls]() mutable {
++ chunk = [&chunk, scbr, i]() mutable {
+ for (; i < onnextcalls && scbr.is_subscribed(); i++) {
+ auto controller = scbr.on_next(i);
+ if (!controller.is_ready()) {
+@@ -225,13 +225,13 @@ SCENARIO("for loop calls observer", "[hide][for][observer][perf]"){
+ using namespace std::chrono;
+ typedef steady_clock clock;
+
+- int& c = aliased;
++ static int& c = aliased;
+ int n = 1;
+
+ c = 0;
+ auto start = clock::now();
+ auto o = rx::make_observer<int>(
+- [&c](int){++c;},
++ [](int){++c;},
+ [](std::exception_ptr){abort();});
+ for (int i = 0; i < onnextcalls; i++) {
+ o.on_next(i);
+@@ -251,13 +251,13 @@ SCENARIO("for loop calls subscriber", "[hide][for][subscriber][perf]"){
+ using namespace std::chrono;
+ typedef steady_clock clock;
+
+- int& c = aliased;
++ static int& c = aliased;
+ int n = 1;
+
+ c = 0;
+ auto start = clock::now();
+ auto o = rx::make_subscriber<int>(
+- [&c](int){++c;},
++ [](int){++c;},
+ [](std::exception_ptr){abort();});
+ for (int i = 0; i < onnextcalls && o.is_subscribed(); i++) {
+ o.on_next(i);
+@@ -277,14 +277,14 @@ SCENARIO("range calls subscriber", "[hide][range][subscriber][perf]"){
+ using namespace std::chrono;
+ typedef steady_clock clock;
+
+- int& c = aliased;
++ static int& c = aliased;
+ int n = 1;
+
+ c = 0;
+ auto start = clock::now();
+
+ rxs::range<int>(1, onnextcalls).subscribe(
+- [&c](int){
++ [](int){
+ ++c;
+ },
+ [](std::exception_ptr){abort();});
+@@ -297,7 +297,7 @@ SCENARIO("range calls subscriber", "[hide][range][subscriber][perf]"){
+ }
+
+ SCENARIO("for loop calls subject", "[hide][for][subject][subjects][long][perf]"){
+- const int& onnextcalls = static_onnextcalls;
++ static const int& onnextcalls = static_onnextcalls;
+ GIVEN("a for loop and a subject"){
+ WHEN("multicasting a million ints"){
+ using namespace std::chrono;
+@@ -316,7 +316,7 @@ SCENARIO("for loop calls subject", "[hide][for][subject][subjects][long][perf]")
+
+ auto o = sub.get_subscriber();
+
+- o.add(rx::make_subscription([c, n, onnextcalls](){
++ o.add(rx::make_subscription([c, n](){
+ auto expected = n * onnextcalls;
+ REQUIRE(*c == expected);
+ }));
+@@ -371,7 +371,7 @@ SCENARIO("for loop calls subject", "[hide][for][subject][subjects][long][perf]")
+ }
+
+ SCENARIO("range calls subject", "[hide][range][subject][subjects][long][perf]"){
+- const int& onnextcalls = static_onnextcalls;
++ static const int& onnextcalls = static_onnextcalls;
+ GIVEN("a range and a subject"){
+ WHEN("multicasting a million ints"){
+ using namespace std::chrono;
+@@ -389,7 +389,7 @@ SCENARIO("range calls subject", "[hide][range][subject][subjects][long][perf]"){
+
+ auto o = sub.get_subscriber();
+
+- o.add(rx::make_subscription([c, n, onnextcalls](){
++ o.add(rx::make_subscription([c, n](){
+ auto expected = n * onnextcalls;
+ REQUIRE(*c == expected);
+ }));
+
+From f6f7f502cc636c53bb4bf4ae0352b2a6a6c66e6b Mon Sep 17 00:00:00 2001
+From: Kirk Shoop <kirk.shoop(a)microsoft.com>
+Date: Wed, 13 Sep 2017 07:17:15 -0700
+Subject: [PATCH 17/29] remove unused local
+
+---
+ Rx/v2/test/operators/pairwise.cpp | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/Rx/v2/test/operators/pairwise.cpp b/Rx/v2/test/operators/pairwise.cpp
+index c28ae32c4..20f86dd1f 100644
+--- a/Rx/v2/test/operators/pairwise.cpp
++++ b/Rx/v2/test/operators/pairwise.cpp
+@@ -7,7 +7,6 @@ SCENARIO("pairwise - enough items to create pairs", "[pairwise][operators]") {
+ auto w = sc.create_worker();
+ const rxsc::test::messages<int> on;
+ const rxsc::test::messages<std::tuple<int, int>> on_pairwise;
+- long invoked = 0;
+
+ auto xs = sc.make_cold_observable({
+ on.next(180, 1),
+
+From b50f4d63365fb95e0662900116bf56654f4a1a0d Mon Sep 17 00:00:00 2001
+From: Andrei Lebedev <lebdron(a)gmail.com>
+Date: Fri, 15 Sep 2017 20:45:33 +0800
+Subject: [PATCH 18/29] Fix rxcpp::observable<>::from<T>() when T is
+ non-default constructable
+
+---
+ Rx/v2/src/rxcpp/sources/rx-iterate.hpp | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/Rx/v2/src/rxcpp/sources/rx-iterate.hpp b/Rx/v2/src/rxcpp/sources/rx-iterate.hpp
+index cb526b3cc..07f50bf6c 100644
+--- a/Rx/v2/src/rxcpp/sources/rx-iterate.hpp
++++ b/Rx/v2/src/rxcpp/sources/rx-iterate.hpp
+@@ -183,8 +183,8 @@ auto iterate(Collection c, Coordination cn)
+ */
+ template<class T>
+ auto from()
+- -> decltype(iterate(std::array<T, 0>(), identity_immediate())) {
+- return iterate(std::array<T, 0>(), identity_immediate());
++ -> decltype(iterate(std::initializer_list<T>(), identity_immediate())) {
++ return iterate(std::initializer_list<T>(), identity_immediate());
+ }
+ /*! Returns an observable that sends an empty set of values and then completes, on the specified scheduler.
+
+@@ -198,8 +198,8 @@ auto from()
+ template<class T, class Coordination>
+ auto from(Coordination cn)
+ -> typename std::enable_if<is_coordination<Coordination>::value,
+- decltype( iterate(std::array<T, 0>(), std::move(cn)))>::type {
+- return iterate(std::array<T, 0>(), std::move(cn));
++ decltype( iterate(std::initializer_list<T>(), std::move(cn)))>::type {
++ return iterate(std::initializer_list<T>(), std::move(cn));
+ }
+ /*! Returns an observable that sends each value from its arguments list.
+
+
+From 1b2e0589f19cb34d8cd58803677701dcf2161876 Mon Sep 17 00:00:00 2001
+From: Andrei Lebedev <lebdron(a)gmail.com>
+Date: Fri, 15 Sep 2017 20:55:24 +0800
+Subject: [PATCH 19/29] Fix rxcpp::observable<>::range<T>() when T is unsigned
+ type
+
+---
+ Rx/v2/src/rxcpp/sources/rx-range.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Rx/v2/src/rxcpp/sources/rx-range.hpp b/Rx/v2/src/rxcpp/sources/rx-range.hpp
+index d55ffffb2..c56ee1f4e 100644
+--- a/Rx/v2/src/rxcpp/sources/rx-range.hpp
++++ b/Rx/v2/src/rxcpp/sources/rx-range.hpp
+@@ -86,7 +86,7 @@ struct range : public source_base<T>
+ return;
+ }
+
+- if (std::abs(state.last - state.next) < std::abs(state.step)) {
++ if (std::max(state.last, state.next) - std::min(state.last, state.next) < std::abs(state.step)) {
+ if (state.last != state.next) {
+ dest.on_next(state.last);
+ }
+
+From 815e92158e3e0647b96d1331de1ecc5badcde3f8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Martin=20Kodovsk=C3=BD?= <martin.kodovsky(a)gmail.com>
+Date: Sat, 9 Dec 2017 22:39:51 +0100
+Subject: [PATCH 20/29] Add rx-merge-delay-error operator (#417)
+
+* Add rx-merge-delay-error operator
+
+* fix of msvc2013 compilation
+
+* fix #417 comments
+
+Added RXCPP_NOEXCEPT macro; Added doxygen scenarios for composite_exception and merge_delay_error; Fixed composing exception in merge_delay_error operator; Modified test for merge_delay_operator
+
+* #417 fix composite_exception example
+
+* #417 fix merge_delay_error doxygen example
+
+* fix: samples add among others in project doxygen CMakeLists.txt
+
+* fix: composite_exception.cpp example
+---
+ Rx/v2/examples/doxygen/composite_exception.cpp | 31 +++
+ Rx/v2/examples/doxygen/merge_delay_error.cpp | 97 +++++++
+ Rx/v2/src/rxcpp/operators/rx-merge_delay_error.hpp | 304 ++++++++++++++++++++
+ Rx/v2/src/rxcpp/rx-composite_exception.hpp | 34 +++
+ Rx/v2/src/rxcpp/rx-includes.hpp | 7 +
+ Rx/v2/src/rxcpp/rx-observable.hpp | 11 +
+ Rx/v2/src/rxcpp/rx-operators.hpp | 6 +
+ Rx/v2/test/CMakeLists.txt | 1 +
+ Rx/v2/test/operators/merge_delay_error.cpp | 306 +++++++++++++++++++++
+ projects/doxygen/CMakeLists.txt | 2 +
+ 10 files changed, 799 insertions(+)
+ create mode 100644 Rx/v2/examples/doxygen/composite_exception.cpp
+ create mode 100644 Rx/v2/examples/doxygen/merge_delay_error.cpp
+ create mode 100644 Rx/v2/src/rxcpp/operators/rx-merge_delay_error.hpp
+ create mode 100644 Rx/v2/src/rxcpp/rx-composite_exception.hpp
+ create mode 100644 Rx/v2/test/operators/merge_delay_error.cpp
+
+diff --git a/Rx/v2/examples/doxygen/composite_exception.cpp b/Rx/v2/examples/doxygen/composite_exception.cpp
+new file mode 100644
+index 000000000..697b83f65
+--- /dev/null
++++ b/Rx/v2/examples/doxygen/composite_exception.cpp
+@@ -0,0 +1,31 @@
++#include "rxcpp/rx.hpp"
++namespace rxu=rxcpp::util;
++
++#include "rxcpp/rx-test.hpp"
++#include "catch.hpp"
++
++SCENARIO("composite_exception sample"){
++ printf("//! [composite_exception sample]\n");
++ auto o1 = rxcpp::observable<>::error<int>(std::runtime_error("Error from source o1\n"));
++ auto o2 = rxcpp::observable<>::error<int>(std::runtime_error("Error from source o2\n"));
++ auto o3 = rxcpp::observable<>::timer(std::chrono::milliseconds(5)).map([](int) {return 3;});
++ auto values = o1.merge_delay_error(o2, o3);
++ values.
++ subscribe(
++ [](int v){printf("OnNext: %d\n", v);},
++ [](std::exception_ptr composite_e) {
++ printf("OnError %s\n", rxu::what(composite_e).c_str());
++ try { std::rethrow_exception(composite_e); }
++ catch(rxcpp::composite_exception ce) {
++ for(std::exception_ptr particular_e : ce.exceptions) {
++
++ try{ std::rethrow_exception(particular_e); }
++ catch(std::runtime_error error) { printf(" *** %s\n", error.what()); }
++
++ }
++ }
++ },
++ [](){printf("OnCompleted\n");}
++ );
++ printf("//! [composite_exception sample]\n");
++}
+diff --git a/Rx/v2/examples/doxygen/merge_delay_error.cpp b/Rx/v2/examples/doxygen/merge_delay_error.cpp
+new file mode 100644
+index 000000000..8c28cd882
+--- /dev/null
++++ b/Rx/v2/examples/doxygen/merge_delay_error.cpp
+@@ -0,0 +1,97 @@
++#include "rxcpp/rx.hpp"
++namespace rxu=rxcpp::util;
++
++#include "rxcpp/rx-test.hpp"
++#include "catch.hpp"
++
++SCENARIO("merge_delay_error sample"){
++ printf("//! [merge_delay_error sample]\n");
++ auto o1 = rxcpp::observable<>::timer(std::chrono::milliseconds(15)).map([](int) {return 1;});
++ auto o2 = rxcpp::observable<>::error<int>(std::runtime_error("Error from source\n"));
++ auto o3 = rxcpp::observable<>::timer(std::chrono::milliseconds(5)).map([](int) {return 3;});
++ auto values = o1.merge_delay_error(o2, o3);
++ values.
++ subscribe(
++ [](int v){printf("OnNext: %d\n", v);},
++ [](std::exception_ptr eptr) { printf("OnError %s\n", rxu::what(eptr).c_str()); },
++ [](){printf("OnCompleted\n");});
++ printf("//! [merge_delay_error sample]\n");
++}
++
++SCENARIO("implicit merge_delay_error sample"){
++ printf("//! [implicit merge_delay_error sample]\n");
++ auto o1 = rxcpp::observable<>::timer(std::chrono::milliseconds(15)).map([](int) {return 1;});
++ auto o2 = rxcpp::observable<>::error<int>(std::runtime_error("Error from source\n"));
++ auto o3 = rxcpp::observable<>::timer(std::chrono::milliseconds(5)).map([](int) {return 3;});
++ auto base = rxcpp::observable<>::from(o1.as_dynamic(), o2, o3);
++ auto values = base.merge();
++ values.
++ subscribe(
++ [](int v){printf("OnNext: %d\n", v);},
++ [](std::exception_ptr eptr) { printf("OnError %s\n", rxu::what(eptr).c_str()); },
++ [](){printf("OnCompleted\n");});
++ printf("//! [implicit merge_delay_error sample]\n");
++}
++
++std::string get_pid();
++
++SCENARIO("threaded merge_delay_error sample"){
++ printf("//! [threaded merge_delay_error sample]\n");
++ printf("[thread %s] Start task\n", get_pid().c_str());
++ auto o1 = rxcpp::observable<>::timer(std::chrono::milliseconds(10)).map([](int) {
++ printf("[thread %s] Timer1 fired\n", get_pid().c_str());
++ return 1;
++ });
++ auto o2 = rxcpp::observable<>::timer(std::chrono::milliseconds(20)).flat_map([](int) {
++ std::stringstream ss;
++ ss << "[thread " << get_pid().c_str() << "] Timer2 failed\n";
++ printf("%s\n", ss.str().c_str());
++ ss.str(std::string());
++ ss << "(Error from thread: " << get_pid().c_str() << ")\n";
++ return rxcpp::observable<>::error<int>(std::runtime_error(ss.str()));
++ });
++ auto o3 = rxcpp::observable<>::timer(std::chrono::milliseconds(30)).map([](int) {
++ printf("[thread %s] Timer3 fired\n", get_pid().c_str());
++ return 3;
++ });
++ auto values = o1.merge(rxcpp::observe_on_new_thread(), o2, o3);
++ values.
++ as_blocking().
++ subscribe(
++ [](int v){printf("[thread %s] OnNext: %d\n", get_pid().c_str(), v);},
++ [](std::exception_ptr eptr) { printf("[thread %s] OnError %s\n", get_pid().c_str(), rxu::what(eptr).c_str()); },
++ [](){printf("[thread %s] OnCompleted\n", get_pid().c_str());});
++ printf("[thread %s] Finish task\n", get_pid().c_str());
++ printf("//! [threaded merge_delay_error sample]\n");
++}
++
++SCENARIO("threaded implicit merge_delay_error sample"){
++ printf("//! [threaded implicit merge_delay_error sample]\n");
++ printf("[thread %s] Start task\n", get_pid().c_str());
++ auto o1 = rxcpp::observable<>::timer(std::chrono::milliseconds(10)).map([](int) {
++ printf("[thread %s] Timer1 fired\n", get_pid().c_str());
++ return 1;
++ });
++ auto o2 = rxcpp::observable<>::timer(std::chrono::milliseconds(20)).flat_map([](int) {
++ std::stringstream ss;
++ ss << "[thread " << get_pid().c_str() << "] Timer2 failed\n";
++ printf("%s\n", ss.str().c_str());
++ ss.str(std::string());
++ ss << "(Error from thread: " << get_pid().c_str() << ")\n";
++ return rxcpp::observable<>::error<int>(std::runtime_error(ss.str()));
++ });
++ auto o3 = rxcpp::observable<>::timer(std::chrono::milliseconds(30)).map([](int) {
++ printf("[thread %s] Timer3 fired\n", get_pid().c_str());
++ return 3;
++ });
++ auto base = rxcpp::observable<>::from(o1.as_dynamic(), o2, o3);
++ auto values = base.merge(rxcpp::observe_on_new_thread());
++ values.
++ as_blocking().
++ subscribe(
++ [](int v){printf("[thread %s] OnNext: %d\n", get_pid().c_str(), v);},
++ [](std::exception_ptr eptr) { printf("[thread %s] OnError %s\n", get_pid().c_str(), rxu::what(eptr).c_str()); },
++ [](){printf("[thread %s] OnCompleted\n", get_pid().c_str());});
++ printf("[thread %s] Finish task\n", get_pid().c_str());
++ printf("//! [threaded implicit merge_delay_error sample]\n");
++}
+diff --git a/Rx/v2/src/rxcpp/operators/rx-merge_delay_error.hpp b/Rx/v2/src/rxcpp/operators/rx-merge_delay_error.hpp
+new file mode 100644
+index 000000000..43fdee326
+--- /dev/null
++++ b/Rx/v2/src/rxcpp/operators/rx-merge_delay_error.hpp
+@@ -0,0 +1,304 @@
++// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
++
++#pragma once
++
++/*! \file rx-merge_delay_error.hpp
++
++ \brief For each given observable subscribe.
++ For each item emitted from all of the given observables, deliver from the new observable that is returned.
++ The first error to occure is hold off until all of the given non-error-emitting observables have finished their emission.
++
++ There are 2 variants of the operator:
++ - The source observable emits nested observables, nested observables are merged.
++ - The source observable and the arguments v0...vn are used to provide the observables to merge.
++
++ \tparam Coordination the type of the scheduler (optional).
++ \tparam Value0 ... (optional).
++ \tparam ValueN types of source observables (optional).
++
++ \param cn the scheduler to synchronize sources from different contexts (optional).
++ \param v0 ... (optional).
++ \param vn source observables (optional).
++
++ \return Observable that emits items that are the result of flattening the observables emitted by the source observable.
++
++ If scheduler is omitted, identity_current_thread is used.
++
++ \sample
++ \snippet merge_delay_error.cpp threaded implicit merge sample
++ \snippet output.txt threaded implicit merge sample
++
++ \sample
++ \snippet merge_delay_error.cpp implicit merge sample
++ \snippet output.txt implicit merge sample
++
++ \sample
++ \snippet merge_delay_error.cpp merge sample
++ \snippet output.txt merge sample
++
++ \sample
++ \snippet merge_delay_error.cpp threaded merge sample
++ \snippet output.txt threaded merge sample
++*/
++
++#if !defined(RXCPP_OPERATORS_RX_MERGE_DELAY_ERROR_HPP)
++#define RXCPP_OPERATORS_RX_MERGE_DELAY_ERROR_HPP
++
++#include "rx-merge.hpp"
++
++#include "../rx-composite_exception.hpp"
++
++namespace rxcpp {
++
++namespace operators {
++
++namespace detail {
++
++template<class T, class Observable, class Coordination>
++struct merge_delay_error
++ : public operator_base<rxu::value_type_t<rxu::decay_t<T>>>
++{
++ //static_assert(is_observable<Observable>::value, "merge requires an observable");
++ //static_assert(is_observable<T>::value, "merge requires an observable that contains observables");
++
++ typedef merge_delay_error<T, Observable, Coordination> this_type;
++
++ typedef rxu::decay_t<T> source_value_type;
++ typedef rxu::decay_t<Observable> source_type;
++
++ typedef typename source_type::source_operator_type source_operator_type;
++ typedef typename source_value_type::value_type value_type;
++
++ typedef rxu::decay_t<Coordination> coordination_type;
++ typedef typename coordination_type::coordinator_type coordinator_type;
++
++ struct values
++ {
++ values(source_operator_type o, coordination_type sf)
++ : source_operator(std::move(o))
++ , coordination(std::move(sf))
++ {
++ }
++ source_operator_type source_operator;
++ coordination_type coordination;
++ };
++ values initial;
++
++ merge_delay_error(const source_type& o, coordination_type sf)
++ : initial(o.source_operator, std::move(sf))
++ {
++ }
++
++ template<class Subscriber>
++ void on_subscribe(Subscriber scbr) const {
++ static_assert(is_subscriber<Subscriber>::value, "subscribe must be passed a subscriber");
++
++ typedef Subscriber output_type;
++
++ struct merge_state_type
++ : public std::enable_shared_from_this<merge_state_type>
++ , public values
++ {
++ merge_state_type(values i, coordinator_type coor, output_type oarg)
++ : values(i)
++ , source(i.source_operator)
++ , pendingCompletions(0)
++ , coordinator(std::move(coor))
++ , out(std::move(oarg))
++ {
++ }
++ observable<source_value_type, source_operator_type> source;
++ // on_completed on the output must wait until all the
++ // subscriptions have received on_completed
++ int pendingCompletions;
++ composite_exception exception;;
++ coordinator_type coordinator;
++ output_type out;
++ };
++
++ auto coordinator = initial.coordination.create_coordinator(scbr.get_subscription());
++
++ // take a copy of the values for each subscription
++ auto state = std::make_shared<merge_state_type>(initial, std::move(coordinator), std::move(scbr));
++
++ composite_subscription outercs;
++
++ // when the out observer is unsubscribed all the
++ // inner subscriptions are unsubscribed as well
++ state->out.add(outercs);
++
++ auto source = on_exception(
++ [&](){return state->coordinator.in(state->source);},
++ state->out);
++ if (source.empty()) {
++ return;
++ }
++
++ ++state->pendingCompletions;
++ // this subscribe does not share the observer subscription
++ // so that when it is unsubscribed the observer can be called
++ // until the inner subscriptions have finished
++ auto sink = make_subscriber<source_value_type>(
++ state->out,
++ outercs,
++ // on_next
++ [state](source_value_type st) {
++
++ composite_subscription innercs;
++
++ // when the out observer is unsubscribed all the
++ // inner subscriptions are unsubscribed as well
++ auto innercstoken = state->out.add(innercs);
++
++ innercs.add(make_subscription([state, innercstoken](){
++ state->out.remove(innercstoken);
++ }));
++
++ auto selectedSource = state->coordinator.in(st);
++
++ ++state->pendingCompletions;
++ // this subscribe does not share the source subscription
++ // so that when it is unsubscribed the source will continue
++ auto sinkInner = make_subscriber<value_type>(
++ state->out,
++ innercs,
++ // on_next
++ [state, st](value_type ct) {
++ state->out.on_next(std::move(ct));
++ },
++ // on_error
++ [state](std::exception_ptr e) {
++ if(--state->pendingCompletions == 0) {
++ state->out.on_error(
++ std::make_exception_ptr(std::move(state->exception.add(e))));
++ } else {
++ state->exception.add(e);
++ }
++ },
++ //on_completed
++ [state](){
++ if (--state->pendingCompletions == 0) {
++ if(!state->exception.empty()) {
++ state->out.on_error(
++ std::make_exception_ptr(std::move(state->exception)));
++ } else {
++ state->out.on_completed();
++ }
++ }
++ }
++ );
++
++ auto selectedSinkInner = state->coordinator.out(sinkInner);
++ selectedSource.subscribe(std::move(selectedSinkInner));
++ },
++ // on_error
++ [state](std::exception_ptr e) {
++ if(--state->pendingCompletions == 0) {
++ state->out.on_error(
++ std::make_exception_ptr(std::move(state->exception.add(e))));
++ } else {
++ state->exception.add(e);
++ }
++ },
++ // on_completed
++ [state]() {
++ if (--state->pendingCompletions == 0) {
++ if(!state->exception.empty()) {
++ state->out.on_error(
++ std::make_exception_ptr(std::move(state->exception)));
++ } else {
++ state->out.on_completed();
++ }
++ }
++ }
++ );
++ auto selectedSink = on_exception(
++ [&](){return state->coordinator.out(sink);},
++ state->out);
++ if (selectedSink.empty()) {
++ return;
++ }
++ source->subscribe(std::move(selectedSink.get()));
++ }
++};
++
++}
++
++/*! @copydoc rx-merge-delay-error.hpp
++*/
++template<class... AN>
++auto merge_delay_error(AN&&... an)
++ -> operator_factory<merge_delay_error_tag, AN...> {
++ return operator_factory<merge_delay_error_tag, AN...>(std::make_tuple(std::forward<AN>(an)...));
++}
++
++}
++
++template<>
++struct member_overload<merge_delay_error_tag>
++{
++ template<class Observable,
++ class Enabled = rxu::enable_if_all_true_type_t<
++ is_observable<Observable>>,
++ class SourceValue = rxu::value_type_t<Observable>,
++ class Merge = rxo::detail::merge_delay_error<SourceValue, rxu::decay_t<Observable>, identity_one_worker>,
++ class Value = rxu::value_type_t<SourceValue>,
++ class Result = observable<Value, Merge>
++ >
++ static Result member(Observable&& o) {
++ return Result(Merge(std::forward<Observable>(o), identity_current_thread()));
++ }
++
++ template<class Observable, class Coordination,
++ class Enabled = rxu::enable_if_all_true_type_t<
++ is_observable<Observable>,
++ is_coordination<Coordination>>,
++ class SourceValue = rxu::value_type_t<Observable>,
++ class Merge = rxo::detail::merge_delay_error<SourceValue, rxu::decay_t<Observable>, rxu::decay_t<Coordination>>,
++ class Value = rxu::value_type_t<SourceValue>,
++ class Result = observable<Value, Merge>
++ >
++ static Result member(Observable&& o, Coordination&& cn) {
++ return Result(Merge(std::forward<Observable>(o), std::forward<Coordination>(cn)));
++ }
++
++ template<class Observable, class Value0, class... ValueN,
++ class Enabled = rxu::enable_if_all_true_type_t<
++ all_observables<Observable, Value0, ValueN...>>,
++ class EmittedValue = rxu::value_type_t<Observable>,
++ class SourceValue = observable<EmittedValue>,
++ class ObservableObservable = observable<SourceValue>,
++ class Merge = typename rxu::defer_type<rxo::detail::merge_delay_error, SourceValue, ObservableObservable, identity_one_worker>::type,
++ class Value = rxu::value_type_t<Merge>,
++ class Result = observable<Value, Merge>
++ >
++ static Result member(Observable&& o, Value0&& v0, ValueN&&... vn) {
++ return Result(Merge(rxs::from(o.as_dynamic(), v0.as_dynamic(), vn.as_dynamic()...), identity_current_thread()));
++ }
++
++ template<class Observable, class Coordination, class Value0, class... ValueN,
++ class Enabled = rxu::enable_if_all_true_type_t<
++ all_observables<Observable, Value0, ValueN...>,
++ is_coordination<Coordination>>,
++ class EmittedValue = rxu::value_type_t<Observable>,
++ class SourceValue = observable<EmittedValue>,
++ class ObservableObservable = observable<SourceValue>,
++ class Merge = typename rxu::defer_type<rxo::detail::merge_delay_error, SourceValue, ObservableObservable, rxu::decay_t<Coordination>>::type,
++ class Value = rxu::value_type_t<Merge>,
++ class Result = observable<Value, Merge>
++ >
++ static Result member(Observable&& o, Coordination&& cn, Value0&& v0, ValueN&&... vn) {
++ return Result(Merge(rxs::from(o.as_dynamic(), v0.as_dynamic(), vn.as_dynamic()...), std::forward<Coordination>(cn)));
++ }
++
++ template<class... AN>
++ static operators::detail::merge_invalid_t<AN...> member(AN...) {
++ std::terminate();
++ return {};
++ static_assert(sizeof...(AN) == 10000, "merge_delay_error takes (optional Coordination, optional Value0, optional ValueN...)");
++ }
++};
++
++}
++
++#endif
+diff --git a/Rx/v2/src/rxcpp/rx-composite_exception.hpp b/Rx/v2/src/rxcpp/rx-composite_exception.hpp
+new file mode 100644
+index 000000000..333f291d6
+--- /dev/null
++++ b/Rx/v2/src/rxcpp/rx-composite_exception.hpp
+@@ -0,0 +1,34 @@
++// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
++
++#pragma once
++
++#if !defined(RXCPP_SOURCES_RX_COMPOSITE_EXCEPTION_HPP)
++#define RXCPP_SOURCES_RX_COMPOSITE_EXCEPTION_HPP
++
++#include "rx-includes.hpp"
++
++namespace rxcpp {
++
++struct composite_exception : std::exception {
++
++ typedef std::vector<std::exception_ptr> exception_values;
++
++ virtual const char *what() const RXCPP_NOEXCEPT override {
++ return "rxcpp composite exception";
++ }
++
++ virtual bool empty() const {
++ return exceptions.empty();
++ }
++
++ virtual composite_exception add(std::exception_ptr exception_ptr) {
++ exceptions.push_back(exception_ptr);
++ return *this;
++ }
++
++ exception_values exceptions;
++};
++
++}
++
++#endif
+diff --git a/Rx/v2/src/rxcpp/rx-includes.hpp b/Rx/v2/src/rxcpp/rx-includes.hpp
+index 3527f01ee..aefa1902c 100644
+--- a/Rx/v2/src/rxcpp/rx-includes.hpp
++++ b/Rx/v2/src/rxcpp/rx-includes.hpp
+@@ -125,6 +125,12 @@
+ #define _VARIADIC_MAX 10
+ #endif
+
++#if defined(_MSC_VER) && (_MSC_VER <= 1800)
++#define RXCPP_NOEXCEPT
++#else
++#define RXCPP_NOEXCEPT noexcept
++#endif
++
+ #pragma push_macro("min")
+ #pragma push_macro("max")
+ #undef min
+@@ -203,6 +209,7 @@
+ #include "operators/rx-ignore_elements.hpp"
+ #include "operators/rx-map.hpp"
+ #include "operators/rx-merge.hpp"
++#include "operators/rx-merge_delay_error.hpp"
+ #include "operators/rx-observe_on.hpp"
+ #include "operators/rx-on_error_resume_next.hpp"
+ #include "operators/rx-pairwise.hpp"
+diff --git a/Rx/v2/src/rxcpp/rx-observable.hpp b/Rx/v2/src/rxcpp/rx-observable.hpp
+index ef96d36d7..3a3124005 100644
+--- a/Rx/v2/src/rxcpp/rx-observable.hpp
++++ b/Rx/v2/src/rxcpp/rx-observable.hpp
+@@ -1023,6 +1023,17 @@ class observable
+ return observable_member(merge_tag{}, *this, std::forward<AN>(an)...);
+ }
+
++ /*! @copydoc rx-merge_delay_error.hpp
++ */
++ template<class... AN>
++ auto merge_delay_error(AN... an) const
++ /// \cond SHOW_SERVICE_MEMBERS
++ -> decltype(observable_member(merge_delay_error_tag{}, *(this_type*)nullptr, std::forward<AN>(an)...))
++ /// \endcond
++ {
++ return observable_member(merge_delay_error_tag{}, *this, std::forward<AN>(an)...);
++ }
++
+ /*! @copydoc rx-amb.hpp
+ */
+ template<class... AN>
+diff --git a/Rx/v2/src/rxcpp/rx-operators.hpp b/Rx/v2/src/rxcpp/rx-operators.hpp
+index 0fa5d5884..15e8b54bb 100644
+--- a/Rx/v2/src/rxcpp/rx-operators.hpp
++++ b/Rx/v2/src/rxcpp/rx-operators.hpp
+@@ -258,6 +258,12 @@ struct merge_tag {
+ static_assert(Included::value, "missing include: please #include <rxcpp/operators/rx-merge.hpp>");
+ };
+ };
++struct merge_delay_error_tag {
++ template<class Included>
++ struct include_header{
++ static_assert(Included::value, "missing include: please #include <rxcpp/operators/rx-merge_delay_error.hpp>");
++ };
++};
+
+ struct multicast_tag {
+ template<class Included>
+diff --git a/Rx/v2/test/CMakeLists.txt b/Rx/v2/test/CMakeLists.txt
+index 322872cba..1064c0f82 100644
+--- a/Rx/v2/test/CMakeLists.txt
++++ b/Rx/v2/test/CMakeLists.txt
+@@ -54,6 +54,7 @@ set(TEST_SOURCES
+ ${TEST_DIR}/operators/lift.cpp
+ ${TEST_DIR}/operators/map.cpp
+ ${TEST_DIR}/operators/merge.cpp
++ ${TEST_DIR}/operators/merge_delay_error.cpp
+ ${TEST_DIR}/operators/observe_on.cpp
+ ${TEST_DIR}/operators/on_error_resume_next.cpp
+ ${TEST_DIR}/operators/pairwise.cpp
+diff --git a/Rx/v2/test/operators/merge_delay_error.cpp b/Rx/v2/test/operators/merge_delay_error.cpp
+new file mode 100644
+index 000000000..d560b453d
+--- /dev/null
++++ b/Rx/v2/test/operators/merge_delay_error.cpp
+@@ -0,0 +1,306 @@
++#include "../test.h"
++#include <rxcpp/operators/rx-reduce.hpp>
++#include <rxcpp/operators/rx-merge_delay_error.hpp>
++#include <rxcpp/operators/rx-observe_on.hpp>
++
++const int static_onnextcalls = 1000000;
++
++//merge_delay_error must work the very same way as `merge()` except the error handling
++
++SCENARIO("merge completes", "[merge][join][operators]"){
++ GIVEN("1 hot observable with 3 cold observables of ints."){
++ auto sc = rxsc::make_test();
++ auto w = sc.create_worker();
++ const rxsc::test::messages<int> on;
++ const rxsc::test::messages<rx::observable<int>> o_on;
++
++ auto ys1 = sc.make_cold_observable({
++ on.next(10, 101),
++ on.next(20, 102),
++ on.next(110, 103),
++ on.next(120, 104),
++ on.next(210, 105),
++ on.next(220, 106),
++ on.completed(230)
++ });
++
++ auto ys2 = sc.make_cold_observable({
++ on.next(10, 201),
++ on.next(20, 202),
++ on.next(30, 203),
++ on.next(40, 204),
++ on.completed(50)
++ });
++
++ auto ys3 = sc.make_cold_observable({
++ on.next(10, 301),
++ on.next(20, 302),
++ on.next(30, 303),
++ on.next(40, 304),
++ on.next(120, 305),
++ on.completed(150)
++ });
++
++ auto xs = sc.make_hot_observable({
++ o_on.next(300, ys1),
++ o_on.next(400, ys2),
++ o_on.next(500, ys3),
++ o_on.completed(600)
++ });
++
++ WHEN("each int is merged"){
++
++ auto res = w.start(
++ [&]() {
++ return xs
++ | rxo::merge_delay_error()
++ // forget type to workaround lambda deduction bug on msvc 2013
++ | rxo::as_dynamic();
++ }
++ );
++
++ THEN("the output contains merged ints"){
++ auto required = rxu::to_vector({
++ on.next(310, 101),
++ on.next(320, 102),
++ on.next(410, 103),
++ on.next(410, 201),
++ on.next(420, 104),
++ on.next(420, 202),
++ on.next(430, 203),
++ on.next(440, 204),
++ on.next(510, 105),
++ on.next(510, 301),
++ on.next(520, 106),
++ on.next(520, 302),
++ on.next(530, 303),
++ on.next(540, 304),
++ on.next(620, 305),
++ on.completed(650)
++ });
++ auto actual = res.get_observer().messages();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was one subscription and one unsubscription to the xs"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 600)
++ });
++ auto actual = xs.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was one subscription and one unsubscription to the ys1"){
++ auto required = rxu::to_vector({
++ on.subscribe(300, 530)
++ });
++ auto actual = ys1.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was one subscription and one unsubscription to the ys2"){
++ auto required = rxu::to_vector({
++ on.subscribe(400, 450)
++ });
++ auto actual = ys2.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was one subscription and one unsubscription to the ys3"){
++ auto required = rxu::to_vector({
++ on.subscribe(500, 650)
++ });
++ auto actual = ys3.subscriptions();
++ REQUIRE(required == actual);
++ }
++ }
++ }
++}
++
++SCENARIO("variadic merge completes with error", "[merge][join][operators]"){
++ GIVEN("1 hot observable with 3 cold observables of ints."){
++ auto sc = rxsc::make_test();
++ auto w = sc.create_worker();
++ const rxsc::test::messages<int> on;
++ const rxsc::test::messages<rx::observable<int>> o_on;
++
++ auto ys1 = sc.make_cold_observable({
++ on.next(10, 101),
++ on.next(20, 102),
++ on.next(110, 103),
++ on.next(120, 104),
++ on.next(210, 105),
++ on.next(230, 107),
++ on.completed(240)
++ });
++
++ auto ys2 = sc.make_cold_observable({
++ on.next(10, 201),
++ on.next(20, 202),
++ on.next(30, 203),
++ on.error(40, std::runtime_error("merge_delay_error on_error from ys2")),
++ on.next(50, 205),
++ on.completed(60)
++ });
++
++ auto ys3 = sc.make_cold_observable({
++ on.next(10, 301),
++ on.next(20, 302),
++ on.next(30, 303),
++ on.next(40, 304),
++ on.next(120, 305),
++ on.completed(150)
++ });
++
++ WHEN("each int is merged"){
++
++ auto res = w.start(
++ [&]() {
++ return ys1
++ .merge_delay_error(ys2, ys3);
++ }
++ );
++
++ rx::composite_exception ex;
++ THEN("the output contains merged ints"){
++ auto required = rxu::to_vector({
++ on.next(210, 101),
++ on.next(210, 201),
++ on.next(210, 301),
++ on.next(220, 102),
++ on.next(220, 202),
++ on.next(220, 302),
++ on.next(230, 203),
++ on.next(230, 303),
++ on.next(240, 304),
++ on.next(310, 103),
++ on.next(320, 104),
++ on.next(320, 305),
++ on.next(410, 105),
++ on.next(430, 107),
++ on.error(440, ex)
++ });
++ auto actual = res.get_observer().messages();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was one subscription and one unsubscription to the ys1"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 440)
++ });
++ auto actual = ys1.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was one subscription and one unsubscription to the ys2"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 240)
++ });
++ auto actual = ys2.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was one subscription and one unsubscription to the ys3"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 350)
++ });
++ auto actual = ys3.subscriptions();
++ REQUIRE(required == actual);
++ }
++ }
++ }
++}
++
++SCENARIO("variadic merge completes with 2 errors", "[merge][join][operators]"){
++ GIVEN("1 hot observable with 3 cold observables of ints."){
++ auto sc = rxsc::make_test();
++ auto w = sc.create_worker();
++ const rxsc::test::messages<int> on;
++ const rxsc::test::messages<rx::observable<int>> o_on;
++
++ auto ys1 = sc.make_cold_observable({
++ on.next(10, 101),
++ on.next(20, 102),
++ on.next(110, 103),
++ on.next(120, 104),
++ on.next(210, 105),
++ on.error(220, std::runtime_error("merge_delay_error on_error from ys1")),
++ on.next(230, 107),
++ on.completed(240)
++ });
++
++ auto ys2 = sc.make_cold_observable({
++ on.next(10, 201),
++ on.next(20, 202),
++ on.next(30, 203),
++ on.error(40, std::runtime_error("merge_delay_error on_error from ys2")),
++ on.next(50, 205),
++ on.completed(60)
++ });
++
++ auto ys3 = sc.make_cold_observable({
++ on.next(10, 301),
++ on.next(20, 302),
++ on.next(30, 303),
++ on.next(40, 304),
++ on.next(120, 305),
++ on.completed(150)
++ });
++
++ WHEN("each int is merged"){
++
++ auto res = w.start(
++ [&]() {
++ return ys1
++ .merge_delay_error(ys2, ys3);
++ }
++ );
++
++ rx::composite_exception ex;
++ THEN("the output contains merged ints"){
++ auto required = rxu::to_vector({
++ on.next(210, 101),
++ on.next(210, 201),
++ on.next(210, 301),
++ on.next(220, 102),
++ on.next(220, 202),
++ on.next(220, 302),
++ on.next(230, 203),
++ on.next(230, 303),
++ on.next(240, 304),
++ on.next(310, 103),
++ on.next(320, 104),
++ on.next(320, 305),
++ on.next(410, 105),
++ on.error(420, ex)
++ });
++ auto actual = res.get_observer().messages();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was one subscription and one unsubscription to the ys1"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 420)
++ });
++ auto actual = ys1.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was one subscription and one unsubscription to the ys2"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 240)
++ });
++ auto actual = ys2.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was one subscription and one unsubscription to the ys3"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 350)
++ });
++ auto actual = ys3.subscriptions();
++ REQUIRE(required == actual);
++ }
++ }
++ }
++}
+diff --git a/projects/doxygen/CMakeLists.txt b/projects/doxygen/CMakeLists.txt
+index f5e66c4b0..a3fcd364c 100644
+--- a/projects/doxygen/CMakeLists.txt
++++ b/projects/doxygen/CMakeLists.txt
+@@ -49,6 +49,7 @@ if(DOXYGEN_FOUND)
+ ${DOXY_EXAMPLES_SRC_DIR}/blocking_observable.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/buffer.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/combine_latest.cpp
++ ${DOXY_EXAMPLES_SRC_DIR}/composite_exception.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/concat.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/concat_map.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/contains.cpp
+@@ -75,6 +76,7 @@ if(DOXYGEN_FOUND)
+ ${DOXY_EXAMPLES_SRC_DIR}/map.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/math.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/merge.cpp
++ ${DOXY_EXAMPLES_SRC_DIR}/merge_delay_error.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/never.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/observe_on.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/on_error_resume_next.cpp
+
+From b84db4278e54e722fbbae794f573d1142261e9a3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Martin=20Kodovsk=C3=BD?= <martin.kodovsky(a)gmail.com>
+Date: Thu, 14 Dec 2017 06:02:38 +0100
+Subject: [PATCH 21/29] Add: Skip_while operator (#418)
+
+* #378 adding skip_while operator
+
+* #378 adding tests + fixing CMakeLists.txt
+
+* #378 test completion
+
+* #378 fix includes
+
+* #378 fix assignment in a condition
+
+* #378 fix assignment in a condition 2
+---
+ Rx/v2/examples/doxygen/skip_while.cpp | 17 ++
+ Rx/v2/src/rxcpp/operators/rx-skip_while.hpp | 131 +++++++++
+ Rx/v2/src/rxcpp/rx-includes.hpp | 1 +
+ Rx/v2/src/rxcpp/rx-observable.hpp | 11 +
+ Rx/v2/src/rxcpp/rx-operators.hpp | 7 +
+ Rx/v2/test/CMakeLists.txt | 1 +
+ Rx/v2/test/operators/skip_while.cpp | 434 ++++++++++++++++++++++++++++
+ projects/CMake/CMakeLists.txt | 2 +
+ projects/doxygen/CMakeLists.txt | 1 +
+ 9 files changed, 605 insertions(+)
+ create mode 100644 Rx/v2/examples/doxygen/skip_while.cpp
+ create mode 100644 Rx/v2/src/rxcpp/operators/rx-skip_while.hpp
+ create mode 100644 Rx/v2/test/operators/skip_while.cpp
+
+diff --git a/Rx/v2/examples/doxygen/skip_while.cpp b/Rx/v2/examples/doxygen/skip_while.cpp
+new file mode 100644
+index 000000000..a98ce18b0
+--- /dev/null
++++ b/Rx/v2/examples/doxygen/skip_while.cpp
+@@ -0,0 +1,17 @@
++#include "rxcpp/rx.hpp"
++
++#include "rxcpp/rx-test.hpp"
++#include "catch.hpp"
++
++SCENARIO("skip_while sample"){
++ printf("//! [skip_while sample]\n");
++ auto values = rxcpp::observable<>::range(1, 8).
++ skip_while([](int v){
++ return v <= 4;
++ });
++ values.
++ subscribe(
++ [](int v){printf("OnNext: %d\n", v);},
++ [](){printf("OnCompleted\n");});
++ printf("//! [skip_while sample]\n");
++}
+diff --git a/Rx/v2/src/rxcpp/operators/rx-skip_while.hpp b/Rx/v2/src/rxcpp/operators/rx-skip_while.hpp
+new file mode 100644
+index 000000000..fdd06b63e
+--- /dev/null
++++ b/Rx/v2/src/rxcpp/operators/rx-skip_while.hpp
+@@ -0,0 +1,131 @@
++// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
++
++#pragma once
++
++/*! \file rx-skip_while.hpp
++
++ \brief Discards the first items fulfilling the predicate from this observable emit them from the new observable that is returned.
++
++ \tparam Predicate the type of the predicate
++
++ \param t the predicate
++
++ \return An observable that discards the first items until condition emitted by the source Observable is not fulfilling the predicate, or all of the items from the source observable if the predicate never returns false
++
++ \sample
++ \snippet skip_while.cpp skip_while sample
++ \snippet output.txt skip_while sample
++*/
++
++#if !defined(RXCPP_OPERATORS_RX_SKIP_WHILE_HPP)
++#define RXCPP_OPERATORS_RX_SKIP_WHILE_HPP
++
++#include "../rx-includes.hpp"
++
++namespace rxcpp {
++
++namespace operators {
++
++namespace detail {
++
++template<class... AN>
++struct skip_while_invalid_arguments {};
++
++template<class... AN>
++struct skip_while_invalid : public rxo::operator_base<skip_while_invalid_arguments<AN...>> {
++ using type = observable<skip_while_invalid_arguments<AN...>, skip_while_invalid<AN...>>;
++};
++template<class... AN>
++using skip_while_invalid_t = typename skip_while_invalid<AN...>::type;
++
++template<class T, class Predicate>
++struct skip_while
++{
++ typedef rxu::decay_t<T> source_value_type;
++ typedef rxu::decay_t<Predicate> test_type;
++ test_type test;
++
++
++ skip_while(test_type t)
++ : test(std::move(t))
++ {
++ }
++
++ template<class Subscriber>
++ struct skip_while_observer
++ {
++ typedef skip_while_observer<Subscriber> this_type;
++ typedef source_value_type value_type;
++ typedef rxu::decay_t<Subscriber> dest_type;
++ typedef observer<value_type, this_type> observer_type;
++ dest_type dest;
++ test_type test;
++ bool pass;
++
++ skip_while_observer(dest_type d, test_type t)
++ : dest(std::move(d))
++ , test(std::move(t)),
++ pass(false)
++ {
++ }
++ void on_next(source_value_type v) {
++ if(pass || !test(v))
++ {
++ pass = true;
++ dest.on_next(v);
++ }
++ }
++ void on_error(std::exception_ptr e) const {
++ dest.on_error(e);
++ }
++ void on_completed() const {
++ dest.on_completed();
++ }
++
++ static subscriber<value_type, observer_type> make(dest_type d, test_type t) {
++ return make_subscriber<value_type>(d, this_type(d, std::move(t)));
++ }
++ };
++
++ template<class Subscriber>
++ auto operator()(Subscriber dest) const
++ -> decltype(skip_while_observer<Subscriber>::make(std::move(dest), test)) {
++ return skip_while_observer<Subscriber>::make(std::move(dest), test);
++ }
++};
++
++}
++
++/*! @copydoc rx-skip_while.hpp
++*/
++template<class... AN>
++auto skip_while(AN&&... an)
++ -> operator_factory<skip_while_tag, AN...> {
++ return operator_factory<skip_while_tag, AN...>(std::make_tuple(std::forward<AN>(an)...));
++ }
++
++}
++
++template<>
++struct member_overload<skip_while_tag>
++{
++ template<class Observable, class Predicate,
++ class SourceValue = rxu::value_type_t<Observable>,
++ class TakeWhile = rxo::detail::skip_while<SourceValue, rxu::decay_t<Predicate>>>
++ static auto member(Observable&& o, Predicate&& p)
++ -> decltype(o.template lift<SourceValue>(TakeWhile(std::forward<Predicate>(p)))) {
++ return o.template lift<SourceValue>(TakeWhile(std::forward<Predicate>(p)));
++ }
++
++ template<class... AN>
++ static operators::detail::skip_while_invalid_t<AN...> member(const AN&...) {
++ std::terminate();
++ return {};
++ static_assert(sizeof...(AN) == 10000, "skip_while takes (Predicate)");
++ }
++};
++
++
++}
++
++#endif
+diff --git a/Rx/v2/src/rxcpp/rx-includes.hpp b/Rx/v2/src/rxcpp/rx-includes.hpp
+index aefa1902c..51045657e 100644
+--- a/Rx/v2/src/rxcpp/rx-includes.hpp
++++ b/Rx/v2/src/rxcpp/rx-includes.hpp
+@@ -221,6 +221,7 @@
+ #include "operators/rx-scan.hpp"
+ #include "operators/rx-sequence_equal.hpp"
+ #include "operators/rx-skip.hpp"
++#include "operators/rx-skip_while.hpp"
+ #include "operators/rx-skip_last.hpp"
+ #include "operators/rx-skip_until.hpp"
+ #include "operators/rx-start_with.hpp"
+diff --git a/Rx/v2/src/rxcpp/rx-observable.hpp b/Rx/v2/src/rxcpp/rx-observable.hpp
+index 3a3124005..496db0b5c 100644
+--- a/Rx/v2/src/rxcpp/rx-observable.hpp
++++ b/Rx/v2/src/rxcpp/rx-observable.hpp
+@@ -1361,6 +1361,17 @@ class observable
+ return observable_member(skip_tag{}, *this, std::forward<AN>(an)...);
+ }
+
++ /*! @copydoc rx-skip.hpp
++ */
++ template<class... AN>
++ auto skip_while(AN... an) const
++ /// \cond SHOW_SERVICE_MEMBERS
++ -> decltype(observable_member(skip_while_tag{}, *(this_type*)nullptr, std::forward<AN>(an)...))
++ /// \endcond
++ {
++ return observable_member(skip_while_tag{}, *this, std::forward<AN>(an)...);
++ }
++
+ /*! @copydoc rx-skip_last.hpp
+ */
+ template<class... AN>
+diff --git a/Rx/v2/src/rxcpp/rx-operators.hpp b/Rx/v2/src/rxcpp/rx-operators.hpp
+index 15e8b54bb..9a5481aef 100644
+--- a/Rx/v2/src/rxcpp/rx-operators.hpp
++++ b/Rx/v2/src/rxcpp/rx-operators.hpp
+@@ -377,6 +377,13 @@ struct skip_tag {
+ };
+ };
+
++struct skip_while_tag {
++ template<class Included>
++ struct include_header{
++ static_assert(Included::value, "missing include: please #include <rxcpp/operators/rx-skip_while.hpp>");
++ };
++};
++
+ struct skip_last_tag {
+ template<class Included>
+ struct include_header{
+diff --git a/Rx/v2/test/CMakeLists.txt b/Rx/v2/test/CMakeLists.txt
+index 1064c0f82..dcb998f81 100644
+--- a/Rx/v2/test/CMakeLists.txt
++++ b/Rx/v2/test/CMakeLists.txt
+@@ -67,6 +67,7 @@ set(TEST_SOURCES
+ ${TEST_DIR}/operators/scan.cpp
+ ${TEST_DIR}/operators/sequence_equal.cpp
+ ${TEST_DIR}/operators/skip.cpp
++ ${TEST_DIR}/operators/skip_while.cpp
+ ${TEST_DIR}/operators/skip_last.cpp
+ ${TEST_DIR}/operators/skip_until.cpp
+ ${TEST_DIR}/operators/start_with.cpp
+diff --git a/Rx/v2/test/operators/skip_while.cpp b/Rx/v2/test/operators/skip_while.cpp
+new file mode 100644
+index 000000000..cc773b12a
+--- /dev/null
++++ b/Rx/v2/test/operators/skip_while.cpp
+@@ -0,0 +1,434 @@
++#include "../test.h"
++#include <rxcpp/operators/rx-skip_while.hpp>
++
++namespace {
++ class not_equal_to {
++ int value;
++ public:
++ not_equal_to(int value) : value(value) { }
++ bool operator()(int i) const {
++ return i != value;
++ }
++ };
++}
++
++SCENARIO("skip_while not equal to 4", "[skip_while][operators]"){
++ GIVEN("a source"){
++ auto sc = rxsc::make_test();
++ auto w = sc.create_worker();
++ const rxsc::test::messages<int> on;
++
++ auto xs = sc.make_hot_observable({
++ on.next(150, 1),
++ on.next(210, 2),
++ on.next(220, 3),
++ on.next(230, 4),
++ on.next(240, 5),
++ on.completed(250)
++ });
++
++ WHEN("values before 4 are taken"){
++
++ auto res = w.start(
++ [xs]() {
++ return xs
++ .skip_while(not_equal_to(4))
++ .as_dynamic();
++ }
++ );
++
++ THEN("the output only contains items sent while subscribed"){
++ auto required = rxu::to_vector({
++ on.next(230, 4),
++ on.next(240, 5),
++ on.completed(250)
++ });
++ auto actual = res.get_observer().messages();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was 1 subscription/unsubscription to the source"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 250)
++ });
++ auto actual = xs.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ }
++ }
++}
++
++SCENARIO("skip_while, complete after", "[skip_while][operators]"){
++ GIVEN("a source"){
++ auto sc = rxsc::make_test();
++ auto w = sc.create_worker();
++ const rxsc::test::messages<int> on;
++
++ auto xs = sc.make_hot_observable({
++ on.next(70, 6),
++ on.next(150, 4),
++ on.next(210, 9),
++ on.next(230, 13),
++ on.next(270, 7),
++ on.next(280, 1),
++ on.next(300, -1),
++ on.next(310, 3),
++ on.next(340, 8),
++ on.next(370, 11),
++ on.next(410, 15),
++ on.next(415, 16),
++ on.next(460, 72),
++ on.next(510, 76),
++ on.next(560, 32),
++ on.next(570, -100),
++ on.next(580, -3),
++ on.next(590, 5),
++ on.next(630, 10),
++ on.completed(690)
++ });
++
++ WHEN("none are taken"){
++
++ auto res = w.start(
++ [xs]() {
++ return xs
++ .skip_while(not_equal_to(0))
++ // forget type to workaround lambda deduction bug on msvc 2013
++ .as_dynamic();
++ }
++ );
++
++ THEN("the output contains no items sent while subscribed"){
++ auto required = rxu::to_vector({
++ on.completed(690)
++ });
++ auto actual = res.get_observer().messages();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was 1 subscription/unsubscription to the source"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 690)
++ });
++ auto actual = xs.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ }
++ }
++}
++
++SCENARIO("skip_while, complete before", "[skip_while][operators]"){
++ GIVEN("a source"){
++ auto sc = rxsc::make_test();
++ auto w = sc.create_worker();
++ const rxsc::test::messages<int> on;
++
++ auto xs = sc.make_hot_observable({
++ on.next(70, 6),
++ on.next(150, 4),
++ on.next(210, 9),
++ on.next(230, 13),
++ on.next(270, 7),
++ on.next(280, 1),
++ on.next(300, -1),
++ on.next(310, 3),
++ on.next(340, 8),
++ on.next(370, 11),
++ on.next(410, 15),
++ on.next(415, 16),
++ on.next(460, 72),
++ on.next(510, 76),
++ on.next(560, 32),
++ on.next(570, -100),
++ on.next(580, -3),
++ on.next(590, 5),
++ on.next(630, 10),
++ on.completed(690)
++ });
++
++ WHEN("7 values are taken"){
++
++ auto res = w.start(
++ [xs]() {
++ return xs
++ .skip_while(not_equal_to(72))
++ // forget type to workaround lambda deduction bug on msvc 2013
++ .as_dynamic();
++ }
++ );
++
++ THEN("the output only contains items sent while subscribed"){
++ auto required = rxu::to_vector({
++ on.next(460, 72),
++ on.next(510, 76),
++ on.next(560, 32),
++ on.next(570, -100),
++ on.next(580, -3),
++ on.next(590, 5),
++ on.next(630, 10),
++ on.completed(690)
++ });
++ auto actual = res.get_observer().messages();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was 1 subscription/unsubscription to the source"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 690)
++ });
++ auto actual = xs.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ }
++ }
++}
++
++SCENARIO("skip_while, error after", "[skip_while][operators]"){
++ GIVEN("a source"){
++ auto sc = rxsc::make_test();
++ auto w = sc.create_worker();
++ const rxsc::test::messages<int> on;
++
++ std::runtime_error ex("skip_while on_error from source");
++
++ auto xs = sc.make_hot_observable({
++ on.next(70, 6),
++ on.next(150, 4),
++ on.next(210, 9),
++ on.next(230, 13),
++ on.next(270, 7),
++ on.next(280, 1),
++ on.next(300, -1),
++ on.next(310, 3),
++ on.next(340, 8),
++ on.next(370, 11),
++ on.next(410, 15),
++ on.next(415, 16),
++ on.next(460, 72),
++ on.next(510, 76),
++ on.next(560, 32),
++ on.next(570, -100),
++ on.next(580, -3),
++ on.next(590, 5),
++ on.next(630, 10),
++ on.error(690, ex)
++ });
++
++ WHEN("no values are taken"){
++
++ auto res = w.start(
++ [xs]() {
++ return xs
++ .skip_while(not_equal_to(0))
++ // forget type to workaround lambda deduction bug on msvc 2013
++ .as_dynamic();
++ }
++ );
++
++ THEN("the output only contains items sent while subscribed and the error"){
++ auto required = rxu::to_vector({
++ on.error(690, ex)
++ });
++ auto actual = res.get_observer().messages();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was 1 subscription/unsubscription to the source"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 690)
++ });
++ auto actual = xs.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ }
++ }
++}
++
++SCENARIO("skip_while, error before", "[skip_while][operators]"){
++ GIVEN("a source"){
++ auto sc = rxsc::make_test();
++ auto w = sc.create_worker();
++ const rxsc::test::messages<int> on;
++
++ std::runtime_error ex("skip_while on_error from source");
++
++ auto xs = sc.make_hot_observable({
++ on.next(70, 6),
++ on.next(150, 4),
++ on.next(210, 9),
++ on.next(230, 13),
++ on.next(270, 7),
++ on.next(280, 1),
++ on.next(300, -1),
++ on.next(310, 3),
++ on.next(340, 8),
++ on.next(370, 11),
++ on.next(410, 15),
++ on.next(415, 16),
++ on.next(460, 72),
++ on.error(500, ex),
++ on.next(510, 76),
++ on.next(560, 32),
++ on.next(570, -100),
++ on.next(580, -3),
++ on.next(590, 5),
++ on.next(630, 10)
++ });
++
++ WHEN("only one value is taken"){
++
++ auto res = w.start(
++ [xs]() {
++ return xs
++ .skip_while(not_equal_to(72))
++ // forget type to workaround lambda deduction bug on msvc 2013
++ .as_dynamic();
++ }
++ );
++
++ THEN("the output only contains items sent while subscribed"){
++ auto required = rxu::to_vector({
++ on.next(460, 72),
++ on.error(500, ex)
++ });
++ auto actual = res.get_observer().messages();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was 1 subscription/unsubscription to the source"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 500)
++ });
++ auto actual = xs.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ }
++ }
++}
++
++SCENARIO("skip_while, dispose before", "[skip_while][operators]"){
++ GIVEN("a source"){
++ auto sc = rxsc::make_test();
++ auto w = sc.create_worker();
++ const rxsc::test::messages<int> on;
++
++ auto xs = sc.make_hot_observable({
++ on.next(70, 6),
++ on.next(150, 100),
++ on.next(210, 9),
++ on.next(230, 13),
++ on.next(270, 7),
++ on.next(280, 1),
++ on.next(300, -1),
++ on.next(310, 3),
++ on.next(340, 8),
++ on.next(370, 11),
++ on.next(410, 15),
++ on.next(415, 16),
++ on.next(460, 72),
++ on.next(510, 76),
++ on.next(560, 32),
++ on.next(570, -100),
++ on.next(580, -3),
++ on.next(590, 5),
++ on.next(630, 10)
++ });
++
++ WHEN("3 values are taken"){
++
++ auto res = w.start(
++ [xs]() {
++ return xs
++ .skip_while(not_equal_to(100))
++ // forget type to workaround lambda deduction bug on msvc 2013
++ .as_dynamic();
++ },
++ 250
++ );
++
++ THEN("the output only contains items sent while subscribed"){
++ std::vector<rxcpp::notifications::recorded<std::shared_ptr<rxcpp::notifications::detail::notification_base<int> > > > required;
++ auto actual = res.get_observer().messages();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was 1 subscription/unsubscription to the source"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 250)
++ });
++ auto actual = xs.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ }
++ }
++}
++
++SCENARIO("skip_while, dispose after", "[skip_while][operators]"){
++ GIVEN("a source"){
++ auto sc = rxsc::make_test();
++ auto w = sc.create_worker();
++ const rxsc::test::messages<int> on;
++
++ auto xs = sc.make_hot_observable({
++ on.next(70, 6),
++ on.next(150, 4), //this is skipped due to delayed subscription
++ on.next(210, 9),
++ on.next(230, 13),
++ on.next(270, 7),
++ on.next(280, 1),
++ on.next(300, -1),
++ on.next(310, 3),
++ on.next(340, 8),
++ on.next(370, 11),
++ on.next(410, 15),
++ on.next(415, 16),
++ on.next(460, 72),
++ on.next(510, 76),
++ on.next(560, 32),
++ on.next(570, -100),
++ on.next(580, -3),
++ on.next(590, 5),
++ on.next(630, 10)
++ });
++
++ WHEN("5 values are taken"){
++
++ auto res = w.start(
++ [xs]() {
++ return xs
++ .skip_while(not_equal_to(1))
++ // forget type to workaround lambda deduction bug on msvc 2013
++ .as_dynamic();
++ },
++ 400
++ );
++
++ THEN("the output only contains items sent while subscribed"){
++ auto required = rxu::to_vector({
++ on.next(280, 1),
++ on.next(300, -1),
++ on.next(310, 3),
++ on.next(340, 8),
++ on.next(370, 11),
++ });
++ auto actual = res.get_observer().messages();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was 1 subscription/unsubscription to the source"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 400)
++ });
++ auto actual = xs.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ }
++ }
++}
+diff --git a/projects/CMake/CMakeLists.txt b/projects/CMake/CMakeLists.txt
+index 7230ca782..542a91abb 100644
+--- a/projects/CMake/CMakeLists.txt
++++ b/projects/CMake/CMakeLists.txt
+@@ -49,6 +49,7 @@ set(RX_SOURCES
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-lift.hpp
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-map.hpp
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-merge.hpp
++ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-merge_delay_error.hpp
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-multicast.hpp
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-observe_on.hpp
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-on_error_resume_next.hpp
+@@ -63,6 +64,7 @@ set(RX_SOURCES
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-scan.hpp
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-sequence_equal.hpp
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-skip.hpp
++ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-skip_while.hpp
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-skip_last.hpp
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-skip_until.hpp
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-start_with.hpp
+diff --git a/projects/doxygen/CMakeLists.txt b/projects/doxygen/CMakeLists.txt
+index a3fcd364c..6620a7afc 100644
+--- a/projects/doxygen/CMakeLists.txt
++++ b/projects/doxygen/CMakeLists.txt
+@@ -92,6 +92,7 @@ if(DOXYGEN_FOUND)
+ ${DOXY_EXAMPLES_SRC_DIR}/scope.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/sequence_equal.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/skip.cpp
++ ${DOXY_EXAMPLES_SRC_DIR}/skip_while.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/skip_last.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/skip_until.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/start_with.cpp
+
+From 76149330a666200b62422454a4fd8d3cd0a4ae37 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82(a)fedoraproject.org>
+Date: Thu, 3 May 2018 14:59:52 +0200
+Subject: [PATCH 22/29] Fix '-Wignored-qualifiers'
+
+---
+ Rx/v2/src/rxcpp/rx-subscription.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Rx/v2/src/rxcpp/rx-subscription.hpp b/Rx/v2/src/rxcpp/rx-subscription.hpp
+index 9c0046905..ee4e53ef1 100644
+--- a/Rx/v2/src/rxcpp/rx-subscription.hpp
++++ b/Rx/v2/src/rxcpp/rx-subscription.hpp
+@@ -379,7 +379,7 @@ class composite_subscription
+
+ composite_subscription()
+ : inner_type()
+- , subscription(*static_cast<const inner_type* const>(this))
++ , subscription(*static_cast<const inner_type*>(this))
+ {
+ }
+
+
+From 7cebbd4d2b3ac16249d538024e7f31eaa300c962 Mon Sep 17 00:00:00 2001
+From: Kirk Shoop <kirk.shoop(a)gmail.com>
+Date: Fri, 4 May 2018 11:03:54 -0700
+Subject: [PATCH 23/29] Update README.md
+
+---
+ README.md | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/README.md b/README.md
+index 8106c4ae8..dbeaaabc0 100644
+--- a/README.md
++++ b/README.md
+@@ -12,8 +12,12 @@ Gitter.im | [![Join in on gitter.im](https://img.shields.io/gitter/room/Reactive
+ Packages | [![NuGet version](http://img.shields.io/nuget/v/RxCpp.svg?style=flat-square)](http... [![vcpkg port](https://img.shields.io/badge/vcpkg-port-blue.svg?style=flat-square)...
+ Documentation | [![rxcpp doxygen documentation](https://img.shields.io/badge/rxcpp-latest-brightgreen.svg?style=flat-square)](http://reactive-extensions.github.io/RxCpp) <br/> [![reactivex intro](https://img.shields.io/badge/reactivex.io-intro-brightgreen.svg?style=flat-square)](http://reactivex.io/intro.html) [![rx marble diagrams](https://img.shields.io/badge/rxmarbles-diagrams-brightgreen.svg...
+
++# Usage
++
++__RxCpp__ is a header-only C++ library that only depends on the standard library. The CMake build generates documentation and unit tests.
++
+ # Example
+-Add ```Rx/v2/src``` to the include paths
++Add `Rx/v2/src` to the include paths
+
+ [![lines from bytes](https://img.shields.io/badge/blog%20post-lines%20from%20bytes-blue.svg?style=flat-square)](http://kirkshoop.github.io/async/rxcpp/c++/2015/07/07/rxcpp_-_parsing_bytes_to_lines_of_text.html)
+
+@@ -230,7 +234,5 @@ When Doxygen+Graphviz is installed, CMake creates a special build task named `do
+
+ Before submitting a feature or substantial code contribution please discuss it with the team and ensure it follows the product roadmap. Note that all code submissions will be rigorously reviewed and tested by the Rx Team, and only those that meet an extremely high bar for both quality and design/roadmap appropriateness will be merged into the source.
+
+-You will be prompted to submit a Contributor License Agreement form after submitting your pull request. This needs to only be done once for any Microsoft OSS project. Fill in the [Contributor License Agreement](https://cla2.msopentech.com/) (CLA).
+-
+ # Microsoft Open Source Code of Conduct
+ This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
+
+From b3e88fd0eb86d707b343496a62f9bb4e606bb04a Mon Sep 17 00:00:00 2001
+From: Kirk Shoop <kirk.shoop(a)gmail.com>
+Date: Fri, 4 May 2018 13:30:03 -0700
+Subject: [PATCH 24/29] Update README.md
+
+---
+ README.md | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/README.md b/README.md
+index dbeaaabc0..d0791d5c8 100644
+--- a/README.md
++++ b/README.md
+@@ -3,18 +3,18 @@ The Reactive Extensions for C++ (__RxCpp__) is a library of algorithms for value
+ Platform | Status |
+ ----------- | :------------ |
+ Windows | [![Windows Status](http://img.shields.io/appveyor/ci/kirkshoop/RxCpp-446.svg?style=f...
+-Linux & OSX | [![Linux & Osx Status](http://img.shields.io/travis/Reactive-Extensions/RxCpp.svg?style=...
++Linux & OSX | [![Linux & Osx Status](http://img.shields.io/travis/ReactiveX/RxCpp.svg?style=flat-squar...
+
+ Source | Badges |
+ ------------- | :--------------- |
+-Github | [![GitHub license](https://img.shields.io/github/license/Reactive-Extensions/RxCpp.... <br/> [![GitHub release](https://img.shields.io/github/release/Reactive-Extensions/RxCpp.... <br/> [![GitHub commits](https://img.shields.io/github/commits-since/Reactive-Extensions/...
+-Gitter.im | [![Join in on gitter.im](https://img.shields.io/gitter/room/Reactive-Extensions/RxCpp.svg?style=flat-square)](https://gitter.im/Reactive-Extensions/RxCpp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
++Github | [![GitHub license](https://img.shields.io/github/license/ReactiveX/RxCpp.svg?style=... <br/> [![GitHub release](https://img.shields.io/github/release/ReactiveX/RxCpp.svg?style=... <br/> [![GitHub commits](https://img.shields.io/github/commits-since/ReactiveX/RxCpp/v4.0...
++Gitter.im | [![Join in on gitter.im](https://img.shields.io/gitter/room/ReactiveX/RxCpp.svg?style=flat-square)](https://gitter.im/ReactiveX/RxCpp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+ Packages | [![NuGet version](http://img.shields.io/nuget/v/RxCpp.svg?style=flat-square)](http... [![vcpkg port](https://img.shields.io/badge/vcpkg-port-blue.svg?style=flat-square)...
+-Documentation | [![rxcpp doxygen documentation](https://img.shields.io/badge/rxcpp-latest-brightgreen.svg?style=flat-square)](http://reactive-extensions.github.io/RxCpp) <br/> [![reactivex intro](https://img.shields.io/badge/reactivex.io-intro-brightgreen.svg?style=flat-square)](http://reactivex.io/intro.html) [![rx marble diagrams](https://img.shields.io/badge/rxmarbles-diagrams-brightgreen.svg...
++Documentation | [![rxcpp doxygen documentation](https://img.shields.io/badge/rxcpp-latest-brightgreen.svg?style=flat-square)](http://reactivex.github.io/RxCpp) <br/> [![reactivex intro](https://img.shields.io/badge/reactivex.io-intro-brightgreen.svg?style=flat-square)](http://reactivex.io/intro.html) [![rx marble diagrams](https://img.shields.io/badge/rxmarbles-diagrams-brightgreen.svg...
+
+ # Usage
+
+-__RxCpp__ is a header-only C++ library that only depends on the standard library. The CMake build generates documentation and unit tests.
++__RxCpp__ is a header-only C++ library that only depends on the standard library. The CMake build generates documentation and unit tests. The unit tests depend on a git submodule for the [Catch](https://github.com/philsquared/Catch) library.
+
+ # Example
+ Add `Rx/v2/src` to the include paths
+@@ -128,7 +128,7 @@ Credit [ReactiveX.io](http://reactivex.io/intro.html)
+ ### Other language implementations
+
+ * Java: [RxJava](https://github.com/ReactiveX/RxJava)
+-* JavaScript: [RxJS](https://github.com/Reactive-Extensions/RxJS)
++* JavaScript: [rxjs](https://github.com/ReactiveX/rxjs)
+ * C#: [Rx.NET](https://github.com/Reactive-Extensions/Rx.NET)
+ * [More..](http://reactivex.io/languages.html)
+
+@@ -148,7 +148,7 @@ Credit [ReactiveX.io](http://reactivex.io/intro.html)
+ RxCpp uses a git submodule (in `ext/catch`) for the excellent [Catch](https://github.com/philsquared/Catch) library. The easiest way to ensure that the submodules are included in the clone is to add `--recursive` in the clone command.
+
+ ```shell
+-git clone --recursive https://github.com/Reactive-Extensions/RxCpp.git
++git clone --recursive https://github.com/ReactiveX/RxCpp.git
+ cd RxCpp
+ ```
+
+@@ -224,7 +224,7 @@ Example of by-tag
+
+ # Documentation
+
+-RxCpp uses Doxygen to generate project [documentation](http://reactive-extensions.github.io/RxCpp).
++RxCpp uses Doxygen to generate project [documentation](http://reactivex.github.io/RxCpp).
+
+ When Doxygen+Graphviz is installed, CMake creates a special build task named `doc`. It creates actual documentation and puts it to `projects/doxygen/html/` folder, which can be published to the `gh-pages` branch. Each merged pull request will build the docs and publish them.
+
+
+From 533e3a349ac0699c946c5497675ac5d159479030 Mon Sep 17 00:00:00 2001
+From: Kirk Shoop <kirk.shoop(a)gmail.com>
+Date: Fri, 4 May 2018 13:35:33 -0700
+Subject: [PATCH 25/29] Update README.md
+
+---
+ README.md | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/README.md b/README.md
+index d0791d5c8..3cd4d7af8 100644
+--- a/README.md
++++ b/README.md
+@@ -8,7 +8,7 @@ Linux & OSX | [![Linux & Osx Status](http://img.shields.io/travis/ReactiveX/RxCp
+ Source | Badges |
+ ------------- | :--------------- |
+ Github | [![GitHub license](https://img.shields.io/github/license/ReactiveX/RxCpp.svg?style=... <br/> [![GitHub release](https://img.shields.io/github/release/ReactiveX/RxCpp.svg?style=... <br/> [![GitHub commits](https://img.shields.io/github/commits-since/ReactiveX/RxCpp/v4.0...
+-Gitter.im | [![Join in on gitter.im](https://img.shields.io/gitter/room/ReactiveX/RxCpp.svg?style=flat-square)](https://gitter.im/ReactiveX/RxCpp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
++Gitter.im | [![Join in on gitter.im](https://img.shields.io/gitter/room/Reactive-Extensions/RxCpp.svg?style=flat-square)](https://gitter.im/ReactiveX/RxCpp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+ Packages | [![NuGet version](http://img.shields.io/nuget/v/RxCpp.svg?style=flat-square)](http... [![vcpkg port](https://img.shields.io/badge/vcpkg-port-blue.svg?style=flat-square)...
+ Documentation | [![rxcpp doxygen documentation](https://img.shields.io/badge/rxcpp-latest-brightgreen.svg?style=flat-square)](http://reactivex.github.io/RxCpp) <br/> [![reactivex intro](https://img.shields.io/badge/reactivex.io-intro-brightgreen.svg?style=flat-square)](http://reactivex.io/intro.html) [![rx marble diagrams](https://img.shields.io/badge/rxmarbles-diagrams-brightgreen.svg...
+
+
+From 28db2ee9fdac1aed6fa8e360ea5ddf12856d0f6b Mon Sep 17 00:00:00 2001
+From: Andrei Lebedev <lebdron(a)gmail.com>
+Date: Fri, 11 May 2018 00:32:43 +0300
+Subject: [PATCH 26/29] Remove unused variable and captures in
+ doxygen/buffer.cpp
+
+---
+ Rx/v2/examples/doxygen/buffer.cpp | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/Rx/v2/examples/doxygen/buffer.cpp b/Rx/v2/examples/doxygen/buffer.cpp
+index e88c2ed55..58f023a6c 100644
+--- a/Rx/v2/examples/doxygen/buffer.cpp
++++ b/Rx/v2/examples/doxygen/buffer.cpp
+@@ -162,7 +162,6 @@ SCENARIO("buffer period sample"){
+
+ SCENARIO("buffer period+count+coordination sample"){
+ printf("//! [buffer period+count+coordination sample]\n");
+- auto start = std::chrono::steady_clock::now();
+ auto int1 = rxcpp::observable<>::range(1L, 3L);
+ auto int2 = rxcpp::observable<>::timer(std::chrono::milliseconds(50));
+ auto values = int1.
+@@ -171,7 +170,7 @@ SCENARIO("buffer period+count+coordination sample"){
+ values.
+ as_blocking().
+ subscribe(
+- [start](std::vector<long> v){
++ [](std::vector<long> v){
+ printf("OnNext:");
+ std::for_each(v.begin(), v.end(), [](long a){
+ printf(" %ld", a);
+@@ -184,7 +183,6 @@ SCENARIO("buffer period+count+coordination sample"){
+
+ SCENARIO("buffer period+count sample"){
+ printf("//! [buffer period+count sample]\n");
+- auto start = std::chrono::steady_clock::now();
+ auto int1 = rxcpp::observable<>::range(1L, 3L);
+ auto int2 = rxcpp::observable<>::timer(std::chrono::milliseconds(50));
+ auto values = int1.
+@@ -192,7 +190,7 @@ SCENARIO("buffer period+count sample"){
+ buffer_with_time_or_count(std::chrono::milliseconds(20), 2);
+ values.
+ subscribe(
+- [start](std::vector<long> v){
++ [](std::vector<long> v){
+ printf("OnNext:");
+ std::for_each(v.begin(), v.end(), [](long a){
+ printf(" %ld", a);
+
+From abaf9881831d3adf52625443611aa1c3ea5e5dbf Mon Sep 17 00:00:00 2001
+From: Andrei Lebedev <lebdron(a)gmail.com>
+Date: Fri, 11 May 2018 02:08:37 +0300
+Subject: [PATCH 27/29] Fix exit_recursed_scope_type dtor cleaning requestor
+ early
+
+---
+ Rx/v2/src/rxcpp/rx-scheduler.hpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Rx/v2/src/rxcpp/rx-scheduler.hpp b/Rx/v2/src/rxcpp/rx-scheduler.hpp
+index 0f239be73..8bdb4dd4e 100644
+--- a/Rx/v2/src/rxcpp/rx-scheduler.hpp
++++ b/Rx/v2/src/rxcpp/rx-scheduler.hpp
+@@ -480,9 +480,9 @@ class schedulable : public schedulable_base
+ // no change in recursion scope
+ return *this;
+ }
+- exit_recursed_scope_type reset(const recurse& r) const {
++ std::shared_ptr<exit_recursed_scope_type> reset(const recurse& r) const {
+ requestor = std::addressof(r.get_recursed());
+- return exit_recursed_scope_type(this);
++ return std::make_shared<exit_recursed_scope_type>(this);
+ }
+ bool is_recursed() const {
+ return !!requestor;
+
+From c7de35be5dc31785984f9b3c6b21f7bf46a05034 Mon Sep 17 00:00:00 2001
+From: Andrei Lebedev <lebdron(a)gmail.com>
+Date: Fri, 11 May 2018 08:22:09 +0300
+Subject: [PATCH 28/29] Replace shared_ptr with move ctor
+
+---
+ Rx/v2/src/rxcpp/rx-scheduler.hpp | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/Rx/v2/src/rxcpp/rx-scheduler.hpp b/Rx/v2/src/rxcpp/rx-scheduler.hpp
+index 8bdb4dd4e..dbf6cb256 100644
+--- a/Rx/v2/src/rxcpp/rx-scheduler.hpp
++++ b/Rx/v2/src/rxcpp/rx-scheduler.hpp
+@@ -458,12 +458,19 @@ class schedulable : public schedulable_base
+ public:
+ ~exit_recursed_scope_type()
+ {
++ if (that != nullptr) {
+ that->requestor = nullptr;
++ }
+ }
+ exit_recursed_scope_type(const recursed_scope_type* that)
+ : that(that)
+ {
+ }
++ exit_recursed_scope_type(exit_recursed_scope_type && other) /*noexcept*/
++ : that(other.that)
++ {
++ other.that = nullptr;
++ }
+ };
+ public:
+ recursed_scope_type()
+@@ -480,9 +487,9 @@ class schedulable : public schedulable_base
+ // no change in recursion scope
+ return *this;
+ }
+- std::shared_ptr<exit_recursed_scope_type> reset(const recurse& r) const {
++ exit_recursed_scope_type reset(const recurse& r) const {
+ requestor = std::addressof(r.get_recursed());
+- return std::make_shared<exit_recursed_scope_type>(this);
++ return exit_recursed_scope_type(this);
+ }
+ bool is_recursed() const {
+ return !!requestor;
+
+From eaf0545efef9fdccc0a6bc88f23ef0fc876c36f3 Mon Sep 17 00:00:00 2001
+From: Andrei Lebedev <lebdron(a)gmail.com>
+Date: Fri, 11 May 2018 08:23:22 +0300
+Subject: [PATCH 29/29] Replace commented out noexcept with macro
+
+---
+ Rx/v2/src/rxcpp/rx-scheduler.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Rx/v2/src/rxcpp/rx-scheduler.hpp b/Rx/v2/src/rxcpp/rx-scheduler.hpp
+index dbf6cb256..fc689793b 100644
+--- a/Rx/v2/src/rxcpp/rx-scheduler.hpp
++++ b/Rx/v2/src/rxcpp/rx-scheduler.hpp
+@@ -466,7 +466,7 @@ class schedulable : public schedulable_base
+ : that(that)
+ {
+ }
+- exit_recursed_scope_type(exit_recursed_scope_type && other) /*noexcept*/
++ exit_recursed_scope_type(exit_recursed_scope_type && other) RXCPP_NOEXCEPT
+ : that(other.that)
+ {
+ other.that = nullptr;
diff --git a/RxCpp.spec b/RxCpp.spec
new file mode 100644
index 0000000..51f8e39
--- /dev/null
+++ b/RxCpp.spec
@@ -0,0 +1,152 @@
+# Header only lib. Package is build archful to run the tests
+# on all available architectures, thus we disable debug packages.
+%global debug_package %{nil}
+
+# Setup _pkgdocdir if not defined already.
+%{!?_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}}
+
+# Package name in lowercase. %%global won't work here.
+%define lc_name %{lua:print(rpm.expand("%{name}"):lower())}
+
+
+Name: RxCpp
+Version: 4.0.0
+Release: 1%{?dist}
+Summary: Reactive Extensions for C++
+
+License: ASL 2.0
+URL: https://github.com/Reactive-Extensions/%{name}
+Source0: %{url}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
+
+# 0 - 999: Cherry-picked from upstream.
+Patch0: %{url}/compare/v4.0.0...master.patch#/%{name}-4.0.0-to_master.patch
+
+# 1000 - 1999: Upstreamed.
+
+# 2000 - 2999: Upstreamable.
+
+# 3000 - 3999: Downstream / not upstreamable.
+
+BuildRequires: catch-devel
+BuildRequires: cmake3
+BuildRequires: gcc-c++
+
+%description
+The Reactive Extensions for C++ (RxCpp) is a library of algorithms
+for values-distributed-in-time.
+
+
+%package devel
+Summary: Reactive Extensions for C++
+BuildArch: noarch
+
+Provides: %{name} == %{version}-%{release}
+Provides: %{name}-static == %{version}-%{release}
+Provides: %{lc_name} == %{version}-%{release}
+Provides: %{lc_name}-devel == %{version}-%{release}
+Provides: %{lc_name}-static == %{version}-%{release}
+
+%description devel
+The Reactive Extensions for C++ (RxCpp) is a library of algorithms
+for values-distributed-in-time.
+
+
+%package doc
+Summary: API-documentation for %{name}
+BuildArch: noarch
+
+BuildRequires: doxygen
+BuildRequires: graphviz
+BuildRequires: hardlink
+
+Provides: %{lc_name}-doc == %{version}-%{release}
+
+%description doc
+This package contains the API-documentation for %{name}.
+
+
+%prep
+%autosetup -p 1
+
+# Rename toplevel license file.
+%{__mv} license.md ASL-2.0.txt
+
+# Fix path to catch.
+%{__sed} -i.catch -e 's!\${RXCPP_DIR}/ext/catch/include!%{_includedir}/catch!g' \
+ projects/CMake/shared.cmake
+
+
+%build
+%cmake3 -DCMAKE_BUILD_TYPE=Release .
+
+# Builds needs about 2.5 GiB of RAM per thread on x86_64,
+# on certain other arches even more. Thus building with
+# less threads on %%{power64}.
+%ifnarch %{power64}
+%make_build
+%else
+%{__make} -O -j2
+%endif
+
+# Build docs.
+pushd projects/doxygen
+%{_bindir}/doxygen doxygen.conf
+popd
+
+
+%install
+%make_install
+
+# Install docs.
+%{__mkdir_p} %{buildroot}%{_pkgdocdir}
+%{__cp} -pr DeveloperManual.md README.md Readme.html \
+%if 0%{?rhel} && 0%{?rhel} <= 6
+ AUTHORS.txt ASL-2.0.txt Rx/v2/license.txt \
+%endif
+ projects/doxygen/html %{buildroot}%{_pkgdocdir}
+%{_bindir}/find %{buildroot}%{_pkgdocdir} -type f | \
+ %{_bindir}/xargs %{__chmod} -c 0644
+%{_bindir}/find %{buildroot}%{_pkgdocdir} -type d | \
+ %{_bindir}/xargs %{__chmod} -c 0755
+%{_sbindir}/hardlink -fv %{buildroot}%{_pkgdocdir}
+
+
+%check
+# Checks are run single-threaded on purpose, because they may
+# exhaust memory of Koji workers otherwise. The timeout is set
+# to be a day for preventing them to time out to soon on Koji.
+pushd build/test
+%{_bindir}/ctest3 %{?_smp_mflags} -V --timeout 86400
+popd
+
+
+%files devel
+%if 0%{?fedora} || 0%{?rhel} >= 7
+%license AUTHORS.txt
+%license ASL-2.0.txt
+%license Rx/v2/license.txt
+%else
+%doc %{_pkgdocdir}/AUTHORS.txt
+%doc %{_pkgdocdir}/ASL-2.0.txt
+%doc %{_pkgdocdir}/license.txt
+%endif
+%doc %dir %{_pkgdocdir}
+%doc %{_pkgdocdir}/DeveloperManual.md
+%doc %{_pkgdocdir}/README.md
+%doc %{_pkgdocdir}/Readme.html
+%{_includedir}/%{lc_name}
+
+
+%files doc
+%if 0%{?fedora} || 0%{?rhel} >= 7
+%license %{_datadir}/licenses/%{name}-devel*
+%endif
+%doc %{_pkgdocdir}
+
+
+%changelog
+* Fri May 18 2018 Björn Esser <besser82(a)fedoraproject.org> - 4.0.0-1
+- Initial import (rhbz#1579523)
+
+* Wed May 02 2018 Björn Esser <besser82(a)fedoraproject.org> - 4.0.0-0.1
+- Initial rpm release (rhbz#1579523)
diff --git a/sources b/sources
new file mode 100644
index 0000000..1c10588
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (RxCpp-4.0.0.tar.gz) = df7582925e749fb7f9fbc085566d57a46571e18202aacaa7d35cf9da8152b29dd2886b2d07dae93e538f2a0f7b91d93fb3da23c34c7ea4467772515c794a25b7
5 years, 10 months
Architecture specific change in rpms/RxCpp.git
by githook-noreply@fedoraproject.org
The package rpms/RxCpp.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/RxCpp.git/commit/?id=53a3580717e7....
Change:
+%ifnarch %{power64}
Thanks.
Full change:
============
commit 53a3580717e7927c0455fb4d5885d20a5b3bd562
Author: Björn Esser <besser82(a)fedoraproject.org>
Date: Fri May 18 19:41:39 2018 +0200
Initial import (rhbz#1579523)
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d594513
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/RxCpp-4.0.0.tar.gz
diff --git a/RxCpp-4.0.0-to_master.patch b/RxCpp-4.0.0-to_master.patch
new file mode 100644
index 0000000..61fc73a
--- /dev/null
+++ b/RxCpp-4.0.0-to_master.patch
@@ -0,0 +1,2908 @@
+From b0e30f09e66f682d87e675e11f3a03db49c237b3 Mon Sep 17 00:00:00 2001
+From: Kirk Shoop <kirk.shoop(a)microsoft.com>
+Date: Wed, 22 Mar 2017 19:45:30 -0700
+Subject: [PATCH 01/29] Update README.md
+
+---
+ README.md | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/README.md b/README.md
+index 39b67ef09..e8b782486 100644
+--- a/README.md
++++ b/README.md
+@@ -7,7 +7,7 @@ Linux & OSX | [![Linux & Osx Status](http://img.shields.io/travis/Reactive-Exten
+
+ Source | Badges |
+ ------------- | :--------------- |
+-Github | [![GitHub license](https://img.shields.io/github/license/Reactive-Extensions/RxCpp.... <br/> [![GitHub release](https://img.shields.io/github/release/Reactive-Extensions/RxCpp.... <br/> [![GitHub commits](https://img.shields.io/github/commits-since/Reactive-Extensions/...
++Github | [![GitHub license](https://img.shields.io/github/license/Reactive-Extensions/RxCpp.... <br/> [![GitHub release](https://img.shields.io/github/release/Reactive-Extensions/RxCpp.... <br/> [![GitHub commits](https://img.shields.io/github/commits-since/Reactive-Extensions/...
+ Gitter.im | [![Join in on gitter.im](https://img.shields.io/gitter/room/Reactive-Extensions/RxCpp.svg?style=flat-square)](https://gitter.im/Reactive-Extensions/RxCpp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+ Packages | [![NuGet version](http://img.shields.io/nuget/v/RxCpp.svg?style=flat-square)](http... [![vcpkg port](https://img.shields.io/badge/vcpkg-port-blue.svg?style=flat-square)...
+ Documentation | [![rxcpp doxygen documentation](https://img.shields.io/badge/rxcpp-latest-brightgreen.svg?style=flat-square)](http://reactive-extensions.github.io/RxCpp) <br/> [![reactivex intro](https://img.shields.io/badge/reactivex.io-intro-brightgreen.svg?style=flat-square)](http://reactivex.io/intro.html) [![rx marble diagrams](https://img.shields.io/badge/rxmarbles-diagrams-brightgreen.svg...
+
+From 00fdd5b890664222e1b8dca317907950eea1f8f6 Mon Sep 17 00:00:00 2001
+From: Grigoriy Chudnov <g.chudnov(a)gmail.com>
+Date: Thu, 30 Mar 2017 17:22:35 +0300
+Subject: [PATCH 02/29] appveyor vs2017 image update (#365)
+
+* appveyor vs2017 image update
+
+* update appveyor config
+---
+ appveyor.yml | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/appveyor.yml b/appveyor.yml
+index 97e26a369..68ea4349b 100644
+--- a/appveyor.yml
++++ b/appveyor.yml
+@@ -6,13 +6,16 @@ branches:
+ - master
+ - appveyor
+
+-image: Visual Studio 2017 RC
++image: Visual Studio 2017
+
+ environment:
+ matrix:
+- - VSVER: Visual Studio 12 2013 Win64
+- - VSVER: Visual Studio 14 2015 Win64
+- - VSVER: Visual Studio 15 2017 Win64
++ - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
++ VSVER: Visual Studio 12 2013 Win64
++ - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
++ VSVER: Visual Studio 14 2015 Win64
++ - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
++ VSVER: Visual Studio 15 2017 Win64
+
+ platform:
+ - x64
+
+From e024142dc3b23c229e6b375fdf7c5516df7c8437 Mon Sep 17 00:00:00 2001
+From: Anatoly Shirokov <anatoly.shirokov(a)gmail.com>
+Date: Thu, 30 Mar 2017 18:42:44 +0300
+Subject: [PATCH 03/29] fixed
+ https://github.com/Reactive-Extensions/RxCpp/issues/366
+
+---
+ Rx/v2/src/rxcpp/schedulers/rx-test.hpp | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/Rx/v2/src/rxcpp/schedulers/rx-test.hpp b/Rx/v2/src/rxcpp/schedulers/rx-test.hpp
+index 86d426aaa..3f73e526a 100644
+--- a/Rx/v2/src/rxcpp/schedulers/rx-test.hpp
++++ b/Rx/v2/src/rxcpp/schedulers/rx-test.hpp
+@@ -340,8 +340,9 @@ class hot_observable
+ template<class T>
+ rxt::testable_observable<T> test_type::make_hot_observable(std::vector<rxn::recorded<std::shared_ptr<rxn::detail::notification_base<T>>>> messages) const
+ {
+- return rxt::testable_observable<T>(
+- std::make_shared<hot_observable<T>>(state, create_worker(composite_subscription()), std::move(messages)));
++ auto worker = create_worker(composite_subscription());
++ auto shared = std::make_shared<hot_observable<T>>(state, worker, std::move(messages));
++ return rxt::testable_observable<T>(shared);
+ }
+
+ template<class F>
+
+From 201dd99b6494564c9e8990d0a5c32b23431128d4 Mon Sep 17 00:00:00 2001
+From: Kirk Shoop <kirk.shoop(a)microsoft.com>
+Date: Mon, 10 Apr 2017 16:03:58 -0700
+Subject: [PATCH 04/29] Kirkshoop/filterimprovement (#371)
+
+* filter: mutable predicate and value forwarding
+
+* add as_const to protect predicate from stealing
+---
+ Rx/v2/src/rxcpp/operators/rx-filter.hpp | 11 ++++++----
+ Rx/v2/src/rxcpp/rx-util.hpp | 38 +++++++++++++++++++++------------
+ 2 files changed, 31 insertions(+), 18 deletions(-)
+
+diff --git a/Rx/v2/src/rxcpp/operators/rx-filter.hpp b/Rx/v2/src/rxcpp/operators/rx-filter.hpp
+index ef6e133d9..86ce64920 100644
+--- a/Rx/v2/src/rxcpp/operators/rx-filter.hpp
++++ b/Rx/v2/src/rxcpp/operators/rx-filter.hpp
+@@ -58,22 +58,25 @@ struct filter
+ typedef rxu::decay_t<Subscriber> dest_type;
+ typedef observer<value_type, this_type> observer_type;
+ dest_type dest;
+- test_type test;
++ mutable test_type test;
+
+ filter_observer(dest_type d, test_type t)
+ : dest(std::move(d))
+ , test(std::move(t))
+ {
+ }
+- void on_next(source_value_type v) const {
++
++ template <class Value>
++ void on_next(Value&& v) const {
+ auto filtered = on_exception([&](){
+- return !this->test(v);},
++ return !this->test(rxu::as_const(v));
++ },
+ dest);
+ if (filtered.empty()) {
+ return;
+ }
+ if (!filtered.get()) {
+- dest.on_next(v);
++ dest.on_next(std::forward<Value>(v));
+ }
+ }
+ void on_error(std::exception_ptr e) const {
+diff --git a/Rx/v2/src/rxcpp/rx-util.hpp b/Rx/v2/src/rxcpp/rx-util.hpp
+index 77e0d3fcb..9c6534fc6 100644
+--- a/Rx/v2/src/rxcpp/rx-util.hpp
++++ b/Rx/v2/src/rxcpp/rx-util.hpp
+@@ -51,6 +51,16 @@ typename std::enable_if<!std::is_array<T0>::value && std::is_pod<T0>::value, std
+ return to_vector({t0, tn...});
+ }
+
++// lifted from https://github.com/ericniebler/range-v3/blob/630fc70baa07cbfd222f329e44a3...
++// removed constexpr & noexcept to support older VC compilers
++template<typename T>
++/*constexpr*/ T const &as_const(T & t) /*noexcept*/
++{
++ return t;
++}
++template<typename T>
++void as_const(T const &&) = delete;
++
+ template<class T, T... ValueN>
+ struct values {};
+
+@@ -157,7 +167,7 @@ using types_checked_t = typename types_checked_from<TN...>::type;
+ template<class Types, class =types_checked>
+ struct expand_value_types { struct type; };
+ template<class... TN>
+-struct expand_value_types<types<TN...>, types_checked_t<typename std::decay<TN>::type::value_type...>>
++struct expand_value_types<types<TN...>, types_checked_t<typename std::decay<TN>::type::value_type...>>
+ {
+ using type = types<typename std::decay<TN>::type::value_type...>;
+ };
+@@ -517,7 +527,7 @@ inline std::string what(std::exception_ptr ep) {
+ }
+ return std::string();
+ }
+-
++
+ namespace detail {
+
+ template <class T>
+@@ -754,7 +764,7 @@ struct is_string : std::false_type {
+ };
+
+ template <typename T>
+-struct is_string<T,
++struct is_string<T,
+ typename types_checked_from<
+ typename T::value_type,
+ typename T::traits_type,
+@@ -796,32 +806,32 @@ namespace rxu=util;
+
+
+ //
+-// due to an noisy static_assert issue in more than one std lib impl,
+-// rxcpp maintains a whitelist filter for the types that are allowed
++// due to an noisy static_assert issue in more than one std lib impl,
++// rxcpp maintains a whitelist filter for the types that are allowed
+ // to be hashed. this allows is_hashable<T> to work.
+ //
+ // NOTE: this should eventually be removed!
+ //
+-template <class T, typename = void>
++template <class T, typename = void>
+ struct filtered_hash;
+
+ #if RXCPP_HASH_ENUM
+-template <class T>
++template <class T>
+ struct filtered_hash<T, typename std::enable_if<std::is_enum<T>::value>::type> : std::hash<T> {
+ };
+ #elif RXCPP_HASH_ENUM_UNDERLYING
+-template <class T>
++template <class T>
+ struct filtered_hash<T, typename std::enable_if<std::is_enum<T>::value>::type> : std::hash<typename std::underlying_type<T>::type> {
+ };
+ #endif
+
+-template <class T>
++template <class T>
+ struct filtered_hash<T, typename std::enable_if<std::is_integral<T>::value>::type> : std::hash<T> {
+ };
+-template <class T>
++template <class T>
+ struct filtered_hash<T, typename std::enable_if<std::is_pointer<T>::value>::type> : std::hash<T> {
+ };
+-template <class T>
++template <class T>
+ struct filtered_hash<T, typename std::enable_if<rxu::is_string<T>::value>::type> : std::hash<T> {
+ };
+ template <class T>
+@@ -850,10 +860,10 @@ struct is_hashable
+ : std::false_type {};
+
+ template<typename T>
+-struct is_hashable<T,
++struct is_hashable<T,
+ typename rxu::types_checked_from<
+- typename filtered_hash<T>::result_type,
+- typename filtered_hash<T>::argument_type,
++ typename filtered_hash<T>::result_type,
++ typename filtered_hash<T>::argument_type,
+ typename std::result_of<filtered_hash<T>(T)>::type>::type>
+ : std::true_type {};
+
+
+From b41b15f1daf97519433742ff86adad9d0ae8acdd Mon Sep 17 00:00:00 2001
+From: Kirk Shoop <kirk.shoop(a)microsoft.com>
+Date: Mon, 10 Apr 2017 22:33:25 -0700
+Subject: [PATCH 05/29] fix async lifetime in window_toggle (#372)
+
+---
+ Rx/v2/src/rxcpp/operators/rx-window_toggle.hpp | 4 +++-
+ Rx/v2/test/operators/window_toggle.cpp | 4 ++--
+ 2 files changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/Rx/v2/src/rxcpp/operators/rx-window_toggle.hpp b/Rx/v2/src/rxcpp/operators/rx-window_toggle.hpp
+index 1460feba3..c17d4bccd 100644
+--- a/Rx/v2/src/rxcpp/operators/rx-window_toggle.hpp
++++ b/Rx/v2/src/rxcpp/operators/rx-window_toggle.hpp
+@@ -120,6 +120,8 @@ struct window_toggle
+ localState->dest.remove(innerscope);
+ });
+
++ localState->dest.add(localState->cs);
++
+ auto source = on_exception(
+ [&](){return localState->coordinator.in(localState->openings);},
+ localState->dest);
+@@ -252,7 +254,7 @@ struct window_toggle
+
+ static subscriber<T, observer_type> make(dest_type d, window_toggle_values v) {
+ auto cs = composite_subscription();
+- auto coordinator = v.coordination.create_coordinator();
++ auto coordinator = v.coordination.create_coordinator(d.get_subscription());
+
+ return make_subscriber<T>(cs, observer_type(this_type(cs, std::move(d), std::move(v), std::move(coordinator))));
+ }
+diff --git a/Rx/v2/test/operators/window_toggle.cpp b/Rx/v2/test/operators/window_toggle.cpp
+index fc9088ba2..b85c1baac 100644
+--- a/Rx/v2/test/operators/window_toggle.cpp
++++ b/Rx/v2/test/operators/window_toggle.cpp
+@@ -35,7 +35,7 @@ SCENARIO("window toggle, basic", "[window_toggle][operators]"){
+
+ WHEN("ints are split into windows"){
+ using namespace std::chrono;
+-
++
+ int wi = 0;
+
+ auto res = w.start(
+@@ -310,7 +310,7 @@ SCENARIO("window toggle, disposed", "[window_toggle][operators]"){
+
+ THEN("there was one subscription and one unsubscription to the observable"){
+ auto required = rxu::to_vector({
+- o_on.subscribe(200, 590)
++ o_on.subscribe(200, 420)
+ });
+ auto actual = xs.subscriptions();
+ REQUIRE(required == actual);
+
+From 18e8de22bbea8e295a80d9398599d50aa3e5be53 Mon Sep 17 00:00:00 2001
+From: Michael Maier <maiermic(a)users.noreply.github.com>
+Date: Thu, 27 Apr 2017 01:06:19 +0200
+Subject: [PATCH 06/29] subscribe in reverse order to observables (#375)
+
+---
+ Rx/v2/src/rxcpp/operators/rx-with_latest_from.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Rx/v2/src/rxcpp/operators/rx-with_latest_from.hpp b/Rx/v2/src/rxcpp/operators/rx-with_latest_from.hpp
+index bce0596d4..febba994c 100644
+--- a/Rx/v2/src/rxcpp/operators/rx-with_latest_from.hpp
++++ b/Rx/v2/src/rxcpp/operators/rx-with_latest_from.hpp
+@@ -193,7 +193,7 @@ struct with_latest_from : public operator_base<rxu::value_type_t<with_latest_fro
+ }
+ template<class State, int... IndexN>
+ void subscribe_all(std::shared_ptr<State> state, rxu::values<int, IndexN...>) const {
+- bool subscribed[] = {(subscribe_one<IndexN>(state), true)...};
++ bool subscribed[] = {(subscribe_one<(sizeof...(IndexN)) - 1 - IndexN>(state), true)...};
+ subscribed[0] = (*subscribed); // silence warning
+ }
+
+
+From 2caf64951c1505bf7511c72d8c245d929a2aecbc Mon Sep 17 00:00:00 2001
+From: Paul Esson <paul.esson(a)gmail.com>
+Date: Thu, 25 May 2017 15:36:23 +1000
+Subject: [PATCH 07/29] Update DeveloperManual.md (#380)
+
+Fix headings so they work with the Github markdown parser
+---
+ DeveloperManual.md | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/DeveloperManual.md b/DeveloperManual.md
+index 2d10b75e8..3ce4c2874 100644
+--- a/DeveloperManual.md
++++ b/DeveloperManual.md
+@@ -1,6 +1,6 @@
+-#Developer Manual
++# Developer Manual
+
+-##Some comments on the scheduler system
++## Some comments on the scheduler system
+
+ The scheduler in rxcpp v2 is based on the scheduler and worker constructs that *RxJava* uses (Eric Meijer was involved) The docs for *RxJava* will have an explanation for ```scheduler``` and ```worker```. RxCpp adds ```schedulable```, ```coordination``` and ```coordinator```.
+
+
+From a1730f951348b602d5dee0643daafad6a913f7c7 Mon Sep 17 00:00:00 2001
+From: ZINEKS <wutiantong(a)icloud.com>
+Date: Mon, 5 Jun 2017 22:33:57 +0800
+Subject: [PATCH 08/29] Add get_subscription() for subject (#381)
+
+---
+ Rx/v2/src/rxcpp/subjects/rx-subject.hpp | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/Rx/v2/src/rxcpp/subjects/rx-subject.hpp b/Rx/v2/src/rxcpp/subjects/rx-subject.hpp
+index 066f1527b..a77c0c4e8 100644
+--- a/Rx/v2/src/rxcpp/subjects/rx-subject.hpp
++++ b/Rx/v2/src/rxcpp/subjects/rx-subject.hpp
+@@ -254,6 +254,10 @@ class subject
+ return s.has_observers();
+ }
+
++ composite_subscription get_subscription() const {
++ return s.get_subscription();
++ }
++
+ subscriber_type get_subscriber() const {
+ return s.get_subscriber();
+ }
+
+From 1d75538fa780e530bcd724433257c65b3fe36b29 Mon Sep 17 00:00:00 2001
+From: Kirk Shoop <kirk.shoop(a)microsoft.com>
+Date: Thu, 15 Jun 2017 07:06:24 -0700
+Subject: [PATCH 09/29] disambiguate onerror from onnext (#383)
+
+---
+ Rx/v2/src/rxcpp/rx-observer.hpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Rx/v2/src/rxcpp/rx-observer.hpp b/Rx/v2/src/rxcpp/rx-observer.hpp
+index 39f427ed6..62aed3cfd 100644
+--- a/Rx/v2/src/rxcpp/rx-observer.hpp
++++ b/Rx/v2/src/rxcpp/rx-observer.hpp
+@@ -495,6 +495,7 @@ auto make_observer(OnNext on)
+ template<class T, class DefaultOnError = detail::OnErrorEmpty, class OnError>
+ auto make_observer(OnError oe)
+ -> typename std::enable_if<
++ !detail::is_on_next_of<T, OnError>::value &&
+ detail::is_on_error<OnError>::value,
+ observer<T, detail::stateless_observer_tag, detail::OnNextEmpty<T>, OnError>>::type {
+ return observer<T, detail::stateless_observer_tag, detail::OnNextEmpty<T>, OnError>(
+
+From 5aea424898994b3d409db268486202244cfe5053 Mon Sep 17 00:00:00 2001
+From: Grigoriy Chudnov <g.chudnov(a)gmail.com>
+Date: Sat, 15 Jul 2017 01:49:47 +0300
+Subject: [PATCH 10/29] fix timeout when no items are emitted (#387)
+
+---
+ Rx/v2/src/rxcpp/operators/rx-timeout.hpp | 14 ++++++++++++++
+ Rx/v2/test/operators/timeout.cpp | 18 +++++++++++-------
+ 2 files changed, 25 insertions(+), 7 deletions(-)
+
+diff --git a/Rx/v2/src/rxcpp/operators/rx-timeout.hpp b/Rx/v2/src/rxcpp/operators/rx-timeout.hpp
+index 6750e34e4..841df12f9 100644
+--- a/Rx/v2/src/rxcpp/operators/rx-timeout.hpp
++++ b/Rx/v2/src/rxcpp/operators/rx-timeout.hpp
+@@ -126,6 +126,20 @@ struct timeout
+ localState->cs.add([=](){
+ localState->worker.schedule(selectedDisposer.get());
+ });
++
++ auto work = [v, localState](const rxsc::schedulable&) {
++ auto new_id = ++localState->index;
++ auto produce_time = localState->worker.now() + localState->period;
++
++ localState->worker.schedule(produce_time, produce_timeout(new_id, localState));
++ };
++ auto selectedWork = on_exception(
++ [&](){return localState->coordinator.act(work);},
++ localState->dest);
++ if (selectedWork.empty()) {
++ return;
++ }
++ localState->worker.schedule(selectedWork.get());
+ }
+
+ static std::function<void(const rxsc::schedulable&)> produce_timeout(std::size_t id, state_type state) {
+diff --git a/Rx/v2/test/operators/timeout.cpp b/Rx/v2/test/operators/timeout.cpp
+index 3005209d9..dbbea6c5d 100644
+--- a/Rx/v2/test/operators/timeout.cpp
++++ b/Rx/v2/test/operators/timeout.cpp
+@@ -3,13 +3,15 @@
+
+ using namespace std::chrono;
+
+-SCENARIO("should not timeout if the source never emits any items", "[timeout][operators]"){
++SCENARIO("should timeout if the source never emits any items", "[timeout][operators]"){
+ GIVEN("a source"){
+ auto sc = rxsc::make_test();
+ auto so = rx::synchronize_in_one_worker(sc);
+ auto w = sc.create_worker();
+ const rxsc::test::messages<int> on;
+
++ rxcpp::timeout_error ex("timeout has occurred");
++
+ auto xs = sc.make_hot_observable({
+ on.next(150, 1)
+ });
+@@ -23,15 +25,17 @@ SCENARIO("should not timeout if the source never emits any items", "[timeout][op
+ }
+ );
+
+- THEN("the output is empty"){
+- auto required = std::vector<rxsc::test::messages<int>::recorded_type>();
++ THEN("the error notification message is captured"){
++ auto required = rxu::to_vector({
++ on.error(211, ex)
++ });
+ auto actual = res.get_observer().messages();
+ REQUIRE(required == actual);
+ }
+
+ THEN("there was 1 subscription/unsubscription to the source"){
+ auto required = rxu::to_vector({
+- on.subscribe(200, 1001)
++ on.subscribe(200, 212)
+ });
+ auto actual = xs.subscriptions();
+ REQUIRE(required == actual);
+@@ -40,7 +44,7 @@ SCENARIO("should not timeout if the source never emits any items", "[timeout][op
+ }
+ }
+
+-SCENARIO("should not timeout if the source observable is empty", "[timeout][operators]"){
++SCENARIO("should not timeout if completed before the specified timeout duration", "[timeout][operators]"){
+ GIVEN("a source"){
+ auto sc = rxsc::make_test();
+ auto so = rx::synchronize_in_one_worker(sc);
+@@ -56,7 +60,7 @@ SCENARIO("should not timeout if the source observable is empty", "[timeout][oper
+
+ auto res = w.start(
+ [so, xs]() {
+- return xs.timeout(so, milliseconds(10));
++ return xs.timeout(so, milliseconds(100));
+ }
+ );
+
+@@ -189,7 +193,7 @@ SCENARIO("should not timeout if there is an error", "[timeout][operators]"){
+
+ auto res = w.start(
+ [so, xs]() {
+- return xs.timeout(milliseconds(40), so);
++ return xs.timeout(milliseconds(100), so);
+ }
+ );
+
+
+From fea65be680234ba0677b84223de5563716b5c1aa Mon Sep 17 00:00:00 2001
+From: Kirk Shoop <kirk.shoop(a)microsoft.com>
+Date: Thu, 20 Jul 2017 16:28:54 -0700
+Subject: [PATCH 11/29] std::unexpected has been deprecated
+
+---
+ Rx/v2/src/rxcpp/rx-util.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Rx/v2/src/rxcpp/rx-util.hpp b/Rx/v2/src/rxcpp/rx-util.hpp
+index 9c6534fc6..97ff73f92 100644
+--- a/Rx/v2/src/rxcpp/rx-util.hpp
++++ b/Rx/v2/src/rxcpp/rx-util.hpp
+@@ -693,7 +693,7 @@ class unwinder
+ try {
+ (*function)();
+ } catch (...) {
+- std::unexpected();
++ std::terminate();
+ }
+ }
+ }
+
+From 139f190166912b01e0cf31efcc3518d0f5d8a3d6 Mon Sep 17 00:00:00 2001
+From: Daniel Rees <drees(a)developertown.com>
+Date: Sun, 23 Jul 2017 18:37:38 -0400
+Subject: [PATCH 12/29] Typo in rx-never documentation
+
+changed "rx-naver.hpp" to "rx-never.hpp"
+---
+ Rx/v2/src/rxcpp/sources/rx-never.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Rx/v2/src/rxcpp/sources/rx-never.hpp b/Rx/v2/src/rxcpp/sources/rx-never.hpp
+index cd6f4d03d..ea343996d 100644
+--- a/Rx/v2/src/rxcpp/sources/rx-never.hpp
++++ b/Rx/v2/src/rxcpp/sources/rx-never.hpp
+@@ -7,7 +7,7 @@
+
+ #include "../rx-includes.hpp"
+
+-/*! \file rx-naver.hpp
++/*! \file rx-never.hpp
+
+ \brief Returns an observable that never sends any items or notifications to observer.
+
+
+From 5b7b2a5519f712a7831053865a4ae6082dac4ed5 Mon Sep 17 00:00:00 2001
+From: Peter Majchrak <petoknm(a)gmail.com>
+Date: Sat, 22 Jul 2017 19:37:05 +0200
+Subject: [PATCH 13/29] Add 'include' to the install path of the headers
+
+---
+ projects/CMake/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/projects/CMake/CMakeLists.txt b/projects/CMake/CMakeLists.txt
+index 6130d0591..7230ca782 100644
+--- a/projects/CMake/CMakeLists.txt
++++ b/projects/CMake/CMakeLists.txt
+@@ -133,5 +133,5 @@ SET_TARGET_PROPERTIES(RxCpp PROPERTIES LINKER_LANGUAGE CXX)
+
+ set(CMAKE_SKIP_INSTALL_ALL_DEPENDENCY TRUE CACHE BOOL "Don't require all projects to be built in order to install" FORCE)
+
+-install(DIRECTORY ${RXCPP_DIR}/Rx/v2/src/rxcpp/ DESTINATION rxcpp
++install(DIRECTORY ${RXCPP_DIR}/Rx/v2/src/rxcpp/ DESTINATION include/rxcpp
+ FILES_MATCHING PATTERN "*.hpp")
+
+From 7d9859639c3abcf80d6a424dd3cffea8f11c7738 Mon Sep 17 00:00:00 2001
+From: Kirk Shoop <kirk.shoop(a)microsoft.com>
+Date: Fri, 1 Sep 2017 17:15:10 -0700
+Subject: [PATCH 14/29] shutdown event loop threads (#394)
+
+attempt to fix #393
+use event_loop lifetime to unsubscribe from new_thread workers
+
+tested with all the perf tests, but messing with thread lifetime can
+break existing code.
+---
+ Rx/v2/src/rxcpp/schedulers/rx-eventloop.hpp | 16 ++++++++++++----
+ Rx/v2/src/rxcpp/schedulers/rx-newthread.hpp | 18 ++++++++----------
+ 2 files changed, 20 insertions(+), 14 deletions(-)
+
+diff --git a/Rx/v2/src/rxcpp/schedulers/rx-eventloop.hpp b/Rx/v2/src/rxcpp/schedulers/rx-eventloop.hpp
+index da45e8d94..4f837670b 100644
+--- a/Rx/v2/src/rxcpp/schedulers/rx-eventloop.hpp
++++ b/Rx/v2/src/rxcpp/schedulers/rx-eventloop.hpp
+@@ -30,15 +30,21 @@ struct event_loop : public scheduler_interface
+
+ composite_subscription lifetime;
+ worker controller;
++ std::shared_ptr<const scheduler_interface> alive;
+
+ public:
+ virtual ~loop_worker()
+ {
+ }
+- loop_worker(composite_subscription cs, worker w)
++ loop_worker(composite_subscription cs, worker w, std::shared_ptr<const scheduler_interface> alive)
+ : lifetime(cs)
+ , controller(w)
++ , alive(alive)
+ {
++ auto token = controller.add(cs);
++ cs.add([token, w](){
++ w.remove(token);
++ });
+ }
+
+ virtual clock_type::time_point now() const {
+@@ -57,6 +63,7 @@ struct event_loop : public scheduler_interface
+ mutable thread_factory factory;
+ scheduler newthread;
+ mutable std::atomic<std::size_t> count;
++ composite_subscription loops_lifetime;
+ std::vector<worker> loops;
+
+ public:
+@@ -69,7 +76,7 @@ struct event_loop : public scheduler_interface
+ {
+ auto remaining = std::max(std::thread::hardware_concurrency(), unsigned(4));
+ while (remaining--) {
+- loops.push_back(newthread.create_worker());
++ loops.push_back(newthread.create_worker(loops_lifetime));
+ }
+ }
+ explicit event_loop(thread_factory tf)
+@@ -79,11 +86,12 @@ struct event_loop : public scheduler_interface
+ {
+ auto remaining = std::max(std::thread::hardware_concurrency(), unsigned(4));
+ while (remaining--) {
+- loops.push_back(newthread.create_worker());
++ loops.push_back(newthread.create_worker(loops_lifetime));
+ }
+ }
+ virtual ~event_loop()
+ {
++ loops_lifetime.unsubscribe();
+ }
+
+ virtual clock_type::time_point now() const {
+@@ -91,7 +99,7 @@ struct event_loop : public scheduler_interface
+ }
+
+ virtual worker create_worker(composite_subscription cs) const {
+- return worker(cs, std::make_shared<loop_worker>(cs, loops[++count % loops.size()]));
++ return worker(cs, std::make_shared<loop_worker>(cs, loops[++count % loops.size()], this->shared_from_this()));
+ }
+ };
+
+diff --git a/Rx/v2/src/rxcpp/schedulers/rx-newthread.hpp b/Rx/v2/src/rxcpp/schedulers/rx-newthread.hpp
+index c68399634..e31ed5511 100644
+--- a/Rx/v2/src/rxcpp/schedulers/rx-newthread.hpp
++++ b/Rx/v2/src/rxcpp/schedulers/rx-newthread.hpp
+@@ -37,16 +37,6 @@ struct new_thread : public scheduler_interface
+
+ virtual ~new_worker_state()
+ {
+- std::unique_lock<std::mutex> guard(lock);
+- if (worker.joinable() && worker.get_id() != std::this_thread::get_id()) {
+- lifetime.unsubscribe();
+- guard.unlock();
+- worker.join();
+- }
+- else {
+- lifetime.unsubscribe();
+- worker.detach();
+- }
+ }
+
+ explicit new_worker_state(composite_subscription cs)
+@@ -84,6 +74,14 @@ struct new_thread : public scheduler_interface
+ auto expired = std::move(keepAlive->q);
+ if (!keepAlive->q.empty()) std::terminate();
+ keepAlive->wake.notify_one();
++
++ if (keepAlive->worker.joinable() && keepAlive->worker.get_id() != std::this_thread::get_id()) {
++ guard.unlock();
++ keepAlive->worker.join();
++ }
++ else {
++ keepAlive->worker.detach();
++ }
+ });
+
+ state->worker = tf([keepAlive](){
+
+From de1df9fb30aa2951752a6c8fa39cc8f78916cbe5 Mon Sep 17 00:00:00 2001
+From: Eric Niebler <eniebler(a)boost.org>
+Date: Mon, 11 Sep 2017 16:23:44 -0700
+Subject: [PATCH 15/29] Correct prefix for test executables (#398)
+
+---
+ README.md | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/README.md b/README.md
+index e8b782486..8106c4ae8 100644
+--- a/README.md
++++ b/README.md
+@@ -212,11 +212,11 @@ The build only produces test and example binaries.
+ # Running tests
+
+ * You can use the CMake test runner `ctest`
+-* You can run the test binaries directly `rxcppv2_test_*`
++* You can run the test binaries directly `rxcpp_test_*`
+ * Tests can be selected by name or tag
+ Example of by-tag
+
+-`rxcppv2_test_subscription [perf]`
++`rxcpp_test_subscription [perf]`
+
+ # Documentation
+
+
+From e9931b7813ca96f54575768cfdeb998c4f15ed10 Mon Sep 17 00:00:00 2001
+From: Eric Niebler <eniebler(a)boost.org>
+Date: Mon, 11 Sep 2017 10:43:31 -0700
+Subject: [PATCH 16/29] Fix clang-trunk -Wunused-lambda-capture warnings
+
+---
+ Rx/v2/test/operators/group_by.cpp | 6 +++---
+ Rx/v2/test/operators/pairwise.cpp | 2 +-
+ Rx/v2/test/subjects/subject.cpp | 24 ++++++++++++------------
+ 3 files changed, 16 insertions(+), 16 deletions(-)
+
+diff --git a/Rx/v2/test/operators/group_by.cpp b/Rx/v2/test/operators/group_by.cpp
+index 606d7dfaf..2c7c177f9 100644
+--- a/Rx/v2/test/operators/group_by.cpp
++++ b/Rx/v2/test/operators/group_by.cpp
+@@ -47,13 +47,13 @@ SCENARIO("range partitioned by group_by across hardware threads to derive pi", "
+ [](work w) -> int {return w.index % std::thread::hardware_concurrency();},
+ [](work w){return w;}).
+ map(
+- [=, &c](rxcpp::grouped_observable<int, work> onproc) {
++ [=](rxcpp::grouped_observable<int, work> onproc) {
+ auto key = onproc.get_key();
+ // share a producer thread across all the ranges in this group of chunks
+ auto producerthread = rxcpp::observe_on_one_worker(rxcpp::observe_on_new_thread().create_coordinator().get_scheduler());
+ return onproc.
+ map(
+- [=, &c](work w){
++ [=](work w){
+ std::stringstream message;
+ message << std::setw(3) << w.index << ": range - " << w.first << "-" << w.last;
+
+@@ -123,7 +123,7 @@ SCENARIO("range partitioned by dividing work across hardware threads to derive p
+ return work{index, first, last};
+ }).
+ map(
+- [=, &c](work w){
++ [=](work w){
+ std::stringstream message;
+ message << std::setw(3) << w.index << ": range - " << w.first << "-" << w.last;
+
+diff --git a/Rx/v2/test/operators/pairwise.cpp b/Rx/v2/test/operators/pairwise.cpp
+index 7ba0c42c7..c28ae32c4 100644
+--- a/Rx/v2/test/operators/pairwise.cpp
++++ b/Rx/v2/test/operators/pairwise.cpp
+@@ -21,7 +21,7 @@ SCENARIO("pairwise - enough items to create pairs", "[pairwise][operators]") {
+ WHEN("taken pairwise") {
+
+ auto res = w.start(
+- [xs, &invoked]() {
++ [xs]() {
+ return xs
+ | rxo::pairwise()
+ // forget type to workaround lambda deduction bug on msvc 2013
+diff --git a/Rx/v2/test/subjects/subject.cpp b/Rx/v2/test/subjects/subject.cpp
+index 79eb31f82..b6c6d67a8 100644
+--- a/Rx/v2/test/subjects/subject.cpp
++++ b/Rx/v2/test/subjects/subject.cpp
+@@ -138,7 +138,7 @@ class async_subscriber
+ };
+ }
+ SCENARIO("for loop calls ready on_next(int)", "[hide][for][asyncobserver][ready][perf]"){
+- const int& onnextcalls = static_onnextcalls;
++ static const int& onnextcalls = static_onnextcalls;
+ GIVEN("a for loop"){
+ WHEN("calling on_next 100 million times"){
+ using namespace std::chrono;
+@@ -152,7 +152,7 @@ SCENARIO("for loop calls ready on_next(int)", "[hide][for][asyncobserver][ready]
+ asyncwithready::async_subscriber<int, decltype(onnext)> scbr(onnext);
+ asyncwithready::ready::onthen_type chunk;
+ int i = 0;
+- chunk = [&chunk, scbr, i, onnextcalls]() mutable {
++ chunk = [&chunk, scbr, i]() mutable {
+ for (; i < onnextcalls && scbr.is_subscribed(); i++) {
+ auto controller = scbr.on_next(i);
+ if (!controller.is_ready()) {
+@@ -225,13 +225,13 @@ SCENARIO("for loop calls observer", "[hide][for][observer][perf]"){
+ using namespace std::chrono;
+ typedef steady_clock clock;
+
+- int& c = aliased;
++ static int& c = aliased;
+ int n = 1;
+
+ c = 0;
+ auto start = clock::now();
+ auto o = rx::make_observer<int>(
+- [&c](int){++c;},
++ [](int){++c;},
+ [](std::exception_ptr){abort();});
+ for (int i = 0; i < onnextcalls; i++) {
+ o.on_next(i);
+@@ -251,13 +251,13 @@ SCENARIO("for loop calls subscriber", "[hide][for][subscriber][perf]"){
+ using namespace std::chrono;
+ typedef steady_clock clock;
+
+- int& c = aliased;
++ static int& c = aliased;
+ int n = 1;
+
+ c = 0;
+ auto start = clock::now();
+ auto o = rx::make_subscriber<int>(
+- [&c](int){++c;},
++ [](int){++c;},
+ [](std::exception_ptr){abort();});
+ for (int i = 0; i < onnextcalls && o.is_subscribed(); i++) {
+ o.on_next(i);
+@@ -277,14 +277,14 @@ SCENARIO("range calls subscriber", "[hide][range][subscriber][perf]"){
+ using namespace std::chrono;
+ typedef steady_clock clock;
+
+- int& c = aliased;
++ static int& c = aliased;
+ int n = 1;
+
+ c = 0;
+ auto start = clock::now();
+
+ rxs::range<int>(1, onnextcalls).subscribe(
+- [&c](int){
++ [](int){
+ ++c;
+ },
+ [](std::exception_ptr){abort();});
+@@ -297,7 +297,7 @@ SCENARIO("range calls subscriber", "[hide][range][subscriber][perf]"){
+ }
+
+ SCENARIO("for loop calls subject", "[hide][for][subject][subjects][long][perf]"){
+- const int& onnextcalls = static_onnextcalls;
++ static const int& onnextcalls = static_onnextcalls;
+ GIVEN("a for loop and a subject"){
+ WHEN("multicasting a million ints"){
+ using namespace std::chrono;
+@@ -316,7 +316,7 @@ SCENARIO("for loop calls subject", "[hide][for][subject][subjects][long][perf]")
+
+ auto o = sub.get_subscriber();
+
+- o.add(rx::make_subscription([c, n, onnextcalls](){
++ o.add(rx::make_subscription([c, n](){
+ auto expected = n * onnextcalls;
+ REQUIRE(*c == expected);
+ }));
+@@ -371,7 +371,7 @@ SCENARIO("for loop calls subject", "[hide][for][subject][subjects][long][perf]")
+ }
+
+ SCENARIO("range calls subject", "[hide][range][subject][subjects][long][perf]"){
+- const int& onnextcalls = static_onnextcalls;
++ static const int& onnextcalls = static_onnextcalls;
+ GIVEN("a range and a subject"){
+ WHEN("multicasting a million ints"){
+ using namespace std::chrono;
+@@ -389,7 +389,7 @@ SCENARIO("range calls subject", "[hide][range][subject][subjects][long][perf]"){
+
+ auto o = sub.get_subscriber();
+
+- o.add(rx::make_subscription([c, n, onnextcalls](){
++ o.add(rx::make_subscription([c, n](){
+ auto expected = n * onnextcalls;
+ REQUIRE(*c == expected);
+ }));
+
+From f6f7f502cc636c53bb4bf4ae0352b2a6a6c66e6b Mon Sep 17 00:00:00 2001
+From: Kirk Shoop <kirk.shoop(a)microsoft.com>
+Date: Wed, 13 Sep 2017 07:17:15 -0700
+Subject: [PATCH 17/29] remove unused local
+
+---
+ Rx/v2/test/operators/pairwise.cpp | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/Rx/v2/test/operators/pairwise.cpp b/Rx/v2/test/operators/pairwise.cpp
+index c28ae32c4..20f86dd1f 100644
+--- a/Rx/v2/test/operators/pairwise.cpp
++++ b/Rx/v2/test/operators/pairwise.cpp
+@@ -7,7 +7,6 @@ SCENARIO("pairwise - enough items to create pairs", "[pairwise][operators]") {
+ auto w = sc.create_worker();
+ const rxsc::test::messages<int> on;
+ const rxsc::test::messages<std::tuple<int, int>> on_pairwise;
+- long invoked = 0;
+
+ auto xs = sc.make_cold_observable({
+ on.next(180, 1),
+
+From b50f4d63365fb95e0662900116bf56654f4a1a0d Mon Sep 17 00:00:00 2001
+From: Andrei Lebedev <lebdron(a)gmail.com>
+Date: Fri, 15 Sep 2017 20:45:33 +0800
+Subject: [PATCH 18/29] Fix rxcpp::observable<>::from<T>() when T is
+ non-default constructable
+
+---
+ Rx/v2/src/rxcpp/sources/rx-iterate.hpp | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/Rx/v2/src/rxcpp/sources/rx-iterate.hpp b/Rx/v2/src/rxcpp/sources/rx-iterate.hpp
+index cb526b3cc..07f50bf6c 100644
+--- a/Rx/v2/src/rxcpp/sources/rx-iterate.hpp
++++ b/Rx/v2/src/rxcpp/sources/rx-iterate.hpp
+@@ -183,8 +183,8 @@ auto iterate(Collection c, Coordination cn)
+ */
+ template<class T>
+ auto from()
+- -> decltype(iterate(std::array<T, 0>(), identity_immediate())) {
+- return iterate(std::array<T, 0>(), identity_immediate());
++ -> decltype(iterate(std::initializer_list<T>(), identity_immediate())) {
++ return iterate(std::initializer_list<T>(), identity_immediate());
+ }
+ /*! Returns an observable that sends an empty set of values and then completes, on the specified scheduler.
+
+@@ -198,8 +198,8 @@ auto from()
+ template<class T, class Coordination>
+ auto from(Coordination cn)
+ -> typename std::enable_if<is_coordination<Coordination>::value,
+- decltype( iterate(std::array<T, 0>(), std::move(cn)))>::type {
+- return iterate(std::array<T, 0>(), std::move(cn));
++ decltype( iterate(std::initializer_list<T>(), std::move(cn)))>::type {
++ return iterate(std::initializer_list<T>(), std::move(cn));
+ }
+ /*! Returns an observable that sends each value from its arguments list.
+
+
+From 1b2e0589f19cb34d8cd58803677701dcf2161876 Mon Sep 17 00:00:00 2001
+From: Andrei Lebedev <lebdron(a)gmail.com>
+Date: Fri, 15 Sep 2017 20:55:24 +0800
+Subject: [PATCH 19/29] Fix rxcpp::observable<>::range<T>() when T is unsigned
+ type
+
+---
+ Rx/v2/src/rxcpp/sources/rx-range.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Rx/v2/src/rxcpp/sources/rx-range.hpp b/Rx/v2/src/rxcpp/sources/rx-range.hpp
+index d55ffffb2..c56ee1f4e 100644
+--- a/Rx/v2/src/rxcpp/sources/rx-range.hpp
++++ b/Rx/v2/src/rxcpp/sources/rx-range.hpp
+@@ -86,7 +86,7 @@ struct range : public source_base<T>
+ return;
+ }
+
+- if (std::abs(state.last - state.next) < std::abs(state.step)) {
++ if (std::max(state.last, state.next) - std::min(state.last, state.next) < std::abs(state.step)) {
+ if (state.last != state.next) {
+ dest.on_next(state.last);
+ }
+
+From 815e92158e3e0647b96d1331de1ecc5badcde3f8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Martin=20Kodovsk=C3=BD?= <martin.kodovsky(a)gmail.com>
+Date: Sat, 9 Dec 2017 22:39:51 +0100
+Subject: [PATCH 20/29] Add rx-merge-delay-error operator (#417)
+
+* Add rx-merge-delay-error operator
+
+* fix of msvc2013 compilation
+
+* fix #417 comments
+
+Added RXCPP_NOEXCEPT macro; Added doxygen scenarios for composite_exception and merge_delay_error; Fixed composing exception in merge_delay_error operator; Modified test for merge_delay_operator
+
+* #417 fix composite_exception example
+
+* #417 fix merge_delay_error doxygen example
+
+* fix: samples add among others in project doxygen CMakeLists.txt
+
+* fix: composite_exception.cpp example
+---
+ Rx/v2/examples/doxygen/composite_exception.cpp | 31 +++
+ Rx/v2/examples/doxygen/merge_delay_error.cpp | 97 +++++++
+ Rx/v2/src/rxcpp/operators/rx-merge_delay_error.hpp | 304 ++++++++++++++++++++
+ Rx/v2/src/rxcpp/rx-composite_exception.hpp | 34 +++
+ Rx/v2/src/rxcpp/rx-includes.hpp | 7 +
+ Rx/v2/src/rxcpp/rx-observable.hpp | 11 +
+ Rx/v2/src/rxcpp/rx-operators.hpp | 6 +
+ Rx/v2/test/CMakeLists.txt | 1 +
+ Rx/v2/test/operators/merge_delay_error.cpp | 306 +++++++++++++++++++++
+ projects/doxygen/CMakeLists.txt | 2 +
+ 10 files changed, 799 insertions(+)
+ create mode 100644 Rx/v2/examples/doxygen/composite_exception.cpp
+ create mode 100644 Rx/v2/examples/doxygen/merge_delay_error.cpp
+ create mode 100644 Rx/v2/src/rxcpp/operators/rx-merge_delay_error.hpp
+ create mode 100644 Rx/v2/src/rxcpp/rx-composite_exception.hpp
+ create mode 100644 Rx/v2/test/operators/merge_delay_error.cpp
+
+diff --git a/Rx/v2/examples/doxygen/composite_exception.cpp b/Rx/v2/examples/doxygen/composite_exception.cpp
+new file mode 100644
+index 000000000..697b83f65
+--- /dev/null
++++ b/Rx/v2/examples/doxygen/composite_exception.cpp
+@@ -0,0 +1,31 @@
++#include "rxcpp/rx.hpp"
++namespace rxu=rxcpp::util;
++
++#include "rxcpp/rx-test.hpp"
++#include "catch.hpp"
++
++SCENARIO("composite_exception sample"){
++ printf("//! [composite_exception sample]\n");
++ auto o1 = rxcpp::observable<>::error<int>(std::runtime_error("Error from source o1\n"));
++ auto o2 = rxcpp::observable<>::error<int>(std::runtime_error("Error from source o2\n"));
++ auto o3 = rxcpp::observable<>::timer(std::chrono::milliseconds(5)).map([](int) {return 3;});
++ auto values = o1.merge_delay_error(o2, o3);
++ values.
++ subscribe(
++ [](int v){printf("OnNext: %d\n", v);},
++ [](std::exception_ptr composite_e) {
++ printf("OnError %s\n", rxu::what(composite_e).c_str());
++ try { std::rethrow_exception(composite_e); }
++ catch(rxcpp::composite_exception ce) {
++ for(std::exception_ptr particular_e : ce.exceptions) {
++
++ try{ std::rethrow_exception(particular_e); }
++ catch(std::runtime_error error) { printf(" *** %s\n", error.what()); }
++
++ }
++ }
++ },
++ [](){printf("OnCompleted\n");}
++ );
++ printf("//! [composite_exception sample]\n");
++}
+diff --git a/Rx/v2/examples/doxygen/merge_delay_error.cpp b/Rx/v2/examples/doxygen/merge_delay_error.cpp
+new file mode 100644
+index 000000000..8c28cd882
+--- /dev/null
++++ b/Rx/v2/examples/doxygen/merge_delay_error.cpp
+@@ -0,0 +1,97 @@
++#include "rxcpp/rx.hpp"
++namespace rxu=rxcpp::util;
++
++#include "rxcpp/rx-test.hpp"
++#include "catch.hpp"
++
++SCENARIO("merge_delay_error sample"){
++ printf("//! [merge_delay_error sample]\n");
++ auto o1 = rxcpp::observable<>::timer(std::chrono::milliseconds(15)).map([](int) {return 1;});
++ auto o2 = rxcpp::observable<>::error<int>(std::runtime_error("Error from source\n"));
++ auto o3 = rxcpp::observable<>::timer(std::chrono::milliseconds(5)).map([](int) {return 3;});
++ auto values = o1.merge_delay_error(o2, o3);
++ values.
++ subscribe(
++ [](int v){printf("OnNext: %d\n", v);},
++ [](std::exception_ptr eptr) { printf("OnError %s\n", rxu::what(eptr).c_str()); },
++ [](){printf("OnCompleted\n");});
++ printf("//! [merge_delay_error sample]\n");
++}
++
++SCENARIO("implicit merge_delay_error sample"){
++ printf("//! [implicit merge_delay_error sample]\n");
++ auto o1 = rxcpp::observable<>::timer(std::chrono::milliseconds(15)).map([](int) {return 1;});
++ auto o2 = rxcpp::observable<>::error<int>(std::runtime_error("Error from source\n"));
++ auto o3 = rxcpp::observable<>::timer(std::chrono::milliseconds(5)).map([](int) {return 3;});
++ auto base = rxcpp::observable<>::from(o1.as_dynamic(), o2, o3);
++ auto values = base.merge();
++ values.
++ subscribe(
++ [](int v){printf("OnNext: %d\n", v);},
++ [](std::exception_ptr eptr) { printf("OnError %s\n", rxu::what(eptr).c_str()); },
++ [](){printf("OnCompleted\n");});
++ printf("//! [implicit merge_delay_error sample]\n");
++}
++
++std::string get_pid();
++
++SCENARIO("threaded merge_delay_error sample"){
++ printf("//! [threaded merge_delay_error sample]\n");
++ printf("[thread %s] Start task\n", get_pid().c_str());
++ auto o1 = rxcpp::observable<>::timer(std::chrono::milliseconds(10)).map([](int) {
++ printf("[thread %s] Timer1 fired\n", get_pid().c_str());
++ return 1;
++ });
++ auto o2 = rxcpp::observable<>::timer(std::chrono::milliseconds(20)).flat_map([](int) {
++ std::stringstream ss;
++ ss << "[thread " << get_pid().c_str() << "] Timer2 failed\n";
++ printf("%s\n", ss.str().c_str());
++ ss.str(std::string());
++ ss << "(Error from thread: " << get_pid().c_str() << ")\n";
++ return rxcpp::observable<>::error<int>(std::runtime_error(ss.str()));
++ });
++ auto o3 = rxcpp::observable<>::timer(std::chrono::milliseconds(30)).map([](int) {
++ printf("[thread %s] Timer3 fired\n", get_pid().c_str());
++ return 3;
++ });
++ auto values = o1.merge(rxcpp::observe_on_new_thread(), o2, o3);
++ values.
++ as_blocking().
++ subscribe(
++ [](int v){printf("[thread %s] OnNext: %d\n", get_pid().c_str(), v);},
++ [](std::exception_ptr eptr) { printf("[thread %s] OnError %s\n", get_pid().c_str(), rxu::what(eptr).c_str()); },
++ [](){printf("[thread %s] OnCompleted\n", get_pid().c_str());});
++ printf("[thread %s] Finish task\n", get_pid().c_str());
++ printf("//! [threaded merge_delay_error sample]\n");
++}
++
++SCENARIO("threaded implicit merge_delay_error sample"){
++ printf("//! [threaded implicit merge_delay_error sample]\n");
++ printf("[thread %s] Start task\n", get_pid().c_str());
++ auto o1 = rxcpp::observable<>::timer(std::chrono::milliseconds(10)).map([](int) {
++ printf("[thread %s] Timer1 fired\n", get_pid().c_str());
++ return 1;
++ });
++ auto o2 = rxcpp::observable<>::timer(std::chrono::milliseconds(20)).flat_map([](int) {
++ std::stringstream ss;
++ ss << "[thread " << get_pid().c_str() << "] Timer2 failed\n";
++ printf("%s\n", ss.str().c_str());
++ ss.str(std::string());
++ ss << "(Error from thread: " << get_pid().c_str() << ")\n";
++ return rxcpp::observable<>::error<int>(std::runtime_error(ss.str()));
++ });
++ auto o3 = rxcpp::observable<>::timer(std::chrono::milliseconds(30)).map([](int) {
++ printf("[thread %s] Timer3 fired\n", get_pid().c_str());
++ return 3;
++ });
++ auto base = rxcpp::observable<>::from(o1.as_dynamic(), o2, o3);
++ auto values = base.merge(rxcpp::observe_on_new_thread());
++ values.
++ as_blocking().
++ subscribe(
++ [](int v){printf("[thread %s] OnNext: %d\n", get_pid().c_str(), v);},
++ [](std::exception_ptr eptr) { printf("[thread %s] OnError %s\n", get_pid().c_str(), rxu::what(eptr).c_str()); },
++ [](){printf("[thread %s] OnCompleted\n", get_pid().c_str());});
++ printf("[thread %s] Finish task\n", get_pid().c_str());
++ printf("//! [threaded implicit merge_delay_error sample]\n");
++}
+diff --git a/Rx/v2/src/rxcpp/operators/rx-merge_delay_error.hpp b/Rx/v2/src/rxcpp/operators/rx-merge_delay_error.hpp
+new file mode 100644
+index 000000000..43fdee326
+--- /dev/null
++++ b/Rx/v2/src/rxcpp/operators/rx-merge_delay_error.hpp
+@@ -0,0 +1,304 @@
++// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
++
++#pragma once
++
++/*! \file rx-merge_delay_error.hpp
++
++ \brief For each given observable subscribe.
++ For each item emitted from all of the given observables, deliver from the new observable that is returned.
++ The first error to occure is hold off until all of the given non-error-emitting observables have finished their emission.
++
++ There are 2 variants of the operator:
++ - The source observable emits nested observables, nested observables are merged.
++ - The source observable and the arguments v0...vn are used to provide the observables to merge.
++
++ \tparam Coordination the type of the scheduler (optional).
++ \tparam Value0 ... (optional).
++ \tparam ValueN types of source observables (optional).
++
++ \param cn the scheduler to synchronize sources from different contexts (optional).
++ \param v0 ... (optional).
++ \param vn source observables (optional).
++
++ \return Observable that emits items that are the result of flattening the observables emitted by the source observable.
++
++ If scheduler is omitted, identity_current_thread is used.
++
++ \sample
++ \snippet merge_delay_error.cpp threaded implicit merge sample
++ \snippet output.txt threaded implicit merge sample
++
++ \sample
++ \snippet merge_delay_error.cpp implicit merge sample
++ \snippet output.txt implicit merge sample
++
++ \sample
++ \snippet merge_delay_error.cpp merge sample
++ \snippet output.txt merge sample
++
++ \sample
++ \snippet merge_delay_error.cpp threaded merge sample
++ \snippet output.txt threaded merge sample
++*/
++
++#if !defined(RXCPP_OPERATORS_RX_MERGE_DELAY_ERROR_HPP)
++#define RXCPP_OPERATORS_RX_MERGE_DELAY_ERROR_HPP
++
++#include "rx-merge.hpp"
++
++#include "../rx-composite_exception.hpp"
++
++namespace rxcpp {
++
++namespace operators {
++
++namespace detail {
++
++template<class T, class Observable, class Coordination>
++struct merge_delay_error
++ : public operator_base<rxu::value_type_t<rxu::decay_t<T>>>
++{
++ //static_assert(is_observable<Observable>::value, "merge requires an observable");
++ //static_assert(is_observable<T>::value, "merge requires an observable that contains observables");
++
++ typedef merge_delay_error<T, Observable, Coordination> this_type;
++
++ typedef rxu::decay_t<T> source_value_type;
++ typedef rxu::decay_t<Observable> source_type;
++
++ typedef typename source_type::source_operator_type source_operator_type;
++ typedef typename source_value_type::value_type value_type;
++
++ typedef rxu::decay_t<Coordination> coordination_type;
++ typedef typename coordination_type::coordinator_type coordinator_type;
++
++ struct values
++ {
++ values(source_operator_type o, coordination_type sf)
++ : source_operator(std::move(o))
++ , coordination(std::move(sf))
++ {
++ }
++ source_operator_type source_operator;
++ coordination_type coordination;
++ };
++ values initial;
++
++ merge_delay_error(const source_type& o, coordination_type sf)
++ : initial(o.source_operator, std::move(sf))
++ {
++ }
++
++ template<class Subscriber>
++ void on_subscribe(Subscriber scbr) const {
++ static_assert(is_subscriber<Subscriber>::value, "subscribe must be passed a subscriber");
++
++ typedef Subscriber output_type;
++
++ struct merge_state_type
++ : public std::enable_shared_from_this<merge_state_type>
++ , public values
++ {
++ merge_state_type(values i, coordinator_type coor, output_type oarg)
++ : values(i)
++ , source(i.source_operator)
++ , pendingCompletions(0)
++ , coordinator(std::move(coor))
++ , out(std::move(oarg))
++ {
++ }
++ observable<source_value_type, source_operator_type> source;
++ // on_completed on the output must wait until all the
++ // subscriptions have received on_completed
++ int pendingCompletions;
++ composite_exception exception;;
++ coordinator_type coordinator;
++ output_type out;
++ };
++
++ auto coordinator = initial.coordination.create_coordinator(scbr.get_subscription());
++
++ // take a copy of the values for each subscription
++ auto state = std::make_shared<merge_state_type>(initial, std::move(coordinator), std::move(scbr));
++
++ composite_subscription outercs;
++
++ // when the out observer is unsubscribed all the
++ // inner subscriptions are unsubscribed as well
++ state->out.add(outercs);
++
++ auto source = on_exception(
++ [&](){return state->coordinator.in(state->source);},
++ state->out);
++ if (source.empty()) {
++ return;
++ }
++
++ ++state->pendingCompletions;
++ // this subscribe does not share the observer subscription
++ // so that when it is unsubscribed the observer can be called
++ // until the inner subscriptions have finished
++ auto sink = make_subscriber<source_value_type>(
++ state->out,
++ outercs,
++ // on_next
++ [state](source_value_type st) {
++
++ composite_subscription innercs;
++
++ // when the out observer is unsubscribed all the
++ // inner subscriptions are unsubscribed as well
++ auto innercstoken = state->out.add(innercs);
++
++ innercs.add(make_subscription([state, innercstoken](){
++ state->out.remove(innercstoken);
++ }));
++
++ auto selectedSource = state->coordinator.in(st);
++
++ ++state->pendingCompletions;
++ // this subscribe does not share the source subscription
++ // so that when it is unsubscribed the source will continue
++ auto sinkInner = make_subscriber<value_type>(
++ state->out,
++ innercs,
++ // on_next
++ [state, st](value_type ct) {
++ state->out.on_next(std::move(ct));
++ },
++ // on_error
++ [state](std::exception_ptr e) {
++ if(--state->pendingCompletions == 0) {
++ state->out.on_error(
++ std::make_exception_ptr(std::move(state->exception.add(e))));
++ } else {
++ state->exception.add(e);
++ }
++ },
++ //on_completed
++ [state](){
++ if (--state->pendingCompletions == 0) {
++ if(!state->exception.empty()) {
++ state->out.on_error(
++ std::make_exception_ptr(std::move(state->exception)));
++ } else {
++ state->out.on_completed();
++ }
++ }
++ }
++ );
++
++ auto selectedSinkInner = state->coordinator.out(sinkInner);
++ selectedSource.subscribe(std::move(selectedSinkInner));
++ },
++ // on_error
++ [state](std::exception_ptr e) {
++ if(--state->pendingCompletions == 0) {
++ state->out.on_error(
++ std::make_exception_ptr(std::move(state->exception.add(e))));
++ } else {
++ state->exception.add(e);
++ }
++ },
++ // on_completed
++ [state]() {
++ if (--state->pendingCompletions == 0) {
++ if(!state->exception.empty()) {
++ state->out.on_error(
++ std::make_exception_ptr(std::move(state->exception)));
++ } else {
++ state->out.on_completed();
++ }
++ }
++ }
++ );
++ auto selectedSink = on_exception(
++ [&](){return state->coordinator.out(sink);},
++ state->out);
++ if (selectedSink.empty()) {
++ return;
++ }
++ source->subscribe(std::move(selectedSink.get()));
++ }
++};
++
++}
++
++/*! @copydoc rx-merge-delay-error.hpp
++*/
++template<class... AN>
++auto merge_delay_error(AN&&... an)
++ -> operator_factory<merge_delay_error_tag, AN...> {
++ return operator_factory<merge_delay_error_tag, AN...>(std::make_tuple(std::forward<AN>(an)...));
++}
++
++}
++
++template<>
++struct member_overload<merge_delay_error_tag>
++{
++ template<class Observable,
++ class Enabled = rxu::enable_if_all_true_type_t<
++ is_observable<Observable>>,
++ class SourceValue = rxu::value_type_t<Observable>,
++ class Merge = rxo::detail::merge_delay_error<SourceValue, rxu::decay_t<Observable>, identity_one_worker>,
++ class Value = rxu::value_type_t<SourceValue>,
++ class Result = observable<Value, Merge>
++ >
++ static Result member(Observable&& o) {
++ return Result(Merge(std::forward<Observable>(o), identity_current_thread()));
++ }
++
++ template<class Observable, class Coordination,
++ class Enabled = rxu::enable_if_all_true_type_t<
++ is_observable<Observable>,
++ is_coordination<Coordination>>,
++ class SourceValue = rxu::value_type_t<Observable>,
++ class Merge = rxo::detail::merge_delay_error<SourceValue, rxu::decay_t<Observable>, rxu::decay_t<Coordination>>,
++ class Value = rxu::value_type_t<SourceValue>,
++ class Result = observable<Value, Merge>
++ >
++ static Result member(Observable&& o, Coordination&& cn) {
++ return Result(Merge(std::forward<Observable>(o), std::forward<Coordination>(cn)));
++ }
++
++ template<class Observable, class Value0, class... ValueN,
++ class Enabled = rxu::enable_if_all_true_type_t<
++ all_observables<Observable, Value0, ValueN...>>,
++ class EmittedValue = rxu::value_type_t<Observable>,
++ class SourceValue = observable<EmittedValue>,
++ class ObservableObservable = observable<SourceValue>,
++ class Merge = typename rxu::defer_type<rxo::detail::merge_delay_error, SourceValue, ObservableObservable, identity_one_worker>::type,
++ class Value = rxu::value_type_t<Merge>,
++ class Result = observable<Value, Merge>
++ >
++ static Result member(Observable&& o, Value0&& v0, ValueN&&... vn) {
++ return Result(Merge(rxs::from(o.as_dynamic(), v0.as_dynamic(), vn.as_dynamic()...), identity_current_thread()));
++ }
++
++ template<class Observable, class Coordination, class Value0, class... ValueN,
++ class Enabled = rxu::enable_if_all_true_type_t<
++ all_observables<Observable, Value0, ValueN...>,
++ is_coordination<Coordination>>,
++ class EmittedValue = rxu::value_type_t<Observable>,
++ class SourceValue = observable<EmittedValue>,
++ class ObservableObservable = observable<SourceValue>,
++ class Merge = typename rxu::defer_type<rxo::detail::merge_delay_error, SourceValue, ObservableObservable, rxu::decay_t<Coordination>>::type,
++ class Value = rxu::value_type_t<Merge>,
++ class Result = observable<Value, Merge>
++ >
++ static Result member(Observable&& o, Coordination&& cn, Value0&& v0, ValueN&&... vn) {
++ return Result(Merge(rxs::from(o.as_dynamic(), v0.as_dynamic(), vn.as_dynamic()...), std::forward<Coordination>(cn)));
++ }
++
++ template<class... AN>
++ static operators::detail::merge_invalid_t<AN...> member(AN...) {
++ std::terminate();
++ return {};
++ static_assert(sizeof...(AN) == 10000, "merge_delay_error takes (optional Coordination, optional Value0, optional ValueN...)");
++ }
++};
++
++}
++
++#endif
+diff --git a/Rx/v2/src/rxcpp/rx-composite_exception.hpp b/Rx/v2/src/rxcpp/rx-composite_exception.hpp
+new file mode 100644
+index 000000000..333f291d6
+--- /dev/null
++++ b/Rx/v2/src/rxcpp/rx-composite_exception.hpp
+@@ -0,0 +1,34 @@
++// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
++
++#pragma once
++
++#if !defined(RXCPP_SOURCES_RX_COMPOSITE_EXCEPTION_HPP)
++#define RXCPP_SOURCES_RX_COMPOSITE_EXCEPTION_HPP
++
++#include "rx-includes.hpp"
++
++namespace rxcpp {
++
++struct composite_exception : std::exception {
++
++ typedef std::vector<std::exception_ptr> exception_values;
++
++ virtual const char *what() const RXCPP_NOEXCEPT override {
++ return "rxcpp composite exception";
++ }
++
++ virtual bool empty() const {
++ return exceptions.empty();
++ }
++
++ virtual composite_exception add(std::exception_ptr exception_ptr) {
++ exceptions.push_back(exception_ptr);
++ return *this;
++ }
++
++ exception_values exceptions;
++};
++
++}
++
++#endif
+diff --git a/Rx/v2/src/rxcpp/rx-includes.hpp b/Rx/v2/src/rxcpp/rx-includes.hpp
+index 3527f01ee..aefa1902c 100644
+--- a/Rx/v2/src/rxcpp/rx-includes.hpp
++++ b/Rx/v2/src/rxcpp/rx-includes.hpp
+@@ -125,6 +125,12 @@
+ #define _VARIADIC_MAX 10
+ #endif
+
++#if defined(_MSC_VER) && (_MSC_VER <= 1800)
++#define RXCPP_NOEXCEPT
++#else
++#define RXCPP_NOEXCEPT noexcept
++#endif
++
+ #pragma push_macro("min")
+ #pragma push_macro("max")
+ #undef min
+@@ -203,6 +209,7 @@
+ #include "operators/rx-ignore_elements.hpp"
+ #include "operators/rx-map.hpp"
+ #include "operators/rx-merge.hpp"
++#include "operators/rx-merge_delay_error.hpp"
+ #include "operators/rx-observe_on.hpp"
+ #include "operators/rx-on_error_resume_next.hpp"
+ #include "operators/rx-pairwise.hpp"
+diff --git a/Rx/v2/src/rxcpp/rx-observable.hpp b/Rx/v2/src/rxcpp/rx-observable.hpp
+index ef96d36d7..3a3124005 100644
+--- a/Rx/v2/src/rxcpp/rx-observable.hpp
++++ b/Rx/v2/src/rxcpp/rx-observable.hpp
+@@ -1023,6 +1023,17 @@ class observable
+ return observable_member(merge_tag{}, *this, std::forward<AN>(an)...);
+ }
+
++ /*! @copydoc rx-merge_delay_error.hpp
++ */
++ template<class... AN>
++ auto merge_delay_error(AN... an) const
++ /// \cond SHOW_SERVICE_MEMBERS
++ -> decltype(observable_member(merge_delay_error_tag{}, *(this_type*)nullptr, std::forward<AN>(an)...))
++ /// \endcond
++ {
++ return observable_member(merge_delay_error_tag{}, *this, std::forward<AN>(an)...);
++ }
++
+ /*! @copydoc rx-amb.hpp
+ */
+ template<class... AN>
+diff --git a/Rx/v2/src/rxcpp/rx-operators.hpp b/Rx/v2/src/rxcpp/rx-operators.hpp
+index 0fa5d5884..15e8b54bb 100644
+--- a/Rx/v2/src/rxcpp/rx-operators.hpp
++++ b/Rx/v2/src/rxcpp/rx-operators.hpp
+@@ -258,6 +258,12 @@ struct merge_tag {
+ static_assert(Included::value, "missing include: please #include <rxcpp/operators/rx-merge.hpp>");
+ };
+ };
++struct merge_delay_error_tag {
++ template<class Included>
++ struct include_header{
++ static_assert(Included::value, "missing include: please #include <rxcpp/operators/rx-merge_delay_error.hpp>");
++ };
++};
+
+ struct multicast_tag {
+ template<class Included>
+diff --git a/Rx/v2/test/CMakeLists.txt b/Rx/v2/test/CMakeLists.txt
+index 322872cba..1064c0f82 100644
+--- a/Rx/v2/test/CMakeLists.txt
++++ b/Rx/v2/test/CMakeLists.txt
+@@ -54,6 +54,7 @@ set(TEST_SOURCES
+ ${TEST_DIR}/operators/lift.cpp
+ ${TEST_DIR}/operators/map.cpp
+ ${TEST_DIR}/operators/merge.cpp
++ ${TEST_DIR}/operators/merge_delay_error.cpp
+ ${TEST_DIR}/operators/observe_on.cpp
+ ${TEST_DIR}/operators/on_error_resume_next.cpp
+ ${TEST_DIR}/operators/pairwise.cpp
+diff --git a/Rx/v2/test/operators/merge_delay_error.cpp b/Rx/v2/test/operators/merge_delay_error.cpp
+new file mode 100644
+index 000000000..d560b453d
+--- /dev/null
++++ b/Rx/v2/test/operators/merge_delay_error.cpp
+@@ -0,0 +1,306 @@
++#include "../test.h"
++#include <rxcpp/operators/rx-reduce.hpp>
++#include <rxcpp/operators/rx-merge_delay_error.hpp>
++#include <rxcpp/operators/rx-observe_on.hpp>
++
++const int static_onnextcalls = 1000000;
++
++//merge_delay_error must work the very same way as `merge()` except the error handling
++
++SCENARIO("merge completes", "[merge][join][operators]"){
++ GIVEN("1 hot observable with 3 cold observables of ints."){
++ auto sc = rxsc::make_test();
++ auto w = sc.create_worker();
++ const rxsc::test::messages<int> on;
++ const rxsc::test::messages<rx::observable<int>> o_on;
++
++ auto ys1 = sc.make_cold_observable({
++ on.next(10, 101),
++ on.next(20, 102),
++ on.next(110, 103),
++ on.next(120, 104),
++ on.next(210, 105),
++ on.next(220, 106),
++ on.completed(230)
++ });
++
++ auto ys2 = sc.make_cold_observable({
++ on.next(10, 201),
++ on.next(20, 202),
++ on.next(30, 203),
++ on.next(40, 204),
++ on.completed(50)
++ });
++
++ auto ys3 = sc.make_cold_observable({
++ on.next(10, 301),
++ on.next(20, 302),
++ on.next(30, 303),
++ on.next(40, 304),
++ on.next(120, 305),
++ on.completed(150)
++ });
++
++ auto xs = sc.make_hot_observable({
++ o_on.next(300, ys1),
++ o_on.next(400, ys2),
++ o_on.next(500, ys3),
++ o_on.completed(600)
++ });
++
++ WHEN("each int is merged"){
++
++ auto res = w.start(
++ [&]() {
++ return xs
++ | rxo::merge_delay_error()
++ // forget type to workaround lambda deduction bug on msvc 2013
++ | rxo::as_dynamic();
++ }
++ );
++
++ THEN("the output contains merged ints"){
++ auto required = rxu::to_vector({
++ on.next(310, 101),
++ on.next(320, 102),
++ on.next(410, 103),
++ on.next(410, 201),
++ on.next(420, 104),
++ on.next(420, 202),
++ on.next(430, 203),
++ on.next(440, 204),
++ on.next(510, 105),
++ on.next(510, 301),
++ on.next(520, 106),
++ on.next(520, 302),
++ on.next(530, 303),
++ on.next(540, 304),
++ on.next(620, 305),
++ on.completed(650)
++ });
++ auto actual = res.get_observer().messages();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was one subscription and one unsubscription to the xs"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 600)
++ });
++ auto actual = xs.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was one subscription and one unsubscription to the ys1"){
++ auto required = rxu::to_vector({
++ on.subscribe(300, 530)
++ });
++ auto actual = ys1.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was one subscription and one unsubscription to the ys2"){
++ auto required = rxu::to_vector({
++ on.subscribe(400, 450)
++ });
++ auto actual = ys2.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was one subscription and one unsubscription to the ys3"){
++ auto required = rxu::to_vector({
++ on.subscribe(500, 650)
++ });
++ auto actual = ys3.subscriptions();
++ REQUIRE(required == actual);
++ }
++ }
++ }
++}
++
++SCENARIO("variadic merge completes with error", "[merge][join][operators]"){
++ GIVEN("1 hot observable with 3 cold observables of ints."){
++ auto sc = rxsc::make_test();
++ auto w = sc.create_worker();
++ const rxsc::test::messages<int> on;
++ const rxsc::test::messages<rx::observable<int>> o_on;
++
++ auto ys1 = sc.make_cold_observable({
++ on.next(10, 101),
++ on.next(20, 102),
++ on.next(110, 103),
++ on.next(120, 104),
++ on.next(210, 105),
++ on.next(230, 107),
++ on.completed(240)
++ });
++
++ auto ys2 = sc.make_cold_observable({
++ on.next(10, 201),
++ on.next(20, 202),
++ on.next(30, 203),
++ on.error(40, std::runtime_error("merge_delay_error on_error from ys2")),
++ on.next(50, 205),
++ on.completed(60)
++ });
++
++ auto ys3 = sc.make_cold_observable({
++ on.next(10, 301),
++ on.next(20, 302),
++ on.next(30, 303),
++ on.next(40, 304),
++ on.next(120, 305),
++ on.completed(150)
++ });
++
++ WHEN("each int is merged"){
++
++ auto res = w.start(
++ [&]() {
++ return ys1
++ .merge_delay_error(ys2, ys3);
++ }
++ );
++
++ rx::composite_exception ex;
++ THEN("the output contains merged ints"){
++ auto required = rxu::to_vector({
++ on.next(210, 101),
++ on.next(210, 201),
++ on.next(210, 301),
++ on.next(220, 102),
++ on.next(220, 202),
++ on.next(220, 302),
++ on.next(230, 203),
++ on.next(230, 303),
++ on.next(240, 304),
++ on.next(310, 103),
++ on.next(320, 104),
++ on.next(320, 305),
++ on.next(410, 105),
++ on.next(430, 107),
++ on.error(440, ex)
++ });
++ auto actual = res.get_observer().messages();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was one subscription and one unsubscription to the ys1"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 440)
++ });
++ auto actual = ys1.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was one subscription and one unsubscription to the ys2"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 240)
++ });
++ auto actual = ys2.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was one subscription and one unsubscription to the ys3"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 350)
++ });
++ auto actual = ys3.subscriptions();
++ REQUIRE(required == actual);
++ }
++ }
++ }
++}
++
++SCENARIO("variadic merge completes with 2 errors", "[merge][join][operators]"){
++ GIVEN("1 hot observable with 3 cold observables of ints."){
++ auto sc = rxsc::make_test();
++ auto w = sc.create_worker();
++ const rxsc::test::messages<int> on;
++ const rxsc::test::messages<rx::observable<int>> o_on;
++
++ auto ys1 = sc.make_cold_observable({
++ on.next(10, 101),
++ on.next(20, 102),
++ on.next(110, 103),
++ on.next(120, 104),
++ on.next(210, 105),
++ on.error(220, std::runtime_error("merge_delay_error on_error from ys1")),
++ on.next(230, 107),
++ on.completed(240)
++ });
++
++ auto ys2 = sc.make_cold_observable({
++ on.next(10, 201),
++ on.next(20, 202),
++ on.next(30, 203),
++ on.error(40, std::runtime_error("merge_delay_error on_error from ys2")),
++ on.next(50, 205),
++ on.completed(60)
++ });
++
++ auto ys3 = sc.make_cold_observable({
++ on.next(10, 301),
++ on.next(20, 302),
++ on.next(30, 303),
++ on.next(40, 304),
++ on.next(120, 305),
++ on.completed(150)
++ });
++
++ WHEN("each int is merged"){
++
++ auto res = w.start(
++ [&]() {
++ return ys1
++ .merge_delay_error(ys2, ys3);
++ }
++ );
++
++ rx::composite_exception ex;
++ THEN("the output contains merged ints"){
++ auto required = rxu::to_vector({
++ on.next(210, 101),
++ on.next(210, 201),
++ on.next(210, 301),
++ on.next(220, 102),
++ on.next(220, 202),
++ on.next(220, 302),
++ on.next(230, 203),
++ on.next(230, 303),
++ on.next(240, 304),
++ on.next(310, 103),
++ on.next(320, 104),
++ on.next(320, 305),
++ on.next(410, 105),
++ on.error(420, ex)
++ });
++ auto actual = res.get_observer().messages();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was one subscription and one unsubscription to the ys1"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 420)
++ });
++ auto actual = ys1.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was one subscription and one unsubscription to the ys2"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 240)
++ });
++ auto actual = ys2.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was one subscription and one unsubscription to the ys3"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 350)
++ });
++ auto actual = ys3.subscriptions();
++ REQUIRE(required == actual);
++ }
++ }
++ }
++}
+diff --git a/projects/doxygen/CMakeLists.txt b/projects/doxygen/CMakeLists.txt
+index f5e66c4b0..a3fcd364c 100644
+--- a/projects/doxygen/CMakeLists.txt
++++ b/projects/doxygen/CMakeLists.txt
+@@ -49,6 +49,7 @@ if(DOXYGEN_FOUND)
+ ${DOXY_EXAMPLES_SRC_DIR}/blocking_observable.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/buffer.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/combine_latest.cpp
++ ${DOXY_EXAMPLES_SRC_DIR}/composite_exception.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/concat.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/concat_map.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/contains.cpp
+@@ -75,6 +76,7 @@ if(DOXYGEN_FOUND)
+ ${DOXY_EXAMPLES_SRC_DIR}/map.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/math.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/merge.cpp
++ ${DOXY_EXAMPLES_SRC_DIR}/merge_delay_error.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/never.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/observe_on.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/on_error_resume_next.cpp
+
+From b84db4278e54e722fbbae794f573d1142261e9a3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Martin=20Kodovsk=C3=BD?= <martin.kodovsky(a)gmail.com>
+Date: Thu, 14 Dec 2017 06:02:38 +0100
+Subject: [PATCH 21/29] Add: Skip_while operator (#418)
+
+* #378 adding skip_while operator
+
+* #378 adding tests + fixing CMakeLists.txt
+
+* #378 test completion
+
+* #378 fix includes
+
+* #378 fix assignment in a condition
+
+* #378 fix assignment in a condition 2
+---
+ Rx/v2/examples/doxygen/skip_while.cpp | 17 ++
+ Rx/v2/src/rxcpp/operators/rx-skip_while.hpp | 131 +++++++++
+ Rx/v2/src/rxcpp/rx-includes.hpp | 1 +
+ Rx/v2/src/rxcpp/rx-observable.hpp | 11 +
+ Rx/v2/src/rxcpp/rx-operators.hpp | 7 +
+ Rx/v2/test/CMakeLists.txt | 1 +
+ Rx/v2/test/operators/skip_while.cpp | 434 ++++++++++++++++++++++++++++
+ projects/CMake/CMakeLists.txt | 2 +
+ projects/doxygen/CMakeLists.txt | 1 +
+ 9 files changed, 605 insertions(+)
+ create mode 100644 Rx/v2/examples/doxygen/skip_while.cpp
+ create mode 100644 Rx/v2/src/rxcpp/operators/rx-skip_while.hpp
+ create mode 100644 Rx/v2/test/operators/skip_while.cpp
+
+diff --git a/Rx/v2/examples/doxygen/skip_while.cpp b/Rx/v2/examples/doxygen/skip_while.cpp
+new file mode 100644
+index 000000000..a98ce18b0
+--- /dev/null
++++ b/Rx/v2/examples/doxygen/skip_while.cpp
+@@ -0,0 +1,17 @@
++#include "rxcpp/rx.hpp"
++
++#include "rxcpp/rx-test.hpp"
++#include "catch.hpp"
++
++SCENARIO("skip_while sample"){
++ printf("//! [skip_while sample]\n");
++ auto values = rxcpp::observable<>::range(1, 8).
++ skip_while([](int v){
++ return v <= 4;
++ });
++ values.
++ subscribe(
++ [](int v){printf("OnNext: %d\n", v);},
++ [](){printf("OnCompleted\n");});
++ printf("//! [skip_while sample]\n");
++}
+diff --git a/Rx/v2/src/rxcpp/operators/rx-skip_while.hpp b/Rx/v2/src/rxcpp/operators/rx-skip_while.hpp
+new file mode 100644
+index 000000000..fdd06b63e
+--- /dev/null
++++ b/Rx/v2/src/rxcpp/operators/rx-skip_while.hpp
+@@ -0,0 +1,131 @@
++// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
++
++#pragma once
++
++/*! \file rx-skip_while.hpp
++
++ \brief Discards the first items fulfilling the predicate from this observable emit them from the new observable that is returned.
++
++ \tparam Predicate the type of the predicate
++
++ \param t the predicate
++
++ \return An observable that discards the first items until condition emitted by the source Observable is not fulfilling the predicate, or all of the items from the source observable if the predicate never returns false
++
++ \sample
++ \snippet skip_while.cpp skip_while sample
++ \snippet output.txt skip_while sample
++*/
++
++#if !defined(RXCPP_OPERATORS_RX_SKIP_WHILE_HPP)
++#define RXCPP_OPERATORS_RX_SKIP_WHILE_HPP
++
++#include "../rx-includes.hpp"
++
++namespace rxcpp {
++
++namespace operators {
++
++namespace detail {
++
++template<class... AN>
++struct skip_while_invalid_arguments {};
++
++template<class... AN>
++struct skip_while_invalid : public rxo::operator_base<skip_while_invalid_arguments<AN...>> {
++ using type = observable<skip_while_invalid_arguments<AN...>, skip_while_invalid<AN...>>;
++};
++template<class... AN>
++using skip_while_invalid_t = typename skip_while_invalid<AN...>::type;
++
++template<class T, class Predicate>
++struct skip_while
++{
++ typedef rxu::decay_t<T> source_value_type;
++ typedef rxu::decay_t<Predicate> test_type;
++ test_type test;
++
++
++ skip_while(test_type t)
++ : test(std::move(t))
++ {
++ }
++
++ template<class Subscriber>
++ struct skip_while_observer
++ {
++ typedef skip_while_observer<Subscriber> this_type;
++ typedef source_value_type value_type;
++ typedef rxu::decay_t<Subscriber> dest_type;
++ typedef observer<value_type, this_type> observer_type;
++ dest_type dest;
++ test_type test;
++ bool pass;
++
++ skip_while_observer(dest_type d, test_type t)
++ : dest(std::move(d))
++ , test(std::move(t)),
++ pass(false)
++ {
++ }
++ void on_next(source_value_type v) {
++ if(pass || !test(v))
++ {
++ pass = true;
++ dest.on_next(v);
++ }
++ }
++ void on_error(std::exception_ptr e) const {
++ dest.on_error(e);
++ }
++ void on_completed() const {
++ dest.on_completed();
++ }
++
++ static subscriber<value_type, observer_type> make(dest_type d, test_type t) {
++ return make_subscriber<value_type>(d, this_type(d, std::move(t)));
++ }
++ };
++
++ template<class Subscriber>
++ auto operator()(Subscriber dest) const
++ -> decltype(skip_while_observer<Subscriber>::make(std::move(dest), test)) {
++ return skip_while_observer<Subscriber>::make(std::move(dest), test);
++ }
++};
++
++}
++
++/*! @copydoc rx-skip_while.hpp
++*/
++template<class... AN>
++auto skip_while(AN&&... an)
++ -> operator_factory<skip_while_tag, AN...> {
++ return operator_factory<skip_while_tag, AN...>(std::make_tuple(std::forward<AN>(an)...));
++ }
++
++}
++
++template<>
++struct member_overload<skip_while_tag>
++{
++ template<class Observable, class Predicate,
++ class SourceValue = rxu::value_type_t<Observable>,
++ class TakeWhile = rxo::detail::skip_while<SourceValue, rxu::decay_t<Predicate>>>
++ static auto member(Observable&& o, Predicate&& p)
++ -> decltype(o.template lift<SourceValue>(TakeWhile(std::forward<Predicate>(p)))) {
++ return o.template lift<SourceValue>(TakeWhile(std::forward<Predicate>(p)));
++ }
++
++ template<class... AN>
++ static operators::detail::skip_while_invalid_t<AN...> member(const AN&...) {
++ std::terminate();
++ return {};
++ static_assert(sizeof...(AN) == 10000, "skip_while takes (Predicate)");
++ }
++};
++
++
++}
++
++#endif
+diff --git a/Rx/v2/src/rxcpp/rx-includes.hpp b/Rx/v2/src/rxcpp/rx-includes.hpp
+index aefa1902c..51045657e 100644
+--- a/Rx/v2/src/rxcpp/rx-includes.hpp
++++ b/Rx/v2/src/rxcpp/rx-includes.hpp
+@@ -221,6 +221,7 @@
+ #include "operators/rx-scan.hpp"
+ #include "operators/rx-sequence_equal.hpp"
+ #include "operators/rx-skip.hpp"
++#include "operators/rx-skip_while.hpp"
+ #include "operators/rx-skip_last.hpp"
+ #include "operators/rx-skip_until.hpp"
+ #include "operators/rx-start_with.hpp"
+diff --git a/Rx/v2/src/rxcpp/rx-observable.hpp b/Rx/v2/src/rxcpp/rx-observable.hpp
+index 3a3124005..496db0b5c 100644
+--- a/Rx/v2/src/rxcpp/rx-observable.hpp
++++ b/Rx/v2/src/rxcpp/rx-observable.hpp
+@@ -1361,6 +1361,17 @@ class observable
+ return observable_member(skip_tag{}, *this, std::forward<AN>(an)...);
+ }
+
++ /*! @copydoc rx-skip.hpp
++ */
++ template<class... AN>
++ auto skip_while(AN... an) const
++ /// \cond SHOW_SERVICE_MEMBERS
++ -> decltype(observable_member(skip_while_tag{}, *(this_type*)nullptr, std::forward<AN>(an)...))
++ /// \endcond
++ {
++ return observable_member(skip_while_tag{}, *this, std::forward<AN>(an)...);
++ }
++
+ /*! @copydoc rx-skip_last.hpp
+ */
+ template<class... AN>
+diff --git a/Rx/v2/src/rxcpp/rx-operators.hpp b/Rx/v2/src/rxcpp/rx-operators.hpp
+index 15e8b54bb..9a5481aef 100644
+--- a/Rx/v2/src/rxcpp/rx-operators.hpp
++++ b/Rx/v2/src/rxcpp/rx-operators.hpp
+@@ -377,6 +377,13 @@ struct skip_tag {
+ };
+ };
+
++struct skip_while_tag {
++ template<class Included>
++ struct include_header{
++ static_assert(Included::value, "missing include: please #include <rxcpp/operators/rx-skip_while.hpp>");
++ };
++};
++
+ struct skip_last_tag {
+ template<class Included>
+ struct include_header{
+diff --git a/Rx/v2/test/CMakeLists.txt b/Rx/v2/test/CMakeLists.txt
+index 1064c0f82..dcb998f81 100644
+--- a/Rx/v2/test/CMakeLists.txt
++++ b/Rx/v2/test/CMakeLists.txt
+@@ -67,6 +67,7 @@ set(TEST_SOURCES
+ ${TEST_DIR}/operators/scan.cpp
+ ${TEST_DIR}/operators/sequence_equal.cpp
+ ${TEST_DIR}/operators/skip.cpp
++ ${TEST_DIR}/operators/skip_while.cpp
+ ${TEST_DIR}/operators/skip_last.cpp
+ ${TEST_DIR}/operators/skip_until.cpp
+ ${TEST_DIR}/operators/start_with.cpp
+diff --git a/Rx/v2/test/operators/skip_while.cpp b/Rx/v2/test/operators/skip_while.cpp
+new file mode 100644
+index 000000000..cc773b12a
+--- /dev/null
++++ b/Rx/v2/test/operators/skip_while.cpp
+@@ -0,0 +1,434 @@
++#include "../test.h"
++#include <rxcpp/operators/rx-skip_while.hpp>
++
++namespace {
++ class not_equal_to {
++ int value;
++ public:
++ not_equal_to(int value) : value(value) { }
++ bool operator()(int i) const {
++ return i != value;
++ }
++ };
++}
++
++SCENARIO("skip_while not equal to 4", "[skip_while][operators]"){
++ GIVEN("a source"){
++ auto sc = rxsc::make_test();
++ auto w = sc.create_worker();
++ const rxsc::test::messages<int> on;
++
++ auto xs = sc.make_hot_observable({
++ on.next(150, 1),
++ on.next(210, 2),
++ on.next(220, 3),
++ on.next(230, 4),
++ on.next(240, 5),
++ on.completed(250)
++ });
++
++ WHEN("values before 4 are taken"){
++
++ auto res = w.start(
++ [xs]() {
++ return xs
++ .skip_while(not_equal_to(4))
++ .as_dynamic();
++ }
++ );
++
++ THEN("the output only contains items sent while subscribed"){
++ auto required = rxu::to_vector({
++ on.next(230, 4),
++ on.next(240, 5),
++ on.completed(250)
++ });
++ auto actual = res.get_observer().messages();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was 1 subscription/unsubscription to the source"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 250)
++ });
++ auto actual = xs.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ }
++ }
++}
++
++SCENARIO("skip_while, complete after", "[skip_while][operators]"){
++ GIVEN("a source"){
++ auto sc = rxsc::make_test();
++ auto w = sc.create_worker();
++ const rxsc::test::messages<int> on;
++
++ auto xs = sc.make_hot_observable({
++ on.next(70, 6),
++ on.next(150, 4),
++ on.next(210, 9),
++ on.next(230, 13),
++ on.next(270, 7),
++ on.next(280, 1),
++ on.next(300, -1),
++ on.next(310, 3),
++ on.next(340, 8),
++ on.next(370, 11),
++ on.next(410, 15),
++ on.next(415, 16),
++ on.next(460, 72),
++ on.next(510, 76),
++ on.next(560, 32),
++ on.next(570, -100),
++ on.next(580, -3),
++ on.next(590, 5),
++ on.next(630, 10),
++ on.completed(690)
++ });
++
++ WHEN("none are taken"){
++
++ auto res = w.start(
++ [xs]() {
++ return xs
++ .skip_while(not_equal_to(0))
++ // forget type to workaround lambda deduction bug on msvc 2013
++ .as_dynamic();
++ }
++ );
++
++ THEN("the output contains no items sent while subscribed"){
++ auto required = rxu::to_vector({
++ on.completed(690)
++ });
++ auto actual = res.get_observer().messages();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was 1 subscription/unsubscription to the source"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 690)
++ });
++ auto actual = xs.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ }
++ }
++}
++
++SCENARIO("skip_while, complete before", "[skip_while][operators]"){
++ GIVEN("a source"){
++ auto sc = rxsc::make_test();
++ auto w = sc.create_worker();
++ const rxsc::test::messages<int> on;
++
++ auto xs = sc.make_hot_observable({
++ on.next(70, 6),
++ on.next(150, 4),
++ on.next(210, 9),
++ on.next(230, 13),
++ on.next(270, 7),
++ on.next(280, 1),
++ on.next(300, -1),
++ on.next(310, 3),
++ on.next(340, 8),
++ on.next(370, 11),
++ on.next(410, 15),
++ on.next(415, 16),
++ on.next(460, 72),
++ on.next(510, 76),
++ on.next(560, 32),
++ on.next(570, -100),
++ on.next(580, -3),
++ on.next(590, 5),
++ on.next(630, 10),
++ on.completed(690)
++ });
++
++ WHEN("7 values are taken"){
++
++ auto res = w.start(
++ [xs]() {
++ return xs
++ .skip_while(not_equal_to(72))
++ // forget type to workaround lambda deduction bug on msvc 2013
++ .as_dynamic();
++ }
++ );
++
++ THEN("the output only contains items sent while subscribed"){
++ auto required = rxu::to_vector({
++ on.next(460, 72),
++ on.next(510, 76),
++ on.next(560, 32),
++ on.next(570, -100),
++ on.next(580, -3),
++ on.next(590, 5),
++ on.next(630, 10),
++ on.completed(690)
++ });
++ auto actual = res.get_observer().messages();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was 1 subscription/unsubscription to the source"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 690)
++ });
++ auto actual = xs.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ }
++ }
++}
++
++SCENARIO("skip_while, error after", "[skip_while][operators]"){
++ GIVEN("a source"){
++ auto sc = rxsc::make_test();
++ auto w = sc.create_worker();
++ const rxsc::test::messages<int> on;
++
++ std::runtime_error ex("skip_while on_error from source");
++
++ auto xs = sc.make_hot_observable({
++ on.next(70, 6),
++ on.next(150, 4),
++ on.next(210, 9),
++ on.next(230, 13),
++ on.next(270, 7),
++ on.next(280, 1),
++ on.next(300, -1),
++ on.next(310, 3),
++ on.next(340, 8),
++ on.next(370, 11),
++ on.next(410, 15),
++ on.next(415, 16),
++ on.next(460, 72),
++ on.next(510, 76),
++ on.next(560, 32),
++ on.next(570, -100),
++ on.next(580, -3),
++ on.next(590, 5),
++ on.next(630, 10),
++ on.error(690, ex)
++ });
++
++ WHEN("no values are taken"){
++
++ auto res = w.start(
++ [xs]() {
++ return xs
++ .skip_while(not_equal_to(0))
++ // forget type to workaround lambda deduction bug on msvc 2013
++ .as_dynamic();
++ }
++ );
++
++ THEN("the output only contains items sent while subscribed and the error"){
++ auto required = rxu::to_vector({
++ on.error(690, ex)
++ });
++ auto actual = res.get_observer().messages();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was 1 subscription/unsubscription to the source"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 690)
++ });
++ auto actual = xs.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ }
++ }
++}
++
++SCENARIO("skip_while, error before", "[skip_while][operators]"){
++ GIVEN("a source"){
++ auto sc = rxsc::make_test();
++ auto w = sc.create_worker();
++ const rxsc::test::messages<int> on;
++
++ std::runtime_error ex("skip_while on_error from source");
++
++ auto xs = sc.make_hot_observable({
++ on.next(70, 6),
++ on.next(150, 4),
++ on.next(210, 9),
++ on.next(230, 13),
++ on.next(270, 7),
++ on.next(280, 1),
++ on.next(300, -1),
++ on.next(310, 3),
++ on.next(340, 8),
++ on.next(370, 11),
++ on.next(410, 15),
++ on.next(415, 16),
++ on.next(460, 72),
++ on.error(500, ex),
++ on.next(510, 76),
++ on.next(560, 32),
++ on.next(570, -100),
++ on.next(580, -3),
++ on.next(590, 5),
++ on.next(630, 10)
++ });
++
++ WHEN("only one value is taken"){
++
++ auto res = w.start(
++ [xs]() {
++ return xs
++ .skip_while(not_equal_to(72))
++ // forget type to workaround lambda deduction bug on msvc 2013
++ .as_dynamic();
++ }
++ );
++
++ THEN("the output only contains items sent while subscribed"){
++ auto required = rxu::to_vector({
++ on.next(460, 72),
++ on.error(500, ex)
++ });
++ auto actual = res.get_observer().messages();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was 1 subscription/unsubscription to the source"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 500)
++ });
++ auto actual = xs.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ }
++ }
++}
++
++SCENARIO("skip_while, dispose before", "[skip_while][operators]"){
++ GIVEN("a source"){
++ auto sc = rxsc::make_test();
++ auto w = sc.create_worker();
++ const rxsc::test::messages<int> on;
++
++ auto xs = sc.make_hot_observable({
++ on.next(70, 6),
++ on.next(150, 100),
++ on.next(210, 9),
++ on.next(230, 13),
++ on.next(270, 7),
++ on.next(280, 1),
++ on.next(300, -1),
++ on.next(310, 3),
++ on.next(340, 8),
++ on.next(370, 11),
++ on.next(410, 15),
++ on.next(415, 16),
++ on.next(460, 72),
++ on.next(510, 76),
++ on.next(560, 32),
++ on.next(570, -100),
++ on.next(580, -3),
++ on.next(590, 5),
++ on.next(630, 10)
++ });
++
++ WHEN("3 values are taken"){
++
++ auto res = w.start(
++ [xs]() {
++ return xs
++ .skip_while(not_equal_to(100))
++ // forget type to workaround lambda deduction bug on msvc 2013
++ .as_dynamic();
++ },
++ 250
++ );
++
++ THEN("the output only contains items sent while subscribed"){
++ std::vector<rxcpp::notifications::recorded<std::shared_ptr<rxcpp::notifications::detail::notification_base<int> > > > required;
++ auto actual = res.get_observer().messages();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was 1 subscription/unsubscription to the source"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 250)
++ });
++ auto actual = xs.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ }
++ }
++}
++
++SCENARIO("skip_while, dispose after", "[skip_while][operators]"){
++ GIVEN("a source"){
++ auto sc = rxsc::make_test();
++ auto w = sc.create_worker();
++ const rxsc::test::messages<int> on;
++
++ auto xs = sc.make_hot_observable({
++ on.next(70, 6),
++ on.next(150, 4), //this is skipped due to delayed subscription
++ on.next(210, 9),
++ on.next(230, 13),
++ on.next(270, 7),
++ on.next(280, 1),
++ on.next(300, -1),
++ on.next(310, 3),
++ on.next(340, 8),
++ on.next(370, 11),
++ on.next(410, 15),
++ on.next(415, 16),
++ on.next(460, 72),
++ on.next(510, 76),
++ on.next(560, 32),
++ on.next(570, -100),
++ on.next(580, -3),
++ on.next(590, 5),
++ on.next(630, 10)
++ });
++
++ WHEN("5 values are taken"){
++
++ auto res = w.start(
++ [xs]() {
++ return xs
++ .skip_while(not_equal_to(1))
++ // forget type to workaround lambda deduction bug on msvc 2013
++ .as_dynamic();
++ },
++ 400
++ );
++
++ THEN("the output only contains items sent while subscribed"){
++ auto required = rxu::to_vector({
++ on.next(280, 1),
++ on.next(300, -1),
++ on.next(310, 3),
++ on.next(340, 8),
++ on.next(370, 11),
++ });
++ auto actual = res.get_observer().messages();
++ REQUIRE(required == actual);
++ }
++
++ THEN("there was 1 subscription/unsubscription to the source"){
++ auto required = rxu::to_vector({
++ on.subscribe(200, 400)
++ });
++ auto actual = xs.subscriptions();
++ REQUIRE(required == actual);
++ }
++
++ }
++ }
++}
+diff --git a/projects/CMake/CMakeLists.txt b/projects/CMake/CMakeLists.txt
+index 7230ca782..542a91abb 100644
+--- a/projects/CMake/CMakeLists.txt
++++ b/projects/CMake/CMakeLists.txt
+@@ -49,6 +49,7 @@ set(RX_SOURCES
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-lift.hpp
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-map.hpp
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-merge.hpp
++ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-merge_delay_error.hpp
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-multicast.hpp
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-observe_on.hpp
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-on_error_resume_next.hpp
+@@ -63,6 +64,7 @@ set(RX_SOURCES
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-scan.hpp
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-sequence_equal.hpp
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-skip.hpp
++ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-skip_while.hpp
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-skip_last.hpp
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-skip_until.hpp
+ ${RXCPP_DIR}/Rx/v2/src/rxcpp/operators/rx-start_with.hpp
+diff --git a/projects/doxygen/CMakeLists.txt b/projects/doxygen/CMakeLists.txt
+index a3fcd364c..6620a7afc 100644
+--- a/projects/doxygen/CMakeLists.txt
++++ b/projects/doxygen/CMakeLists.txt
+@@ -92,6 +92,7 @@ if(DOXYGEN_FOUND)
+ ${DOXY_EXAMPLES_SRC_DIR}/scope.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/sequence_equal.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/skip.cpp
++ ${DOXY_EXAMPLES_SRC_DIR}/skip_while.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/skip_last.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/skip_until.cpp
+ ${DOXY_EXAMPLES_SRC_DIR}/start_with.cpp
+
+From 76149330a666200b62422454a4fd8d3cd0a4ae37 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82(a)fedoraproject.org>
+Date: Thu, 3 May 2018 14:59:52 +0200
+Subject: [PATCH 22/29] Fix '-Wignored-qualifiers'
+
+---
+ Rx/v2/src/rxcpp/rx-subscription.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Rx/v2/src/rxcpp/rx-subscription.hpp b/Rx/v2/src/rxcpp/rx-subscription.hpp
+index 9c0046905..ee4e53ef1 100644
+--- a/Rx/v2/src/rxcpp/rx-subscription.hpp
++++ b/Rx/v2/src/rxcpp/rx-subscription.hpp
+@@ -379,7 +379,7 @@ class composite_subscription
+
+ composite_subscription()
+ : inner_type()
+- , subscription(*static_cast<const inner_type* const>(this))
++ , subscription(*static_cast<const inner_type*>(this))
+ {
+ }
+
+
+From 7cebbd4d2b3ac16249d538024e7f31eaa300c962 Mon Sep 17 00:00:00 2001
+From: Kirk Shoop <kirk.shoop(a)gmail.com>
+Date: Fri, 4 May 2018 11:03:54 -0700
+Subject: [PATCH 23/29] Update README.md
+
+---
+ README.md | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/README.md b/README.md
+index 8106c4ae8..dbeaaabc0 100644
+--- a/README.md
++++ b/README.md
+@@ -12,8 +12,12 @@ Gitter.im | [![Join in on gitter.im](https://img.shields.io/gitter/room/Reactive
+ Packages | [![NuGet version](http://img.shields.io/nuget/v/RxCpp.svg?style=flat-square)](http... [![vcpkg port](https://img.shields.io/badge/vcpkg-port-blue.svg?style=flat-square)...
+ Documentation | [![rxcpp doxygen documentation](https://img.shields.io/badge/rxcpp-latest-brightgreen.svg?style=flat-square)](http://reactive-extensions.github.io/RxCpp) <br/> [![reactivex intro](https://img.shields.io/badge/reactivex.io-intro-brightgreen.svg?style=flat-square)](http://reactivex.io/intro.html) [![rx marble diagrams](https://img.shields.io/badge/rxmarbles-diagrams-brightgreen.svg...
+
++# Usage
++
++__RxCpp__ is a header-only C++ library that only depends on the standard library. The CMake build generates documentation and unit tests.
++
+ # Example
+-Add ```Rx/v2/src``` to the include paths
++Add `Rx/v2/src` to the include paths
+
+ [![lines from bytes](https://img.shields.io/badge/blog%20post-lines%20from%20bytes-blue.svg?style=flat-square)](http://kirkshoop.github.io/async/rxcpp/c++/2015/07/07/rxcpp_-_parsing_bytes_to_lines_of_text.html)
+
+@@ -230,7 +234,5 @@ When Doxygen+Graphviz is installed, CMake creates a special build task named `do
+
+ Before submitting a feature or substantial code contribution please discuss it with the team and ensure it follows the product roadmap. Note that all code submissions will be rigorously reviewed and tested by the Rx Team, and only those that meet an extremely high bar for both quality and design/roadmap appropriateness will be merged into the source.
+
+-You will be prompted to submit a Contributor License Agreement form after submitting your pull request. This needs to only be done once for any Microsoft OSS project. Fill in the [Contributor License Agreement](https://cla2.msopentech.com/) (CLA).
+-
+ # Microsoft Open Source Code of Conduct
+ This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
+
+From b3e88fd0eb86d707b343496a62f9bb4e606bb04a Mon Sep 17 00:00:00 2001
+From: Kirk Shoop <kirk.shoop(a)gmail.com>
+Date: Fri, 4 May 2018 13:30:03 -0700
+Subject: [PATCH 24/29] Update README.md
+
+---
+ README.md | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/README.md b/README.md
+index dbeaaabc0..d0791d5c8 100644
+--- a/README.md
++++ b/README.md
+@@ -3,18 +3,18 @@ The Reactive Extensions for C++ (__RxCpp__) is a library of algorithms for value
+ Platform | Status |
+ ----------- | :------------ |
+ Windows | [![Windows Status](http://img.shields.io/appveyor/ci/kirkshoop/RxCpp-446.svg?style=f...
+-Linux & OSX | [![Linux & Osx Status](http://img.shields.io/travis/Reactive-Extensions/RxCpp.svg?style=...
++Linux & OSX | [![Linux & Osx Status](http://img.shields.io/travis/ReactiveX/RxCpp.svg?style=flat-squar...
+
+ Source | Badges |
+ ------------- | :--------------- |
+-Github | [![GitHub license](https://img.shields.io/github/license/Reactive-Extensions/RxCpp.... <br/> [![GitHub release](https://img.shields.io/github/release/Reactive-Extensions/RxCpp.... <br/> [![GitHub commits](https://img.shields.io/github/commits-since/Reactive-Extensions/...
+-Gitter.im | [![Join in on gitter.im](https://img.shields.io/gitter/room/Reactive-Extensions/RxCpp.svg?style=flat-square)](https://gitter.im/Reactive-Extensions/RxCpp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
++Github | [![GitHub license](https://img.shields.io/github/license/ReactiveX/RxCpp.svg?style=... <br/> [![GitHub release](https://img.shields.io/github/release/ReactiveX/RxCpp.svg?style=... <br/> [![GitHub commits](https://img.shields.io/github/commits-since/ReactiveX/RxCpp/v4.0...
++Gitter.im | [![Join in on gitter.im](https://img.shields.io/gitter/room/ReactiveX/RxCpp.svg?style=flat-square)](https://gitter.im/ReactiveX/RxCpp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+ Packages | [![NuGet version](http://img.shields.io/nuget/v/RxCpp.svg?style=flat-square)](http... [![vcpkg port](https://img.shields.io/badge/vcpkg-port-blue.svg?style=flat-square)...
+-Documentation | [![rxcpp doxygen documentation](https://img.shields.io/badge/rxcpp-latest-brightgreen.svg?style=flat-square)](http://reactive-extensions.github.io/RxCpp) <br/> [![reactivex intro](https://img.shields.io/badge/reactivex.io-intro-brightgreen.svg?style=flat-square)](http://reactivex.io/intro.html) [![rx marble diagrams](https://img.shields.io/badge/rxmarbles-diagrams-brightgreen.svg...
++Documentation | [![rxcpp doxygen documentation](https://img.shields.io/badge/rxcpp-latest-brightgreen.svg?style=flat-square)](http://reactivex.github.io/RxCpp) <br/> [![reactivex intro](https://img.shields.io/badge/reactivex.io-intro-brightgreen.svg?style=flat-square)](http://reactivex.io/intro.html) [![rx marble diagrams](https://img.shields.io/badge/rxmarbles-diagrams-brightgreen.svg...
+
+ # Usage
+
+-__RxCpp__ is a header-only C++ library that only depends on the standard library. The CMake build generates documentation and unit tests.
++__RxCpp__ is a header-only C++ library that only depends on the standard library. The CMake build generates documentation and unit tests. The unit tests depend on a git submodule for the [Catch](https://github.com/philsquared/Catch) library.
+
+ # Example
+ Add `Rx/v2/src` to the include paths
+@@ -128,7 +128,7 @@ Credit [ReactiveX.io](http://reactivex.io/intro.html)
+ ### Other language implementations
+
+ * Java: [RxJava](https://github.com/ReactiveX/RxJava)
+-* JavaScript: [RxJS](https://github.com/Reactive-Extensions/RxJS)
++* JavaScript: [rxjs](https://github.com/ReactiveX/rxjs)
+ * C#: [Rx.NET](https://github.com/Reactive-Extensions/Rx.NET)
+ * [More..](http://reactivex.io/languages.html)
+
+@@ -148,7 +148,7 @@ Credit [ReactiveX.io](http://reactivex.io/intro.html)
+ RxCpp uses a git submodule (in `ext/catch`) for the excellent [Catch](https://github.com/philsquared/Catch) library. The easiest way to ensure that the submodules are included in the clone is to add `--recursive` in the clone command.
+
+ ```shell
+-git clone --recursive https://github.com/Reactive-Extensions/RxCpp.git
++git clone --recursive https://github.com/ReactiveX/RxCpp.git
+ cd RxCpp
+ ```
+
+@@ -224,7 +224,7 @@ Example of by-tag
+
+ # Documentation
+
+-RxCpp uses Doxygen to generate project [documentation](http://reactive-extensions.github.io/RxCpp).
++RxCpp uses Doxygen to generate project [documentation](http://reactivex.github.io/RxCpp).
+
+ When Doxygen+Graphviz is installed, CMake creates a special build task named `doc`. It creates actual documentation and puts it to `projects/doxygen/html/` folder, which can be published to the `gh-pages` branch. Each merged pull request will build the docs and publish them.
+
+
+From 533e3a349ac0699c946c5497675ac5d159479030 Mon Sep 17 00:00:00 2001
+From: Kirk Shoop <kirk.shoop(a)gmail.com>
+Date: Fri, 4 May 2018 13:35:33 -0700
+Subject: [PATCH 25/29] Update README.md
+
+---
+ README.md | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/README.md b/README.md
+index d0791d5c8..3cd4d7af8 100644
+--- a/README.md
++++ b/README.md
+@@ -8,7 +8,7 @@ Linux & OSX | [![Linux & Osx Status](http://img.shields.io/travis/ReactiveX/RxCp
+ Source | Badges |
+ ------------- | :--------------- |
+ Github | [![GitHub license](https://img.shields.io/github/license/ReactiveX/RxCpp.svg?style=... <br/> [![GitHub release](https://img.shields.io/github/release/ReactiveX/RxCpp.svg?style=... <br/> [![GitHub commits](https://img.shields.io/github/commits-since/ReactiveX/RxCpp/v4.0...
+-Gitter.im | [![Join in on gitter.im](https://img.shields.io/gitter/room/ReactiveX/RxCpp.svg?style=flat-square)](https://gitter.im/ReactiveX/RxCpp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
++Gitter.im | [![Join in on gitter.im](https://img.shields.io/gitter/room/Reactive-Extensions/RxCpp.svg?style=flat-square)](https://gitter.im/ReactiveX/RxCpp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+ Packages | [![NuGet version](http://img.shields.io/nuget/v/RxCpp.svg?style=flat-square)](http... [![vcpkg port](https://img.shields.io/badge/vcpkg-port-blue.svg?style=flat-square)...
+ Documentation | [![rxcpp doxygen documentation](https://img.shields.io/badge/rxcpp-latest-brightgreen.svg?style=flat-square)](http://reactivex.github.io/RxCpp) <br/> [![reactivex intro](https://img.shields.io/badge/reactivex.io-intro-brightgreen.svg?style=flat-square)](http://reactivex.io/intro.html) [![rx marble diagrams](https://img.shields.io/badge/rxmarbles-diagrams-brightgreen.svg...
+
+
+From 28db2ee9fdac1aed6fa8e360ea5ddf12856d0f6b Mon Sep 17 00:00:00 2001
+From: Andrei Lebedev <lebdron(a)gmail.com>
+Date: Fri, 11 May 2018 00:32:43 +0300
+Subject: [PATCH 26/29] Remove unused variable and captures in
+ doxygen/buffer.cpp
+
+---
+ Rx/v2/examples/doxygen/buffer.cpp | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/Rx/v2/examples/doxygen/buffer.cpp b/Rx/v2/examples/doxygen/buffer.cpp
+index e88c2ed55..58f023a6c 100644
+--- a/Rx/v2/examples/doxygen/buffer.cpp
++++ b/Rx/v2/examples/doxygen/buffer.cpp
+@@ -162,7 +162,6 @@ SCENARIO("buffer period sample"){
+
+ SCENARIO("buffer period+count+coordination sample"){
+ printf("//! [buffer period+count+coordination sample]\n");
+- auto start = std::chrono::steady_clock::now();
+ auto int1 = rxcpp::observable<>::range(1L, 3L);
+ auto int2 = rxcpp::observable<>::timer(std::chrono::milliseconds(50));
+ auto values = int1.
+@@ -171,7 +170,7 @@ SCENARIO("buffer period+count+coordination sample"){
+ values.
+ as_blocking().
+ subscribe(
+- [start](std::vector<long> v){
++ [](std::vector<long> v){
+ printf("OnNext:");
+ std::for_each(v.begin(), v.end(), [](long a){
+ printf(" %ld", a);
+@@ -184,7 +183,6 @@ SCENARIO("buffer period+count+coordination sample"){
+
+ SCENARIO("buffer period+count sample"){
+ printf("//! [buffer period+count sample]\n");
+- auto start = std::chrono::steady_clock::now();
+ auto int1 = rxcpp::observable<>::range(1L, 3L);
+ auto int2 = rxcpp::observable<>::timer(std::chrono::milliseconds(50));
+ auto values = int1.
+@@ -192,7 +190,7 @@ SCENARIO("buffer period+count sample"){
+ buffer_with_time_or_count(std::chrono::milliseconds(20), 2);
+ values.
+ subscribe(
+- [start](std::vector<long> v){
++ [](std::vector<long> v){
+ printf("OnNext:");
+ std::for_each(v.begin(), v.end(), [](long a){
+ printf(" %ld", a);
+
+From abaf9881831d3adf52625443611aa1c3ea5e5dbf Mon Sep 17 00:00:00 2001
+From: Andrei Lebedev <lebdron(a)gmail.com>
+Date: Fri, 11 May 2018 02:08:37 +0300
+Subject: [PATCH 27/29] Fix exit_recursed_scope_type dtor cleaning requestor
+ early
+
+---
+ Rx/v2/src/rxcpp/rx-scheduler.hpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Rx/v2/src/rxcpp/rx-scheduler.hpp b/Rx/v2/src/rxcpp/rx-scheduler.hpp
+index 0f239be73..8bdb4dd4e 100644
+--- a/Rx/v2/src/rxcpp/rx-scheduler.hpp
++++ b/Rx/v2/src/rxcpp/rx-scheduler.hpp
+@@ -480,9 +480,9 @@ class schedulable : public schedulable_base
+ // no change in recursion scope
+ return *this;
+ }
+- exit_recursed_scope_type reset(const recurse& r) const {
++ std::shared_ptr<exit_recursed_scope_type> reset(const recurse& r) const {
+ requestor = std::addressof(r.get_recursed());
+- return exit_recursed_scope_type(this);
++ return std::make_shared<exit_recursed_scope_type>(this);
+ }
+ bool is_recursed() const {
+ return !!requestor;
+
+From c7de35be5dc31785984f9b3c6b21f7bf46a05034 Mon Sep 17 00:00:00 2001
+From: Andrei Lebedev <lebdron(a)gmail.com>
+Date: Fri, 11 May 2018 08:22:09 +0300
+Subject: [PATCH 28/29] Replace shared_ptr with move ctor
+
+---
+ Rx/v2/src/rxcpp/rx-scheduler.hpp | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/Rx/v2/src/rxcpp/rx-scheduler.hpp b/Rx/v2/src/rxcpp/rx-scheduler.hpp
+index 8bdb4dd4e..dbf6cb256 100644
+--- a/Rx/v2/src/rxcpp/rx-scheduler.hpp
++++ b/Rx/v2/src/rxcpp/rx-scheduler.hpp
+@@ -458,12 +458,19 @@ class schedulable : public schedulable_base
+ public:
+ ~exit_recursed_scope_type()
+ {
++ if (that != nullptr) {
+ that->requestor = nullptr;
++ }
+ }
+ exit_recursed_scope_type(const recursed_scope_type* that)
+ : that(that)
+ {
+ }
++ exit_recursed_scope_type(exit_recursed_scope_type && other) /*noexcept*/
++ : that(other.that)
++ {
++ other.that = nullptr;
++ }
+ };
+ public:
+ recursed_scope_type()
+@@ -480,9 +487,9 @@ class schedulable : public schedulable_base
+ // no change in recursion scope
+ return *this;
+ }
+- std::shared_ptr<exit_recursed_scope_type> reset(const recurse& r) const {
++ exit_recursed_scope_type reset(const recurse& r) const {
+ requestor = std::addressof(r.get_recursed());
+- return std::make_shared<exit_recursed_scope_type>(this);
++ return exit_recursed_scope_type(this);
+ }
+ bool is_recursed() const {
+ return !!requestor;
+
+From eaf0545efef9fdccc0a6bc88f23ef0fc876c36f3 Mon Sep 17 00:00:00 2001
+From: Andrei Lebedev <lebdron(a)gmail.com>
+Date: Fri, 11 May 2018 08:23:22 +0300
+Subject: [PATCH 29/29] Replace commented out noexcept with macro
+
+---
+ Rx/v2/src/rxcpp/rx-scheduler.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Rx/v2/src/rxcpp/rx-scheduler.hpp b/Rx/v2/src/rxcpp/rx-scheduler.hpp
+index dbf6cb256..fc689793b 100644
+--- a/Rx/v2/src/rxcpp/rx-scheduler.hpp
++++ b/Rx/v2/src/rxcpp/rx-scheduler.hpp
+@@ -466,7 +466,7 @@ class schedulable : public schedulable_base
+ : that(that)
+ {
+ }
+- exit_recursed_scope_type(exit_recursed_scope_type && other) /*noexcept*/
++ exit_recursed_scope_type(exit_recursed_scope_type && other) RXCPP_NOEXCEPT
+ : that(other.that)
+ {
+ other.that = nullptr;
diff --git a/RxCpp.spec b/RxCpp.spec
new file mode 100644
index 0000000..51f8e39
--- /dev/null
+++ b/RxCpp.spec
@@ -0,0 +1,152 @@
+# Header only lib. Package is build archful to run the tests
+# on all available architectures, thus we disable debug packages.
+%global debug_package %{nil}
+
+# Setup _pkgdocdir if not defined already.
+%{!?_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}}
+
+# Package name in lowercase. %%global won't work here.
+%define lc_name %{lua:print(rpm.expand("%{name}"):lower())}
+
+
+Name: RxCpp
+Version: 4.0.0
+Release: 1%{?dist}
+Summary: Reactive Extensions for C++
+
+License: ASL 2.0
+URL: https://github.com/Reactive-Extensions/%{name}
+Source0: %{url}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
+
+# 0 - 999: Cherry-picked from upstream.
+Patch0: %{url}/compare/v4.0.0...master.patch#/%{name}-4.0.0-to_master.patch
+
+# 1000 - 1999: Upstreamed.
+
+# 2000 - 2999: Upstreamable.
+
+# 3000 - 3999: Downstream / not upstreamable.
+
+BuildRequires: catch-devel
+BuildRequires: cmake3
+BuildRequires: gcc-c++
+
+%description
+The Reactive Extensions for C++ (RxCpp) is a library of algorithms
+for values-distributed-in-time.
+
+
+%package devel
+Summary: Reactive Extensions for C++
+BuildArch: noarch
+
+Provides: %{name} == %{version}-%{release}
+Provides: %{name}-static == %{version}-%{release}
+Provides: %{lc_name} == %{version}-%{release}
+Provides: %{lc_name}-devel == %{version}-%{release}
+Provides: %{lc_name}-static == %{version}-%{release}
+
+%description devel
+The Reactive Extensions for C++ (RxCpp) is a library of algorithms
+for values-distributed-in-time.
+
+
+%package doc
+Summary: API-documentation for %{name}
+BuildArch: noarch
+
+BuildRequires: doxygen
+BuildRequires: graphviz
+BuildRequires: hardlink
+
+Provides: %{lc_name}-doc == %{version}-%{release}
+
+%description doc
+This package contains the API-documentation for %{name}.
+
+
+%prep
+%autosetup -p 1
+
+# Rename toplevel license file.
+%{__mv} license.md ASL-2.0.txt
+
+# Fix path to catch.
+%{__sed} -i.catch -e 's!\${RXCPP_DIR}/ext/catch/include!%{_includedir}/catch!g' \
+ projects/CMake/shared.cmake
+
+
+%build
+%cmake3 -DCMAKE_BUILD_TYPE=Release .
+
+# Builds needs about 2.5 GiB of RAM per thread on x86_64,
+# on certain other arches even more. Thus building with
+# less threads on %%{power64}.
+%ifnarch %{power64}
+%make_build
+%else
+%{__make} -O -j2
+%endif
+
+# Build docs.
+pushd projects/doxygen
+%{_bindir}/doxygen doxygen.conf
+popd
+
+
+%install
+%make_install
+
+# Install docs.
+%{__mkdir_p} %{buildroot}%{_pkgdocdir}
+%{__cp} -pr DeveloperManual.md README.md Readme.html \
+%if 0%{?rhel} && 0%{?rhel} <= 6
+ AUTHORS.txt ASL-2.0.txt Rx/v2/license.txt \
+%endif
+ projects/doxygen/html %{buildroot}%{_pkgdocdir}
+%{_bindir}/find %{buildroot}%{_pkgdocdir} -type f | \
+ %{_bindir}/xargs %{__chmod} -c 0644
+%{_bindir}/find %{buildroot}%{_pkgdocdir} -type d | \
+ %{_bindir}/xargs %{__chmod} -c 0755
+%{_sbindir}/hardlink -fv %{buildroot}%{_pkgdocdir}
+
+
+%check
+# Checks are run single-threaded on purpose, because they may
+# exhaust memory of Koji workers otherwise. The timeout is set
+# to be a day for preventing them to time out to soon on Koji.
+pushd build/test
+%{_bindir}/ctest3 %{?_smp_mflags} -V --timeout 86400
+popd
+
+
+%files devel
+%if 0%{?fedora} || 0%{?rhel} >= 7
+%license AUTHORS.txt
+%license ASL-2.0.txt
+%license Rx/v2/license.txt
+%else
+%doc %{_pkgdocdir}/AUTHORS.txt
+%doc %{_pkgdocdir}/ASL-2.0.txt
+%doc %{_pkgdocdir}/license.txt
+%endif
+%doc %dir %{_pkgdocdir}
+%doc %{_pkgdocdir}/DeveloperManual.md
+%doc %{_pkgdocdir}/README.md
+%doc %{_pkgdocdir}/Readme.html
+%{_includedir}/%{lc_name}
+
+
+%files doc
+%if 0%{?fedora} || 0%{?rhel} >= 7
+%license %{_datadir}/licenses/%{name}-devel*
+%endif
+%doc %{_pkgdocdir}
+
+
+%changelog
+* Fri May 18 2018 Björn Esser <besser82(a)fedoraproject.org> - 4.0.0-1
+- Initial import (rhbz#1579523)
+
+* Wed May 02 2018 Björn Esser <besser82(a)fedoraproject.org> - 4.0.0-0.1
+- Initial rpm release (rhbz#1579523)
diff --git a/sources b/sources
new file mode 100644
index 0000000..1c10588
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (RxCpp-4.0.0.tar.gz) = df7582925e749fb7f9fbc085566d57a46571e18202aacaa7d35cf9da8152b29dd2886b2d07dae93e538f2a0f7b91d93fb3da23c34c7ea4467772515c794a25b7
5 years, 10 months
Architecture specific change in rpms/nodejs.git
by githook-noreply@fedoraproject.org
The package rpms/nodejs.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/nodejs.git/commit/?id=fb6fa8bce83....
Change:
-%ifarch aarch64
Thanks.
Full change:
============
commit 733d54662fbb3d92d85223939df41d693b45fa6d
Author: Stephen Gallagher <sgallagh(a)redhat.com>
Date: Fri May 18 09:36:07 2018 -0400
Add patch for nghttp2
Signed-off-by: Stephen Gallagher <sgallagh(a)redhat.com>
diff --git a/0001-Disable-running-gyp-files-for-bundled-deps.patch b/0001-Disable-running-gyp-files-for-bundled-deps.patch
deleted file mode 100644
index 324a468..0000000
--- a/0001-Disable-running-gyp-files-for-bundled-deps.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From c2aff16cc196a61f4ab1cdae4a91c7926123c239 Mon Sep 17 00:00:00 2001
-From: Zuzana Svetlikova <zsvetlik(a)redhat.com>
-Date: Thu, 27 Apr 2017 14:25:42 +0200
-Subject: [PATCH] Disable running gyp on shared deps
-
----
- Makefile | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 0a217bd893..e1229ad07f 100644
---- a/Makefile
-+++ b/Makefile
-@@ -79,10 +79,9 @@ $(NODE_G_EXE): config.gypi out/Makefile
- $(MAKE) -C out BUILDTYPE=Debug V=$(V)
- if [ ! -r $@ -o ! -L $@ ]; then ln -fs out/Debug/$(NODE_EXE) $@; fi
-
--out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp \
-- deps/zlib/zlib.gyp deps/v8/gypfiles/toolchain.gypi \
-- deps/v8/gypfiles/features.gypi deps/v8/src/v8.gyp node.gyp \
-- config.gypi
-+out/Makefile: common.gypi deps/http_parser/http_parser.gyp \
-+ deps/v8/gypfiles/toolchain.gypi deps/v8/gypfiles/features.gypi \
-+ deps/v8/src/v8.gyp node.gyp config.gypi
- $(PYTHON) tools/gyp_node.py -f make
-
- config.gypi: configure
---
-2.12.2
diff --git a/0001-Disable-running-gyp-on-shared-deps.patch b/0001-Disable-running-gyp-on-shared-deps.patch
new file mode 100644
index 0000000..1c104e0
--- /dev/null
+++ b/0001-Disable-running-gyp-on-shared-deps.patch
@@ -0,0 +1,34 @@
+From c651b81df4132f5a1db173d1317ba64673de6f01 Mon Sep 17 00:00:00 2001
+From: Zuzana Svetlikova <zsvetlik(a)redhat.com>
+Date: Thu, 27 Apr 2017 14:25:42 +0200
+Subject: [PATCH 1/4] Disable running gyp on shared deps
+
+---
+ Makefile | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 2c62bf29cd233479e7c56b86d293519dcf9cce6e..10198b11fac2171b6b1c381dbba72596f350870d 100644
+--- a/Makefile
++++ b/Makefile
+@@ -90,14 +90,13 @@ $(NODE_EXE): config.gypi out/Makefile
+
+ $(NODE_G_EXE): config.gypi out/Makefile
+ $(MAKE) -C out BUILDTYPE=Debug V=$(V)
+ if [ ! -r $@ -o ! -L $@ ]; then ln -fs out/Debug/$(NODE_EXE) $@; fi
+
+-out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp \
+- deps/zlib/zlib.gyp deps/v8/gypfiles/toolchain.gypi \
+- deps/v8/gypfiles/features.gypi deps/v8/src/v8.gyp node.gyp \
+- config.gypi
++out/Makefile: common.gypi deps/http_parser/http_parser.gyp \
++ deps/v8/gypfiles/toolchain.gypi deps/v8/gypfiles/features.gypi \
++ deps/v8/src/v8.gyp node.gyp config.gypi
+ $(PYTHON) tools/gyp_node.py -f make
+
+ config.gypi: configure
+ $(error Missing or stale $@, please run ./$<)
+
+--
+2.17.0
+
diff --git a/0001-Fix-aarch64-debug.patch b/0001-Fix-aarch64-debug.patch
deleted file mode 100644
index 00bae49..0000000
--- a/0001-Fix-aarch64-debug.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 058e4efd61c7c9ab4efd55bd9aa37e2184654050 Mon Sep 17 00:00:00 2001
-From: Zuzana Svetlikova <zsvetlik(a)redhat.com>
-Date: Wed, 20 Sep 2017 13:05:01 +0200
-Subject: [PATCH] Fix aarch64 debug
-
----
- deps/v8/src/v8.gyp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/deps/v8/src/v8.gyp b/deps/v8/src/v8.gyp
-index c269f245aa..2ebbd393a9 100644
---- a/deps/v8/src/v8.gyp
-+++ b/deps/v8/src/v8.gyp
-@@ -348,7 +348,7 @@
- '<(INTERMEDIATE_DIR)/snapshot.cc',
- ],
- 'variables': {
-- 'mksnapshot_flags': [],
-+ 'mksnapshot_flags': ['--nodebug_code'],
- 'conditions': [
- ['v8_random_seed!=0', {
- 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'],
-@@ -449,7 +449,7 @@
- '<(mksnapshot_exec)',
- ],
- 'variables': {
-- 'mksnapshot_flags': [],
-+ 'mksnapshot_flags': ['--nodebug_code'],
- 'conditions': [
- ['v8_random_seed!=0', {
- 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'],
---
-2.14.1
-
diff --git a/0002-Fix-aarch64-debug.patch b/0002-Fix-aarch64-debug.patch
new file mode 100644
index 0000000..fa30e47
--- /dev/null
+++ b/0002-Fix-aarch64-debug.patch
@@ -0,0 +1,42 @@
+From 1ce4b0bab75380351ab04cc97ee7f86d7c988d44 Mon Sep 17 00:00:00 2001
+From: Zuzana Svetlikova <zsvetlik(a)redhat.com>
+Date: Wed, 20 Sep 2017 13:05:01 +0200
+Subject: [PATCH 2/4] Fix aarch64 debug
+
+---
+ deps/v8/src/v8.gyp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/deps/v8/src/v8.gyp b/deps/v8/src/v8.gyp
+index 1c56842f81a548f91b1e5f7b62690d50e012e039..0f34d104f7fff89c5321a54b4cc3ca577aed1be4 100644
+--- a/deps/v8/src/v8.gyp
++++ b/deps/v8/src/v8.gyp
+@@ -350,11 +350,11 @@
+ ],
+ 'outputs': [
+ '<(INTERMEDIATE_DIR)/snapshot.cc',
+ ],
+ 'variables': {
+- 'mksnapshot_flags': [],
++ 'mksnapshot_flags': ['--nodebug_code'],
+ 'conditions': [
+ ['v8_random_seed!=0', {
+ 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'],
+ }],
+ ['v8_vector_stores!=0', {
+@@ -451,11 +451,11 @@
+ 'action_name': 'run_mksnapshot (external)',
+ 'inputs': [
+ '<(mksnapshot_exec)',
+ ],
+ 'variables': {
+- 'mksnapshot_flags': [],
++ 'mksnapshot_flags': ['--nodebug_code'],
+ 'conditions': [
+ ['v8_random_seed!=0', {
+ 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'],
+ }],
+ ['v8_vector_stores!=0', {
+--
+2.17.0
+
diff --git a/0003-Suppress-message-to-update-npm.patch b/0003-Suppress-message-to-update-npm.patch
new file mode 100644
index 0000000..d2c38a4
--- /dev/null
+++ b/0003-Suppress-message-to-update-npm.patch
@@ -0,0 +1,34 @@
+From 78ba46ffc5b0bd1dd30470a8b4fa21ce75b36c67 Mon Sep 17 00:00:00 2001
+From: Stephen Gallagher <sgallagh(a)redhat.com>
+Date: Fri, 18 May 2018 08:25:06 -0400
+Subject: [PATCH 3/4] Suppress message to update npm
+
+Signed-off-by: Stephen Gallagher <sgallagh(a)redhat.com>
+---
+ deps/npm/bin/npm-cli.js | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/deps/npm/bin/npm-cli.js b/deps/npm/bin/npm-cli.js
+index e2c013b5df86371b5a0e5b5ac5cc73613f47fd2c..50691e6f82b7f102cbbf40ba568345836dc849fb 100755
+--- a/deps/npm/bin/npm-cli.js
++++ b/deps/npm/bin/npm-cli.js
+@@ -23,16 +23,10 @@
+ log.pause() // will be unpaused when config is loaded.
+ log.info('it worked if it ends with', 'ok')
+
+ unsupported.checkForUnsupportedNode()
+
+- if (!unsupported.checkVersion(process.version).unsupported) {
+- var updater = require('update-notifier')
+- var pkg = require('../package.json')
+- updater({pkg: pkg}).notify({defer: true})
+- }
+-
+ var path = require('path')
+ var npm = require('../lib/npm.js')
+ var npmconf = require('../lib/config/core.js')
+ var errorHandler = require('../lib/utils/error-handler.js')
+ var output = require('../lib/utils/output.js')
+--
+2.17.0
+
diff --git a/0004-http2-pass-session-to-DEBUG_HTTP2SESSION2.patch b/0004-http2-pass-session-to-DEBUG_HTTP2SESSION2.patch
new file mode 100644
index 0000000..e9eaabf
--- /dev/null
+++ b/0004-http2-pass-session-to-DEBUG_HTTP2SESSION2.patch
@@ -0,0 +1,43 @@
+From 138926210083b2a9d1bd7a224204e02199242dab Mon Sep 17 00:00:00 2001
+From: Daniel Bevenius <daniel.bevenius(a)gmail.com>
+Date: Fri, 18 May 2018 09:58:37 +0200
+Subject: [PATCH 4/4] http2: pass session to DEBUG_HTTP2SESSION2
+
+When configure with --debug-http2 --debug-nghttp2 the following
+compilation error is generated:
+
+DEBUG_HTTP2SESSION2(this, "fatal error receiving data: %d", ret);
+ ^
+../src/node_http2.cc:1690:27:
+error: invalid use of 'this' outside of a non-static member function
+
+1 errors generated.
+
+OnStreamReadImpl is static and I think the intention was to pass in the
+session variable here.
+
+Refs: https://github.com/nodejs/node/issues/20806
+---
+ src/node_http2.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/node_http2.cc b/src/node_http2.cc
+index b31878582301ed2fc974e1ff75bd0776bfd3293e..4aa9fceec18ced426195039da4814be3898d9689 100644
+--- a/src/node_http2.cc
++++ b/src/node_http2.cc
+@@ -1685,11 +1685,11 @@ void Http2Session::OnStreamReadImpl(ssize_t nread,
+
+ // Note: if ssize_t is not defined (e.g. on Win32), nghttp2 will typedef
+ // ssize_t to int. Cast here so that the < 0 check actually works on
+ // Windows.
+ if (static_cast<int>(ret) < 0) {
+- DEBUG_HTTP2SESSION2(this, "fatal error receiving data: %d", ret);
++ DEBUG_HTTP2SESSION2(session, "fatal error receiving data: %d", ret);
+
+ Local<Value> argv[1] = {
+ Integer::New(isolate, ret),
+ };
+ session->MakeCallback(env->error_string(), arraysize(argv), argv);
+--
+2.17.0
+
diff --git a/no-npm-update-msg.patch b/no-npm-update-msg.patch
deleted file mode 100644
index f16961a..0000000
--- a/no-npm-update-msg.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff '--color=auto' -ruN node-v9.11.1.orig/deps/npm/bin/npm-cli.js node-v9.11.1/deps/npm/bin/npm-cli.js
---- node-v9.11.1.orig/deps/npm/bin/npm-cli.js 2018-04-05 00:34:51.000000000 -0400
-+++ node-v9.11.1/deps/npm/bin/npm-cli.js 2018-04-09 16:57:31.595166069 -0400
-@@ -25,12 +25,6 @@
-
- unsupported.checkForUnsupportedNode()
-
-- if (!unsupported.checkVersion(process.version).unsupported) {
-- var updater = require('update-notifier')
-- var pkg = require('../package.json')
-- updater({pkg: pkg}).notify({defer: true})
-- }
--
- var path = require('path')
- var npm = require('../lib/npm.js')
- var npmconf = require('../lib/config/core.js')
diff --git a/nodejs.spec b/nodejs.spec
index 79b98ab..a691a7a 100644
--- a/nodejs.spec
+++ b/nodejs.spec
@@ -109,15 +109,19 @@ Source100: %{name}-tarball.sh
Source7: nodejs_native.attr
# Disable running gyp on bundled deps we don't use
-Patch1: 0001-Disable-running-gyp-files-for-bundled-deps.patch
+Patch1: 0001-Disable-running-gyp-on-shared-deps.patch
# Being fixed upstream.
# Follow https://bugs.chromium.org/p/v8/issues/detail?id=6939
-Patch2: 0001-Fix-aarch64-debug.patch
+Patch2: 0002-Fix-aarch64-debug.patch
# Suppress the message from npm to run `npm -g update npm`
# This does bad things on an RPM-managed npm.
-Patch3: no-npm-update-msg.patch
+Patch3: 0003-Suppress-message-to-update-npm.patch
+
+# Fix nghttp2 debug builds
+# https://github.com/nodejs/node/pull/20815
+Patch4: 0004-http2-pass-session-to-DEBUG_HTTP2SESSION2.patch
BuildRequires: python2-devel
BuildRequires: libicu-devel
@@ -281,6 +285,8 @@ rm -rf deps/icu-small \
%patch3 -p1
+%patch4 -p1
+
%build
# build with debugging symbols and add defines from libuv (#892601)
# Node's v8 breaks with GCC 6 because of incorrect usage of methods on
commit fb6fa8bce83dfb923161fdfb93cbafcc9c61b46a
Author: Stephen Gallagher <sgallagh(a)redhat.com>
Date: Fri May 18 08:26:19 2018 -0400
Drop unneeded debug disabling lines
Signed-off-by: Stephen Gallagher <sgallagh(a)redhat.com>
diff --git a/nodejs.spec b/nodejs.spec
index 25a7731..79b98ab 100644
--- a/nodejs.spec
+++ b/nodejs.spec
@@ -7,13 +7,6 @@
%{?!_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}}
-# ARM64 builds of 8.5.0 break on the Debug builds, so we'll just
-# build the standard runtime until that gets sorted out.
-# https://github.com/nodejs/node/issues/15395
-%ifarch aarch64
-%global with_debug 1
-%endif
-
# == Node.js Version ==
# Note: Fedora should only ship LTS versions of Node.js (currently expected
# to be major versions with even numbers). The odd-numbered versions are new
commit 146920185805f7c45c94034f0a8df160c7c784ce
Author: Stephen Gallagher <sgallagh(a)redhat.com>
Date: Thu May 17 11:20:09 2018 -0400
Update to 8.11.2
https://nodejs.org/en/blog/release/v8.11.2/
Signed-off-by: Stephen Gallagher <sgallagh(a)redhat.com>
diff --git a/.gitignore b/.gitignore
index 7e9ace0..79e7af2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -86,3 +86,4 @@
/node-v8.9.4-stripped.tar.gz
/node-v8.10.0-stripped.tar.gz
/node-v8.11.0-stripped.tar.gz
+/node-v8.11.2-stripped.tar.gz
diff --git a/nodejs.spec b/nodejs.spec
index c8f5a45..25a7731 100644
--- a/nodejs.spec
+++ b/nodejs.spec
@@ -22,17 +22,17 @@
%global nodejs_epoch 1
%global nodejs_major 8
%global nodejs_minor 11
-%global nodejs_patch 0
+%global nodejs_patch 2
%global nodejs_abi %{nodejs_major}.%{nodejs_minor}
%global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch}
-%global nodejs_release 2
+%global nodejs_release 1
# == Bundled Dependency Versions ==
# v8 - from deps/v8/include/v8-version.h
%global v8_major 6
%global v8_minor 2
%global v8_build 414
-%global v8_patch 50
+%global v8_patch 54
# V8 presently breaks ABI at least every x.y release while never bumping SONAME
%global v8_abi %{v8_major}.%{v8_minor}
%global v8_version %{v8_major}.%{v8_minor}.%{v8_build}.%{v8_patch}
@@ -56,14 +56,14 @@
%global libuv_patch 1
%global libuv_version %{libuv_major}.%{libuv_minor}.%{libuv_patch}
-# libicu
+# ICU - from configure in the configure_intl() function
%global libicu_major 60
-%global libicu_minor 0
+%global libicu_minor 1
%global libicu_version %{libicu_major}.%{libicu_minor}
# nghttp2 - from deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h
%global nghttp2_major 1
-%global nghttp2_minor 25
+%global nghttp2_minor 29
%global nghttp2_patch 0
%global nghttp2_version %{nghttp2_major}.%{nghttp2_minor}.%{nghttp2_patch}
@@ -495,6 +495,10 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node -
%{_pkgdocdir}/npm/doc
%changelog
+* Thu May 17 2018 Stephen Gallagher <sgallagh(a)redhat.com> - 1:8.11.2-1
+- Update to 8.11.2
+- https://nodejs.org/en/blog/release/v8.11.2/
+
* Fri Apr 13 2018 Rafael dos Santos <rdossant(a)redhat.com> - 1:8.11.0-2
- Use standard Fedora linker flags (bug #1543859)
@@ -619,564 +623,3 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node -
- Update to v8.1.2
- remove GCC 7 patch, as it is now fixed in node >= 6.12
-* Fri Jun 09 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.11.0-1
-- Update to 6.11.0
-- remove system CA patch since it was merged upstream
-- https://github.com/nodejs/node/pull/8334
-
-* Fri May 12 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.10.3-3
-- Rebuild without bootstrap
-
-* Thu May 11 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.10.3-2
-- Provide bundled http-parser in case of boostraping
-
-* Wed May 10 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.10.3-1
-- Update to 6.10.3 (LTS)
-- https://nodejs.org/en/blog/release/v6.10.3/
-- Stop using the bundled http-parser now that there is an upstream
- release with a new-enough version.
-
-* Tue May 09 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.10.2-3
-- Bootstrap systemtap-sdt-devel for modularity
-
-* Wed Apr 19 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.10.2-2
-- Switch to final upstream patch for GCC 7 compatibility
-
-* Wed Apr 12 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.10.2-1
-- Update to 6.10.2
-
-* Mon Apr 03 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.10.1-3
-- Move NPM manpages into the correct subpackage
-- Fixes: rhbz#1433403
-
-* Mon Apr 03 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.10.1-2
-- Revert upstream change that is incompatible with OpenSSL 1.0.1
-- Fixes: rhbz#1436445
-
-* Wed Mar 22 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.10.1-1
-- Update to 6.10.1
-- remove small-icu from deps
-
-* Thu Mar 09 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.10.0-1
-- Update to 6.10.0
-- https://nodejs.org/en/blog/release/v6.10.0/
-- New patch for handling system CA certificates
-
-* Tue Feb 28 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.9.5-2
-- Fix FTBFS against GCC 7
-- Resolves: RHBZ 1423991
-
-* Fri Feb 10 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 1:6.9.5-1.1
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
-
-* Wed Feb 1 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.9.5-1
-- Update to v6.9.5(security)
-- Reenable debug mode (https://github.com/nodejs/node/pull/10525)
-
-* Tue Jan 17 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.9.4-2
-- Enable DTrace support.
-- Eliminate newlines from CFLAGS due to broken dtrace shim
- https://sourceware.org/bugzilla/show_bug.cgi?id=21063
- Thanks to Kinston Hughes for the fix.
-
-* Tue Jan 10 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.9.4-1
-- Update to v6.9.4
-
-* Thu Jan 05 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.9.3-1
-- https://nodejs.org/en/blog/release/v6.9.3/
-
-* Wed Dec 21 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.9.2-2
-- Debug builds are failing. Disable them.
-
-* Thu Dec 08 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.9.2-1
-- Update to v6.9.2
-
-* Tue Nov 08 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.9.1-4
-- Fix incorrect Conflicts for nodejs-docs
-
-* Tue Nov 08 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.9.1-2
-- Bump revision and rebuild for s390x
-
-* Thu Oct 20 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.9.1-1
-- Update to 6.9.1 LTS release
-- Fix a regression introduced in v6.8.0 in readable stream that caused unpipe
- to remove the wrong stream
-- https://nodejs.org/en/blog/release/v6.9.1/
-
-* Tue Oct 18 2016 Stephen Gallagher <sgallagh(a)redhat.com> - -
-- Update to 6.9.0 LTS release
-- https://nodejs.org/en/blog/release/v6.9.0/
-
-* Mon Oct 17 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.8.1-5
-- Add dist tag to npm nodejs dependency
-
-* Mon Oct 17 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.8.1-4
-- Fix typo in npm nodejs dependency
-
-* Sat Oct 15 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.8.1-3
-- Bump release version for tagging bug
-
-* Sat Oct 15 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.8.1-1
-- Update node to v6.8.0
-- Fix FTBFS against non-bundled zlib
-
-* Thu Oct 13 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.8.0-108
-- Update node to v6.8.0 and npm(a)3.10.8
-
-* Tue Sep 27 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.7.0-107
-- Update to 6.7.0
-- https://nodejs.org/en/blog/release/v6.7.0/
-
-* Fri Sep 16 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.6.0-106
-- Drop Conflicts: from main package.
- It wasn't needed and was breaking upgrades in some cases.
-- Move npm support files into the npm package
-- Mark manpages as %%doc
-
-* Fri Sep 16 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.6.0-105
-- Update to 6.6.0
-- https://github.com/nodejs/node/blob/v6.6.0/doc/changelogs/CHANGELOG_V6.md...
-
-* Mon Sep 12 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.5.0-104
-- Add support for building on EPEL 7 against OpenSSL 1.0.1
-- Modify v8_abi autorequires to avoid unnecessary rebuilds
-
-* Mon Aug 29 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.5.0-103
-- Update to 6.5.0
-
-* Mon Aug 22 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.4.0-102
-- Bump release to 102 to fix broken npm dependency
-
-* Thu Aug 18 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.4.0-1
-- Update to 6.4.0
-
-* Tue Aug 16 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.3.1-101
-- Build Node.js with internationalization support
-
-* Thu Aug 04 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.3.1-100
-- Split npm into a subpackage
-
-* Mon Jul 25 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.3.1-1
-- Update to 6.3.1
-- comment out %%patch3
-
-* Mon Jul 18 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.3.0-3
-- Fix epoch version dependency on libuv
-
-* Tue Jul 12 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.3.0-2
-- Patch node.gyp to fix failing ./configure
-
-* Sun Jul 10 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.3.0-1
-- Update node to 6.3.0
-- update punycode to 2.0.0
-- add gcc and gcc-c++ as build dependencies
-- modified system-certs patch
-
-* Sat Jun 18 2016 Tom Hughes <tom(a)compton.nu> - 1:6.2.2-1
-- Update to latest stable release 6.2.2
-- Add check on npm version
-
-* Tue Jun 7 2016 Tom Hughes <tom(a)compton.nu> - 1:6.2.1-1
-- Update to latest stable release 6.2.1
-
-* Wed May 18 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.2.0-1
-- Update to latest stable release 6.2.0
-- https://github.com/nodejs/node/blob/v6.2.0/doc/changelogs/CHANGELOG_V6.md...
-
-* Mon May 09 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.1.0-1
-- Update to latest stable release 6.1.0
-- https://github.com/nodejs/node/blob/v6.1.0/CHANGELOG.md
-
-* Tue May 03 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:5.11.0-3
-- Drop the epoch on the virtual provides for npm
-
-* Thu Apr 28 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:5.11.0-2
-- Add epoch and rebuild to preserve upgrade path
-
-* Mon Apr 25 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 5.11.0-1
-- Update to latest stable release 5.11.0
-- https://github.com/nodejs/node/blob/v5.11.0/CHANGELOG.md
-
-* Mon Apr 11 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 5.10.0-1
-- Update to latest stable release 5.10.1
-- https://github.com/nodejs/node/blob/v5.10.1/CHANGELOG.md
-
-* Fri Apr 01 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 5.10.0-1
-- Update to latest security release (5.10.0)
-- Update bundled npm to 3.8.3
-- Fixes serious man-in-the-middle vulnerability with npm
-
-* Wed Mar 23 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 5.9.1-1
-- Update to latest stable release (5.9.1)
-- Bundle npm (3.7.3)
-
-* Wed Mar 23 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 4.4.1-1
-- Update to 4.4.1 upstream LTS release
-- Add more versatile ABI checking
-
-* Tue Feb 23 2016 Tom Hughes <tom(a)compton.nu> - 4.3.1-1
-- Update to 4.3.1 upstream LTS release
-
-* Wed Feb 10 2016 Tom Hughes <tom(a)compton.nu> - 4.3.0-3
-- Verify that the built node reports the expected versions
-- Drop unneeded dep on http-parser-devel
-- Add version check for punycode
-
-* Wed Feb 10 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 4.3.0-2
-- Fix nodejs-abi to be 4.3
-- Clean up bundled versions in spec file
-
-* Tue Feb 09 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 4.3.0-1
-- Update to 4.3.0 upstream LTS release
-- https://github.com/nodejs/node/blob/v4.3.0/CHANGELOG.md
-- Switch to the bundled http-parser
-- Build with -fno-delete-pointer-null-checks for GCC 6
-
-* Tue Feb 9 2016 Tom Hughes <tom(a)compton.nu> - 4.2.6-1
-- Update to 4.2.6 upstream release
-
-* Thu Feb 04 2016 Fedora Release Engineering <releng(a)fedoraproject.org> - 4.2.4-5
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
-
-* Tue Jan 19 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 4.2.4-4
-- Force a depdendency on the correct version of http-parser
-
-* Tue Jan 19 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 4.2.4-3
-- Force a dependency on the correct version of libuv
-
-* Mon Jan 18 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 4.2.4-2
-- Fix Provides: for punycode
-
-* Wed Jan 13 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 4.2.4-1
-- New upstream bugfix release 4.2.4
-- https://github.com/nodejs/node/blob/v4.2.3/CHANGELOG.md
-
-* Fri Dec 04 2015 Stephen Gallagher <sgallagh(a)redhat.com> 4.2.3-2
-- Add %%with_debug variable to spec file
- The debug build is not supported on all architectures.
-
-* Fri Dec 04 2015 Stephen Gallagher <sgallagh(a)redhat.com> 4.2.3-1
-- New upstream security release 4.2.3
-- https://github.com/nodejs/node/blob/v4.2.3/CHANGELOG.md
-- Fix incorrect v8 version
-
-* Wed Dec 2 2015 Peter Robinson <pbrobinson(a)fedoraproject.org> 4.2.2-4
-- Use nodejs_arches macro for arch definition (add aarch64 and power64 platforms)
-
-* Wed Dec 02 2015 Stephen Gallagher <sgallagh(a)redhat.com> 4.2.2-3
-- Fix nodejs_abi version
-- Also ensure that we are building against the correct libuv
-
-* Wed Dec 02 2015 Stephen Gallagher <sgallagh(a)redhat.com> 4.2.2-2
-- Disable debug build for ARMv7 since it fails to build
-
-* Tue Dec 01 2015 Stephen Gallagher <sgallagh(a)redhat.com> 4.2.2-1
-- Upgrade to Node.js 4.2.2 (LTS)
-
-* Wed Jun 17 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.10.36-5
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
-
-* Wed Apr 29 2015 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.36-4
-- fix incorrect Requires on libuv (RHBZ#1215719)
-
-* Tue Feb 24 2015 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.36-3
-- bump v8 requires (RHBZ#1195457)
-
-* Thu Feb 19 2015 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.36-2
-- build against compat-libuv010
-
-* Thu Feb 19 2015 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.36-1
-- new upstream release 0.10.36
- http://blog.nodejs.org/2015/01/26/node-v0-10-36-stable/
-- Please note that several upstream releases were skipped due to regressions
- reported in the upstream bug tracker. Please also review the 0.10.34 and
- 0.10.35 changelogs available at the above URL for a list of all changes.
-
-* Wed Nov 19 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.33-1
-- new upstream release 0.10.33
- http://blog.nodejs.org/2014/10/23/node-v0-10-33-stable/
-- This release disables SSLv3 to secure Node.js services against the POODLE
- attack. (CVE-2014-3566; RHBZ#1152789) For more information or to learn how
- to re-enable SSLv3 in order to support legacy clients, please see the upstream
- release announcement linked above.
-
-* Tue Oct 21 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.32-2
-- add Provides nodejs-punycode (RHBZ#1151811)
-
-* Thu Sep 18 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.32-1
-- new upstream release 0.10.32
- http://blog.nodejs.org/2014/08/19/node-v0-10-31-stable/
- http://blog.nodejs.org/2014/09/16/node-v0-10-32-stable/
-
-* Sun Aug 17 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.10.30-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
-
-* Fri Aug 01 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.30-1
-- new upstream release 0.10.30
- http://blog.nodejs.org/2014/07/31/node-v0-10-30-stable/
-
-* Thu Jun 19 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.29-1
-- new upstream release 0.10.29
- http://blog.nodejs.org/2014/06/16/node-v0-10-29-stable/
-- The invalid UTF8 fix has been reverted since this breaks v8 API, which cannot
- be done in a stable distribution release. This build of nodejs will behave as
- if NODE_INVALID_UTF8 was set. For more information on the implications, see:
- http://blog.nodejs.org/2014/06/16/openssl-and-breaking-utf-8-change/
-
-* Sat Jun 07 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.10.28-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
-
-* Sat May 03 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.28-2
-- use the system certificate store instead of the bundled copy
- both are based on the Mozilla CA list, so the only effect this should have is
- making additional certificates added by the system administrator available to
- node
-
-* Sat May 03 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.28-1
-- new upstream release 0.10.28
- There is no dfference between 0.10.27 and 0.10.28 for Fedora, as the only
- thing updated was npm, which is shipped seperately. The latest was only
- packaged to avoid confusion. Please see the v0.10.27 changelog for relevant
- changes in this update:
- http://blog.nodejs.org/2014/05/01/node-v0-10-27-stable/
-
-* Thu Feb 20 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.26-1
-- new upstream release 0.10.26
- http://blog.nodejs.org/2014/02/18/node-v0-10-26-stable/
-
-* Fri Feb 14 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.25-2
-- rebuild for icu-53 (via v8)
-
-* Mon Jan 27 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.25-1
-- new upstream release 0.10.25
- http://blog.nodejs.org/2014/01/23/node-v0-10-25-stable/
-
-* Thu Dec 19 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.24-1
-- new upstream release 0.10.24
- http://blog.nodejs.org/2013/12/19/node-v0-10-24-stable/
-- upstream install script installs the headers now
-
-* Thu Dec 12 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.23-1
-- new upstream release 0.10.23
- http://blog.nodejs.org/2013/12/11/node-v0-10-23-stable/
-
-* Tue Nov 12 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.22-1
-- new upstream release 0.10.22
- http://blog.nodejs.org/2013/11/12/node-v0-10-22-stable/
-
-* Fri Oct 18 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.21-1
-- new upstream release 0.10.21
- http://blog.nodejs.org/2013/10/18/node-v0-10-21-stable/
-- resolves an undisclosed security vulnerability in the http module
-
-* Tue Oct 01 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.20-1
-- new upstream release 0.10.20
- http://blog.nodejs.org/2013/09/30/node-v0-10-20-stable/
-
-* Wed Sep 25 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.19-1
-- new upstream release 0.10.19
- http://blog.nodejs.org/2013/09/24/node-v0-10-19-stable/
-
-* Fri Sep 06 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.18-1
-- new upstream release 0.10.18
- http://blog.nodejs.org/2013/09/04/node-v0-10-18-stable/
-
-* Tue Aug 27 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.17-1
-- new upstream release 0.10.17
- http://blog.nodejs.org/2013/08/21/node-v0-10-17-stable/
-- fix duplicated/conflicting documentation files (RHBZ#1001253)
-
-* Sat Aug 17 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.16-1
-- new upstream release 0.10.16
- http://blog.nodejs.org/2013/08/16/node-v0-10-16-stable/
-- add v8-devel to -devel Requires
-- restrict -devel Requires to the same architecture
-
-* Wed Aug 14 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.14-3
-- fix typo in _isa macro in v8 Requires
-
-* Mon Aug 05 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.14-2
-- use unversioned docdir for -docs subpackage
- https://fedoraproject.org/wiki/Changes/UnversionedDocdirs
-- use main package's docdir instead of a seperate -docs directory
-
-* Thu Jul 25 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.14-1
-- new upstream release 0.10.14
- http://blog.nodejs.org/2013/07/25/node-v0-10-14-stable/
-
-* Wed Jul 10 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.13-1
-- new upstream release 0.10.13
- http://blog.nodejs.org/2013/07/09/node-v0-10-13-stable/
-- remove RPM macros, etc. now that they've migrated to nodejs-packaging
-
-* Wed Jun 19 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.12-1
-- new upstream release 0.10.12
- http://blog.nodejs.org/2013/06/18/node-v0-10-12-stable/
-- split off a -packaging subpackage with RPM macros, etc.
-- build -docs as noarch
-- copy mutiple version logic from nodejs-packaging SRPM for now
-
-* Fri May 31 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.9-1
-- new upstream release 0.10.9
- http://blog.nodejs.org/2013/05/30/node-v0-10-9-stable/
-
-* Wed May 29 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.8-1
-- new upstream release 0.10.8
- http://blog.nodejs.org/2013/05/24/node-v0-10-8-stable/
-
-* Wed May 29 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.7-1
-- new upstream release 0.10.7
- http://blog.nodejs.org/2013/05/17/node-v0-10-7-stable/
-- strip openssl from the tarball; it contains prohibited code (RHBZ#967736)
-- patch Makefile so we can just remove all bundled deps completely
-
-* Wed May 15 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.6-1
-- new upstream release 0.10.6
- http://blog.nodejs.org/2013/05/14/node-v0-10-6-stable/
-
-* Mon May 06 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.5-3
-- nodejs-fixdep: work properly when a package has no dependencies
-
-* Mon Apr 29 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.5-2
-- nodejs-symlink-deps: make it work when --check is used and just
- devDependencies exist
-
-* Wed Apr 24 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.5-1
-- new upstream release 0.10.5
- http://blog.nodejs.org/2013/04/23/node-v0-10-5-stable/
-
-* Mon Apr 15 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.4-1
-- new upstream release 0.10.4
- http://blog.nodejs.org/2013/04/11/node-v0-10-4-stable/
-- add no-op macro to permit spec compatibility with EPEL
-
-* Thu Apr 04 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.3-2
-- nodejs-symlink-deps: symlink unconditionally in the buildroot
-
-* Wed Apr 03 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.3-1
-- new upstream release 0.10.3
- http://blog.nodejs.org/2013/04/03/node-v0-10-3-stable/
-- nodejs-symlink-deps: only create symlink if target exists
-- nodejs-symlink-deps: symlink devDependencies when --check is used
-
-* Sun Mar 31 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.2-1
-- new upstream release 0.10.2
- http://blog.nodejs.org/2013/03/28/node-v0-10-2-stable/
-- remove %%nodejs_arches macro since it will only be useful if it is present in
- the redhat-rpm-config package
-- add default filtering macro to remove unwanted Provides from native modules
-- nodejs-symlink-deps now supports multiple modules in one SRPM properly
-- nodejs-symlink-deps also now supports a --check argument that works in the
- current working directry instead of the buildroot
-
-* Fri Mar 22 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.1-1
-- new upstream release 0.10.1
- http://blog.nodejs.org/2013/03/21/node-v0-10-1-stable/
-
-* Wed Mar 20 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.0-4
-- fix escaping in dependency generator regular expressions (RHBZ#923941)
-
-* Wed Mar 13 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.0-3
-- add virtual ABI provides for node and v8 so binary module's deps break when
- binary compatibility is broken
-- automatically add matching Requires to nodejs binary modules
-- add %%nodejs_arches macro to future-proof ExcluseArch stanza in dependent
- packages
-
-* Tue Mar 12 2013 Stephen Gallagher <sgallagh(a)redhat.com> - 0.10.0-2
-- Fix up documentation subpackage
-
-* Mon Mar 11 2013 Stephen Gallagher <sgallagh(a)redhat.com> - 0.10.0-1
-- Update to stable 0.10.0 release
-- https://raw.github.com/joyent/node/v0.10.0/ChangeLog
-
-* Thu Feb 14 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.9.5-11
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
-
-* Tue Jan 22 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-10
-- minor bugfixes to RPM magic
- - nodejs-symlink-deps: don't create an empty node_modules dir when a module
- has no dependencies
- - nodes-fixdep: support adding deps when none exist
-- Add the full set of headers usually bundled with node as deps to nodejs-devel.
- This way `npm install` for native modules that assume the stuff bundled with
- node exists will usually "just work".
--move RPM magic to nodejs-devel as requested by FPC
-
-* Sat Jan 12 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-9
-- fix brown paper bag bug in requires generation script
-
-* Thu Jan 10 2013 Stephen Gallagher <sgallagh(a)redhat.com> - 0.9.5-8
-- Build debug binary and install it in the nodejs-devel subpackage
-
-* Thu Jan 10 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-7
-- don't use make install since it rebuilds everything
-
-* Thu Jan 10 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-6
-- add %%{?isa}, epoch to v8 deps
-
-* Wed Jan 09 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-5
-- add defines to match libuv (#892601)
-- make v8 dependency explicit (and thus more accurate)
-- add -g to $C(XX)FLAGS instead of patching configure to add it
-- don't write pointless 'npm(foo) > 0' deps
-
-* Sat Jan 05 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-4
-- install development headers
-- add nodejs_sitearch macro
-
-* Wed Jan 02 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-3
-- make nodejs-symlink-deps actually work
-
-* Tue Jan 01 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-2
-- provide nodejs-devel so modules can BuildRequire it (and be consistent
- with other interpreted languages in the distro)
-
-* Tue Jan 01 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-1
-- new upstream release 0.9.5
-- provide nodejs-devel for the moment
-- fix minor bugs in RPM magic
-- add nodejs_fixdep macro so packagers can easily adjust dependencies in
- package.json files
-
-* Wed Dec 26 2012 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.4-1
-- new upstream release 0.9.4
-- system library patches are now upstream
-- respect optflags
-- include documentation in subpackage
-- add RPM dependency generation and related magic
-- guard libuv depedency so it always gets bumped when nodejs does
-- add -devel subpackage with enough to make node-gyp happy
-
-* Wed Dec 19 2012 Dan Horák <dan[at]danny.cz> - 0.9.3-8
-- set exclusive arch list to match v8
-
-* Tue Dec 18 2012 Stephen Gallagher <sgallagh(a)redhat.com> - 0.9.3-7
-- Add remaining changes from code review
-- Remove unnecessary BuildRequires on findutils
-- Remove %%clean section
-
-* Fri Dec 14 2012 Stephen Gallagher <sgallagh(a)redhat.com> - 0.9.3-6
-- Fixes from code review
-- Fix executable permissions
-- Correct the License field
-- Build debuginfo properly
-
-* Thu Dec 13 2012 Stephen Gallagher <sgallagh(a)redhat.com> - 0.9.3-5
-- Return back to using the standard binary name
-- Temporarily adding a conflict against the ham radio node package until they
- complete an agreed rename of their binary.
-
-* Wed Nov 28 2012 Stephen Gallagher <sgallagh(a)redhat.com> - 0.9.3-4
-- Rename binary and manpage to nodejs
-
-* Mon Nov 19 2012 Stephen Gallagher <sgallagh(a)redhat.com> - 0.9.3-3
-- Update to latest upstream development release 0.9.3
-- Include upstreamed patches to unbundle dependent libraries
-
-* Tue Oct 23 2012 Adrian Alves <alvesadrian(a)fedoraproject.org> 0.8.12-1
-- Fixes and Patches suggested by Matthias Runge
-
-* Mon Apr 09 2012 Adrian Alves <alvesadrian(a)fedoraproject.org> 0.6.5
-- First build.
-
diff --git a/sources b/sources
index 0eb4c9b..c92dc6f 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (node-v8.11.0-stripped.tar.gz) = 8779563b95448dd82e3c3ac3f279069989672e1f22444e7cfcf89f8c19c2978f67a7e47109e08598cd407f52cdb96692e95100321c83898e39376ede044fe8b1
+SHA512 (node-v8.11.2-stripped.tar.gz) = ede88661ef795f01b4824cb479085f16f47d7e03973d90803b57d88cff20c05a5e08f76e00d33ed7611f2085e812b2088fe65d1f046d5ef212f4aa4cb8389b62
commit 9b4c7dc07a0dc2b40f3bf3dce7a7c67837b4e6c2
Author: Rafael dos Santos <rdossant(a)redhat.com>
Date: Fri Apr 13 07:37:53 2018 +0000
Use standard Fedora linker flags.
- Resolves #1543859
Signed-off-by: Rafael dos Santos <rdossant(a)redhat.com>
Signed-off-by: Stephen Gallagher <sgallagh(a)redhat.com>
diff --git a/nodejs.spec b/nodejs.spec
index c5cc340..c8f5a45 100644
--- a/nodejs.spec
+++ b/nodejs.spec
@@ -25,7 +25,7 @@
%global nodejs_patch 0
%global nodejs_abi %{nodejs_major}.%{nodejs_minor}
%global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch}
-%global nodejs_release 1
+%global nodejs_release 2
# == Bundled Dependency Versions ==
# v8 - from deps/v8/include/v8-version.h
@@ -307,6 +307,8 @@ export CXXFLAGS='%{optflags} -g \
export CFLAGS="$(echo ${CFLAGS} | tr '\n\\' ' ')"
export CXXFLAGS="$(echo ${CXXFLAGS} | tr '\n\\' ' ')"
+export LDFLAGS="%{build_ldflags}"
+
# Work around Fedora 28 issue:
# https://fedoraproject.org/wiki/Changes/Avoid_usr_bin_python_in_RPM_Build#...
# Tracking BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1550564
@@ -493,6 +495,9 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node -
%{_pkgdocdir}/npm/doc
%changelog
+* Fri Apr 13 2018 Rafael dos Santos <rdossant(a)redhat.com> - 1:8.11.0-2
+- Use standard Fedora linker flags (bug #1543859)
+
* Wed Mar 28 2018 Stephen Gallagher <sgallagh(a)redhat.com> - 1:8.11.0-1
- Update to 8.11.0
- https://nodejs.org/en/blog/release/v8.11.0/
5 years, 10 months
Architecture specific change in rpms/nodejs.git
by githook-noreply@fedoraproject.org
The package rpms/nodejs.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/nodejs.git/commit/?id=fb6fa8bce83....
Change:
-%ifarch aarch64
Thanks.
Full change:
============
commit 733d54662fbb3d92d85223939df41d693b45fa6d
Author: Stephen Gallagher <sgallagh(a)redhat.com>
Date: Fri May 18 09:36:07 2018 -0400
Add patch for nghttp2
Signed-off-by: Stephen Gallagher <sgallagh(a)redhat.com>
diff --git a/0001-Disable-running-gyp-files-for-bundled-deps.patch b/0001-Disable-running-gyp-files-for-bundled-deps.patch
deleted file mode 100644
index 324a468..0000000
--- a/0001-Disable-running-gyp-files-for-bundled-deps.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From c2aff16cc196a61f4ab1cdae4a91c7926123c239 Mon Sep 17 00:00:00 2001
-From: Zuzana Svetlikova <zsvetlik(a)redhat.com>
-Date: Thu, 27 Apr 2017 14:25:42 +0200
-Subject: [PATCH] Disable running gyp on shared deps
-
----
- Makefile | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 0a217bd893..e1229ad07f 100644
---- a/Makefile
-+++ b/Makefile
-@@ -79,10 +79,9 @@ $(NODE_G_EXE): config.gypi out/Makefile
- $(MAKE) -C out BUILDTYPE=Debug V=$(V)
- if [ ! -r $@ -o ! -L $@ ]; then ln -fs out/Debug/$(NODE_EXE) $@; fi
-
--out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp \
-- deps/zlib/zlib.gyp deps/v8/gypfiles/toolchain.gypi \
-- deps/v8/gypfiles/features.gypi deps/v8/src/v8.gyp node.gyp \
-- config.gypi
-+out/Makefile: common.gypi deps/http_parser/http_parser.gyp \
-+ deps/v8/gypfiles/toolchain.gypi deps/v8/gypfiles/features.gypi \
-+ deps/v8/src/v8.gyp node.gyp config.gypi
- $(PYTHON) tools/gyp_node.py -f make
-
- config.gypi: configure
---
-2.12.2
diff --git a/0001-Disable-running-gyp-on-shared-deps.patch b/0001-Disable-running-gyp-on-shared-deps.patch
new file mode 100644
index 0000000..1c104e0
--- /dev/null
+++ b/0001-Disable-running-gyp-on-shared-deps.patch
@@ -0,0 +1,34 @@
+From c651b81df4132f5a1db173d1317ba64673de6f01 Mon Sep 17 00:00:00 2001
+From: Zuzana Svetlikova <zsvetlik(a)redhat.com>
+Date: Thu, 27 Apr 2017 14:25:42 +0200
+Subject: [PATCH 1/4] Disable running gyp on shared deps
+
+---
+ Makefile | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 2c62bf29cd233479e7c56b86d293519dcf9cce6e..10198b11fac2171b6b1c381dbba72596f350870d 100644
+--- a/Makefile
++++ b/Makefile
+@@ -90,14 +90,13 @@ $(NODE_EXE): config.gypi out/Makefile
+
+ $(NODE_G_EXE): config.gypi out/Makefile
+ $(MAKE) -C out BUILDTYPE=Debug V=$(V)
+ if [ ! -r $@ -o ! -L $@ ]; then ln -fs out/Debug/$(NODE_EXE) $@; fi
+
+-out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp \
+- deps/zlib/zlib.gyp deps/v8/gypfiles/toolchain.gypi \
+- deps/v8/gypfiles/features.gypi deps/v8/src/v8.gyp node.gyp \
+- config.gypi
++out/Makefile: common.gypi deps/http_parser/http_parser.gyp \
++ deps/v8/gypfiles/toolchain.gypi deps/v8/gypfiles/features.gypi \
++ deps/v8/src/v8.gyp node.gyp config.gypi
+ $(PYTHON) tools/gyp_node.py -f make
+
+ config.gypi: configure
+ $(error Missing or stale $@, please run ./$<)
+
+--
+2.17.0
+
diff --git a/0001-Fix-aarch64-debug.patch b/0001-Fix-aarch64-debug.patch
deleted file mode 100644
index 00bae49..0000000
--- a/0001-Fix-aarch64-debug.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 058e4efd61c7c9ab4efd55bd9aa37e2184654050 Mon Sep 17 00:00:00 2001
-From: Zuzana Svetlikova <zsvetlik(a)redhat.com>
-Date: Wed, 20 Sep 2017 13:05:01 +0200
-Subject: [PATCH] Fix aarch64 debug
-
----
- deps/v8/src/v8.gyp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/deps/v8/src/v8.gyp b/deps/v8/src/v8.gyp
-index c269f245aa..2ebbd393a9 100644
---- a/deps/v8/src/v8.gyp
-+++ b/deps/v8/src/v8.gyp
-@@ -348,7 +348,7 @@
- '<(INTERMEDIATE_DIR)/snapshot.cc',
- ],
- 'variables': {
-- 'mksnapshot_flags': [],
-+ 'mksnapshot_flags': ['--nodebug_code'],
- 'conditions': [
- ['v8_random_seed!=0', {
- 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'],
-@@ -449,7 +449,7 @@
- '<(mksnapshot_exec)',
- ],
- 'variables': {
-- 'mksnapshot_flags': [],
-+ 'mksnapshot_flags': ['--nodebug_code'],
- 'conditions': [
- ['v8_random_seed!=0', {
- 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'],
---
-2.14.1
-
diff --git a/0002-Fix-aarch64-debug.patch b/0002-Fix-aarch64-debug.patch
new file mode 100644
index 0000000..fa30e47
--- /dev/null
+++ b/0002-Fix-aarch64-debug.patch
@@ -0,0 +1,42 @@
+From 1ce4b0bab75380351ab04cc97ee7f86d7c988d44 Mon Sep 17 00:00:00 2001
+From: Zuzana Svetlikova <zsvetlik(a)redhat.com>
+Date: Wed, 20 Sep 2017 13:05:01 +0200
+Subject: [PATCH 2/4] Fix aarch64 debug
+
+---
+ deps/v8/src/v8.gyp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/deps/v8/src/v8.gyp b/deps/v8/src/v8.gyp
+index 1c56842f81a548f91b1e5f7b62690d50e012e039..0f34d104f7fff89c5321a54b4cc3ca577aed1be4 100644
+--- a/deps/v8/src/v8.gyp
++++ b/deps/v8/src/v8.gyp
+@@ -350,11 +350,11 @@
+ ],
+ 'outputs': [
+ '<(INTERMEDIATE_DIR)/snapshot.cc',
+ ],
+ 'variables': {
+- 'mksnapshot_flags': [],
++ 'mksnapshot_flags': ['--nodebug_code'],
+ 'conditions': [
+ ['v8_random_seed!=0', {
+ 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'],
+ }],
+ ['v8_vector_stores!=0', {
+@@ -451,11 +451,11 @@
+ 'action_name': 'run_mksnapshot (external)',
+ 'inputs': [
+ '<(mksnapshot_exec)',
+ ],
+ 'variables': {
+- 'mksnapshot_flags': [],
++ 'mksnapshot_flags': ['--nodebug_code'],
+ 'conditions': [
+ ['v8_random_seed!=0', {
+ 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'],
+ }],
+ ['v8_vector_stores!=0', {
+--
+2.17.0
+
diff --git a/0003-Suppress-message-to-update-npm.patch b/0003-Suppress-message-to-update-npm.patch
new file mode 100644
index 0000000..d2c38a4
--- /dev/null
+++ b/0003-Suppress-message-to-update-npm.patch
@@ -0,0 +1,34 @@
+From 78ba46ffc5b0bd1dd30470a8b4fa21ce75b36c67 Mon Sep 17 00:00:00 2001
+From: Stephen Gallagher <sgallagh(a)redhat.com>
+Date: Fri, 18 May 2018 08:25:06 -0400
+Subject: [PATCH 3/4] Suppress message to update npm
+
+Signed-off-by: Stephen Gallagher <sgallagh(a)redhat.com>
+---
+ deps/npm/bin/npm-cli.js | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/deps/npm/bin/npm-cli.js b/deps/npm/bin/npm-cli.js
+index e2c013b5df86371b5a0e5b5ac5cc73613f47fd2c..50691e6f82b7f102cbbf40ba568345836dc849fb 100755
+--- a/deps/npm/bin/npm-cli.js
++++ b/deps/npm/bin/npm-cli.js
+@@ -23,16 +23,10 @@
+ log.pause() // will be unpaused when config is loaded.
+ log.info('it worked if it ends with', 'ok')
+
+ unsupported.checkForUnsupportedNode()
+
+- if (!unsupported.checkVersion(process.version).unsupported) {
+- var updater = require('update-notifier')
+- var pkg = require('../package.json')
+- updater({pkg: pkg}).notify({defer: true})
+- }
+-
+ var path = require('path')
+ var npm = require('../lib/npm.js')
+ var npmconf = require('../lib/config/core.js')
+ var errorHandler = require('../lib/utils/error-handler.js')
+ var output = require('../lib/utils/output.js')
+--
+2.17.0
+
diff --git a/0004-http2-pass-session-to-DEBUG_HTTP2SESSION2.patch b/0004-http2-pass-session-to-DEBUG_HTTP2SESSION2.patch
new file mode 100644
index 0000000..e9eaabf
--- /dev/null
+++ b/0004-http2-pass-session-to-DEBUG_HTTP2SESSION2.patch
@@ -0,0 +1,43 @@
+From 138926210083b2a9d1bd7a224204e02199242dab Mon Sep 17 00:00:00 2001
+From: Daniel Bevenius <daniel.bevenius(a)gmail.com>
+Date: Fri, 18 May 2018 09:58:37 +0200
+Subject: [PATCH 4/4] http2: pass session to DEBUG_HTTP2SESSION2
+
+When configure with --debug-http2 --debug-nghttp2 the following
+compilation error is generated:
+
+DEBUG_HTTP2SESSION2(this, "fatal error receiving data: %d", ret);
+ ^
+../src/node_http2.cc:1690:27:
+error: invalid use of 'this' outside of a non-static member function
+
+1 errors generated.
+
+OnStreamReadImpl is static and I think the intention was to pass in the
+session variable here.
+
+Refs: https://github.com/nodejs/node/issues/20806
+---
+ src/node_http2.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/node_http2.cc b/src/node_http2.cc
+index b31878582301ed2fc974e1ff75bd0776bfd3293e..4aa9fceec18ced426195039da4814be3898d9689 100644
+--- a/src/node_http2.cc
++++ b/src/node_http2.cc
+@@ -1685,11 +1685,11 @@ void Http2Session::OnStreamReadImpl(ssize_t nread,
+
+ // Note: if ssize_t is not defined (e.g. on Win32), nghttp2 will typedef
+ // ssize_t to int. Cast here so that the < 0 check actually works on
+ // Windows.
+ if (static_cast<int>(ret) < 0) {
+- DEBUG_HTTP2SESSION2(this, "fatal error receiving data: %d", ret);
++ DEBUG_HTTP2SESSION2(session, "fatal error receiving data: %d", ret);
+
+ Local<Value> argv[1] = {
+ Integer::New(isolate, ret),
+ };
+ session->MakeCallback(env->error_string(), arraysize(argv), argv);
+--
+2.17.0
+
diff --git a/no-npm-update-msg.patch b/no-npm-update-msg.patch
deleted file mode 100644
index f16961a..0000000
--- a/no-npm-update-msg.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff '--color=auto' -ruN node-v9.11.1.orig/deps/npm/bin/npm-cli.js node-v9.11.1/deps/npm/bin/npm-cli.js
---- node-v9.11.1.orig/deps/npm/bin/npm-cli.js 2018-04-05 00:34:51.000000000 -0400
-+++ node-v9.11.1/deps/npm/bin/npm-cli.js 2018-04-09 16:57:31.595166069 -0400
-@@ -25,12 +25,6 @@
-
- unsupported.checkForUnsupportedNode()
-
-- if (!unsupported.checkVersion(process.version).unsupported) {
-- var updater = require('update-notifier')
-- var pkg = require('../package.json')
-- updater({pkg: pkg}).notify({defer: true})
-- }
--
- var path = require('path')
- var npm = require('../lib/npm.js')
- var npmconf = require('../lib/config/core.js')
diff --git a/nodejs.spec b/nodejs.spec
index 79b98ab..a691a7a 100644
--- a/nodejs.spec
+++ b/nodejs.spec
@@ -109,15 +109,19 @@ Source100: %{name}-tarball.sh
Source7: nodejs_native.attr
# Disable running gyp on bundled deps we don't use
-Patch1: 0001-Disable-running-gyp-files-for-bundled-deps.patch
+Patch1: 0001-Disable-running-gyp-on-shared-deps.patch
# Being fixed upstream.
# Follow https://bugs.chromium.org/p/v8/issues/detail?id=6939
-Patch2: 0001-Fix-aarch64-debug.patch
+Patch2: 0002-Fix-aarch64-debug.patch
# Suppress the message from npm to run `npm -g update npm`
# This does bad things on an RPM-managed npm.
-Patch3: no-npm-update-msg.patch
+Patch3: 0003-Suppress-message-to-update-npm.patch
+
+# Fix nghttp2 debug builds
+# https://github.com/nodejs/node/pull/20815
+Patch4: 0004-http2-pass-session-to-DEBUG_HTTP2SESSION2.patch
BuildRequires: python2-devel
BuildRequires: libicu-devel
@@ -281,6 +285,8 @@ rm -rf deps/icu-small \
%patch3 -p1
+%patch4 -p1
+
%build
# build with debugging symbols and add defines from libuv (#892601)
# Node's v8 breaks with GCC 6 because of incorrect usage of methods on
commit fb6fa8bce83dfb923161fdfb93cbafcc9c61b46a
Author: Stephen Gallagher <sgallagh(a)redhat.com>
Date: Fri May 18 08:26:19 2018 -0400
Drop unneeded debug disabling lines
Signed-off-by: Stephen Gallagher <sgallagh(a)redhat.com>
diff --git a/nodejs.spec b/nodejs.spec
index 25a7731..79b98ab 100644
--- a/nodejs.spec
+++ b/nodejs.spec
@@ -7,13 +7,6 @@
%{?!_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}}
-# ARM64 builds of 8.5.0 break on the Debug builds, so we'll just
-# build the standard runtime until that gets sorted out.
-# https://github.com/nodejs/node/issues/15395
-%ifarch aarch64
-%global with_debug 1
-%endif
-
# == Node.js Version ==
# Note: Fedora should only ship LTS versions of Node.js (currently expected
# to be major versions with even numbers). The odd-numbered versions are new
commit 146920185805f7c45c94034f0a8df160c7c784ce
Author: Stephen Gallagher <sgallagh(a)redhat.com>
Date: Thu May 17 11:20:09 2018 -0400
Update to 8.11.2
https://nodejs.org/en/blog/release/v8.11.2/
Signed-off-by: Stephen Gallagher <sgallagh(a)redhat.com>
diff --git a/.gitignore b/.gitignore
index 7e9ace0..79e7af2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -86,3 +86,4 @@
/node-v8.9.4-stripped.tar.gz
/node-v8.10.0-stripped.tar.gz
/node-v8.11.0-stripped.tar.gz
+/node-v8.11.2-stripped.tar.gz
diff --git a/nodejs.spec b/nodejs.spec
index c8f5a45..25a7731 100644
--- a/nodejs.spec
+++ b/nodejs.spec
@@ -22,17 +22,17 @@
%global nodejs_epoch 1
%global nodejs_major 8
%global nodejs_minor 11
-%global nodejs_patch 0
+%global nodejs_patch 2
%global nodejs_abi %{nodejs_major}.%{nodejs_minor}
%global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch}
-%global nodejs_release 2
+%global nodejs_release 1
# == Bundled Dependency Versions ==
# v8 - from deps/v8/include/v8-version.h
%global v8_major 6
%global v8_minor 2
%global v8_build 414
-%global v8_patch 50
+%global v8_patch 54
# V8 presently breaks ABI at least every x.y release while never bumping SONAME
%global v8_abi %{v8_major}.%{v8_minor}
%global v8_version %{v8_major}.%{v8_minor}.%{v8_build}.%{v8_patch}
@@ -56,14 +56,14 @@
%global libuv_patch 1
%global libuv_version %{libuv_major}.%{libuv_minor}.%{libuv_patch}
-# libicu
+# ICU - from configure in the configure_intl() function
%global libicu_major 60
-%global libicu_minor 0
+%global libicu_minor 1
%global libicu_version %{libicu_major}.%{libicu_minor}
# nghttp2 - from deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h
%global nghttp2_major 1
-%global nghttp2_minor 25
+%global nghttp2_minor 29
%global nghttp2_patch 0
%global nghttp2_version %{nghttp2_major}.%{nghttp2_minor}.%{nghttp2_patch}
@@ -495,6 +495,10 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node -
%{_pkgdocdir}/npm/doc
%changelog
+* Thu May 17 2018 Stephen Gallagher <sgallagh(a)redhat.com> - 1:8.11.2-1
+- Update to 8.11.2
+- https://nodejs.org/en/blog/release/v8.11.2/
+
* Fri Apr 13 2018 Rafael dos Santos <rdossant(a)redhat.com> - 1:8.11.0-2
- Use standard Fedora linker flags (bug #1543859)
@@ -619,564 +623,3 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node -
- Update to v8.1.2
- remove GCC 7 patch, as it is now fixed in node >= 6.12
-* Fri Jun 09 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.11.0-1
-- Update to 6.11.0
-- remove system CA patch since it was merged upstream
-- https://github.com/nodejs/node/pull/8334
-
-* Fri May 12 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.10.3-3
-- Rebuild without bootstrap
-
-* Thu May 11 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.10.3-2
-- Provide bundled http-parser in case of boostraping
-
-* Wed May 10 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.10.3-1
-- Update to 6.10.3 (LTS)
-- https://nodejs.org/en/blog/release/v6.10.3/
-- Stop using the bundled http-parser now that there is an upstream
- release with a new-enough version.
-
-* Tue May 09 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.10.2-3
-- Bootstrap systemtap-sdt-devel for modularity
-
-* Wed Apr 19 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.10.2-2
-- Switch to final upstream patch for GCC 7 compatibility
-
-* Wed Apr 12 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.10.2-1
-- Update to 6.10.2
-
-* Mon Apr 03 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.10.1-3
-- Move NPM manpages into the correct subpackage
-- Fixes: rhbz#1433403
-
-* Mon Apr 03 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.10.1-2
-- Revert upstream change that is incompatible with OpenSSL 1.0.1
-- Fixes: rhbz#1436445
-
-* Wed Mar 22 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.10.1-1
-- Update to 6.10.1
-- remove small-icu from deps
-
-* Thu Mar 09 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.10.0-1
-- Update to 6.10.0
-- https://nodejs.org/en/blog/release/v6.10.0/
-- New patch for handling system CA certificates
-
-* Tue Feb 28 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.9.5-2
-- Fix FTBFS against GCC 7
-- Resolves: RHBZ 1423991
-
-* Fri Feb 10 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 1:6.9.5-1.1
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
-
-* Wed Feb 1 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.9.5-1
-- Update to v6.9.5(security)
-- Reenable debug mode (https://github.com/nodejs/node/pull/10525)
-
-* Tue Jan 17 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.9.4-2
-- Enable DTrace support.
-- Eliminate newlines from CFLAGS due to broken dtrace shim
- https://sourceware.org/bugzilla/show_bug.cgi?id=21063
- Thanks to Kinston Hughes for the fix.
-
-* Tue Jan 10 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.9.4-1
-- Update to v6.9.4
-
-* Thu Jan 05 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.9.3-1
-- https://nodejs.org/en/blog/release/v6.9.3/
-
-* Wed Dec 21 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.9.2-2
-- Debug builds are failing. Disable them.
-
-* Thu Dec 08 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.9.2-1
-- Update to v6.9.2
-
-* Tue Nov 08 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.9.1-4
-- Fix incorrect Conflicts for nodejs-docs
-
-* Tue Nov 08 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.9.1-2
-- Bump revision and rebuild for s390x
-
-* Thu Oct 20 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.9.1-1
-- Update to 6.9.1 LTS release
-- Fix a regression introduced in v6.8.0 in readable stream that caused unpipe
- to remove the wrong stream
-- https://nodejs.org/en/blog/release/v6.9.1/
-
-* Tue Oct 18 2016 Stephen Gallagher <sgallagh(a)redhat.com> - -
-- Update to 6.9.0 LTS release
-- https://nodejs.org/en/blog/release/v6.9.0/
-
-* Mon Oct 17 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.8.1-5
-- Add dist tag to npm nodejs dependency
-
-* Mon Oct 17 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.8.1-4
-- Fix typo in npm nodejs dependency
-
-* Sat Oct 15 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.8.1-3
-- Bump release version for tagging bug
-
-* Sat Oct 15 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.8.1-1
-- Update node to v6.8.0
-- Fix FTBFS against non-bundled zlib
-
-* Thu Oct 13 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.8.0-108
-- Update node to v6.8.0 and npm(a)3.10.8
-
-* Tue Sep 27 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.7.0-107
-- Update to 6.7.0
-- https://nodejs.org/en/blog/release/v6.7.0/
-
-* Fri Sep 16 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.6.0-106
-- Drop Conflicts: from main package.
- It wasn't needed and was breaking upgrades in some cases.
-- Move npm support files into the npm package
-- Mark manpages as %%doc
-
-* Fri Sep 16 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.6.0-105
-- Update to 6.6.0
-- https://github.com/nodejs/node/blob/v6.6.0/doc/changelogs/CHANGELOG_V6.md...
-
-* Mon Sep 12 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.5.0-104
-- Add support for building on EPEL 7 against OpenSSL 1.0.1
-- Modify v8_abi autorequires to avoid unnecessary rebuilds
-
-* Mon Aug 29 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.5.0-103
-- Update to 6.5.0
-
-* Mon Aug 22 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.4.0-102
-- Bump release to 102 to fix broken npm dependency
-
-* Thu Aug 18 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.4.0-1
-- Update to 6.4.0
-
-* Tue Aug 16 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.3.1-101
-- Build Node.js with internationalization support
-
-* Thu Aug 04 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.3.1-100
-- Split npm into a subpackage
-
-* Mon Jul 25 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.3.1-1
-- Update to 6.3.1
-- comment out %%patch3
-
-* Mon Jul 18 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.3.0-3
-- Fix epoch version dependency on libuv
-
-* Tue Jul 12 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.3.0-2
-- Patch node.gyp to fix failing ./configure
-
-* Sun Jul 10 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.3.0-1
-- Update node to 6.3.0
-- update punycode to 2.0.0
-- add gcc and gcc-c++ as build dependencies
-- modified system-certs patch
-
-* Sat Jun 18 2016 Tom Hughes <tom(a)compton.nu> - 1:6.2.2-1
-- Update to latest stable release 6.2.2
-- Add check on npm version
-
-* Tue Jun 7 2016 Tom Hughes <tom(a)compton.nu> - 1:6.2.1-1
-- Update to latest stable release 6.2.1
-
-* Wed May 18 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.2.0-1
-- Update to latest stable release 6.2.0
-- https://github.com/nodejs/node/blob/v6.2.0/doc/changelogs/CHANGELOG_V6.md...
-
-* Mon May 09 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.1.0-1
-- Update to latest stable release 6.1.0
-- https://github.com/nodejs/node/blob/v6.1.0/CHANGELOG.md
-
-* Tue May 03 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:5.11.0-3
-- Drop the epoch on the virtual provides for npm
-
-* Thu Apr 28 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:5.11.0-2
-- Add epoch and rebuild to preserve upgrade path
-
-* Mon Apr 25 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 5.11.0-1
-- Update to latest stable release 5.11.0
-- https://github.com/nodejs/node/blob/v5.11.0/CHANGELOG.md
-
-* Mon Apr 11 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 5.10.0-1
-- Update to latest stable release 5.10.1
-- https://github.com/nodejs/node/blob/v5.10.1/CHANGELOG.md
-
-* Fri Apr 01 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 5.10.0-1
-- Update to latest security release (5.10.0)
-- Update bundled npm to 3.8.3
-- Fixes serious man-in-the-middle vulnerability with npm
-
-* Wed Mar 23 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 5.9.1-1
-- Update to latest stable release (5.9.1)
-- Bundle npm (3.7.3)
-
-* Wed Mar 23 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 4.4.1-1
-- Update to 4.4.1 upstream LTS release
-- Add more versatile ABI checking
-
-* Tue Feb 23 2016 Tom Hughes <tom(a)compton.nu> - 4.3.1-1
-- Update to 4.3.1 upstream LTS release
-
-* Wed Feb 10 2016 Tom Hughes <tom(a)compton.nu> - 4.3.0-3
-- Verify that the built node reports the expected versions
-- Drop unneeded dep on http-parser-devel
-- Add version check for punycode
-
-* Wed Feb 10 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 4.3.0-2
-- Fix nodejs-abi to be 4.3
-- Clean up bundled versions in spec file
-
-* Tue Feb 09 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 4.3.0-1
-- Update to 4.3.0 upstream LTS release
-- https://github.com/nodejs/node/blob/v4.3.0/CHANGELOG.md
-- Switch to the bundled http-parser
-- Build with -fno-delete-pointer-null-checks for GCC 6
-
-* Tue Feb 9 2016 Tom Hughes <tom(a)compton.nu> - 4.2.6-1
-- Update to 4.2.6 upstream release
-
-* Thu Feb 04 2016 Fedora Release Engineering <releng(a)fedoraproject.org> - 4.2.4-5
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
-
-* Tue Jan 19 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 4.2.4-4
-- Force a depdendency on the correct version of http-parser
-
-* Tue Jan 19 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 4.2.4-3
-- Force a dependency on the correct version of libuv
-
-* Mon Jan 18 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 4.2.4-2
-- Fix Provides: for punycode
-
-* Wed Jan 13 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 4.2.4-1
-- New upstream bugfix release 4.2.4
-- https://github.com/nodejs/node/blob/v4.2.3/CHANGELOG.md
-
-* Fri Dec 04 2015 Stephen Gallagher <sgallagh(a)redhat.com> 4.2.3-2
-- Add %%with_debug variable to spec file
- The debug build is not supported on all architectures.
-
-* Fri Dec 04 2015 Stephen Gallagher <sgallagh(a)redhat.com> 4.2.3-1
-- New upstream security release 4.2.3
-- https://github.com/nodejs/node/blob/v4.2.3/CHANGELOG.md
-- Fix incorrect v8 version
-
-* Wed Dec 2 2015 Peter Robinson <pbrobinson(a)fedoraproject.org> 4.2.2-4
-- Use nodejs_arches macro for arch definition (add aarch64 and power64 platforms)
-
-* Wed Dec 02 2015 Stephen Gallagher <sgallagh(a)redhat.com> 4.2.2-3
-- Fix nodejs_abi version
-- Also ensure that we are building against the correct libuv
-
-* Wed Dec 02 2015 Stephen Gallagher <sgallagh(a)redhat.com> 4.2.2-2
-- Disable debug build for ARMv7 since it fails to build
-
-* Tue Dec 01 2015 Stephen Gallagher <sgallagh(a)redhat.com> 4.2.2-1
-- Upgrade to Node.js 4.2.2 (LTS)
-
-* Wed Jun 17 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.10.36-5
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
-
-* Wed Apr 29 2015 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.36-4
-- fix incorrect Requires on libuv (RHBZ#1215719)
-
-* Tue Feb 24 2015 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.36-3
-- bump v8 requires (RHBZ#1195457)
-
-* Thu Feb 19 2015 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.36-2
-- build against compat-libuv010
-
-* Thu Feb 19 2015 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.36-1
-- new upstream release 0.10.36
- http://blog.nodejs.org/2015/01/26/node-v0-10-36-stable/
-- Please note that several upstream releases were skipped due to regressions
- reported in the upstream bug tracker. Please also review the 0.10.34 and
- 0.10.35 changelogs available at the above URL for a list of all changes.
-
-* Wed Nov 19 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.33-1
-- new upstream release 0.10.33
- http://blog.nodejs.org/2014/10/23/node-v0-10-33-stable/
-- This release disables SSLv3 to secure Node.js services against the POODLE
- attack. (CVE-2014-3566; RHBZ#1152789) For more information or to learn how
- to re-enable SSLv3 in order to support legacy clients, please see the upstream
- release announcement linked above.
-
-* Tue Oct 21 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.32-2
-- add Provides nodejs-punycode (RHBZ#1151811)
-
-* Thu Sep 18 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.32-1
-- new upstream release 0.10.32
- http://blog.nodejs.org/2014/08/19/node-v0-10-31-stable/
- http://blog.nodejs.org/2014/09/16/node-v0-10-32-stable/
-
-* Sun Aug 17 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.10.30-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
-
-* Fri Aug 01 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.30-1
-- new upstream release 0.10.30
- http://blog.nodejs.org/2014/07/31/node-v0-10-30-stable/
-
-* Thu Jun 19 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.29-1
-- new upstream release 0.10.29
- http://blog.nodejs.org/2014/06/16/node-v0-10-29-stable/
-- The invalid UTF8 fix has been reverted since this breaks v8 API, which cannot
- be done in a stable distribution release. This build of nodejs will behave as
- if NODE_INVALID_UTF8 was set. For more information on the implications, see:
- http://blog.nodejs.org/2014/06/16/openssl-and-breaking-utf-8-change/
-
-* Sat Jun 07 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.10.28-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
-
-* Sat May 03 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.28-2
-- use the system certificate store instead of the bundled copy
- both are based on the Mozilla CA list, so the only effect this should have is
- making additional certificates added by the system administrator available to
- node
-
-* Sat May 03 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.28-1
-- new upstream release 0.10.28
- There is no dfference between 0.10.27 and 0.10.28 for Fedora, as the only
- thing updated was npm, which is shipped seperately. The latest was only
- packaged to avoid confusion. Please see the v0.10.27 changelog for relevant
- changes in this update:
- http://blog.nodejs.org/2014/05/01/node-v0-10-27-stable/
-
-* Thu Feb 20 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.26-1
-- new upstream release 0.10.26
- http://blog.nodejs.org/2014/02/18/node-v0-10-26-stable/
-
-* Fri Feb 14 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.25-2
-- rebuild for icu-53 (via v8)
-
-* Mon Jan 27 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.25-1
-- new upstream release 0.10.25
- http://blog.nodejs.org/2014/01/23/node-v0-10-25-stable/
-
-* Thu Dec 19 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.24-1
-- new upstream release 0.10.24
- http://blog.nodejs.org/2013/12/19/node-v0-10-24-stable/
-- upstream install script installs the headers now
-
-* Thu Dec 12 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.23-1
-- new upstream release 0.10.23
- http://blog.nodejs.org/2013/12/11/node-v0-10-23-stable/
-
-* Tue Nov 12 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.22-1
-- new upstream release 0.10.22
- http://blog.nodejs.org/2013/11/12/node-v0-10-22-stable/
-
-* Fri Oct 18 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.21-1
-- new upstream release 0.10.21
- http://blog.nodejs.org/2013/10/18/node-v0-10-21-stable/
-- resolves an undisclosed security vulnerability in the http module
-
-* Tue Oct 01 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.20-1
-- new upstream release 0.10.20
- http://blog.nodejs.org/2013/09/30/node-v0-10-20-stable/
-
-* Wed Sep 25 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.19-1
-- new upstream release 0.10.19
- http://blog.nodejs.org/2013/09/24/node-v0-10-19-stable/
-
-* Fri Sep 06 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.18-1
-- new upstream release 0.10.18
- http://blog.nodejs.org/2013/09/04/node-v0-10-18-stable/
-
-* Tue Aug 27 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.17-1
-- new upstream release 0.10.17
- http://blog.nodejs.org/2013/08/21/node-v0-10-17-stable/
-- fix duplicated/conflicting documentation files (RHBZ#1001253)
-
-* Sat Aug 17 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.16-1
-- new upstream release 0.10.16
- http://blog.nodejs.org/2013/08/16/node-v0-10-16-stable/
-- add v8-devel to -devel Requires
-- restrict -devel Requires to the same architecture
-
-* Wed Aug 14 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.14-3
-- fix typo in _isa macro in v8 Requires
-
-* Mon Aug 05 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.14-2
-- use unversioned docdir for -docs subpackage
- https://fedoraproject.org/wiki/Changes/UnversionedDocdirs
-- use main package's docdir instead of a seperate -docs directory
-
-* Thu Jul 25 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.14-1
-- new upstream release 0.10.14
- http://blog.nodejs.org/2013/07/25/node-v0-10-14-stable/
-
-* Wed Jul 10 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.13-1
-- new upstream release 0.10.13
- http://blog.nodejs.org/2013/07/09/node-v0-10-13-stable/
-- remove RPM macros, etc. now that they've migrated to nodejs-packaging
-
-* Wed Jun 19 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.12-1
-- new upstream release 0.10.12
- http://blog.nodejs.org/2013/06/18/node-v0-10-12-stable/
-- split off a -packaging subpackage with RPM macros, etc.
-- build -docs as noarch
-- copy mutiple version logic from nodejs-packaging SRPM for now
-
-* Fri May 31 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.9-1
-- new upstream release 0.10.9
- http://blog.nodejs.org/2013/05/30/node-v0-10-9-stable/
-
-* Wed May 29 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.8-1
-- new upstream release 0.10.8
- http://blog.nodejs.org/2013/05/24/node-v0-10-8-stable/
-
-* Wed May 29 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.7-1
-- new upstream release 0.10.7
- http://blog.nodejs.org/2013/05/17/node-v0-10-7-stable/
-- strip openssl from the tarball; it contains prohibited code (RHBZ#967736)
-- patch Makefile so we can just remove all bundled deps completely
-
-* Wed May 15 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.6-1
-- new upstream release 0.10.6
- http://blog.nodejs.org/2013/05/14/node-v0-10-6-stable/
-
-* Mon May 06 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.5-3
-- nodejs-fixdep: work properly when a package has no dependencies
-
-* Mon Apr 29 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.5-2
-- nodejs-symlink-deps: make it work when --check is used and just
- devDependencies exist
-
-* Wed Apr 24 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.5-1
-- new upstream release 0.10.5
- http://blog.nodejs.org/2013/04/23/node-v0-10-5-stable/
-
-* Mon Apr 15 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.4-1
-- new upstream release 0.10.4
- http://blog.nodejs.org/2013/04/11/node-v0-10-4-stable/
-- add no-op macro to permit spec compatibility with EPEL
-
-* Thu Apr 04 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.3-2
-- nodejs-symlink-deps: symlink unconditionally in the buildroot
-
-* Wed Apr 03 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.3-1
-- new upstream release 0.10.3
- http://blog.nodejs.org/2013/04/03/node-v0-10-3-stable/
-- nodejs-symlink-deps: only create symlink if target exists
-- nodejs-symlink-deps: symlink devDependencies when --check is used
-
-* Sun Mar 31 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.2-1
-- new upstream release 0.10.2
- http://blog.nodejs.org/2013/03/28/node-v0-10-2-stable/
-- remove %%nodejs_arches macro since it will only be useful if it is present in
- the redhat-rpm-config package
-- add default filtering macro to remove unwanted Provides from native modules
-- nodejs-symlink-deps now supports multiple modules in one SRPM properly
-- nodejs-symlink-deps also now supports a --check argument that works in the
- current working directry instead of the buildroot
-
-* Fri Mar 22 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.1-1
-- new upstream release 0.10.1
- http://blog.nodejs.org/2013/03/21/node-v0-10-1-stable/
-
-* Wed Mar 20 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.0-4
-- fix escaping in dependency generator regular expressions (RHBZ#923941)
-
-* Wed Mar 13 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.0-3
-- add virtual ABI provides for node and v8 so binary module's deps break when
- binary compatibility is broken
-- automatically add matching Requires to nodejs binary modules
-- add %%nodejs_arches macro to future-proof ExcluseArch stanza in dependent
- packages
-
-* Tue Mar 12 2013 Stephen Gallagher <sgallagh(a)redhat.com> - 0.10.0-2
-- Fix up documentation subpackage
-
-* Mon Mar 11 2013 Stephen Gallagher <sgallagh(a)redhat.com> - 0.10.0-1
-- Update to stable 0.10.0 release
-- https://raw.github.com/joyent/node/v0.10.0/ChangeLog
-
-* Thu Feb 14 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.9.5-11
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
-
-* Tue Jan 22 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-10
-- minor bugfixes to RPM magic
- - nodejs-symlink-deps: don't create an empty node_modules dir when a module
- has no dependencies
- - nodes-fixdep: support adding deps when none exist
-- Add the full set of headers usually bundled with node as deps to nodejs-devel.
- This way `npm install` for native modules that assume the stuff bundled with
- node exists will usually "just work".
--move RPM magic to nodejs-devel as requested by FPC
-
-* Sat Jan 12 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-9
-- fix brown paper bag bug in requires generation script
-
-* Thu Jan 10 2013 Stephen Gallagher <sgallagh(a)redhat.com> - 0.9.5-8
-- Build debug binary and install it in the nodejs-devel subpackage
-
-* Thu Jan 10 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-7
-- don't use make install since it rebuilds everything
-
-* Thu Jan 10 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-6
-- add %%{?isa}, epoch to v8 deps
-
-* Wed Jan 09 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-5
-- add defines to match libuv (#892601)
-- make v8 dependency explicit (and thus more accurate)
-- add -g to $C(XX)FLAGS instead of patching configure to add it
-- don't write pointless 'npm(foo) > 0' deps
-
-* Sat Jan 05 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-4
-- install development headers
-- add nodejs_sitearch macro
-
-* Wed Jan 02 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-3
-- make nodejs-symlink-deps actually work
-
-* Tue Jan 01 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-2
-- provide nodejs-devel so modules can BuildRequire it (and be consistent
- with other interpreted languages in the distro)
-
-* Tue Jan 01 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-1
-- new upstream release 0.9.5
-- provide nodejs-devel for the moment
-- fix minor bugs in RPM magic
-- add nodejs_fixdep macro so packagers can easily adjust dependencies in
- package.json files
-
-* Wed Dec 26 2012 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.4-1
-- new upstream release 0.9.4
-- system library patches are now upstream
-- respect optflags
-- include documentation in subpackage
-- add RPM dependency generation and related magic
-- guard libuv depedency so it always gets bumped when nodejs does
-- add -devel subpackage with enough to make node-gyp happy
-
-* Wed Dec 19 2012 Dan Horák <dan[at]danny.cz> - 0.9.3-8
-- set exclusive arch list to match v8
-
-* Tue Dec 18 2012 Stephen Gallagher <sgallagh(a)redhat.com> - 0.9.3-7
-- Add remaining changes from code review
-- Remove unnecessary BuildRequires on findutils
-- Remove %%clean section
-
-* Fri Dec 14 2012 Stephen Gallagher <sgallagh(a)redhat.com> - 0.9.3-6
-- Fixes from code review
-- Fix executable permissions
-- Correct the License field
-- Build debuginfo properly
-
-* Thu Dec 13 2012 Stephen Gallagher <sgallagh(a)redhat.com> - 0.9.3-5
-- Return back to using the standard binary name
-- Temporarily adding a conflict against the ham radio node package until they
- complete an agreed rename of their binary.
-
-* Wed Nov 28 2012 Stephen Gallagher <sgallagh(a)redhat.com> - 0.9.3-4
-- Rename binary and manpage to nodejs
-
-* Mon Nov 19 2012 Stephen Gallagher <sgallagh(a)redhat.com> - 0.9.3-3
-- Update to latest upstream development release 0.9.3
-- Include upstreamed patches to unbundle dependent libraries
-
-* Tue Oct 23 2012 Adrian Alves <alvesadrian(a)fedoraproject.org> 0.8.12-1
-- Fixes and Patches suggested by Matthias Runge
-
-* Mon Apr 09 2012 Adrian Alves <alvesadrian(a)fedoraproject.org> 0.6.5
-- First build.
-
diff --git a/sources b/sources
index 0eb4c9b..c92dc6f 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (node-v8.11.0-stripped.tar.gz) = 8779563b95448dd82e3c3ac3f279069989672e1f22444e7cfcf89f8c19c2978f67a7e47109e08598cd407f52cdb96692e95100321c83898e39376ede044fe8b1
+SHA512 (node-v8.11.2-stripped.tar.gz) = ede88661ef795f01b4824cb479085f16f47d7e03973d90803b57d88cff20c05a5e08f76e00d33ed7611f2085e812b2088fe65d1f046d5ef212f4aa4cb8389b62
5 years, 10 months
Architecture specific change in rpms/nodejs.git
by githook-noreply@fedoraproject.org
The package rpms/nodejs.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/nodejs.git/commit/?id=fb6fa8bce83....
Change:
-%ifarch aarch64
Thanks.
Full change:
============
commit 733d54662fbb3d92d85223939df41d693b45fa6d
Author: Stephen Gallagher <sgallagh(a)redhat.com>
Date: Fri May 18 09:36:07 2018 -0400
Add patch for nghttp2
Signed-off-by: Stephen Gallagher <sgallagh(a)redhat.com>
diff --git a/0001-Disable-running-gyp-files-for-bundled-deps.patch b/0001-Disable-running-gyp-files-for-bundled-deps.patch
deleted file mode 100644
index 324a468..0000000
--- a/0001-Disable-running-gyp-files-for-bundled-deps.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From c2aff16cc196a61f4ab1cdae4a91c7926123c239 Mon Sep 17 00:00:00 2001
-From: Zuzana Svetlikova <zsvetlik(a)redhat.com>
-Date: Thu, 27 Apr 2017 14:25:42 +0200
-Subject: [PATCH] Disable running gyp on shared deps
-
----
- Makefile | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 0a217bd893..e1229ad07f 100644
---- a/Makefile
-+++ b/Makefile
-@@ -79,10 +79,9 @@ $(NODE_G_EXE): config.gypi out/Makefile
- $(MAKE) -C out BUILDTYPE=Debug V=$(V)
- if [ ! -r $@ -o ! -L $@ ]; then ln -fs out/Debug/$(NODE_EXE) $@; fi
-
--out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp \
-- deps/zlib/zlib.gyp deps/v8/gypfiles/toolchain.gypi \
-- deps/v8/gypfiles/features.gypi deps/v8/src/v8.gyp node.gyp \
-- config.gypi
-+out/Makefile: common.gypi deps/http_parser/http_parser.gyp \
-+ deps/v8/gypfiles/toolchain.gypi deps/v8/gypfiles/features.gypi \
-+ deps/v8/src/v8.gyp node.gyp config.gypi
- $(PYTHON) tools/gyp_node.py -f make
-
- config.gypi: configure
---
-2.12.2
diff --git a/0001-Disable-running-gyp-on-shared-deps.patch b/0001-Disable-running-gyp-on-shared-deps.patch
new file mode 100644
index 0000000..1c104e0
--- /dev/null
+++ b/0001-Disable-running-gyp-on-shared-deps.patch
@@ -0,0 +1,34 @@
+From c651b81df4132f5a1db173d1317ba64673de6f01 Mon Sep 17 00:00:00 2001
+From: Zuzana Svetlikova <zsvetlik(a)redhat.com>
+Date: Thu, 27 Apr 2017 14:25:42 +0200
+Subject: [PATCH 1/4] Disable running gyp on shared deps
+
+---
+ Makefile | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 2c62bf29cd233479e7c56b86d293519dcf9cce6e..10198b11fac2171b6b1c381dbba72596f350870d 100644
+--- a/Makefile
++++ b/Makefile
+@@ -90,14 +90,13 @@ $(NODE_EXE): config.gypi out/Makefile
+
+ $(NODE_G_EXE): config.gypi out/Makefile
+ $(MAKE) -C out BUILDTYPE=Debug V=$(V)
+ if [ ! -r $@ -o ! -L $@ ]; then ln -fs out/Debug/$(NODE_EXE) $@; fi
+
+-out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp \
+- deps/zlib/zlib.gyp deps/v8/gypfiles/toolchain.gypi \
+- deps/v8/gypfiles/features.gypi deps/v8/src/v8.gyp node.gyp \
+- config.gypi
++out/Makefile: common.gypi deps/http_parser/http_parser.gyp \
++ deps/v8/gypfiles/toolchain.gypi deps/v8/gypfiles/features.gypi \
++ deps/v8/src/v8.gyp node.gyp config.gypi
+ $(PYTHON) tools/gyp_node.py -f make
+
+ config.gypi: configure
+ $(error Missing or stale $@, please run ./$<)
+
+--
+2.17.0
+
diff --git a/0001-Fix-aarch64-debug.patch b/0001-Fix-aarch64-debug.patch
deleted file mode 100644
index 00bae49..0000000
--- a/0001-Fix-aarch64-debug.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 058e4efd61c7c9ab4efd55bd9aa37e2184654050 Mon Sep 17 00:00:00 2001
-From: Zuzana Svetlikova <zsvetlik(a)redhat.com>
-Date: Wed, 20 Sep 2017 13:05:01 +0200
-Subject: [PATCH] Fix aarch64 debug
-
----
- deps/v8/src/v8.gyp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/deps/v8/src/v8.gyp b/deps/v8/src/v8.gyp
-index c269f245aa..2ebbd393a9 100644
---- a/deps/v8/src/v8.gyp
-+++ b/deps/v8/src/v8.gyp
-@@ -348,7 +348,7 @@
- '<(INTERMEDIATE_DIR)/snapshot.cc',
- ],
- 'variables': {
-- 'mksnapshot_flags': [],
-+ 'mksnapshot_flags': ['--nodebug_code'],
- 'conditions': [
- ['v8_random_seed!=0', {
- 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'],
-@@ -449,7 +449,7 @@
- '<(mksnapshot_exec)',
- ],
- 'variables': {
-- 'mksnapshot_flags': [],
-+ 'mksnapshot_flags': ['--nodebug_code'],
- 'conditions': [
- ['v8_random_seed!=0', {
- 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'],
---
-2.14.1
-
diff --git a/0002-Fix-aarch64-debug.patch b/0002-Fix-aarch64-debug.patch
new file mode 100644
index 0000000..fa30e47
--- /dev/null
+++ b/0002-Fix-aarch64-debug.patch
@@ -0,0 +1,42 @@
+From 1ce4b0bab75380351ab04cc97ee7f86d7c988d44 Mon Sep 17 00:00:00 2001
+From: Zuzana Svetlikova <zsvetlik(a)redhat.com>
+Date: Wed, 20 Sep 2017 13:05:01 +0200
+Subject: [PATCH 2/4] Fix aarch64 debug
+
+---
+ deps/v8/src/v8.gyp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/deps/v8/src/v8.gyp b/deps/v8/src/v8.gyp
+index 1c56842f81a548f91b1e5f7b62690d50e012e039..0f34d104f7fff89c5321a54b4cc3ca577aed1be4 100644
+--- a/deps/v8/src/v8.gyp
++++ b/deps/v8/src/v8.gyp
+@@ -350,11 +350,11 @@
+ ],
+ 'outputs': [
+ '<(INTERMEDIATE_DIR)/snapshot.cc',
+ ],
+ 'variables': {
+- 'mksnapshot_flags': [],
++ 'mksnapshot_flags': ['--nodebug_code'],
+ 'conditions': [
+ ['v8_random_seed!=0', {
+ 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'],
+ }],
+ ['v8_vector_stores!=0', {
+@@ -451,11 +451,11 @@
+ 'action_name': 'run_mksnapshot (external)',
+ 'inputs': [
+ '<(mksnapshot_exec)',
+ ],
+ 'variables': {
+- 'mksnapshot_flags': [],
++ 'mksnapshot_flags': ['--nodebug_code'],
+ 'conditions': [
+ ['v8_random_seed!=0', {
+ 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'],
+ }],
+ ['v8_vector_stores!=0', {
+--
+2.17.0
+
diff --git a/0003-Suppress-message-to-update-npm.patch b/0003-Suppress-message-to-update-npm.patch
new file mode 100644
index 0000000..d2c38a4
--- /dev/null
+++ b/0003-Suppress-message-to-update-npm.patch
@@ -0,0 +1,34 @@
+From 78ba46ffc5b0bd1dd30470a8b4fa21ce75b36c67 Mon Sep 17 00:00:00 2001
+From: Stephen Gallagher <sgallagh(a)redhat.com>
+Date: Fri, 18 May 2018 08:25:06 -0400
+Subject: [PATCH 3/4] Suppress message to update npm
+
+Signed-off-by: Stephen Gallagher <sgallagh(a)redhat.com>
+---
+ deps/npm/bin/npm-cli.js | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/deps/npm/bin/npm-cli.js b/deps/npm/bin/npm-cli.js
+index e2c013b5df86371b5a0e5b5ac5cc73613f47fd2c..50691e6f82b7f102cbbf40ba568345836dc849fb 100755
+--- a/deps/npm/bin/npm-cli.js
++++ b/deps/npm/bin/npm-cli.js
+@@ -23,16 +23,10 @@
+ log.pause() // will be unpaused when config is loaded.
+ log.info('it worked if it ends with', 'ok')
+
+ unsupported.checkForUnsupportedNode()
+
+- if (!unsupported.checkVersion(process.version).unsupported) {
+- var updater = require('update-notifier')
+- var pkg = require('../package.json')
+- updater({pkg: pkg}).notify({defer: true})
+- }
+-
+ var path = require('path')
+ var npm = require('../lib/npm.js')
+ var npmconf = require('../lib/config/core.js')
+ var errorHandler = require('../lib/utils/error-handler.js')
+ var output = require('../lib/utils/output.js')
+--
+2.17.0
+
diff --git a/0004-http2-pass-session-to-DEBUG_HTTP2SESSION2.patch b/0004-http2-pass-session-to-DEBUG_HTTP2SESSION2.patch
new file mode 100644
index 0000000..e9eaabf
--- /dev/null
+++ b/0004-http2-pass-session-to-DEBUG_HTTP2SESSION2.patch
@@ -0,0 +1,43 @@
+From 138926210083b2a9d1bd7a224204e02199242dab Mon Sep 17 00:00:00 2001
+From: Daniel Bevenius <daniel.bevenius(a)gmail.com>
+Date: Fri, 18 May 2018 09:58:37 +0200
+Subject: [PATCH 4/4] http2: pass session to DEBUG_HTTP2SESSION2
+
+When configure with --debug-http2 --debug-nghttp2 the following
+compilation error is generated:
+
+DEBUG_HTTP2SESSION2(this, "fatal error receiving data: %d", ret);
+ ^
+../src/node_http2.cc:1690:27:
+error: invalid use of 'this' outside of a non-static member function
+
+1 errors generated.
+
+OnStreamReadImpl is static and I think the intention was to pass in the
+session variable here.
+
+Refs: https://github.com/nodejs/node/issues/20806
+---
+ src/node_http2.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/node_http2.cc b/src/node_http2.cc
+index b31878582301ed2fc974e1ff75bd0776bfd3293e..4aa9fceec18ced426195039da4814be3898d9689 100644
+--- a/src/node_http2.cc
++++ b/src/node_http2.cc
+@@ -1685,11 +1685,11 @@ void Http2Session::OnStreamReadImpl(ssize_t nread,
+
+ // Note: if ssize_t is not defined (e.g. on Win32), nghttp2 will typedef
+ // ssize_t to int. Cast here so that the < 0 check actually works on
+ // Windows.
+ if (static_cast<int>(ret) < 0) {
+- DEBUG_HTTP2SESSION2(this, "fatal error receiving data: %d", ret);
++ DEBUG_HTTP2SESSION2(session, "fatal error receiving data: %d", ret);
+
+ Local<Value> argv[1] = {
+ Integer::New(isolate, ret),
+ };
+ session->MakeCallback(env->error_string(), arraysize(argv), argv);
+--
+2.17.0
+
diff --git a/no-npm-update-msg.patch b/no-npm-update-msg.patch
deleted file mode 100644
index f16961a..0000000
--- a/no-npm-update-msg.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff '--color=auto' -ruN node-v9.11.1.orig/deps/npm/bin/npm-cli.js node-v9.11.1/deps/npm/bin/npm-cli.js
---- node-v9.11.1.orig/deps/npm/bin/npm-cli.js 2018-04-05 00:34:51.000000000 -0400
-+++ node-v9.11.1/deps/npm/bin/npm-cli.js 2018-04-09 16:57:31.595166069 -0400
-@@ -25,12 +25,6 @@
-
- unsupported.checkForUnsupportedNode()
-
-- if (!unsupported.checkVersion(process.version).unsupported) {
-- var updater = require('update-notifier')
-- var pkg = require('../package.json')
-- updater({pkg: pkg}).notify({defer: true})
-- }
--
- var path = require('path')
- var npm = require('../lib/npm.js')
- var npmconf = require('../lib/config/core.js')
diff --git a/nodejs.spec b/nodejs.spec
index 79b98ab..a691a7a 100644
--- a/nodejs.spec
+++ b/nodejs.spec
@@ -109,15 +109,19 @@ Source100: %{name}-tarball.sh
Source7: nodejs_native.attr
# Disable running gyp on bundled deps we don't use
-Patch1: 0001-Disable-running-gyp-files-for-bundled-deps.patch
+Patch1: 0001-Disable-running-gyp-on-shared-deps.patch
# Being fixed upstream.
# Follow https://bugs.chromium.org/p/v8/issues/detail?id=6939
-Patch2: 0001-Fix-aarch64-debug.patch
+Patch2: 0002-Fix-aarch64-debug.patch
# Suppress the message from npm to run `npm -g update npm`
# This does bad things on an RPM-managed npm.
-Patch3: no-npm-update-msg.patch
+Patch3: 0003-Suppress-message-to-update-npm.patch
+
+# Fix nghttp2 debug builds
+# https://github.com/nodejs/node/pull/20815
+Patch4: 0004-http2-pass-session-to-DEBUG_HTTP2SESSION2.patch
BuildRequires: python2-devel
BuildRequires: libicu-devel
@@ -281,6 +285,8 @@ rm -rf deps/icu-small \
%patch3 -p1
+%patch4 -p1
+
%build
# build with debugging symbols and add defines from libuv (#892601)
# Node's v8 breaks with GCC 6 because of incorrect usage of methods on
commit fb6fa8bce83dfb923161fdfb93cbafcc9c61b46a
Author: Stephen Gallagher <sgallagh(a)redhat.com>
Date: Fri May 18 08:26:19 2018 -0400
Drop unneeded debug disabling lines
Signed-off-by: Stephen Gallagher <sgallagh(a)redhat.com>
diff --git a/nodejs.spec b/nodejs.spec
index 25a7731..79b98ab 100644
--- a/nodejs.spec
+++ b/nodejs.spec
@@ -7,13 +7,6 @@
%{?!_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}}
-# ARM64 builds of 8.5.0 break on the Debug builds, so we'll just
-# build the standard runtime until that gets sorted out.
-# https://github.com/nodejs/node/issues/15395
-%ifarch aarch64
-%global with_debug 1
-%endif
-
# == Node.js Version ==
# Note: Fedora should only ship LTS versions of Node.js (currently expected
# to be major versions with even numbers). The odd-numbered versions are new
commit 146920185805f7c45c94034f0a8df160c7c784ce
Author: Stephen Gallagher <sgallagh(a)redhat.com>
Date: Thu May 17 11:20:09 2018 -0400
Update to 8.11.2
https://nodejs.org/en/blog/release/v8.11.2/
Signed-off-by: Stephen Gallagher <sgallagh(a)redhat.com>
diff --git a/.gitignore b/.gitignore
index 7e9ace0..79e7af2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -86,3 +86,4 @@
/node-v8.9.4-stripped.tar.gz
/node-v8.10.0-stripped.tar.gz
/node-v8.11.0-stripped.tar.gz
+/node-v8.11.2-stripped.tar.gz
diff --git a/nodejs.spec b/nodejs.spec
index c8f5a45..25a7731 100644
--- a/nodejs.spec
+++ b/nodejs.spec
@@ -22,17 +22,17 @@
%global nodejs_epoch 1
%global nodejs_major 8
%global nodejs_minor 11
-%global nodejs_patch 0
+%global nodejs_patch 2
%global nodejs_abi %{nodejs_major}.%{nodejs_minor}
%global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch}
-%global nodejs_release 2
+%global nodejs_release 1
# == Bundled Dependency Versions ==
# v8 - from deps/v8/include/v8-version.h
%global v8_major 6
%global v8_minor 2
%global v8_build 414
-%global v8_patch 50
+%global v8_patch 54
# V8 presently breaks ABI at least every x.y release while never bumping SONAME
%global v8_abi %{v8_major}.%{v8_minor}
%global v8_version %{v8_major}.%{v8_minor}.%{v8_build}.%{v8_patch}
@@ -56,14 +56,14 @@
%global libuv_patch 1
%global libuv_version %{libuv_major}.%{libuv_minor}.%{libuv_patch}
-# libicu
+# ICU - from configure in the configure_intl() function
%global libicu_major 60
-%global libicu_minor 0
+%global libicu_minor 1
%global libicu_version %{libicu_major}.%{libicu_minor}
# nghttp2 - from deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h
%global nghttp2_major 1
-%global nghttp2_minor 25
+%global nghttp2_minor 29
%global nghttp2_patch 0
%global nghttp2_version %{nghttp2_major}.%{nghttp2_minor}.%{nghttp2_patch}
@@ -495,6 +495,10 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node -
%{_pkgdocdir}/npm/doc
%changelog
+* Thu May 17 2018 Stephen Gallagher <sgallagh(a)redhat.com> - 1:8.11.2-1
+- Update to 8.11.2
+- https://nodejs.org/en/blog/release/v8.11.2/
+
* Fri Apr 13 2018 Rafael dos Santos <rdossant(a)redhat.com> - 1:8.11.0-2
- Use standard Fedora linker flags (bug #1543859)
@@ -619,564 +623,3 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node -
- Update to v8.1.2
- remove GCC 7 patch, as it is now fixed in node >= 6.12
-* Fri Jun 09 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.11.0-1
-- Update to 6.11.0
-- remove system CA patch since it was merged upstream
-- https://github.com/nodejs/node/pull/8334
-
-* Fri May 12 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.10.3-3
-- Rebuild without bootstrap
-
-* Thu May 11 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.10.3-2
-- Provide bundled http-parser in case of boostraping
-
-* Wed May 10 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.10.3-1
-- Update to 6.10.3 (LTS)
-- https://nodejs.org/en/blog/release/v6.10.3/
-- Stop using the bundled http-parser now that there is an upstream
- release with a new-enough version.
-
-* Tue May 09 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.10.2-3
-- Bootstrap systemtap-sdt-devel for modularity
-
-* Wed Apr 19 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.10.2-2
-- Switch to final upstream patch for GCC 7 compatibility
-
-* Wed Apr 12 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.10.2-1
-- Update to 6.10.2
-
-* Mon Apr 03 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.10.1-3
-- Move NPM manpages into the correct subpackage
-- Fixes: rhbz#1433403
-
-* Mon Apr 03 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.10.1-2
-- Revert upstream change that is incompatible with OpenSSL 1.0.1
-- Fixes: rhbz#1436445
-
-* Wed Mar 22 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.10.1-1
-- Update to 6.10.1
-- remove small-icu from deps
-
-* Thu Mar 09 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.10.0-1
-- Update to 6.10.0
-- https://nodejs.org/en/blog/release/v6.10.0/
-- New patch for handling system CA certificates
-
-* Tue Feb 28 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.9.5-2
-- Fix FTBFS against GCC 7
-- Resolves: RHBZ 1423991
-
-* Fri Feb 10 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 1:6.9.5-1.1
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
-
-* Wed Feb 1 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.9.5-1
-- Update to v6.9.5(security)
-- Reenable debug mode (https://github.com/nodejs/node/pull/10525)
-
-* Tue Jan 17 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.9.4-2
-- Enable DTrace support.
-- Eliminate newlines from CFLAGS due to broken dtrace shim
- https://sourceware.org/bugzilla/show_bug.cgi?id=21063
- Thanks to Kinston Hughes for the fix.
-
-* Tue Jan 10 2017 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.9.4-1
-- Update to v6.9.4
-
-* Thu Jan 05 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.9.3-1
-- https://nodejs.org/en/blog/release/v6.9.3/
-
-* Wed Dec 21 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.9.2-2
-- Debug builds are failing. Disable them.
-
-* Thu Dec 08 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.9.2-1
-- Update to v6.9.2
-
-* Tue Nov 08 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.9.1-4
-- Fix incorrect Conflicts for nodejs-docs
-
-* Tue Nov 08 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.9.1-2
-- Bump revision and rebuild for s390x
-
-* Thu Oct 20 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.9.1-1
-- Update to 6.9.1 LTS release
-- Fix a regression introduced in v6.8.0 in readable stream that caused unpipe
- to remove the wrong stream
-- https://nodejs.org/en/blog/release/v6.9.1/
-
-* Tue Oct 18 2016 Stephen Gallagher <sgallagh(a)redhat.com> - -
-- Update to 6.9.0 LTS release
-- https://nodejs.org/en/blog/release/v6.9.0/
-
-* Mon Oct 17 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.8.1-5
-- Add dist tag to npm nodejs dependency
-
-* Mon Oct 17 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.8.1-4
-- Fix typo in npm nodejs dependency
-
-* Sat Oct 15 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.8.1-3
-- Bump release version for tagging bug
-
-* Sat Oct 15 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.8.1-1
-- Update node to v6.8.0
-- Fix FTBFS against non-bundled zlib
-
-* Thu Oct 13 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.8.0-108
-- Update node to v6.8.0 and npm(a)3.10.8
-
-* Tue Sep 27 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.7.0-107
-- Update to 6.7.0
-- https://nodejs.org/en/blog/release/v6.7.0/
-
-* Fri Sep 16 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.6.0-106
-- Drop Conflicts: from main package.
- It wasn't needed and was breaking upgrades in some cases.
-- Move npm support files into the npm package
-- Mark manpages as %%doc
-
-* Fri Sep 16 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.6.0-105
-- Update to 6.6.0
-- https://github.com/nodejs/node/blob/v6.6.0/doc/changelogs/CHANGELOG_V6.md...
-
-* Mon Sep 12 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.5.0-104
-- Add support for building on EPEL 7 against OpenSSL 1.0.1
-- Modify v8_abi autorequires to avoid unnecessary rebuilds
-
-* Mon Aug 29 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.5.0-103
-- Update to 6.5.0
-
-* Mon Aug 22 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.4.0-102
-- Bump release to 102 to fix broken npm dependency
-
-* Thu Aug 18 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.4.0-1
-- Update to 6.4.0
-
-* Tue Aug 16 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.3.1-101
-- Build Node.js with internationalization support
-
-* Thu Aug 04 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.3.1-100
-- Split npm into a subpackage
-
-* Mon Jul 25 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.3.1-1
-- Update to 6.3.1
-- comment out %%patch3
-
-* Mon Jul 18 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.3.0-3
-- Fix epoch version dependency on libuv
-
-* Tue Jul 12 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.3.0-2
-- Patch node.gyp to fix failing ./configure
-
-* Sun Jul 10 2016 Zuzana Svetlikova <zsvetlik(a)redhat.com> - 1:6.3.0-1
-- Update node to 6.3.0
-- update punycode to 2.0.0
-- add gcc and gcc-c++ as build dependencies
-- modified system-certs patch
-
-* Sat Jun 18 2016 Tom Hughes <tom(a)compton.nu> - 1:6.2.2-1
-- Update to latest stable release 6.2.2
-- Add check on npm version
-
-* Tue Jun 7 2016 Tom Hughes <tom(a)compton.nu> - 1:6.2.1-1
-- Update to latest stable release 6.2.1
-
-* Wed May 18 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.2.0-1
-- Update to latest stable release 6.2.0
-- https://github.com/nodejs/node/blob/v6.2.0/doc/changelogs/CHANGELOG_V6.md...
-
-* Mon May 09 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:6.1.0-1
-- Update to latest stable release 6.1.0
-- https://github.com/nodejs/node/blob/v6.1.0/CHANGELOG.md
-
-* Tue May 03 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:5.11.0-3
-- Drop the epoch on the virtual provides for npm
-
-* Thu Apr 28 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 1:5.11.0-2
-- Add epoch and rebuild to preserve upgrade path
-
-* Mon Apr 25 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 5.11.0-1
-- Update to latest stable release 5.11.0
-- https://github.com/nodejs/node/blob/v5.11.0/CHANGELOG.md
-
-* Mon Apr 11 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 5.10.0-1
-- Update to latest stable release 5.10.1
-- https://github.com/nodejs/node/blob/v5.10.1/CHANGELOG.md
-
-* Fri Apr 01 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 5.10.0-1
-- Update to latest security release (5.10.0)
-- Update bundled npm to 3.8.3
-- Fixes serious man-in-the-middle vulnerability with npm
-
-* Wed Mar 23 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 5.9.1-1
-- Update to latest stable release (5.9.1)
-- Bundle npm (3.7.3)
-
-* Wed Mar 23 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 4.4.1-1
-- Update to 4.4.1 upstream LTS release
-- Add more versatile ABI checking
-
-* Tue Feb 23 2016 Tom Hughes <tom(a)compton.nu> - 4.3.1-1
-- Update to 4.3.1 upstream LTS release
-
-* Wed Feb 10 2016 Tom Hughes <tom(a)compton.nu> - 4.3.0-3
-- Verify that the built node reports the expected versions
-- Drop unneeded dep on http-parser-devel
-- Add version check for punycode
-
-* Wed Feb 10 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 4.3.0-2
-- Fix nodejs-abi to be 4.3
-- Clean up bundled versions in spec file
-
-* Tue Feb 09 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 4.3.0-1
-- Update to 4.3.0 upstream LTS release
-- https://github.com/nodejs/node/blob/v4.3.0/CHANGELOG.md
-- Switch to the bundled http-parser
-- Build with -fno-delete-pointer-null-checks for GCC 6
-
-* Tue Feb 9 2016 Tom Hughes <tom(a)compton.nu> - 4.2.6-1
-- Update to 4.2.6 upstream release
-
-* Thu Feb 04 2016 Fedora Release Engineering <releng(a)fedoraproject.org> - 4.2.4-5
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
-
-* Tue Jan 19 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 4.2.4-4
-- Force a depdendency on the correct version of http-parser
-
-* Tue Jan 19 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 4.2.4-3
-- Force a dependency on the correct version of libuv
-
-* Mon Jan 18 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 4.2.4-2
-- Fix Provides: for punycode
-
-* Wed Jan 13 2016 Stephen Gallagher <sgallagh(a)redhat.com> - 4.2.4-1
-- New upstream bugfix release 4.2.4
-- https://github.com/nodejs/node/blob/v4.2.3/CHANGELOG.md
-
-* Fri Dec 04 2015 Stephen Gallagher <sgallagh(a)redhat.com> 4.2.3-2
-- Add %%with_debug variable to spec file
- The debug build is not supported on all architectures.
-
-* Fri Dec 04 2015 Stephen Gallagher <sgallagh(a)redhat.com> 4.2.3-1
-- New upstream security release 4.2.3
-- https://github.com/nodejs/node/blob/v4.2.3/CHANGELOG.md
-- Fix incorrect v8 version
-
-* Wed Dec 2 2015 Peter Robinson <pbrobinson(a)fedoraproject.org> 4.2.2-4
-- Use nodejs_arches macro for arch definition (add aarch64 and power64 platforms)
-
-* Wed Dec 02 2015 Stephen Gallagher <sgallagh(a)redhat.com> 4.2.2-3
-- Fix nodejs_abi version
-- Also ensure that we are building against the correct libuv
-
-* Wed Dec 02 2015 Stephen Gallagher <sgallagh(a)redhat.com> 4.2.2-2
-- Disable debug build for ARMv7 since it fails to build
-
-* Tue Dec 01 2015 Stephen Gallagher <sgallagh(a)redhat.com> 4.2.2-1
-- Upgrade to Node.js 4.2.2 (LTS)
-
-* Wed Jun 17 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.10.36-5
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
-
-* Wed Apr 29 2015 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.36-4
-- fix incorrect Requires on libuv (RHBZ#1215719)
-
-* Tue Feb 24 2015 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.36-3
-- bump v8 requires (RHBZ#1195457)
-
-* Thu Feb 19 2015 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.36-2
-- build against compat-libuv010
-
-* Thu Feb 19 2015 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.36-1
-- new upstream release 0.10.36
- http://blog.nodejs.org/2015/01/26/node-v0-10-36-stable/
-- Please note that several upstream releases were skipped due to regressions
- reported in the upstream bug tracker. Please also review the 0.10.34 and
- 0.10.35 changelogs available at the above URL for a list of all changes.
-
-* Wed Nov 19 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.33-1
-- new upstream release 0.10.33
- http://blog.nodejs.org/2014/10/23/node-v0-10-33-stable/
-- This release disables SSLv3 to secure Node.js services against the POODLE
- attack. (CVE-2014-3566; RHBZ#1152789) For more information or to learn how
- to re-enable SSLv3 in order to support legacy clients, please see the upstream
- release announcement linked above.
-
-* Tue Oct 21 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.32-2
-- add Provides nodejs-punycode (RHBZ#1151811)
-
-* Thu Sep 18 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.32-1
-- new upstream release 0.10.32
- http://blog.nodejs.org/2014/08/19/node-v0-10-31-stable/
- http://blog.nodejs.org/2014/09/16/node-v0-10-32-stable/
-
-* Sun Aug 17 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.10.30-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
-
-* Fri Aug 01 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.30-1
-- new upstream release 0.10.30
- http://blog.nodejs.org/2014/07/31/node-v0-10-30-stable/
-
-* Thu Jun 19 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.29-1
-- new upstream release 0.10.29
- http://blog.nodejs.org/2014/06/16/node-v0-10-29-stable/
-- The invalid UTF8 fix has been reverted since this breaks v8 API, which cannot
- be done in a stable distribution release. This build of nodejs will behave as
- if NODE_INVALID_UTF8 was set. For more information on the implications, see:
- http://blog.nodejs.org/2014/06/16/openssl-and-breaking-utf-8-change/
-
-* Sat Jun 07 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.10.28-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
-
-* Sat May 03 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.28-2
-- use the system certificate store instead of the bundled copy
- both are based on the Mozilla CA list, so the only effect this should have is
- making additional certificates added by the system administrator available to
- node
-
-* Sat May 03 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.28-1
-- new upstream release 0.10.28
- There is no dfference between 0.10.27 and 0.10.28 for Fedora, as the only
- thing updated was npm, which is shipped seperately. The latest was only
- packaged to avoid confusion. Please see the v0.10.27 changelog for relevant
- changes in this update:
- http://blog.nodejs.org/2014/05/01/node-v0-10-27-stable/
-
-* Thu Feb 20 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.26-1
-- new upstream release 0.10.26
- http://blog.nodejs.org/2014/02/18/node-v0-10-26-stable/
-
-* Fri Feb 14 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.25-2
-- rebuild for icu-53 (via v8)
-
-* Mon Jan 27 2014 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.25-1
-- new upstream release 0.10.25
- http://blog.nodejs.org/2014/01/23/node-v0-10-25-stable/
-
-* Thu Dec 19 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.24-1
-- new upstream release 0.10.24
- http://blog.nodejs.org/2013/12/19/node-v0-10-24-stable/
-- upstream install script installs the headers now
-
-* Thu Dec 12 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.23-1
-- new upstream release 0.10.23
- http://blog.nodejs.org/2013/12/11/node-v0-10-23-stable/
-
-* Tue Nov 12 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.22-1
-- new upstream release 0.10.22
- http://blog.nodejs.org/2013/11/12/node-v0-10-22-stable/
-
-* Fri Oct 18 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.21-1
-- new upstream release 0.10.21
- http://blog.nodejs.org/2013/10/18/node-v0-10-21-stable/
-- resolves an undisclosed security vulnerability in the http module
-
-* Tue Oct 01 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.20-1
-- new upstream release 0.10.20
- http://blog.nodejs.org/2013/09/30/node-v0-10-20-stable/
-
-* Wed Sep 25 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.19-1
-- new upstream release 0.10.19
- http://blog.nodejs.org/2013/09/24/node-v0-10-19-stable/
-
-* Fri Sep 06 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.18-1
-- new upstream release 0.10.18
- http://blog.nodejs.org/2013/09/04/node-v0-10-18-stable/
-
-* Tue Aug 27 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.17-1
-- new upstream release 0.10.17
- http://blog.nodejs.org/2013/08/21/node-v0-10-17-stable/
-- fix duplicated/conflicting documentation files (RHBZ#1001253)
-
-* Sat Aug 17 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.16-1
-- new upstream release 0.10.16
- http://blog.nodejs.org/2013/08/16/node-v0-10-16-stable/
-- add v8-devel to -devel Requires
-- restrict -devel Requires to the same architecture
-
-* Wed Aug 14 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.14-3
-- fix typo in _isa macro in v8 Requires
-
-* Mon Aug 05 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.14-2
-- use unversioned docdir for -docs subpackage
- https://fedoraproject.org/wiki/Changes/UnversionedDocdirs
-- use main package's docdir instead of a seperate -docs directory
-
-* Thu Jul 25 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.14-1
-- new upstream release 0.10.14
- http://blog.nodejs.org/2013/07/25/node-v0-10-14-stable/
-
-* Wed Jul 10 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.13-1
-- new upstream release 0.10.13
- http://blog.nodejs.org/2013/07/09/node-v0-10-13-stable/
-- remove RPM macros, etc. now that they've migrated to nodejs-packaging
-
-* Wed Jun 19 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.12-1
-- new upstream release 0.10.12
- http://blog.nodejs.org/2013/06/18/node-v0-10-12-stable/
-- split off a -packaging subpackage with RPM macros, etc.
-- build -docs as noarch
-- copy mutiple version logic from nodejs-packaging SRPM for now
-
-* Fri May 31 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.9-1
-- new upstream release 0.10.9
- http://blog.nodejs.org/2013/05/30/node-v0-10-9-stable/
-
-* Wed May 29 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.8-1
-- new upstream release 0.10.8
- http://blog.nodejs.org/2013/05/24/node-v0-10-8-stable/
-
-* Wed May 29 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.7-1
-- new upstream release 0.10.7
- http://blog.nodejs.org/2013/05/17/node-v0-10-7-stable/
-- strip openssl from the tarball; it contains prohibited code (RHBZ#967736)
-- patch Makefile so we can just remove all bundled deps completely
-
-* Wed May 15 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.6-1
-- new upstream release 0.10.6
- http://blog.nodejs.org/2013/05/14/node-v0-10-6-stable/
-
-* Mon May 06 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.5-3
-- nodejs-fixdep: work properly when a package has no dependencies
-
-* Mon Apr 29 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.5-2
-- nodejs-symlink-deps: make it work when --check is used and just
- devDependencies exist
-
-* Wed Apr 24 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.5-1
-- new upstream release 0.10.5
- http://blog.nodejs.org/2013/04/23/node-v0-10-5-stable/
-
-* Mon Apr 15 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.4-1
-- new upstream release 0.10.4
- http://blog.nodejs.org/2013/04/11/node-v0-10-4-stable/
-- add no-op macro to permit spec compatibility with EPEL
-
-* Thu Apr 04 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.3-2
-- nodejs-symlink-deps: symlink unconditionally in the buildroot
-
-* Wed Apr 03 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.3-1
-- new upstream release 0.10.3
- http://blog.nodejs.org/2013/04/03/node-v0-10-3-stable/
-- nodejs-symlink-deps: only create symlink if target exists
-- nodejs-symlink-deps: symlink devDependencies when --check is used
-
-* Sun Mar 31 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.2-1
-- new upstream release 0.10.2
- http://blog.nodejs.org/2013/03/28/node-v0-10-2-stable/
-- remove %%nodejs_arches macro since it will only be useful if it is present in
- the redhat-rpm-config package
-- add default filtering macro to remove unwanted Provides from native modules
-- nodejs-symlink-deps now supports multiple modules in one SRPM properly
-- nodejs-symlink-deps also now supports a --check argument that works in the
- current working directry instead of the buildroot
-
-* Fri Mar 22 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.1-1
-- new upstream release 0.10.1
- http://blog.nodejs.org/2013/03/21/node-v0-10-1-stable/
-
-* Wed Mar 20 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.0-4
-- fix escaping in dependency generator regular expressions (RHBZ#923941)
-
-* Wed Mar 13 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.10.0-3
-- add virtual ABI provides for node and v8 so binary module's deps break when
- binary compatibility is broken
-- automatically add matching Requires to nodejs binary modules
-- add %%nodejs_arches macro to future-proof ExcluseArch stanza in dependent
- packages
-
-* Tue Mar 12 2013 Stephen Gallagher <sgallagh(a)redhat.com> - 0.10.0-2
-- Fix up documentation subpackage
-
-* Mon Mar 11 2013 Stephen Gallagher <sgallagh(a)redhat.com> - 0.10.0-1
-- Update to stable 0.10.0 release
-- https://raw.github.com/joyent/node/v0.10.0/ChangeLog
-
-* Thu Feb 14 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.9.5-11
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
-
-* Tue Jan 22 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-10
-- minor bugfixes to RPM magic
- - nodejs-symlink-deps: don't create an empty node_modules dir when a module
- has no dependencies
- - nodes-fixdep: support adding deps when none exist
-- Add the full set of headers usually bundled with node as deps to nodejs-devel.
- This way `npm install` for native modules that assume the stuff bundled with
- node exists will usually "just work".
--move RPM magic to nodejs-devel as requested by FPC
-
-* Sat Jan 12 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-9
-- fix brown paper bag bug in requires generation script
-
-* Thu Jan 10 2013 Stephen Gallagher <sgallagh(a)redhat.com> - 0.9.5-8
-- Build debug binary and install it in the nodejs-devel subpackage
-
-* Thu Jan 10 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-7
-- don't use make install since it rebuilds everything
-
-* Thu Jan 10 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-6
-- add %%{?isa}, epoch to v8 deps
-
-* Wed Jan 09 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-5
-- add defines to match libuv (#892601)
-- make v8 dependency explicit (and thus more accurate)
-- add -g to $C(XX)FLAGS instead of patching configure to add it
-- don't write pointless 'npm(foo) > 0' deps
-
-* Sat Jan 05 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-4
-- install development headers
-- add nodejs_sitearch macro
-
-* Wed Jan 02 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-3
-- make nodejs-symlink-deps actually work
-
-* Tue Jan 01 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-2
-- provide nodejs-devel so modules can BuildRequire it (and be consistent
- with other interpreted languages in the distro)
-
-* Tue Jan 01 2013 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.5-1
-- new upstream release 0.9.5
-- provide nodejs-devel for the moment
-- fix minor bugs in RPM magic
-- add nodejs_fixdep macro so packagers can easily adjust dependencies in
- package.json files
-
-* Wed Dec 26 2012 T.C. Hollingsworth <tchollingsworth(a)gmail.com> - 0.9.4-1
-- new upstream release 0.9.4
-- system library patches are now upstream
-- respect optflags
-- include documentation in subpackage
-- add RPM dependency generation and related magic
-- guard libuv depedency so it always gets bumped when nodejs does
-- add -devel subpackage with enough to make node-gyp happy
-
-* Wed Dec 19 2012 Dan Horák <dan[at]danny.cz> - 0.9.3-8
-- set exclusive arch list to match v8
-
-* Tue Dec 18 2012 Stephen Gallagher <sgallagh(a)redhat.com> - 0.9.3-7
-- Add remaining changes from code review
-- Remove unnecessary BuildRequires on findutils
-- Remove %%clean section
-
-* Fri Dec 14 2012 Stephen Gallagher <sgallagh(a)redhat.com> - 0.9.3-6
-- Fixes from code review
-- Fix executable permissions
-- Correct the License field
-- Build debuginfo properly
-
-* Thu Dec 13 2012 Stephen Gallagher <sgallagh(a)redhat.com> - 0.9.3-5
-- Return back to using the standard binary name
-- Temporarily adding a conflict against the ham radio node package until they
- complete an agreed rename of their binary.
-
-* Wed Nov 28 2012 Stephen Gallagher <sgallagh(a)redhat.com> - 0.9.3-4
-- Rename binary and manpage to nodejs
-
-* Mon Nov 19 2012 Stephen Gallagher <sgallagh(a)redhat.com> - 0.9.3-3
-- Update to latest upstream development release 0.9.3
-- Include upstreamed patches to unbundle dependent libraries
-
-* Tue Oct 23 2012 Adrian Alves <alvesadrian(a)fedoraproject.org> 0.8.12-1
-- Fixes and Patches suggested by Matthias Runge
-
-* Mon Apr 09 2012 Adrian Alves <alvesadrian(a)fedoraproject.org> 0.6.5
-- First build.
-
diff --git a/sources b/sources
index 0eb4c9b..c92dc6f 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (node-v8.11.0-stripped.tar.gz) = 8779563b95448dd82e3c3ac3f279069989672e1f22444e7cfcf89f8c19c2978f67a7e47109e08598cd407f52cdb96692e95100321c83898e39376ede044fe8b1
+SHA512 (node-v8.11.2-stripped.tar.gz) = ede88661ef795f01b4824cb479085f16f47d7e03973d90803b57d88cff20c05a5e08f76e00d33ed7611f2085e812b2088fe65d1f046d5ef212f4aa4cb8389b62
5 years, 10 months
[Report] Packages Restricting Arches
by root
New package excluding arches (1)
============================
- nodejs-yarn
ExclusiveArch: %{nodejs_arches} noarch
List of packages currently excluding arches (2607)
===========================================
- 0ad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- 90-Second-Portraits
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- GtkAda
ExclusiveArch: %{GPRbuild_arches}
- GtkAda3
ExclusiveArch: %{GPRbuild_arches}
- LuxRender
ExclusiveArch: x86_64
- OpenTK
ExclusiveArch: %mono_arches
- PragmARC
ExclusiveArch: %{GPRbuild_arches}
- R-DynDoc
ExclusiveArch: armv7, ppc, go_arch
- RdRand
ExclusiveArch: %{ix86} x86_64
- SLOF
ExclusiveArch: ppc64le
- YafaRay
ExclusiveArch: %{ix86} x86_64
- aboot
ExclusiveArch: alpha
- acpid
ExclusiveArch: ia64 x86_64 %{ix86} %{arm} aarch64
- ahven
ExclusiveArch: %{GPRbuild_arches}
- alleyoop
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x %{arm} aarch64
- american-fuzzy-lop
ExclusiveArch: %{ix86} x86_64
- anet
ExclusiveArch: %{GPRbuild_arches}
- apmd
ExclusiveArch: %{ix86}
- apmud
ExclusiveArch: ppc
- appstream-generator
ExclusiveArch: x86_64 %{ix86} %{arm}
- arduino
ExclusiveArch: %{go_arches}
- arduino-builder
ExclusiveArch: %{go_arches}
- arm-boot-config
ExclusiveArch: %{arm}
- arm-trusted-firmware
ExclusiveArch: aarch64
- atomic
ExclusiveArch: %{go_arches}
- aunit
ExclusiveArch: %GPRbuild_arches
- avgtime
ExclusiveArch: %{ldc_arches}
- aws
ExclusiveArch: %GPRbuild_arches
- banshee
ExclusiveArch: %{mono_arches}
- banshee-community-extensions
ExclusiveArch: %ix86 x86_64 ppc ppc64 ia64 %{arm} sparcv9 alpha s390x
- bareftp
ExclusiveArch: %{mono_arches}
- bcal
ExclusiveArch: x86_64 aarch64 ia64 ppc64 ppc64le s390x
- bcc
ExclusiveArch: x86_64 %{power64}
- bcm283x-firmware
ExclusiveArch: %{arm} aarch64
- beignet
ExclusiveArch: x86_64 %{ix86}
- berusky2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{mips}
- biosdevname
ExclusiveArch: %{ix86} x86_64
- bless
ExclusiveArch: %mono_arches
- boo
ExclusiveArch: %{mono_arches}
- buildah
ExclusiveArch: x86_64 %{arm} aarch64 ppc64le s390x
- bwa
ExclusiveArch: x86_64
- caddy
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}}
- cadvisor
ExclusiveArch: %{ix86} x86_64 aarch64 ppc64le
- calamares
ExclusiveArch: %{ix86} x86_64
- carto
ExclusiveArch: %{nodejs_arches} noarch
- ccdciel
ExclusiveArch: %{fpc_arches}
- cdcollect
ExclusiveArch: %{mono_arches}
- ceph
ExclusiveArch: x86_64 aarch64 ppc64 ppc64le
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- chromium
ExclusiveArch: x86_64 i686
ExclusiveArch: x86_64 i686 aarch64
- cjdns
ExclusiveArch: %{nodejs_arches}
- cmospwd
ExclusiveArch: %{ix86} x86_64
- cmrt
ExclusiveArch: %{ix86} x86_64 ia64
- coffee-script
ExclusiveArch: %{nodejs_arches} noarch
- colorful
ExclusiveArch: %{fpc_arches}
- compat-gcc-296
ExclusiveArch: %{ix86} ia64 ppc
- consul
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- containerd
ExclusiveArch: %{go_arches}
- cpuid
ExclusiveArch: %{ix86} x86_64
- cqrlog
ExclusiveArch: %{fpc_arches}
- crash
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- cri-tools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- criu
ExclusiveArch: x86_64 %{arm} ppc64le aarch64
ExclusiveArch: x86_64 %{arm} ppc64le aarch64 s390x
- cryptlib
ExclusiveArch: x86_64 %{ix86} aarch64 ppc64 ppc64le
- cryptobone
ExclusiveArch: x86_64 %{ix86} ppc64 ppc64le aarch64
- daq
ExclusiveArch: x86_64 aarch64
- darktable
ExclusiveArch: x86_64 aarch64
- dbus-sharp
ExclusiveArch: %mono_arches
- dbus-sharp-glib
ExclusiveArch: %mono_arches
- dbxtool
ExclusiveArch: i386 x86_64 aarch64
- deepin-api
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- deepin-daemon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- deepin-dbus-generator
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- deepin-gir-generator
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- derelict
ExclusiveArch: %{ldc_arches}
- direnv
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- dlm
ExclusiveArch: i686 x86_64
- dmidecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- dmtcp
ExclusiveArch: %ix86 x86_64 aarch64
- docco
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- docker
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- docker-anaconda-addon
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- docker-distribution
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- docker-latest
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- dolphin-emu
ExclusiveArch: x86_64 armv7l aarch64
- douceur
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- dpdk
ExclusiveArch: x86_64 i686 aarch64 ppc64le
- dssi-vst
ExclusiveArch: %{ix86} x86_64
- dustmite
ExclusiveArch: %{ldc_arches}
- dyninst
ExclusiveArch: %{ix86} x86_64 ppc ppc64
- e3
ExclusiveArch: %{ix86} x86_64
- edac-utils
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64}
- edb
ExclusiveArch: %{ix86} x86_64
- edk2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: x86_64 aarch64
- efibootmgr
ExclusiveArch: %{efi}
- efivar
ExclusiveArch: %{efi}
- elasticdump
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- elk
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- embree
ExclusiveArch: x86_64
- embree2
ExclusiveArch: x86_64
- envytools
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- exciting
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{power64}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- exercism
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- expresso
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- extlinux-bootloader
ExclusiveArch: %{arm} aarch64
- fcitx-libpinyin
ExclusiveArch: %{qt5_qtwebengine_arches}
- fedora-developer-portal
ExclusiveArch: ix86 x86_64
- fedora-dockerfiles
ExclusiveArch: %{go_arches}
- fedora-gnat-project-common
ExclusiveArch: noarch %{GNAT_arches}
- fence-virt
ExclusiveArch: i686 x86_64
- fes
ExclusiveArch: x86_64
- flannel
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- florist
ExclusiveArch: %{GPRbuild_arches}
- fluxcapacitor
ExclusiveArch: %{ix86} x86_64 %{arm}
- fpc
ExclusiveArch: %{arm} %{ix86} x86_64 ppc ppc64
- freshmaker
ExclusiveArch: %{ix86} x86_64
- frysk
ExclusiveArch: %{ix86} x86_64 ppc64
- fst
ExclusiveArch: i686
- fwts
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 s390x %{power64}
- fwupdate
ExclusiveArch: %{efi}
- fzf
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- ga
ExclusiveArch: %{ix86} x86_64
- gbrainy
ExclusiveArch: %mono_arches
- gdata-sharp
ExclusiveArch: %mono_arches
- gdb-exploitable
ExclusiveArch: x86_64 i386
ExclusiveArch: x86_64 noarch
- gela-asis
ExclusiveArch: %GPRbuild_arches
- ghdl
ExclusiveArch: %{GNAT_arches}
- gio-sharp
ExclusiveArch: %mono_arches
- gir-to-d
ExclusiveArch: %{ldc_arches}
- git-lfs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm} aarch64 ppc64le s390x}
- git-octopus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- giver
ExclusiveArch: %{mono_arches}
- gkeyfile-sharp
ExclusiveArch: %mono_arches
- gl3n
ExclusiveArch: %{ldc_arches}
- glibc32
ExclusiveArch: x86_64 ppc64 s390x
- glusterd2
ExclusiveArch: %{go_arches}
- gmqcc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- gnatcoll
ExclusiveArch: %GPRbuild_arches
- gnome-boxes
ExclusiveArch: x86_64
- gnome-desktop-sharp
ExclusiveArch: %mono_arches
- gnome-do
ExclusiveArch: %mono_arches
- gnome-guitar
ExclusiveArch: %{mono_arches}
- gnome-keyring-sharp
ExclusiveArch: %mono_arches
- gnome-rdp
ExclusiveArch: %{mono_arches}
- gnome-sharp
ExclusiveArch: %mono_arches
- gnome-subtitles
ExclusiveArch: %mono_arches
- gnu-efi
ExclusiveArch: %{efi}
- gnu-smalltalk
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- go-bindata
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- go-compilers
ExclusiveArch: %{go_arches}
- go-i18n
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- gocomplete
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- godep
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- godotenv
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- gofed
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- golang
ExclusiveArch: %{golang_arches}
- golang-bitbucket-kardianos-osext
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-deepin-dbus-factory
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-deepin-go-lib
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-10gen-openssl
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- golang-github-AudriusButkevicius-cli
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-AudriusButkevicius-go-nat-pmp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-AudriusButkevicius-kcp-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-AudriusButkevicius-pfilter
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-BurntSushi-freetype-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-BurntSushi-graphics-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-BurntSushi-toml-test
ExclusiveArch: %{go_arches}
- golang-github-BurntSushi-xgb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-BurntSushi-xgbutil
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-Jeffail-gabs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-PuerkitoBio-goquery
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-PuerkitoBio-purell
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-PuerkitoBio-urlesc
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-RangelReale-osin
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-RangelReale-osincli
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-SAP-go-hdb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-SeanDolphin-bqschema
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-SermoDigital-jose
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-Shopify-sarama
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-Shopify-toxiproxy
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-ThomsonReutersEikon-go-ntlm
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-alecthomas-assert
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-alecthomas-chroma
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-alecthomas-colour
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-alecthomas-kingpin
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-alecthomas-repr
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-alecthomas-template
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-alecthomas-units
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-andybalholm-cascadia
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-appc-spec
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-armon-go-metrics
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-armon-go-proxyproto
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-asaskevich-govalidator
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-auth0-go-jwt-middleware
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-axgle-mahonia
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-bep-gitmap
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-bep-inflect
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-bgentry-go-netrc
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-bkaradzic-go-lz4
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-boombuler-barcode
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-buger-jsonparser
ExclusiveArch: %{go_arches} noarch
- golang-github-calmh-du
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-calmh-luhn
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-calmh-xdr
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-ccding-go-stun
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cespare-xxhash
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-chaseadamsio-goorgeous
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cheekybits-is
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-chmduquesne-rollinghash
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-chrismalek-oktasdk-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-client9-gospell
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cloudfoundry-incubator-candiedyaml
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cockroachdb-cockroach-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-codahale-aesnicheck
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-codegangsta-negroni
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-coreos-go-etcd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-cryptix-wav
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-cznic-b
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-fileutil
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-golex
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-internal
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-lex
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-lexer
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-lldb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-mathutil
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-ql
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-sortutil
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-strutil
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-zappy
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-d4l3k-messagediff
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-danwakefield-fnmatch
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-dchest-cssmin
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-dchest-siphash
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-denisenkom-go-mssqldb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-disintegration-imaging
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-dlclark-regexp2
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-docker-libkv
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-docopt-docopt-go
ExclusiveArch: %{go_arches}
- golang-github-duosecurity-duo_api_golang
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-edsrzf-mmap-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-eknkc-amber
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-endophage-gotuf
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-fatih-color
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-fatih-structs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-flynn-go-shlex
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-fortytw2-leaktest
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-fsnotify-fsnotify
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-fsouza-go-dockerclient
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-fullsailor-pkcs7
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-gdamore-encoding
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-gdamore-tcell
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-git-lfs-wildmatch
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-glacjay-goini
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-go-errors-errors
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-go-macaron-inject
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-go-mgo-mgo
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-go-tomb-tomb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gobuffalo-envy
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-gobwas-glob
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-gocql-gocql
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-golang-image
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-google-go-cmp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-google-go-github
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-goraft-raft
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gorilla-css
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-gorilla-sessions
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gosexy-gettext
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hailocab-go-hostpool
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-go-hclog
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-go-plugin
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-go-rootcerts
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-howeyc-fsnotify
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-inconshreveable-go-vhost
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-influxdb-influxdb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-jackpal-gateway
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-jdkato-prose
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-jdkato-syllables
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-jefferai-jsonx
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-justinas-alice
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-kdar-factorlog
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-keybase-go-crypto
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-klauspost-cpuid
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-klauspost-reedsolomon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-knieriem-markdown
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-kyokomi-emoji
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-linuxdeepin-go-x11-client
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-lpabon-godbc
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-lucasb-eyer-go-colorful
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-markbates-inflect
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mattn-go-colorable
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mattn-go-shellwords
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mgutz-ansi
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mgutz-logxi
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-michaelklishin-rabbit-hole
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-miekg-mmark
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-miekg-pkcs11
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-milochristiansen-axis2
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-milochristiansen-lua
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-minio-sha256-simd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mistifyio-go-zfs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mitchellh-cli
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mitchellh-copystructure
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mitchellh-go-homedir
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mitchellh-go-testing-interface
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mitchellh-go-wordwrap
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mitchellh-goamz
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mitchellh-mapstructure
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mitchellh-reflectwalk
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-montanaflynn-stats
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mreiferson-go-httpclient
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-msteinert-pam
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-muesli-smartcrop
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mvo5-goconfigparser
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mvo5-uboot-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mxk-go-flowrate
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-ncw-swift
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-neurosnap-sentences
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-nfnt-resize
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-noahdesu-go-ceph
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-ojii-gettext.go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-olekukonko-tablewriter
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-olekukonko-ts
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-olivere-elastic
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-onsi-ginkgo
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-onsi-gomega
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-opencontainers-runtime-spec
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-opencontainers-specs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-openshift-go-json-rest
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-openshift-go-systemd
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-openshift-openshift-sdn
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-oschwald-geoip2-golang
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-oschwald-maxminddb-golang
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-patrickmn-go-cache
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-paulrosania-go-charset
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-pelletier-go-buffruneio
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-petar-GoLLRB
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-peterh-liner
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-petermattis-goid
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-pkg-profile
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-pkg-sftp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-pmezard-go-difflib
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-pquerna-otp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-prometheus-client_golang
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-prometheus-client_model
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-prometheus-common
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-prometheus-procfs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-prometheus-prometheus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-racker-perigee
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-rackspace-gophercloud
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-rakyll-globalconf
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-rakyll-pb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-rakyll-statik
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-rasky-go-xdr
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-rcrowley-go-metrics
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-remeh-sizedwaitgroup
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-remyoudompheng-bigfft
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-ryanuber-columnize
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-ryanuber-go-glob
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-samalba-dockerclient
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-samuel-go-zookeeper
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-sasha-s-go-deadlock
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-seccomp-libseccomp-golang
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-sergi-go-diff
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-sethgrid-pester
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-shiena-ansicolor
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-shogo82148-go-shuffle
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-shurcooL-sanitized_anchor_name
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-skarademir-naturalsort
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-skratchdot-open-golang
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-skynetservices-skydns
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-smartystreets-assertions
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-smartystreets-go-aws-auth
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-smartystreets-goconvey
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-spacejam-loghisto
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-spacemonkeygo-openssl
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm} ppc64le s390x}
- golang-github-spaolacci-murmur3
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-spf13-afero
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-spf13-fsync
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-spf13-nitro
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-sstarcher-go-okta
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-stathat-go
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-stevvooe-resumable
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-streadway-amqp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-stretchr-objx
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-syndtr-gocapability
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-syndtr-goleveldb
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-syndtr-gosnappy
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-templexxx-cpufeat
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-templexxx-reedsolomon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-templexxx-xor
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-tent-http-link-go
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-thejerf-suture
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-tjfoc-gmsm
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-tonnerre-golang-pretty
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-urfave-cli
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-vaughan0-go-ini
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-vbatts-tar-split
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-vishvananda-netlink
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} aarch64 x86_64 %{arm}}
- golang-github-vishvananda-netns
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-vitrun-qart
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-vjeantet-asn1-ber
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-vmware-govcloudair
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-wsxiaoys-terminal
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xeipuuv-gojsonpointer
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xeipuuv-gojsonreference
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xeipuuv-gojsonschema
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xiang90-probing
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-xrash-smetrics
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xtaci-kcp-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xtaci-smux
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-yosssi-ace
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-yosssi-gohtml
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-yvasiyarov-go-metrics
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-yvasiyarov-gorelic
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-yvasiyarov-newrelic_platform_go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-zillode-notify
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-gcfg
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-googlecode-go-decimal-inf
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-go-exp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-googlecode-log4go
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-googlecode-sqlite
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-googlecode-uuid
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-gopkg-check
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-gopkg-go-check-check
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-gopkg-go-macaroon-macaroon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-gopkg-retry-v1
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-layeh-gopher-luar
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-torproject-pluggable-transports-goptlib
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golint
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gomtree
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gotags
ExclusiveArch: %{go_arches}
- gotun
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: x86_64
- gprbuild
ExclusiveArch: %{GPRbuild_arches} %{bootstrap_arch}
- gprolog
ExclusiveArch: x86_64 %{ix86} ppc alpha
- gsf-sharp
ExclusiveArch: %mono_arches
- gtk-sharp-beans
ExclusiveArch: %mono_arches
- gtk-sharp2
ExclusiveArch: %mono_arches
- gtk-sharp3
ExclusiveArch: %{mono_arches}
- gtkd
ExclusiveArch: %{ldc_arches}
- gudev-sharp
ExclusiveArch: %mono_arches
- hedgewars
ExclusiveArch: %{fpc_arches}
- heketi
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- hsakmt
ExclusiveArch: x86_64 aarch64
- hub
ExclusiveArch: %{go_arches}
- hugo
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- hyena
ExclusiveArch: %{mono_arches}
- hyperscan
ExclusiveArch: x86_64
- hyperv-daemons
ExclusiveArch: i686 x86_64
- icaro
ExclusiveArch: %{ix86} %{arm} x86_64 noarch
- ikarus
ExclusiveArch: %{ix86}
- imvirt
ExclusiveArch: %{ix86} x86_64 ia64
- indistarter
ExclusiveArch: %{fpc_arches}
- infinipath-psm
ExclusiveArch: x86_64
- insect
ExclusiveArch: %{nodejs_arches} noarch
- intel-cmt-cat
ExclusiveArch: x86_64 i686 i586
ExclusiveArch: x86_64 i686 i586
- ioport
ExclusiveArch: %{ix86} x86_64
- ipw2100-firmware
ExclusiveArch: noarch i386 x86_64
- ipw2200-firmware
ExclusiveArch: noarch i386 x86_64
- ispc
ExclusiveArch: %{arm} %{ix86} x86_64
- iucode-tool
ExclusiveArch: %{ix86} x86_64
- iwyu
ExclusiveArch: %{ix86} x86_64
- ixpdimm_sw
ExclusiveArch: x86_64
- jake
ExclusiveArch: %{nodejs_arches} noarch
- jasmine-node
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- java-1.8.0-openjdk-aarch32
ExclusiveArch: %{arm}
- jid
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- josm
ExclusiveArch: %{ix86} x86_64
- julia
ExclusiveArch: %{ix86} x86_64
- keepass
ExclusiveArch: %{mono_arches}
- kernel
ExclusiveArch: %{all_x86} x86_64 ppc64 s390x %{arm} aarch64 ppc64le
- kicad
ExclusiveArch: %{ix86} x86_64 %{arm} ppc64 ppc64le aarch64
- knot-resolver
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- kompose
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 s390x
- kosmtik
ExclusiveArch: %{nodejs_arches} noarch
- kubernetes
ExclusiveArch: x86_64 aarch64 ppc64le s390x %{arm}
- latrace
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64}
- lazarus
ExclusiveArch: %{fpc_arches}
- ldc
ExclusiveArch: %{ldc_arches}
- libbsr
ExclusiveArch: %{power64}
- libclc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
- libcxl
ExclusiveArch: %{power64}
- libflatarray
ExclusiveArch: %{ix86} x86_64
- libhfi1
ExclusiveArch: x86_64
- libica
ExclusiveArch: s390 s390x
- libinvm-cim
ExclusiveArch: x86_64
- libinvm-cli
ExclusiveArch: x86_64
- libinvm-i18n
ExclusiveArch: x86_64
- libipt
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- libjingle
ExclusiveArch: %{ix86} x86_64 %{arm}
- libmfx
ExclusiveArch: %{ix86} x86_64
- libocxl
ExclusiveArch: ppc64le
- libpsm2
ExclusiveArch: x86_64
- libquentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- librtas
ExclusiveArch: ppc %{power64}
- libseccomp
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 mipsel mips64el ppc64 ppc64le s390 s390x
- libservicelog
ExclusiveArch: ppc %{power64}
- libsmbios
ExclusiveArch: x86_64 %{ix86}
- libunwind
ExclusiveArch: %{arm} aarch64 hppa ia64 mips ppc %{power64} %{ix86} x86_64
- libva-intel-hybrid-driver
ExclusiveArch: %{ix86} x86_64 ia64
- libvmi
ExclusiveArch: x86_64
- libvpd
ExclusiveArch: ppc %{power64}
- libxsmm
ExclusiveArch: x86_64
- libzfcphbaapi
ExclusiveArch: s390 s390x
- lldb
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- lodash
ExclusiveArch: %{nodejs_arches} noarch
- log4net
ExclusiveArch: %mono_arches
- lrmi
ExclusiveArch: %{ix86}
- lsvpd
ExclusiveArch: ppc %{power64}
- luajit
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- mactel-boot
ExclusiveArch: x86_64
- manifest-tool
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- matreshka
ExclusiveArch: %GPRbuild_arches
- maven-eclipse-plugin
ExclusiveArch: %{ix86} x86_64
- maxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- mcelog
ExclusiveArch: i686 x86_64
- mediaconch
ExclusiveArch: %{qt5_qtwebengine_arches}
- mellowplayer
ExclusiveArch: %{qt5_qtwebengine_arches}
- memkind
ExclusiveArch: x86_64
- memtest86+
ExclusiveArch: %{ix86} x86_64
- mesos
ExclusiveArch: x86_64
- microcode_ctl
ExclusiveArch: %{ix86} x86_64
- micropython
ExclusiveArch: %{arm} x86_64
- mine_detector
ExclusiveArch: %{GPRbuild_arches}
- minetest
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- mingw-wine-gecko
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- mkbootdisk
ExclusiveArch: %{ix86} sparc sparc64 x86_64
- mnemosyne
ExclusiveArch: noarch %{qt5_qtwebengine_arches}
- mocha
ExclusiveArch: %{nodejs_arches} noarch
- mod_mono
ExclusiveArch: %mono_arches
- module-build-service
ExclusiveArch: %{ix86} x86_64 noarch
- mokutil
ExclusiveArch: %{ix86} x86_64 aarch64
- mongo-tools
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- mono
ExclusiveArch: %mono_arches
- mono-addins
ExclusiveArch: %mono_arches
- mono-basic
ExclusiveArch: %{mono_arches}
- mono-bouncycastle
ExclusiveArch: %mono_arches
- mono-cecil
ExclusiveArch: %mono_arches
- mono-cecil-flowanalysis
ExclusiveArch: %mono_arches
- mono-debugger
ExclusiveArch: %ix86 x86_64
- mono-reflection
ExclusiveArch: %mono_arches
- mono-tools
ExclusiveArch: %mono_arches
- mono-zeroconf
ExclusiveArch: %mono_arches
- monobristol
ExclusiveArch: %{mono_arches}
- monodevelop
ExclusiveArch: %mono_arches
- monodevelop-debugger-gdb
ExclusiveArch: %{mono_arches}
- monosim
ExclusiveArch: %mono_arches
- mrrescue
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- msr-tools
ExclusiveArch: %{ix86} x86_64
- mustache-d
ExclusiveArch: %{ldc_arches}
- mysql-connector-net
ExclusiveArch: %{mono_arches}
- nacl-arm-binutils
ExclusiveArch: x86_64
- nacl-arm-gcc
ExclusiveArch: x86_64
- nacl-arm-newlib
ExclusiveArch: x86_64
- nacl-binutils
ExclusiveArch: x86_64
- nacl-gcc
ExclusiveArch: x86_64
- nacl-newlib
ExclusiveArch: x86_64
- nant
ExclusiveArch: %mono_arches
- nbc
ExclusiveArch: %{fpc_arches}
- nbdkit
ExclusiveArch: x86_64
- ndesk-dbus
ExclusiveArch: %{mono_arches}
- ndesk-dbus-glib
ExclusiveArch: %{mono_arches}
- newtonsoft-json
ExclusiveArch: %{mono_arches}
- nim
ExclusiveArch: %{nim_arches}
- nini
ExclusiveArch: %{mono_arches}
- node-gyp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs
ExclusiveArch: %{nodejs_arches}
- nodejs-Base64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-abbrev
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-accepts
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-acorn-object-spread
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-add-stream
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-after
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-agent-base
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-agentkeepalive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ain2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-align-text
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-alter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgcyan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bggreen
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgmagenta
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgwhite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgyellow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-black
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-blue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bold
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-cyan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-dim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-escapes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-font
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-gray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-green
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-grey
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-hidden
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-inverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-italic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-magenta
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-red
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-reset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-strikethrough
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-styles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-underline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-white
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-wrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-yellow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansicolors
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansidiff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansistyles
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-any-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-any-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-field
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-aproba
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-archiver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-archiver-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-archy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-are-we-there-yet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-argparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-argsparser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-exclude
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-union
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-buffer-from-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-differ
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-events
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-find
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-find-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-foreach
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-ify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-union
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-uniq
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-unique
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arraybuffer-dot-slice
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arraybuffer-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arrify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-as-number
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ascii-tree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ascli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-asn1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assert-plus
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assertion-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assume
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ast-traverse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ast-types
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-astral
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-astral-angular-annotate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-astral-pass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-async-arrays
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-limiter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-queue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-some
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asynckit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-atob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-auto-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-autoresolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ava-init
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-aws-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws-sign2
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-code-frame
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-messages
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-plugin-syntax-async-functions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-plugin-syntax-async-generators
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-runtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-babylon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-backbone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-backoff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-balanced-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base-option
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base-plugins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base32-encode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base64-arraybuffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base64-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-base64-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-base64id
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bash-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-basic-auth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-basic-auth-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-basic-auth-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-batch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bcrypt
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-bcryptjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-beeper
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-benchmark
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-than-before
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bignumber-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bind-obj-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bindings
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bit-mask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-blob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-block-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bluebird
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-body-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boolbase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-brace-expansion
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-braces
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-breakable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-browser-request
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-browser-stdout
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buble
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buf-compare
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-crc32
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-shims
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buffer-writer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buffertools
ExclusiveArch: %{nodejs_arches}
- nodejs-bufferutil
ExclusiveArch: %{nodejs_arches}
- nodejs-builtin-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-builtins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bundle-dependencies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bunker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bunyan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-burrito
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-busboy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-byline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bytes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cache-base
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caching-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-call-delayed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-matcher
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-me-maybe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-signature
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-callback-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsites
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camel-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caniuse-db
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-capture-stack-trace
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-carrier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caseless
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-center-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-as-promised
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-cheerio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-connect-middleware
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-json-schema
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-oauth2orize-grant
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-passport-strategy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-spies-next
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chainer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chainsaw
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chalk
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-change-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-char-spinner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-character-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-charenc
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-charm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-check-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cheerio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-child-process-close
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chmodr
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chownr
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chroma-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chrono
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ci-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-circular-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cjson
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-class-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clean-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clean-yaml-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clear-require
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-spinner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cliui
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-stats
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-closure-compiler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cls
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cmd-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-co
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-co-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-co-with-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-coa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-code-point-at
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-codemirror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-coffee-coverage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-collection-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-collections
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-color-support
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-colour
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-columnify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-combined-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commander
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-common-path-prefix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commondir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-commoner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commonmark
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-compare-func
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-emitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-inherit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-compress-commons
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-compressible
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-compression
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-concat-map
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-concat-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-config-chain
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-connect-livereload
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-connect-timeout
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-console-browserify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-console-dot-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-consolemd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-constant-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-constantinople
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-disposition
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-angular
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-atom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-codemirror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-core
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-conventional-changelog-ember
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-eslint
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-express
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jquery
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jscs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jshint
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-preset-loader
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-writer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-filter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-recommended-bump
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-hex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie-jar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookie-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookie-session
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie-signature
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookiejar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-copy-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-core-assert
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-core-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-core-util-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-couch-login
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-coveralls
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-crc
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-crc32-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-create-error-class
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cross-spawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cross-spawn-async
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-crypt
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cryptiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csrf
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-select
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-css-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-tree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-css-what
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csscomb-core
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csslint
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csso
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cssom
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csurf
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-generate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-spectrum
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ctype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-currently-unhandled
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cycle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cyclist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-d
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dargs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dashdash
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-data-uri-to-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-date-now
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dateformat
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-death
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-debug-fabulous
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debug-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debuglog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-decamelize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decamelize-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decimal-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decompress-response
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dedent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-eql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deep-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-default-require-extensions
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-default-resolution
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-defaults
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defence
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-defence-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deferred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-define-properties
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-define-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defined
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-degenerator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-del
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-delayed-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-delegates
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-delete
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dep-graph
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-depd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dependency-lister
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deprecated
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-indent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-newline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detective
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dezalgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dicer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflib
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dirty-chai
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-docopt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-doctrine
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dom-serializer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-domelementtype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-domhandler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-domutils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dot-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dot-prop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dotfile-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dreamopt
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dryice
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dtree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplexer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplexer2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duplexer3
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplexify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duration
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-each
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-each-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ebnf-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-echomd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ecstatic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-editor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ee-first
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ejs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-emojione
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-empty-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-encodeurl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-encoding
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-end-of-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-engine-dot-io
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-engine-dot-io-client
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-engine-dot-io-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-entities
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-ex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-errorhandler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-errs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es-abstract
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es-to-primitive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es5-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es5-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-iterator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-promisify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-set
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-weak-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escallmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-html
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-regexp-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escape-string-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escodegen
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escope
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espower
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espower-location-detector
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima-fb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima-harmony-jscs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espurify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-esrecurse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estraverse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estraverse-fb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-esutils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-etag
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-event-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-event-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-eventemitter2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-eventemitter3
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-events
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-events-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-everything-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-execa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-exit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-brackets
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-tilde
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expect-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-express
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-express-session
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extend
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extend-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extended-emitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extsprintf
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-eyes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fake
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fancy-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-far
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fast-levenshtein
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fastfall
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-faucet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-faye-websocket
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fd-slicer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fg-lodash
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-figures
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-file-entry-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-file-sync-cmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-file-uri-to-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-filed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-filelist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-filename-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fileset
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fill-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fill-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-finalhandler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-find-cache-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-find-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-findup-sync
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-first-chunk-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flagged-respawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flat-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flot
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-flush-write-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fmix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fn-dot-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fn-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-follow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-follow-redirects
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-for-in
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-for-own
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-foreach
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-foreground-child
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forever-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-form-data
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-formatio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-formidable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forwarded
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fragment-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-freetree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fresh
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-from2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-dot-notify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-cached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fs-ext
ExclusiveArch: %{nodejs_arches}
- nodejs-fs-extra
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-temp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-vacuum
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-write-stream-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs2
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream-ignore
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream-npm
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ftp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-function-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-function-loop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gauge
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gaze
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gdal
ExclusiveArch: %{nodejs_arches}
- nodejs-generate-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generate-object-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generic-pool
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-get-pkg-repo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-port
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-stdin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-uri
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-get-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-getobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gettext-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-git-dummy-commit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-git-raw-commits
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-git-remote-origin-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-git-semver-tags
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-git-tails
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gitconfiglocal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-github-url-from-git
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-github-url-from-username-repo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob-base
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-expand
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-parent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-to-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-global-modules
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-global-prefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globby
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globule
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glogg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gnode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gonzales-pe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-got
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-graceful-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-graceful-readlink
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-growl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-angular-templates
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-banner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-cli
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-compare-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-clean
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-concat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-copy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-contrib-csslint
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-cssmin
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-htmlmin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-contrib-internal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-less
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-nodeunit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-requirejs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-contrib-uglify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-watch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-git-authors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-html-validation
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-init
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-known-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-lib-contrib
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-saucelabs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-sed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-simple-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-svgmin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-util-args
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-util-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-util-process
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-util-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-wrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gulp-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gulp-ng-classify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gulp-util
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gzip-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-handle-thing
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-handlebars
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-har-validator
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-cors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-flag
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-unicode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-yarn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hash_file
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hawk
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-he
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-heap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hex-to-array-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-highlight-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-historic-readline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hock
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hoek
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-homedir-polyfill
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hook-std
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hooker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hosted-git-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hsluv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-html-minifier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-htmlparser2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-deceiver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-errors
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-http-proxy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-proxy-agent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-http-server
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-signature
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-https-proxy-agent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-humanize-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-i
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-i18n-transform
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-i2c
ExclusiveArch: %{nodejs_arches}
- nodejs-iconv
ExclusiveArch: %{nodejs_arches}
- nodejs-iconv-lite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-iferr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ignore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-immutable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-import-local
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imul
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imurmurhash
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-indent-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-infinity-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inflight
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-info-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inherit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-inherits
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inherits1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ini
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-init-package-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inline-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-install
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-int64-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-intercept-require
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-interpret
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-into-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-invert-kv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ip
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ipaddr-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-irc-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irregular-plurals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-absolute
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-accessor-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-arrayish
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-arrow-function
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-boolean-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-builtin-module
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-callable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-data-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-date-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-dotfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-equal-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-extendable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-finite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-fullwidth-code-point
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-generator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-function
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-lower-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-my-json-valid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-negated-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-number
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-number-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-odd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-path-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-in-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-inside
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-plain-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-plain-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-primitive
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-redirect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-registered
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-relative
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-retry-allowed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-subset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-text-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-typedarray
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-unc-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-upper-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-valid-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-valid-instance
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-windows
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-isexe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-iso8601
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isodate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-coverage
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-hook
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-report
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-source-maps
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-reports
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jade
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jasmine-growl-reporter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jasmine-reporters
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jest-mock
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jison
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jison-lex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jju
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joose
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joosex-namespace-depended
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joosex-simplerequest
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-base64
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-string-escape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-js-tokens
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-yaml
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jschardet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jscoverage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jshint
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-localizer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json-parse-better-errors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json-parse-helpfulerror
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stable-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stringify-safe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json3
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonm
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonpointer
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonpointer-dot-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonselect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jwt-simple
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-keep-alive-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-keygrip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-keypress
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-kind-of
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-klaw
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-kuler2gpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-langdetect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-latest-version
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lazy-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lazystream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lcid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lcov-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-leaflet
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leaflet-formbuilder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leaflet-hash
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leche
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-left-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-less
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-levn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lex-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-libpq
ExclusiveArch: %{nodejs_arches}
- nodejs-libxmljs
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-line-numbers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-line-reader
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linkify-it
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-load-grunt-tasks
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-load-json-file
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-locate-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lockfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-log-driver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-ok
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-symbols
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lolex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-longest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-loophole
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-loud-rejection
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lower-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lower-case-first
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lowercase-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lru-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lru-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ltx
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-magic-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-make-arrow-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-generator-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makeerror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mapnik
ExclusiveArch: %{nodejs_arches}
- nodejs-mapnik-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mapnik-vector-tile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-markdown
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-markdown-it-testgen
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-matched
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-max-timeout
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-maxmin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mbtiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-md5
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-hex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-o-matic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mdn-data
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mdurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-media-typer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoizee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-memwatch-next
ExclusiveArch: %{nodejs_arches}
- nodejs-meow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-merge-descriptors
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-merge-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-metascript
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-method-override
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-millstone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mime-db
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mimeparse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mimic-response
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimalistic-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-minimist-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minipass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minstache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mkdirp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mkfiletree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-bin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-git
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-modify-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-module-not-found-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-moment
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-moment-timezone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb-core
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-monocle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-morgan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-muffin
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multiline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-multimatch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multiparty
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multipipe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-murmur-32
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mustache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mutate-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mute-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mysql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mz
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nan0
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nan1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nano
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nanomatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nanoseconds
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-native-or-bluebird
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ncp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-needle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-negotiator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nested-error-stacks
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-net-browserify-alt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-netmask
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-next
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-next-tick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ng-classify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-dot-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-expat
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-node-int64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-print
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-static
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-status-codes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-stringprep
ExclusiveArch: %{nodejs_arches}
- nodejs-node-uuid
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nomnom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-noncharacters
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt-usage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-noptify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-normalize-git-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-normalize-package-data
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-normalize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-cache-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-install-checks
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-npm-package-arg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-registry-client
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-npm-run-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-stats
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-user-validate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npmlog
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nsp-api
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nsp-audit-shrinkwrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nth-check
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-number-is-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-numeral
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth2orize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-assign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-copy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-dot-entries
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-dot-omit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-dot-pick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-inspect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-observable-to-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-obuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-okay
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-finished
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-headers
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-once
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-onetime
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-only-shallow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-opal-runtime
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-opener
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-opn
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-option-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-option-chain
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optionator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-opts
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-orchestrator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ordered-read-streams
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-os-homedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-locale
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-tmpdir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-osenv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-output-file-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-own-or
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-own-or-env
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-finally
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-is-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-limit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-locate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pac-proxy-agent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pac-resolver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-package
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-package-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-package-json
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-package-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-packaging
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-packet-reader
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pad-left
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-paperboy
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parallel-transform
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-param-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-github-repo-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parse-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-passwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parsejson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseqs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parserlib
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parseuri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pascal-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pascalcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-http-bearer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth2-client-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-strategy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-array
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-dirname
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-exists
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-extra
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-absolute
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-inside
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-key
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-parse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-to-regexp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pathval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pause
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pause-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pbkdf2-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pedding
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pegjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pem
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-connection-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-cursor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-escape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-int8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-native
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pgpass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pinkie
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pinkie-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pkg-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pkg-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pkginfo
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-platform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-plur
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-portfinder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-portscanner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-posix-character-classes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-posix-getopt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-bytea
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-date
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-interval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-precond
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prelude-ls
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-prepend-http
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-preserve
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-bytes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-hrtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pretty-time
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-private
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-process-nextick-args
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proclaim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-promises-aplus-tests
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-prompt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-promzard
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-propagate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-propget
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proto-list
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proxy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proxy-addr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-proxy-agent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-proxyquire
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pruddy-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pseudomap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pubcontrol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pump
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pumpify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-q
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-q-io
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-qs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qtdatastream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-queue-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-quick-lru
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qunit-extras
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-qunitjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rainbowsocks
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-random-bytes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-random-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-randomatic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-range-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-raw-body
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rc
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-re-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-all-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-cmd-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-dir-files
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-installed
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-json-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-package-json
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-package-tree
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-pkg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-pkg-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readable-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-readdir-enhanced
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readdir-scoped-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readdirp
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-realize-package-specifier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-recast
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rechoir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-redent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reduce-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regenerator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-regex-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regex-not
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-registry-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-relateurl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-remove-trailing-separator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-repeat-element
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeat-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeating
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-repl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-replace
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-replace-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-replace-require-self
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-request
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-requestretry
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-cs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-require-directory
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-inject
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-main-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-uncached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-yaml
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-requirejs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-requires-port
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-cwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-pkg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-response-time
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resumer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ret
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-retry
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reusify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-revalidator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rewire
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rfile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rhea
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-right-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rimraf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rndm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rollup
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ronn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-run-parallel-limit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-runforcover
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safe-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-safe-json-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safe-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-safecb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-samsam
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sauce-tunnel
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-saucelabs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sax
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-scmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-secure-random
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-seedrandom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-select-hose
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-semver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-send
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sentence-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sentiment
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-seq
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sequencify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serialize-error
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serve-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serve-static
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-server-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-blocking
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-getter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-set-immediate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-immediate-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-setimmediate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-setprototypeof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sha
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shallow-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-command
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shelljs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-shelljs-nodecli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-should
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-should-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-format
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-http
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-showdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sift
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sigmund
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-signal-exit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-silent-npm-registry-client
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-asyncify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-fmt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-single-line-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon-chai
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sinon-restore
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-slash
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sliced
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-slide
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-smart-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-snake-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture-set
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snockets
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sntp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-socket-dot-io-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-socks-client
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-socks-proxy-agent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sort-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sorted-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-fixtures
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map-support
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sparkles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-spawn-sync
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spawn-wrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-correct
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-exceptions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-expression-parse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-license-ids
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-speedometer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sqlite3
ExclusiveArch: %{nodejs_arches}
- nodejs-srs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ssri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-st
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-trace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-utils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-static-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-static-favicon
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-statuses
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-std-mocks
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-combiner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-consume
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-counter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-pair
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-reduce
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-replace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-shift
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-spigot
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-streamsearch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-streamsink
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-streamtest
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-repeat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-trim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string-width
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string_decoder
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringmap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringscanner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringset
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-ansi
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-bom-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-color
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-eof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-indent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-json-comments
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strong-log-transformer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strscanner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stylus
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-success-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-superagent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-superagent-proxy
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-supertest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supervisor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supports-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-suspend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-svgmin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-svgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-swap-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-symbol-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-mocha-reporter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-out
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-spec
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tapes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar-pack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp-write
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tempfile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temporary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern-cordovajs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern-liferay
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-terst
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-test
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-test-exclude
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-testdata-w3c-json-form
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-testjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testswarm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testutil
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-extensions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-thenify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thenify-all
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-through2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through2-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thunkify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tildify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tilejson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tilelive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tilelive-mapnik
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tiletype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-diff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-stamp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-timed-out
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-timekeeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-timers-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tiny-lr-fork
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-title-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tlds
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-absolute-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-object-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-to-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-regex-range
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-touch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tough-cookie
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tracejs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-transformers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-traverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-treeify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tressa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-trim-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim-off-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trivial-deferred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-try-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-try-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tryor
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tsame
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tsscmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ttembed-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tunnel-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tv4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-check
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-type-detect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-name
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-typeahead.js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-typedarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uc-dot-micro
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uglify-to-browserify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid-number
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uid-safe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ultron
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-umask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unc-path-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-underscore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-underscore-dot-logger
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unicode-7.0.0
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unicode-length
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-union
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-union-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unique-filename
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-slug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unpipe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unset-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-upper-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-upper-case-first
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uri-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-urix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-url-join
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-url-parse-lax
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-url2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-use
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-user-home
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utfx
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-deprecate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-inspect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-utilities
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utils-merge
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uuid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vali-date
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-validate-npm-package-license
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-validate-npm-package-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vasync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-verror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vhost
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vinyl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vlq
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vow-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vows
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-w3cjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-walkdir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-walker
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ware
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-warning-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-watchit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-watershed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wbuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wcwidth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-weak-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-websocket-driver
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-when
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-whet-dot-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-which
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-win-spawn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-window-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-winston
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-with
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wolfy87-eventemitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-woothee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wordwrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrap-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wrap-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrappy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-write
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-write-file-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-write-json-file
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-write-pkg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ws
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xdg-basedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xml2js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlbuilder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmldom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlhttprequest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlhttprequest-ssl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xregexp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-xtend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-y18n
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yallist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yapool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yargs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yargs-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yarn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yauzl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yeast
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zip-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zipfile
ExclusiveArch: %{nodejs_arches}
- nodejs-zlib-browserify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zlibjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodeunit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- notify-sharp
ExclusiveArch: %{mono_arches}
- notify-sharp3
ExclusiveArch: %{mono_arches}
- nuget
ExclusiveArch: %{mono_arches}
- numatop
ExclusiveArch: %{ix86} x86_64
- nunit
ExclusiveArch: %{mono_arches}
- nunit2
ExclusiveArch: %{mono_arches}
- nvml
ExclusiveArch: x86_64
- nwchem
ExclusiveArch: x86_64 %{ix86}
- obfs4
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- oci-kvm-hook
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- oci-register-machine
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- oci-umount
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- ocitools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- odcs
ExclusiveArch: %{ix86} x86_64
- olpc-kbdshim
ExclusiveArch: %{ix86} %{arm}
- olpc-netutils
ExclusiveArch: %{ix86} %{arm}
- olpc-powerd
ExclusiveArch: %{ix86} %{arm}
- olpc-utils
ExclusiveArch: %{ix86} %{arm}
- onedrive
ExclusiveArch: %{ldc_arches}
- opal-prd
ExclusiveArch: ppc64le
- open-vm-tools
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64
- openblas
ExclusiveArch: %{openblas_arches}
- openjfx
ExclusiveArch: %{ix86} x86_64
- openlibm
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 %{power64}
- openmx
ExclusiveArch: x86_64 %{ix86}
- openni
ExclusiveArch: %{ix86} x86_64 %{arm}
- openni-primesense
ExclusiveArch: %{ix86} x86_64 %{arm}
- openssl-ibmca
ExclusiveArch: s390 s390x
- openvswitch
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- origin
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- orion
ExclusiveArch: %{qt5_qtwebengine_arches}
- orocos-bfl
ExclusiveArch: %{ix86} x86_64
- orthorobot
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- paflib
ExclusiveArch: ppc %{power64}
- pcc
ExclusiveArch: %{ix86} x86_64
- pcmciautils
ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64 %{arm}
- pdfmod
ExclusiveArch: %mono_arches
- perl-Dumbbench
ExclusiveArch: %{ix86} x86_64 noarch
- perl-Parse-DMIDecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- pesign
ExclusiveArch: %{ix86} x86_64 ia64 aarch64 %{arm}
- pesign-test-app
ExclusiveArch: i686 x86_64 ia64 aarch64
- pinta
ExclusiveArch: %mono_arches
- pioneer
ExclusiveArch: %{ix86} x86_64
- playonlinux
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- plv8
ExclusiveArch: %v8_arches
- pocl
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- podman
ExclusiveArch: aarch64 %{arm} ppc64le s390x x86_64
- poppler-sharp
ExclusiveArch: %mono_arches
- popub
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- powerpc-utils
ExclusiveArch: ppc %{power64}
- ppc64-diag
ExclusiveArch: ppc %{power64}
- publican-jboss
ExclusiveArch: i686 x86_64
- pvs-sbcl
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- python-afl
ExclusiveArch: %{ix86} x86_64
- python-etcd
ExclusiveArch: noarch %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- python-healpy
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-openoffice
ExclusiveArch: noarch x86_64
- python-ovirt-register
ExclusiveArch: %{ix86} x86_64
- python-pymoc
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-rpi-gpio
ExclusiveArch: %{arm} aarch64
- q4wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- qcint
ExclusiveArch: x86_64
- qclib
ExclusiveArch: s390 s390x
- qevercloud
ExclusiveArch: %{qt5_qtwebengine_arches}
- qt4pas
ExclusiveArch: %{fpc_arches}
- qt5-qtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- quantum-espresso
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: %{openblas_arches}
- quentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- rclone
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- rear
ExclusiveArch: %ix86 x86_64 ppc ppc64 ppc64le ia64
- redhat-lsb
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- reg
ExclusiveArch: x86_64
- renderdoc
ExclusiveArch: %{ix86} x86_64
- reptyr
ExclusiveArch: %{ix86} x86_64 %{arm}
- rescene
ExclusiveArch: %{mono_arches}
- restsharp
ExclusiveArch: %{mono_arches}
- rhythmbox-alternative-toolbar
ExclusiveArch: %{ix86} %{arm} x86_64 ppc64 ppc64le
- rkt
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- rocm-runtime
ExclusiveArch: x86_64 aarch64
- rssguard
ExclusiveArch: %{qt5_qtwebengine_arches}
- runc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le %{mips} s390x
- rust
ExclusiveArch: %{rust_arches}
- rust-addr2line
ExclusiveArch: %{rust_arches}
- rust-adler32
ExclusiveArch: %{rust_arches}
- rust-aho-corasick
ExclusiveArch: %{rust_arches}
- rust-ansi_term
ExclusiveArch: %{rust_arches}
- rust-arrayref
ExclusiveArch: %{rust_arches}
- rust-arrayvec
ExclusiveArch: %{rust_arches}
- rust-atk-sys
ExclusiveArch: %{rust_arches}
- rust-atty
ExclusiveArch: %{rust_arches}
- rust-backtrace
ExclusiveArch: %{rust_arches}
- rust-backtrace-sys
ExclusiveArch: %{rust_arches}
- rust-base100
ExclusiveArch: %{rust_arches}
- rust-base64
ExclusiveArch: %{rust_arches}
- rust-bencher
ExclusiveArch: %{rust_arches}
- rust-bincode
ExclusiveArch: %{rust_arches}
- rust-bincode0.8
ExclusiveArch: %{rust_arches}
- rust-bitflags
ExclusiveArch: %{rust_arches}
- rust-bitflags0.9
ExclusiveArch: %{rust_arches}
- rust-brev
ExclusiveArch: %{rust_arches}
- rust-build_const
ExclusiveArch: %{rust_arches}
- rust-bytecount
ExclusiveArch: %{rust_arches}
- rust-byteorder
ExclusiveArch: %{rust_arches}
- rust-bytes
ExclusiveArch: %{rust_arches}
- rust-bytes0.3
ExclusiveArch: %{rust_arches}
- rust-c_vec
ExclusiveArch: %{rust_arches}
- rust-cairo-rs
ExclusiveArch: %{rust_arches}
- rust-cairo-sys-rs
ExclusiveArch: %{rust_arches}
- rust-cbindgen
ExclusiveArch: %{rust_arches}
- rust-cc
ExclusiveArch: %{rust_arches}
- rust-cfg-if
ExclusiveArch: %{rust_arches}
- rust-chan
ExclusiveArch: %{rust_arches}
- rust-chrono
ExclusiveArch: %{rust_arches}
- rust-clap
ExclusiveArch: %{rust_arches}
- rust-cmake
ExclusiveArch: %{rust_arches}
- rust-coco
ExclusiveArch: %{rust_arches}
- rust-cpp_demangle
ExclusiveArch: %{rust_arches}
- rust-crc
ExclusiveArch: %{rust_arches}
- rust-crc-core
ExclusiveArch: %{rust_arches}
- rust-crossbeam
ExclusiveArch: %{rust_arches}
- rust-crossbeam-deque
ExclusiveArch: %{rust_arches}
- rust-crossbeam-epoch
ExclusiveArch: %{rust_arches}
- rust-crossbeam-utils
ExclusiveArch: %{rust_arches}
- rust-crypto-hash
ExclusiveArch: %{rust_arches}
- rust-cryptovec
ExclusiveArch: %{rust_arches}
- rust-cssparser
ExclusiveArch: %{rust_arches}
- rust-cssparser-macros
ExclusiveArch: %{rust_arches}
- rust-ctrlc
ExclusiveArch: %{rust_arches}
- rust-curl
ExclusiveArch: %{rust_arches}
- rust-curl-sys
ExclusiveArch: %{rust_arches}
- rust-custom_derive
ExclusiveArch: %{rust_arches}
- rust-data-encoding
ExclusiveArch: %{rust_arches}
- rust-datetime
ExclusiveArch: %{rust_arches}
- rust-dbus
ExclusiveArch: %{rust_arches}
- rust-deque
ExclusiveArch: %{rust_arches}
- rust-devicemapper
ExclusiveArch: %{rust_arches}
- rust-diff
ExclusiveArch: %{rust_arches}
- rust-difference
ExclusiveArch: %{rust_arches}
- rust-docopt
ExclusiveArch: %{rust_arches}
- rust-downcast-rs
ExclusiveArch: %{rust_arches}
- rust-dtoa
ExclusiveArch: %{rust_arches}
- rust-dtoa-short
ExclusiveArch: %{rust_arches}
- rust-edit-distance
ExclusiveArch: %{rust_arches}
- rust-either
ExclusiveArch: %{rust_arches}
- rust-encoding
ExclusiveArch: %{rust_arches}
- rust-encoding-index-japanese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-korean
ExclusiveArch: %{rust_arches}
- rust-encoding-index-simpchinese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-singlebyte
ExclusiveArch: %{rust_arches}
- rust-encoding-index-tradchinese
ExclusiveArch: %{rust_arches}
- rust-encoding_index_tests
ExclusiveArch: %{rust_arches}
- rust-encoding_rs
ExclusiveArch: %{rust_arches}
- rust-enum_primitive
ExclusiveArch: %{rust_arches}
- rust-env_logger
ExclusiveArch: %{rust_arches}
- rust-env_logger0.4
ExclusiveArch: %{rust_arches}
- rust-errln
ExclusiveArch: %{rust_arches}
- rust-errno
ExclusiveArch: %{rust_arches}
- rust-error-chain
ExclusiveArch: %{rust_arches}
- rust-exa
ExclusiveArch: %{rust_arches}
- rust-extprim
ExclusiveArch: %{rust_arches}
- rust-extprim_literals_macros
ExclusiveArch: %{rust_arches}
- rust-failure
ExclusiveArch: %{rust_arches}
- rust-failure_derive
ExclusiveArch: %{rust_arches}
- rust-fallible-iterator
ExclusiveArch: %{rust_arches}
- rust-fd-find
ExclusiveArch: %{rust_arches}
- rust-filetime
ExclusiveArch: %{rust_arches}
- rust-fixedbitset
ExclusiveArch: %{rust_arches}
- rust-flame
ExclusiveArch: %{rust_arches}
- rust-flate2
ExclusiveArch: %{rust_arches}
- rust-float-cmp
ExclusiveArch: %{rust_arches}
- rust-fnv
ExclusiveArch: %{rust_arches}
- rust-foreign-types
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared
ExclusiveArch: %{rust_arches}
- rust-fs2
ExclusiveArch: %{rust_arches}
- rust-futures
ExclusiveArch: %{rust_arches}
- rust-futures-cpupool
ExclusiveArch: %{rust_arches}
- rust-gdk
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf-sys
ExclusiveArch: %{rust_arches}
- rust-gdk-sys
ExclusiveArch: %{rust_arches}
- rust-getopts
ExclusiveArch: %{rust_arches}
- rust-gimli
ExclusiveArch: %{rust_arches}
- rust-gio
ExclusiveArch: %{rust_arches}
- rust-gio-sys
ExclusiveArch: %{rust_arches}
- rust-git2
ExclusiveArch: %{rust_arches}
- rust-glib
ExclusiveArch: %{rust_arches}
- rust-glib-sys
ExclusiveArch: %{rust_arches}
- rust-glob
ExclusiveArch: %{rust_arches}
- rust-globset
ExclusiveArch: %{rust_arches}
- rust-gobject-sys
ExclusiveArch: %{rust_arches}
- rust-goblin
ExclusiveArch: %{rust_arches}
- rust-grep
ExclusiveArch: %{rust_arches}
- rust-gtk
ExclusiveArch: %{rust_arches}
- rust-gtk-rs-lgpl-docs
ExclusiveArch: %{rust_arches}
- rust-gtk-source-sys
ExclusiveArch: %{rust_arches}
- rust-gtk-sys
ExclusiveArch: %{rust_arches}
- rust-gzip-header
ExclusiveArch: %{rust_arches}
- rust-hamcrest
ExclusiveArch: %{rust_arches}
- rust-handlebars
ExclusiveArch: %{rust_arches}
- rust-heapsize
ExclusiveArch: %{rust_arches}
- rust-hex
ExclusiveArch: %{rust_arches}
- rust-home
ExclusiveArch: %{rust_arches}
- rust-horrorshow
ExclusiveArch: %{rust_arches}
- rust-http
ExclusiveArch: %{rust_arches}
- rust-httparse
ExclusiveArch: %{rust_arches}
- rust-humantime
ExclusiveArch: %{rust_arches}
- rust-hyper
ExclusiveArch: %{rust_arches}
- rust-idna
ExclusiveArch: %{rust_arches}
- rust-ignore
ExclusiveArch: %{rust_arches}
- rust-indexmap
ExclusiveArch: %{rust_arches}
- rust-intervaltree
ExclusiveArch: %{rust_arches}
- rust-iovec
ExclusiveArch: %{rust_arches}
- rust-iso8601
ExclusiveArch: %{rust_arches}
- rust-itertools
ExclusiveArch: %{rust_arches}
- rust-itoa
ExclusiveArch: %{rust_arches}
- rust-jobserver
ExclusiveArch: %{rust_arches}
- rust-language-tags
ExclusiveArch: %{rust_arches}
- rust-lazy-init
ExclusiveArch: %{rust_arches}
- rust-lazy_static
ExclusiveArch: %{rust_arches}
- rust-lazycell
ExclusiveArch: %{rust_arches}
- rust-libc
ExclusiveArch: %{rust_arches}
- rust-libdbus-sys
ExclusiveArch: %{rust_arches}
- rust-libgit2-sys
ExclusiveArch: %{rust_arches}
- rust-libloading
ExclusiveArch: %{rust_arches}
- rust-libssh2-sys
ExclusiveArch: %{rust_arches}
- rust-libudev
ExclusiveArch: %{rust_arches}
- rust-libudev-sys
ExclusiveArch: %{rust_arches}
- rust-libz-sys
ExclusiveArch: %{rust_arches}
- rust-linked-hash-map
ExclusiveArch: %{rust_arches}
- rust-lipsum
ExclusiveArch: %{rust_arches}
- rust-locale
ExclusiveArch: %{rust_arches}
- rust-log
ExclusiveArch: %{rust_arches}
- rust-log0.3
ExclusiveArch: %{rust_arches}
- rust-loopdev
ExclusiveArch: %{rust_arches}
- rust-lzma-sys
ExclusiveArch: %{rust_arches}
- rust-macro-attr
ExclusiveArch: %{rust_arches}
- rust-maplit
ExclusiveArch: %{rust_arches}
- rust-matches
ExclusiveArch: %{rust_arches}
- rust-md5
ExclusiveArch: %{rust_arches}
- rust-memchr
ExclusiveArch: %{rust_arches}
- rust-memmap
ExclusiveArch: %{rust_arches}
- rust-memoffset
ExclusiveArch: %{rust_arches}
- rust-metadeps
ExclusiveArch: %{rust_arches}
- rust-mime
ExclusiveArch: %{rust_arches}
- rust-miniz-sys
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide_c_api
ExclusiveArch: %{rust_arches}
- rust-mio
ExclusiveArch: %{rust_arches}
- rust-mio-uds
ExclusiveArch: %{rust_arches}
- rust-mnt
ExclusiveArch: %{rust_arches}
- rust-modifier
ExclusiveArch: %{rust_arches}
- rust-multimap
ExclusiveArch: %{rust_arches}
- rust-natord
ExclusiveArch: %{rust_arches}
- rust-net2
ExclusiveArch: %{rust_arches}
- rust-newtype_derive
ExclusiveArch: %{rust_arches}
- rust-nix
ExclusiveArch: %{rust_arches}
- rust-nodrop
ExclusiveArch: %{rust_arches}
- rust-nom
ExclusiveArch: %{rust_arches}
- rust-num
ExclusiveArch: %{rust_arches}
- rust-num-bigint
ExclusiveArch: %{rust_arches}
- rust-num-complex
ExclusiveArch: %{rust_arches}
- rust-num-integer
ExclusiveArch: %{rust_arches}
- rust-num-iter
ExclusiveArch: %{rust_arches}
- rust-num-rational
ExclusiveArch: %{rust_arches}
- rust-num-traits
ExclusiveArch: %{rust_arches}
- rust-num-traits0.1
ExclusiveArch: %{rust_arches}
- rust-num_cpus
ExclusiveArch: %{rust_arches}
- rust-number_prefix
ExclusiveArch: %{rust_arches}
- rust-object
ExclusiveArch: %{rust_arches}
- rust-openssl
ExclusiveArch: %{rust_arches}
- rust-openssl-probe
ExclusiveArch: %{rust_arches}
- rust-openssl-sys
ExclusiveArch: %{rust_arches}
- rust-ordermap
ExclusiveArch: %{rust_arches}
- rust-owning_ref
ExclusiveArch: %{rust_arches}
- rust-packaging
ExclusiveArch: %{rust_arches} noarch
- rust-pad
ExclusiveArch: %{rust_arches}
- rust-pager
ExclusiveArch: %{rust_arches}
- rust-pango
ExclusiveArch: %{rust_arches}
- rust-pango-sys
ExclusiveArch: %{rust_arches}
- rust-pangocairo
ExclusiveArch: %{rust_arches}
- rust-pangocairo-sys
ExclusiveArch: %{rust_arches}
- rust-peeking_take_while
ExclusiveArch: %{rust_arches}
- rust-percent-encoding
ExclusiveArch: %{rust_arches}
- rust-permutate
ExclusiveArch: %{rust_arches}
- rust-permutohedron
ExclusiveArch: %{rust_arches}
- rust-pest
ExclusiveArch: %{rust_arches}
- rust-pest_derive
ExclusiveArch: %{rust_arches}
- rust-phf
ExclusiveArch: %{rust_arches}
- rust-phf_codegen
ExclusiveArch: %{rust_arches}
- rust-phf_generator
ExclusiveArch: %{rust_arches}
- rust-phf_shared
ExclusiveArch: %{rust_arches}
- rust-pkg-config
ExclusiveArch: %{rust_arches}
- rust-plain
ExclusiveArch: %{rust_arches}
- rust-pretty-git-prompt
ExclusiveArch: %{rust_arches}
- rust-pretty_env_logger
ExclusiveArch: %{rust_arches}
- rust-proc-macro2
ExclusiveArch: %{rust_arches}
- rust-procedural-masquerade
ExclusiveArch: %{rust_arches}
- rust-pulldown-cmark
ExclusiveArch: %{rust_arches}
- rust-quick-error
ExclusiveArch: %{rust_arches}
- rust-quickcheck
ExclusiveArch: %{rust_arches}
- rust-quickersort
ExclusiveArch: %{rust_arches}
- rust-quote
ExclusiveArch: %{rust_arches}
- rust-rand
ExclusiveArch: %{rust_arches}
- rust-rayon
ExclusiveArch: %{rust_arches}
- rust-rayon-core
ExclusiveArch: %{rust_arches}
- rust-regex
ExclusiveArch: %{rust_arches}
- rust-regex-syntax
ExclusiveArch: %{rust_arches}
- rust-relay
ExclusiveArch: %{rust_arches}
- rust-remove_dir_all
ExclusiveArch: %{rust_arches}
- rust-ripgrep
ExclusiveArch: %{rust_arches}
- rust-rustc-demangle
ExclusiveArch: %{rust_arches}
- rust-rustc-serialize
ExclusiveArch: %{rust_arches}
- rust-rustc-test
ExclusiveArch: %{rust_arches}
- rust-rustc_version
ExclusiveArch: %{rust_arches}
- rust-rustdoc-stripper
ExclusiveArch: %{rust_arches}
- rust-rustfilt
ExclusiveArch: %{rust_arches}
- rust-safemem
ExclusiveArch: %{rust_arches}
- rust-same-file
ExclusiveArch: %{rust_arches}
- rust-scoped-tls
ExclusiveArch: %{rust_arches}
- rust-scoped_threadpool
ExclusiveArch: %{rust_arches}
- rust-scopeguard
ExclusiveArch: %{rust_arches}
- rust-scroll
ExclusiveArch: %{rust_arches}
- rust-scroll_derive
ExclusiveArch: %{rust_arches}
- rust-seahash
ExclusiveArch: %{rust_arches}
- rust-semver
ExclusiveArch: %{rust_arches}
- rust-semver-parser
ExclusiveArch: %{rust_arches}
- rust-serde
ExclusiveArch: %{rust_arches}
- rust-serde0.8
ExclusiveArch: %{rust_arches}
- rust-serde_bytes
ExclusiveArch: %{rust_arches}
- rust-serde_cbor
ExclusiveArch: %{rust_arches}
- rust-serde_derive
ExclusiveArch: %{rust_arches}
- rust-serde_ignored
ExclusiveArch: %{rust_arches}
- rust-serde_json
ExclusiveArch: %{rust_arches}
- rust-serde_json0.8
ExclusiveArch: %{rust_arches}
- rust-serde_test
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded
ExclusiveArch: %{rust_arches}
- rust-serde_yaml
ExclusiveArch: %{rust_arches}
- rust-sha1
ExclusiveArch: %{rust_arches}
- rust-shell-escape
ExclusiveArch: %{rust_arches}
- rust-shlex
ExclusiveArch: %{rust_arches}
- rust-siphasher
ExclusiveArch: %{rust_arches}
- rust-slab
ExclusiveArch: %{rust_arches}
- rust-slab0.3
ExclusiveArch: %{rust_arches}
- rust-smallvec
ExclusiveArch: %{rust_arches}
- rust-socket2
ExclusiveArch: %{rust_arches}
- rust-sourceview
ExclusiveArch: %{rust_arches}
- rust-spin
ExclusiveArch: %{rust_arches}
- rust-spmc
ExclusiveArch: %{rust_arches}
- rust-stable_deref_trait
ExclusiveArch: %{rust_arches}
- rust-streaming-stats
ExclusiveArch: %{rust_arches}
- rust-strings
ExclusiveArch: %{rust_arches}
- rust-strsim
ExclusiveArch: %{rust_arches}
- rust-structopt
ExclusiveArch: %{rust_arches}
- rust-structopt-derive
ExclusiveArch: %{rust_arches}
- rust-syn
ExclusiveArch: %{rust_arches}
- rust-synstructure
ExclusiveArch: %{rust_arches}
- rust-sys-info
ExclusiveArch: %{rust_arches}
- rust-tabwriter
ExclusiveArch: %{rust_arches}
- rust-take
ExclusiveArch: %{rust_arches}
- rust-take_mut
ExclusiveArch: %{rust_arches}
- rust-tar
ExclusiveArch: %{rust_arches}
- rust-tempdir
ExclusiveArch: %{rust_arches}
- rust-tempfile
ExclusiveArch: %{rust_arches}
- rust-term
ExclusiveArch: %{rust_arches}
- rust-term_grid
ExclusiveArch: %{rust_arches}
- rust-term_size
ExclusiveArch: %{rust_arches}
- rust-termcolor
ExclusiveArch: %{rust_arches}
- rust-termion
ExclusiveArch: %{rust_arches}
- rust-test-assembler
ExclusiveArch: %{rust_arches}
- rust-textwrap
ExclusiveArch: %{rust_arches}
- rust-thread-id
ExclusiveArch: %{rust_arches}
- rust-thread_local
ExclusiveArch: %{rust_arches}
- rust-threadpool
ExclusiveArch: %{rust_arches}
- rust-time
ExclusiveArch: %{rust_arches}
- rust-tokei
ExclusiveArch: %{rust_arches}
- rust-tokio
ExclusiveArch: %{rust_arches}
- rust-tokio-core
ExclusiveArch: %{rust_arches}
- rust-tokio-executor
ExclusiveArch: %{rust_arches}
- rust-tokio-fs
ExclusiveArch: %{rust_arches}
- rust-tokio-io
ExclusiveArch: %{rust_arches}
- rust-tokio-process
ExclusiveArch: %{rust_arches}
- rust-tokio-proto
ExclusiveArch: %{rust_arches}
- rust-tokio-reactor
ExclusiveArch: %{rust_arches}
- rust-tokio-service
ExclusiveArch: %{rust_arches}
- rust-tokio-signal
ExclusiveArch: %{rust_arches}
- rust-tokio-tcp
ExclusiveArch: %{rust_arches}
- rust-tokio-threadpool
ExclusiveArch: %{rust_arches}
- rust-tokio-timer
ExclusiveArch: %{rust_arches}
- rust-tokio-udp
ExclusiveArch: %{rust_arches}
- rust-toml
ExclusiveArch: %{rust_arches}
- rust-traitobject
ExclusiveArch: %{rust_arches}
- rust-typed-arena
ExclusiveArch: %{rust_arches}
- rust-ucd-util
ExclusiveArch: %{rust_arches}
- rust-unicase
ExclusiveArch: %{rust_arches}
- rust-unicode-bidi
ExclusiveArch: %{rust_arches}
- rust-unicode-normalization
ExclusiveArch: %{rust_arches}
- rust-unicode-segmentation
ExclusiveArch: %{rust_arches}
- rust-unicode-width
ExclusiveArch: %{rust_arches}
- rust-unicode-xid
ExclusiveArch: %{rust_arches}
- rust-unindent
ExclusiveArch: %{rust_arches}
- rust-unreachable
ExclusiveArch: %{rust_arches}
- rust-unsafe-any
ExclusiveArch: %{rust_arches}
- rust-untrusted
ExclusiveArch: %{rust_arches}
- rust-url
ExclusiveArch: %{rust_arches}
- rust-users
ExclusiveArch: %{rust_arches}
- rust-utf8-ranges
ExclusiveArch: %{rust_arches}
- rust-uuid
ExclusiveArch: %{rust_arches}
- rust-vec_map
ExclusiveArch: %{rust_arches}
- rust-version-sync
ExclusiveArch: %{rust_arches}
- rust-version_check
ExclusiveArch: %{rust_arches}
- rust-void
ExclusiveArch: %{rust_arches}
- rust-wait-timeout
ExclusiveArch: %{rust_arches}
- rust-walkdir
ExclusiveArch: %{rust_arches}
- rust-which
ExclusiveArch: %{rust_arches}
- rust-xattr
ExclusiveArch: %{rust_arches}
- rust-xz2
ExclusiveArch: %{rust_arches}
- rust-yaml-rust
ExclusiveArch: %{rust_arches}
- rust-yaml-rust0.3
ExclusiveArch: %{rust_arches}
- rust-yubibomb
ExclusiveArch: %{rust_arches}
- rust-zoneinfo_compiled
ExclusiveArch: %{rust_arches}
- s390utils
ExclusiveArch: s390 s390x
- safetyblanket
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- sagemath
ExclusiveArch: aarch64 %{arm} %{ix86} x86_64 ppc sparcv9
- sbcl
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- sbd
ExclusiveArch: i686 x86_64 s390x
- sbsigntools
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- seabios
ExclusiveArch: x86_64
- seamonkey
ExclusiveArch: %{ix86} x86_64
- servicelog
ExclusiveArch: ppc %{power64}
- sgabios
ExclusiveArch: %{ix86} x86_64
- sharpfont
ExclusiveArch: %mono_arches
- sharpziplib
ExclusiveArch: %{mono_arches}
- shim
ExclusiveArch: %{efi}
- shim-unsigned-aarch64
ExclusiveArch: aarch64
- shim-unsigned-x64
ExclusiveArch: x86_64
- sigul
ExclusiveArch: x86_64
- skychart
ExclusiveArch: %{fpc_arches}
- smuxi
ExclusiveArch: %{ix86} x86_64 %{arm} ppc64le
- snapd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- source-to-image
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- sparkleshare
ExclusiveArch: %{mono_arches}
- spicctrl
ExclusiveArch: %{ix86} x86_64
- spice
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- spice-xpi
ExclusiveArch: i686 x86_64 armv6l armv7l armv7hl aarch64
- spring
ExclusiveArch: %{ix86} x86_64
- springlobby
ExclusiveArch: %{ix86} x86_64
- startdde
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- statsd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- stratis-cli
ExclusiveArch: %{rust_arches} noarch
- stratisd
ExclusiveArch: %{rust_arches}
- stripesnoop
ExclusiveArch: %{ix86} x86_64
- supermin
ExclusiveArch: x86_64
- syncthing
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- sysbench
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- syslinux
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- taglib-sharp
ExclusiveArch: %{mono_arches}
- tarantool
ExclusiveArch: %{ix86} x86_64 armv7hl armv7hnl aarch64
- tboot
ExclusiveArch: %{ix86} x86_64
- templates_parser
ExclusiveArch: %GPRbuild_arches
- ternimal
ExclusiveArch: %{rust_arches}
- themonospot-base
ExclusiveArch: %mono_arches
- themonospot-console
ExclusiveArch: %mono_arches
- themonospot-gui-gtk
ExclusiveArch: %mono_arches
- themonospot-plugin-avi
ExclusiveArch: %mono_arches
- themonospot-plugin-mkv
ExclusiveArch: %mono_arches
- thermald
ExclusiveArch: %{ix86} x86_64
- thunderbird-enigmail
ExclusiveArch: %{ix86} %{arm} ppc64 ppc64le s390x x86_64 noarch
- tilix
ExclusiveArch: %{ldc_arches}
- tmux-top
ExclusiveArch: %{go_arches}
- tomboy
ExclusiveArch: %{mono_arches}
- tuned-profiles-nfv-host-bin
ExclusiveArch: %{ix86} x86_64
- uClibc
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
- ucx
ExclusiveArch: aarch64 ppc64le x86_64
- ugene
ExclusiveArch: %{ix86} x86_64
- uglify-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- uglify-js1
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- unetbootin
ExclusiveArch: %{ix86} x86_64
- v8
ExclusiveArch: %{ix86} x86_64 %{arm} ppc mipsel mips64el
- v8-314
ExclusiveArch: %{ix86} x86_64 %{arm} mips mipsel ppc ppc64
- valgrind
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64
- vboot-utils
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- vdsm
ExclusiveArch: x86_64 %{power64} aarch64
- vim-go
ExclusiveArch: %{?golang_arches}%{!?golang_arches:%{ix86} x86_64 %{arm}}
- virtualbox-guest-additions
ExclusiveArch: i686 x86_64
- virtualplanet
ExclusiveArch: %{fpc_arches}
- vrq
ExclusiveArch: %{ix86} x86_64
- warsow
ExclusiveArch: %{ix86} x86_64 %{arm}
- warsow-data
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{ix86} x86_64 %{arm}
- webkit-sharp
ExclusiveArch: %mono_arches
- webkit2-sharp
ExclusiveArch: %mono_arches
- wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: %{ix86} %{arm}
- winetricks
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- wiredtiger
ExclusiveArch: x86_64 aarch64 ppc64le
- wraplinux
ExclusiveArch: %{ix86} x86_64
- wxMaxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
- x2goclient
ExclusiveArch: x86_64
- x86info
ExclusiveArch: %{ix86} x86_64
- xen
ExclusiveArch: %{ix86} x86_64 armv7hl aarch64
- xorg-x11-drv-armsoc
ExclusiveArch: %{arm} aarch64
- xorg-x11-drv-geode
ExclusiveArch: %{ix86}
- xorg-x11-drv-intel
ExclusiveArch: %{ix86} x86_64 ia64
- xorg-x11-drv-omap
ExclusiveArch: %{arm}
- xorg-x11-drv-openchrome
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-opentegra
ExclusiveArch: %{arm}
- xorg-x11-drv-vesa
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vmware
ExclusiveArch: %{ix86} x86_64 ia64
- xsp
ExclusiveArch: %mono_arches
- xsupplicant
ExclusiveArch: %{ix86} x86_64 ppc %{power64}
- ycssmin
ExclusiveArch: %{nodejs_arches} noarch
- zeromq-ada
ExclusiveArch: %{GPRbuild_arches}
- zlib-ada
ExclusiveArch: %{GPRbuild_arches}
5 years, 10 months
Architecture specific change in rpms/ocaml-qtest.git
by githook-noreply@fedoraproject.org
The package rpms/ocaml-qtest.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/ocaml-qtest.git/commit/?id=54c29a....
Change:
+%ifarch %{ocaml_native_compiler}
Thanks.
Full change:
============
commit 54c29a21ca82638ab4aeec94bd17bd0a2bd8f59b
Author: Andy Li <andy(a)onthewings.net>
Date: Fri May 18 10:45:13 2018 +0800
New upstream release (RHBZ#1570332).
diff --git a/.gitignore b/.gitignore
index 2631a7c..a5ac740 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
/ocaml-qtest-2.7.tar.gz
/ocaml-qtest-2.8.tar.gz
+/ocaml-qtest-2.9.tar.gz
diff --git a/ocaml-qtest-LICENSE.patch b/ocaml-qtest-LICENSE.patch
deleted file mode 100644
index c815ce2..0000000
--- a/ocaml-qtest-LICENSE.patch
+++ /dev/null
@@ -1,690 +0,0 @@
-From 1db4cd4322c8222352bf46168e65698ad9d78e96 Mon Sep 17 00:00:00 2001
-From: Simon Cruanes <simon.cruanes.2007(a)m4x.org>
-Date: Thu, 23 Nov 2017 15:06:49 +0100
-Subject: [PATCH] add license file (GPLv3) (closes #48)
-
----
- LICENSE | 674 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 674 insertions(+)
- create mode 100644 LICENSE
-
-diff --git a/LICENSE b/LICENSE
-new file mode 100644
-index 0000000..f288702
---- /dev/null
-+++ b/LICENSE
-@@ -0,0 +1,674 @@
-+ GNU GENERAL PUBLIC LICENSE
-+ Version 3, 29 June 2007
-+
-+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
-+ Everyone is permitted to copy and distribute verbatim copies
-+ of this license document, but changing it is not allowed.
-+
-+ Preamble
-+
-+ The GNU General Public License is a free, copyleft license for
-+software and other kinds of works.
-+
-+ The licenses for most software and other practical works are designed
-+to take away your freedom to share and change the works. By contrast,
-+the GNU General Public License is intended to guarantee your freedom to
-+share and change all versions of a program--to make sure it remains free
-+software for all its users. We, the Free Software Foundation, use the
-+GNU General Public License for most of our software; it applies also to
-+any other work released this way by its authors. You can apply it to
-+your programs, too.
-+
-+ When we speak of free software, we are referring to freedom, not
-+price. Our General Public Licenses are designed to make sure that you
-+have the freedom to distribute copies of free software (and charge for
-+them if you wish), that you receive source code or can get it if you
-+want it, that you can change the software or use pieces of it in new
-+free programs, and that you know you can do these things.
-+
-+ To protect your rights, we need to prevent others from denying you
-+these rights or asking you to surrender the rights. Therefore, you have
-+certain responsibilities if you distribute copies of the software, or if
-+you modify it: responsibilities to respect the freedom of others.
-+
-+ For example, if you distribute copies of such a program, whether
-+gratis or for a fee, you must pass on to the recipients the same
-+freedoms that you received. You must make sure that they, too, receive
-+or can get the source code. And you must show them these terms so they
-+know their rights.
-+
-+ Developers that use the GNU GPL protect your rights with two steps:
-+(1) assert copyright on the software, and (2) offer you this License
-+giving you legal permission to copy, distribute and/or modify it.
-+
-+ For the developers' and authors' protection, the GPL clearly explains
-+that there is no warranty for this free software. For both users' and
-+authors' sake, the GPL requires that modified versions be marked as
-+changed, so that their problems will not be attributed erroneously to
-+authors of previous versions.
-+
-+ Some devices are designed to deny users access to install or run
-+modified versions of the software inside them, although the manufacturer
-+can do so. This is fundamentally incompatible with the aim of
-+protecting users' freedom to change the software. The systematic
-+pattern of such abuse occurs in the area of products for individuals to
-+use, which is precisely where it is most unacceptable. Therefore, we
-+have designed this version of the GPL to prohibit the practice for those
-+products. If such problems arise substantially in other domains, we
-+stand ready to extend this provision to those domains in future versions
-+of the GPL, as needed to protect the freedom of users.
-+
-+ Finally, every program is threatened constantly by software patents.
-+States should not allow patents to restrict development and use of
-+software on general-purpose computers, but in those that do, we wish to
-+avoid the special danger that patents applied to a free program could
-+make it effectively proprietary. To prevent this, the GPL assures that
-+patents cannot be used to render the program non-free.
-+
-+ The precise terms and conditions for copying, distribution and
-+modification follow.
-+
-+ TERMS AND CONDITIONS
-+
-+ 0. Definitions.
-+
-+ "This License" refers to version 3 of the GNU General Public License.
-+
-+ "Copyright" also means copyright-like laws that apply to other kinds of
-+works, such as semiconductor masks.
-+
-+ "The Program" refers to any copyrightable work licensed under this
-+License. Each licensee is addressed as "you". "Licensees" and
-+"recipients" may be individuals or organizations.
-+
-+ To "modify" a work means to copy from or adapt all or part of the work
-+in a fashion requiring copyright permission, other than the making of an
-+exact copy. The resulting work is called a "modified version" of the
-+earlier work or a work "based on" the earlier work.
-+
-+ A "covered work" means either the unmodified Program or a work based
-+on the Program.
-+
-+ To "propagate" a work means to do anything with it that, without
-+permission, would make you directly or secondarily liable for
-+infringement under applicable copyright law, except executing it on a
-+computer or modifying a private copy. Propagation includes copying,
-+distribution (with or without modification), making available to the
-+public, and in some countries other activities as well.
-+
-+ To "convey" a work means any kind of propagation that enables other
-+parties to make or receive copies. Mere interaction with a user through
-+a computer network, with no transfer of a copy, is not conveying.
-+
-+ An interactive user interface displays "Appropriate Legal Notices"
-+to the extent that it includes a convenient and prominently visible
-+feature that (1) displays an appropriate copyright notice, and (2)
-+tells the user that there is no warranty for the work (except to the
-+extent that warranties are provided), that licensees may convey the
-+work under this License, and how to view a copy of this License. If
-+the interface presents a list of user commands or options, such as a
-+menu, a prominent item in the list meets this criterion.
-+
-+ 1. Source Code.
-+
-+ The "source code" for a work means the preferred form of the work
-+for making modifications to it. "Object code" means any non-source
-+form of a work.
-+
-+ A "Standard Interface" means an interface that either is an official
-+standard defined by a recognized standards body, or, in the case of
-+interfaces specified for a particular programming language, one that
-+is widely used among developers working in that language.
-+
-+ The "System Libraries" of an executable work include anything, other
-+than the work as a whole, that (a) is included in the normal form of
-+packaging a Major Component, but which is not part of that Major
-+Component, and (b) serves only to enable use of the work with that
-+Major Component, or to implement a Standard Interface for which an
-+implementation is available to the public in source code form. A
-+"Major Component", in this context, means a major essential component
-+(kernel, window system, and so on) of the specific operating system
-+(if any) on which the executable work runs, or a compiler used to
-+produce the work, or an object code interpreter used to run it.
-+
-+ The "Corresponding Source" for a work in object code form means all
-+the source code needed to generate, install, and (for an executable
-+work) run the object code and to modify the work, including scripts to
-+control those activities. However, it does not include the work's
-+System Libraries, or general-purpose tools or generally available free
-+programs which are used unmodified in performing those activities but
-+which are not part of the work. For example, Corresponding Source
-+includes interface definition files associated with source files for
-+the work, and the source code for shared libraries and dynamically
-+linked subprograms that the work is specifically designed to require,
-+such as by intimate data communication or control flow between those
-+subprograms and other parts of the work.
-+
-+ The Corresponding Source need not include anything that users
-+can regenerate automatically from other parts of the Corresponding
-+Source.
-+
-+ The Corresponding Source for a work in source code form is that
-+same work.
-+
-+ 2. Basic Permissions.
-+
-+ All rights granted under this License are granted for the term of
-+copyright on the Program, and are irrevocable provided the stated
-+conditions are met. This License explicitly affirms your unlimited
-+permission to run the unmodified Program. The output from running a
-+covered work is covered by this License only if the output, given its
-+content, constitutes a covered work. This License acknowledges your
-+rights of fair use or other equivalent, as provided by copyright law.
-+
-+ You may make, run and propagate covered works that you do not
-+convey, without conditions so long as your license otherwise remains
-+in force. You may convey covered works to others for the sole purpose
-+of having them make modifications exclusively for you, or provide you
-+with facilities for running those works, provided that you comply with
-+the terms of this License in conveying all material for which you do
-+not control copyright. Those thus making or running the covered works
-+for you must do so exclusively on your behalf, under your direction
-+and control, on terms that prohibit them from making any copies of
-+your copyrighted material outside their relationship with you.
-+
-+ Conveying under any other circumstances is permitted solely under
-+the conditions stated below. Sublicensing is not allowed; section 10
-+makes it unnecessary.
-+
-+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-+
-+ No covered work shall be deemed part of an effective technological
-+measure under any applicable law fulfilling obligations under article
-+11 of the WIPO copyright treaty adopted on 20 December 1996, or
-+similar laws prohibiting or restricting circumvention of such
-+measures.
-+
-+ When you convey a covered work, you waive any legal power to forbid
-+circumvention of technological measures to the extent such circumvention
-+is effected by exercising rights under this License with respect to
-+the covered work, and you disclaim any intention to limit operation or
-+modification of the work as a means of enforcing, against the work's
-+users, your or third parties' legal rights to forbid circumvention of
-+technological measures.
-+
-+ 4. Conveying Verbatim Copies.
-+
-+ You may convey verbatim copies of the Program's source code as you
-+receive it, in any medium, provided that you conspicuously and
-+appropriately publish on each copy an appropriate copyright notice;
-+keep intact all notices stating that this License and any
-+non-permissive terms added in accord with section 7 apply to the code;
-+keep intact all notices of the absence of any warranty; and give all
-+recipients a copy of this License along with the Program.
-+
-+ You may charge any price or no price for each copy that you convey,
-+and you may offer support or warranty protection for a fee.
-+
-+ 5. Conveying Modified Source Versions.
-+
-+ You may convey a work based on the Program, or the modifications to
-+produce it from the Program, in the form of source code under the
-+terms of section 4, provided that you also meet all of these conditions:
-+
-+ a) The work must carry prominent notices stating that you modified
-+ it, and giving a relevant date.
-+
-+ b) The work must carry prominent notices stating that it is
-+ released under this License and any conditions added under section
-+ 7. This requirement modifies the requirement in section 4 to
-+ "keep intact all notices".
-+
-+ c) You must license the entire work, as a whole, under this
-+ License to anyone who comes into possession of a copy. This
-+ License will therefore apply, along with any applicable section 7
-+ additional terms, to the whole of the work, and all its parts,
-+ regardless of how they are packaged. This License gives no
-+ permission to license the work in any other way, but it does not
-+ invalidate such permission if you have separately received it.
-+
-+ d) If the work has interactive user interfaces, each must display
-+ Appropriate Legal Notices; however, if the Program has interactive
-+ interfaces that do not display Appropriate Legal Notices, your
-+ work need not make them do so.
-+
-+ A compilation of a covered work with other separate and independent
-+works, which are not by their nature extensions of the covered work,
-+and which are not combined with it such as to form a larger program,
-+in or on a volume of a storage or distribution medium, is called an
-+"aggregate" if the compilation and its resulting copyright are not
-+used to limit the access or legal rights of the compilation's users
-+beyond what the individual works permit. Inclusion of a covered work
-+in an aggregate does not cause this License to apply to the other
-+parts of the aggregate.
-+
-+ 6. Conveying Non-Source Forms.
-+
-+ You may convey a covered work in object code form under the terms
-+of sections 4 and 5, provided that you also convey the
-+machine-readable Corresponding Source under the terms of this License,
-+in one of these ways:
-+
-+ a) Convey the object code in, or embodied in, a physical product
-+ (including a physical distribution medium), accompanied by the
-+ Corresponding Source fixed on a durable physical medium
-+ customarily used for software interchange.
-+
-+ b) Convey the object code in, or embodied in, a physical product
-+ (including a physical distribution medium), accompanied by a
-+ written offer, valid for at least three years and valid for as
-+ long as you offer spare parts or customer support for that product
-+ model, to give anyone who possesses the object code either (1) a
-+ copy of the Corresponding Source for all the software in the
-+ product that is covered by this License, on a durable physical
-+ medium customarily used for software interchange, for a price no
-+ more than your reasonable cost of physically performing this
-+ conveying of source, or (2) access to copy the
-+ Corresponding Source from a network server at no charge.
-+
-+ c) Convey individual copies of the object code with a copy of the
-+ written offer to provide the Corresponding Source. This
-+ alternative is allowed only occasionally and noncommercially, and
-+ only if you received the object code with such an offer, in accord
-+ with subsection 6b.
-+
-+ d) Convey the object code by offering access from a designated
-+ place (gratis or for a charge), and offer equivalent access to the
-+ Corresponding Source in the same way through the same place at no
-+ further charge. You need not require recipients to copy the
-+ Corresponding Source along with the object code. If the place to
-+ copy the object code is a network server, the Corresponding Source
-+ may be on a different server (operated by you or a third party)
-+ that supports equivalent copying facilities, provided you maintain
-+ clear directions next to the object code saying where to find the
-+ Corresponding Source. Regardless of what server hosts the
-+ Corresponding Source, you remain obligated to ensure that it is
-+ available for as long as needed to satisfy these requirements.
-+
-+ e) Convey the object code using peer-to-peer transmission, provided
-+ you inform other peers where the object code and Corresponding
-+ Source of the work are being offered to the general public at no
-+ charge under subsection 6d.
-+
-+ A separable portion of the object code, whose source code is excluded
-+from the Corresponding Source as a System Library, need not be
-+included in conveying the object code work.
-+
-+ A "User Product" is either (1) a "consumer product", which means any
-+tangible personal property which is normally used for personal, family,
-+or household purposes, or (2) anything designed or sold for incorporation
-+into a dwelling. In determining whether a product is a consumer product,
-+doubtful cases shall be resolved in favor of coverage. For a particular
-+product received by a particular user, "normally used" refers to a
-+typical or common use of that class of product, regardless of the status
-+of the particular user or of the way in which the particular user
-+actually uses, or expects or is expected to use, the product. A product
-+is a consumer product regardless of whether the product has substantial
-+commercial, industrial or non-consumer uses, unless such uses represent
-+the only significant mode of use of the product.
-+
-+ "Installation Information" for a User Product means any methods,
-+procedures, authorization keys, or other information required to install
-+and execute modified versions of a covered work in that User Product from
-+a modified version of its Corresponding Source. The information must
-+suffice to ensure that the continued functioning of the modified object
-+code is in no case prevented or interfered with solely because
-+modification has been made.
-+
-+ If you convey an object code work under this section in, or with, or
-+specifically for use in, a User Product, and the conveying occurs as
-+part of a transaction in which the right of possession and use of the
-+User Product is transferred to the recipient in perpetuity or for a
-+fixed term (regardless of how the transaction is characterized), the
-+Corresponding Source conveyed under this section must be accompanied
-+by the Installation Information. But this requirement does not apply
-+if neither you nor any third party retains the ability to install
-+modified object code on the User Product (for example, the work has
-+been installed in ROM).
-+
-+ The requirement to provide Installation Information does not include a
-+requirement to continue to provide support service, warranty, or updates
-+for a work that has been modified or installed by the recipient, or for
-+the User Product in which it has been modified or installed. Access to a
-+network may be denied when the modification itself materially and
-+adversely affects the operation of the network or violates the rules and
-+protocols for communication across the network.
-+
-+ Corresponding Source conveyed, and Installation Information provided,
-+in accord with this section must be in a format that is publicly
-+documented (and with an implementation available to the public in
-+source code form), and must require no special password or key for
-+unpacking, reading or copying.
-+
-+ 7. Additional Terms.
-+
-+ "Additional permissions" are terms that supplement the terms of this
-+License by making exceptions from one or more of its conditions.
-+Additional permissions that are applicable to the entire Program shall
-+be treated as though they were included in this License, to the extent
-+that they are valid under applicable law. If additional permissions
-+apply only to part of the Program, that part may be used separately
-+under those permissions, but the entire Program remains governed by
-+this License without regard to the additional permissions.
-+
-+ When you convey a copy of a covered work, you may at your option
-+remove any additional permissions from that copy, or from any part of
-+it. (Additional permissions may be written to require their own
-+removal in certain cases when you modify the work.) You may place
-+additional permissions on material, added by you to a covered work,
-+for which you have or can give appropriate copyright permission.
-+
-+ Notwithstanding any other provision of this License, for material you
-+add to a covered work, you may (if authorized by the copyright holders of
-+that material) supplement the terms of this License with terms:
-+
-+ a) Disclaiming warranty or limiting liability differently from the
-+ terms of sections 15 and 16 of this License; or
-+
-+ b) Requiring preservation of specified reasonable legal notices or
-+ author attributions in that material or in the Appropriate Legal
-+ Notices displayed by works containing it; or
-+
-+ c) Prohibiting misrepresentation of the origin of that material, or
-+ requiring that modified versions of such material be marked in
-+ reasonable ways as different from the original version; or
-+
-+ d) Limiting the use for publicity purposes of names of licensors or
-+ authors of the material; or
-+
-+ e) Declining to grant rights under trademark law for use of some
-+ trade names, trademarks, or service marks; or
-+
-+ f) Requiring indemnification of licensors and authors of that
-+ material by anyone who conveys the material (or modified versions of
-+ it) with contractual assumptions of liability to the recipient, for
-+ any liability that these contractual assumptions directly impose on
-+ those licensors and authors.
-+
-+ All other non-permissive additional terms are considered "further
-+restrictions" within the meaning of section 10. If the Program as you
-+received it, or any part of it, contains a notice stating that it is
-+governed by this License along with a term that is a further
-+restriction, you may remove that term. If a license document contains
-+a further restriction but permits relicensing or conveying under this
-+License, you may add to a covered work material governed by the terms
-+of that license document, provided that the further restriction does
-+not survive such relicensing or conveying.
-+
-+ If you add terms to a covered work in accord with this section, you
-+must place, in the relevant source files, a statement of the
-+additional terms that apply to those files, or a notice indicating
-+where to find the applicable terms.
-+
-+ Additional terms, permissive or non-permissive, may be stated in the
-+form of a separately written license, or stated as exceptions;
-+the above requirements apply either way.
-+
-+ 8. Termination.
-+
-+ You may not propagate or modify a covered work except as expressly
-+provided under this License. Any attempt otherwise to propagate or
-+modify it is void, and will automatically terminate your rights under
-+this License (including any patent licenses granted under the third
-+paragraph of section 11).
-+
-+ However, if you cease all violation of this License, then your
-+license from a particular copyright holder is reinstated (a)
-+provisionally, unless and until the copyright holder explicitly and
-+finally terminates your license, and (b) permanently, if the copyright
-+holder fails to notify you of the violation by some reasonable means
-+prior to 60 days after the cessation.
-+
-+ Moreover, your license from a particular copyright holder is
-+reinstated permanently if the copyright holder notifies you of the
-+violation by some reasonable means, this is the first time you have
-+received notice of violation of this License (for any work) from that
-+copyright holder, and you cure the violation prior to 30 days after
-+your receipt of the notice.
-+
-+ Termination of your rights under this section does not terminate the
-+licenses of parties who have received copies or rights from you under
-+this License. If your rights have been terminated and not permanently
-+reinstated, you do not qualify to receive new licenses for the same
-+material under section 10.
-+
-+ 9. Acceptance Not Required for Having Copies.
-+
-+ You are not required to accept this License in order to receive or
-+run a copy of the Program. Ancillary propagation of a covered work
-+occurring solely as a consequence of using peer-to-peer transmission
-+to receive a copy likewise does not require acceptance. However,
-+nothing other than this License grants you permission to propagate or
-+modify any covered work. These actions infringe copyright if you do
-+not accept this License. Therefore, by modifying or propagating a
-+covered work, you indicate your acceptance of this License to do so.
-+
-+ 10. Automatic Licensing of Downstream Recipients.
-+
-+ Each time you convey a covered work, the recipient automatically
-+receives a license from the original licensors, to run, modify and
-+propagate that work, subject to this License. You are not responsible
-+for enforcing compliance by third parties with this License.
-+
-+ An "entity transaction" is a transaction transferring control of an
-+organization, or substantially all assets of one, or subdividing an
-+organization, or merging organizations. If propagation of a covered
-+work results from an entity transaction, each party to that
-+transaction who receives a copy of the work also receives whatever
-+licenses to the work the party's predecessor in interest had or could
-+give under the previous paragraph, plus a right to possession of the
-+Corresponding Source of the work from the predecessor in interest, if
-+the predecessor has it or can get it with reasonable efforts.
-+
-+ You may not impose any further restrictions on the exercise of the
-+rights granted or affirmed under this License. For example, you may
-+not impose a license fee, royalty, or other charge for exercise of
-+rights granted under this License, and you may not initiate litigation
-+(including a cross-claim or counterclaim in a lawsuit) alleging that
-+any patent claim is infringed by making, using, selling, offering for
-+sale, or importing the Program or any portion of it.
-+
-+ 11. Patents.
-+
-+ A "contributor" is a copyright holder who authorizes use under this
-+License of the Program or a work on which the Program is based. The
-+work thus licensed is called the contributor's "contributor version".
-+
-+ A contributor's "essential patent claims" are all patent claims
-+owned or controlled by the contributor, whether already acquired or
-+hereafter acquired, that would be infringed by some manner, permitted
-+by this License, of making, using, or selling its contributor version,
-+but do not include claims that would be infringed only as a
-+consequence of further modification of the contributor version. For
-+purposes of this definition, "control" includes the right to grant
-+patent sublicenses in a manner consistent with the requirements of
-+this License.
-+
-+ Each contributor grants you a non-exclusive, worldwide, royalty-free
-+patent license under the contributor's essential patent claims, to
-+make, use, sell, offer for sale, import and otherwise run, modify and
-+propagate the contents of its contributor version.
-+
-+ In the following three paragraphs, a "patent license" is any express
-+agreement or commitment, however denominated, not to enforce a patent
-+(such as an express permission to practice a patent or covenant not to
-+sue for patent infringement). To "grant" such a patent license to a
-+party means to make such an agreement or commitment not to enforce a
-+patent against the party.
-+
-+ If you convey a covered work, knowingly relying on a patent license,
-+and the Corresponding Source of the work is not available for anyone
-+to copy, free of charge and under the terms of this License, through a
-+publicly available network server or other readily accessible means,
-+then you must either (1) cause the Corresponding Source to be so
-+available, or (2) arrange to deprive yourself of the benefit of the
-+patent license for this particular work, or (3) arrange, in a manner
-+consistent with the requirements of this License, to extend the patent
-+license to downstream recipients. "Knowingly relying" means you have
-+actual knowledge that, but for the patent license, your conveying the
-+covered work in a country, or your recipient's use of the covered work
-+in a country, would infringe one or more identifiable patents in that
-+country that you have reason to believe are valid.
-+
-+ If, pursuant to or in connection with a single transaction or
-+arrangement, you convey, or propagate by procuring conveyance of, a
-+covered work, and grant a patent license to some of the parties
-+receiving the covered work authorizing them to use, propagate, modify
-+or convey a specific copy of the covered work, then the patent license
-+you grant is automatically extended to all recipients of the covered
-+work and works based on it.
-+
-+ A patent license is "discriminatory" if it does not include within
-+the scope of its coverage, prohibits the exercise of, or is
-+conditioned on the non-exercise of one or more of the rights that are
-+specifically granted under this License. You may not convey a covered
-+work if you are a party to an arrangement with a third party that is
-+in the business of distributing software, under which you make payment
-+to the third party based on the extent of your activity of conveying
-+the work, and under which the third party grants, to any of the
-+parties who would receive the covered work from you, a discriminatory
-+patent license (a) in connection with copies of the covered work
-+conveyed by you (or copies made from those copies), or (b) primarily
-+for and in connection with specific products or compilations that
-+contain the covered work, unless you entered into that arrangement,
-+or that patent license was granted, prior to 28 March 2007.
-+
-+ Nothing in this License shall be construed as excluding or limiting
-+any implied license or other defenses to infringement that may
-+otherwise be available to you under applicable patent law.
-+
-+ 12. No Surrender of Others' Freedom.
-+
-+ If conditions are imposed on you (whether by court order, agreement or
-+otherwise) that contradict the conditions of this License, they do not
-+excuse you from the conditions of this License. If you cannot convey a
-+covered work so as to satisfy simultaneously your obligations under this
-+License and any other pertinent obligations, then as a consequence you may
-+not convey it at all. For example, if you agree to terms that obligate you
-+to collect a royalty for further conveying from those to whom you convey
-+the Program, the only way you could satisfy both those terms and this
-+License would be to refrain entirely from conveying the Program.
-+
-+ 13. Use with the GNU Affero General Public License.
-+
-+ Notwithstanding any other provision of this License, you have
-+permission to link or combine any covered work with a work licensed
-+under version 3 of the GNU Affero General Public License into a single
-+combined work, and to convey the resulting work. The terms of this
-+License will continue to apply to the part which is the covered work,
-+but the special requirements of the GNU Affero General Public License,
-+section 13, concerning interaction through a network will apply to the
-+combination as such.
-+
-+ 14. Revised Versions of this License.
-+
-+ The Free Software Foundation may publish revised and/or new versions of
-+the GNU General Public License from time to time. Such new versions will
-+be similar in spirit to the present version, but may differ in detail to
-+address new problems or concerns.
-+
-+ Each version is given a distinguishing version number. If the
-+Program specifies that a certain numbered version of the GNU General
-+Public License "or any later version" applies to it, you have the
-+option of following the terms and conditions either of that numbered
-+version or of any later version published by the Free Software
-+Foundation. If the Program does not specify a version number of the
-+GNU General Public License, you may choose any version ever published
-+by the Free Software Foundation.
-+
-+ If the Program specifies that a proxy can decide which future
-+versions of the GNU General Public License can be used, that proxy's
-+public statement of acceptance of a version permanently authorizes you
-+to choose that version for the Program.
-+
-+ Later license versions may give you additional or different
-+permissions. However, no additional obligations are imposed on any
-+author or copyright holder as a result of your choosing to follow a
-+later version.
-+
-+ 15. Disclaimer of Warranty.
-+
-+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-+
-+ 16. Limitation of Liability.
-+
-+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-+SUCH DAMAGES.
-+
-+ 17. Interpretation of Sections 15 and 16.
-+
-+ If the disclaimer of warranty and limitation of liability provided
-+above cannot be given local legal effect according to their terms,
-+reviewing courts shall apply local law that most closely approximates
-+an absolute waiver of all civil liability in connection with the
-+Program, unless a warranty or assumption of liability accompanies a
-+copy of the Program in return for a fee.
-+
-+ END OF TERMS AND CONDITIONS
-+
-+ How to Apply These Terms to Your New Programs
-+
-+ If you develop a new program, and you want it to be of the greatest
-+possible use to the public, the best way to achieve this is to make it
-+free software which everyone can redistribute and change under these terms.
-+
-+ To do so, attach the following notices to the program. It is safest
-+to attach them to the start of each source file to most effectively
-+state the exclusion of warranty; and each file should have at least
-+the "copyright" line and a pointer to where the full notice is found.
-+
-+ <one line to give the program's name and a brief idea of what it does.>
-+ Copyright (C) <year> <name of author>
-+
-+ This program is free software: you can redistribute it and/or modify
-+ it under the terms of the GNU General Public License as published by
-+ the Free Software Foundation, either version 3 of the License, or
-+ (at your option) any later version.
-+
-+ This program is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ GNU General Public License for more details.
-+
-+ You should have received a copy of the GNU General Public License
-+ along with this program. If not, see <https://www.gnu.org/licenses/>.
-+
-+Also add information on how to contact you by electronic and paper mail.
-+
-+ If the program does terminal interaction, make it output a short
-+notice like this when it starts in an interactive mode:
-+
-+ <program> Copyright (C) <year> <name of author>
-+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-+ This is free software, and you are welcome to redistribute it
-+ under certain conditions; type `show c' for details.
-+
-+The hypothetical commands `show w' and `show c' should show the appropriate
-+parts of the General Public License. Of course, your program's commands
-+might be different; for a GUI interface, you would use an "about box".
-+
-+ You should also get your employer (if you work as a programmer) or school,
-+if any, to sign a "copyright disclaimer" for the program, if necessary.
-+For more information on this, and how to apply and follow the GNU GPL, see
-+<https://www.gnu.org/licenses/>.
-+
-+ The GNU General Public License does not permit incorporating your program
-+into proprietary programs. If your program is a subroutine library, you
-+may consider it more useful to permit linking proprietary applications with
-+the library. If this is what you want to do, use the GNU Lesser General
-+Public License instead of this License. But first, please read
-+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/ocaml-qtest.spec b/ocaml-qtest.spec
index f13b39e..910a3d6 100644
--- a/ocaml-qtest.spec
+++ b/ocaml-qtest.spec
@@ -1,24 +1,18 @@
-%global debug_package %{nil}
-%ifarch %{ocaml_native_compiler}
- %global target qtest.native
-%else
- %global target qtest.byte
-%endif
-
Name: ocaml-qtest
-Version: 2.8
+Version: 2.9
Release: 1%{?dist}
Summary: Inline (Unit) Tests for OCaml
License: GPLv3+
URL: https://github.com/vincent-hugot/qtest
-Source0: https://github.com/vincent-hugot/qtest/archive/%{version}/%{name}-%{versi...
+Source0: https://github.com/vincent-hugot/qtest/archive/v%{version}/%{name}-%{vers...
BuildRequires: ocaml
-BuildRequires: ocaml-ocamlbuild
+BuildRequires: jbuilder
BuildRequires: ocaml-findlib
-BuildRequires: ocaml-ounit >= 2.0.0
+BuildRequires: ocaml-ounit-devel >= 2.0.0
BuildRequires: ocaml-qcheck >= 0.5
+BuildRequires: opam-installer
BuildRequires: help2man
@@ -29,16 +23,36 @@ qcheck library. The possibilities range from trivial tests -- extremely
simple to use -- to sophisticated random generation of test cases.
+%package devel
+Summary: Development files for %{name}
+Group: Development/Libraries
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+
+%description devel
+The %{name}-devel package contains libraries and signature files for
+developing applications that use %{name}.
+
+
%prep
%setup -q -n qtest-%{version}
%build
-ocamlbuild -use-ocamlfind src/%{target}
+jbuilder build @install
%install
-install -Dp -m 0755 %{target} $RPM_BUILD_ROOT%{_bindir}/qtest
+export DESTDIR=$RPM_BUILD_ROOT
+export OCAMLFIND_DESTDIR=$RPM_BUILD_ROOT%{_libdir}/ocaml
+mkdir -p $OCAMLFIND_DESTDIR
+jbuilder install --destdir="$DESTDIR/usr" --libdir="$OCAMLFIND_DESTDIR" --verbose
+
+# These files will be installed using the doc and license directives
+rm $DESTDIR/usr/doc/qtest/{LICENSE,README.adoc}
+
+# Makes *.cmxs executable such that they will be stripped.
+find %{buildroot} -name '*.cmxs' -exec chmod 0755 {} \;
# generate manpage
mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1/
@@ -49,13 +63,36 @@ help2man $RPM_BUILD_ROOT%{_bindir}/qtest \
--no-info
+%check
+make test
+
+
%files
%doc README.adoc HOWTO.adoc
%license LICENSE
%{_bindir}/qtest
%{_mandir}/man1/qtest.1*
+%{_libdir}/ocaml/qtest
+%ifarch %{ocaml_native_compiler}
+%exclude %{_libdir}/ocaml/qtest/lib/*.a
+%exclude %{_libdir}/ocaml/qtest/lib/*.cmxa
+%exclude %{_libdir}/ocaml/qtest/lib/*.cmx
+%endif
+
+%files devel
+%doc README.adoc HOWTO.adoc
+%license LICENSE
+%ifarch %{ocaml_native_compiler}
+%{_libdir}/ocaml/qtest/lib/*.a
+%{_libdir}/ocaml/qtest/lib/*.cmxa
+%{_libdir}/ocaml/qtest/lib/*.cmx
+%endif
%changelog
+* Fri May 18 2018 Andy Li <andy(a)onthewings.net> - 2.9-1
+- New upstream release (RHBZ#1570332).
+- Enable devel and debug packages.
+
* Fri Apr 06 2018 Andy Li <andy(a)onthewings.net> - 2.8-1
- New upstream release.
- Remove ocaml-qtest-LICENSE.patch which has been applied upstream.
diff --git a/sources b/sources
index a64d058..46d3c37 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (ocaml-qtest-2.8.tar.gz) = 5035aeae3b3c1d9ac6b44f501312d7f0edc0215f840dfe1995737449781eb2cd4aac1efcf428eed87250e355f2ee11d4bbad4aa89ef5759aa48773be5b6bedc0
+SHA512 (ocaml-qtest-2.9.tar.gz) = 112cba235bf65bbd51c22f4ddf7a2bbac0a1809c5197c914e43558c4aed23d416979ea65f0be24e21a6ee42a1a07b387b96d06901f4b759ea5098662bce3fa25
5 years, 10 months
Architecture specific change in rpms/golang-github-pquerna-cachecontrol.git
by githook-noreply@fedoraproject.org
The package rpms/golang-github-pquerna-cachecontrol.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/golang-github-pquerna-cachecontro....
Change:
-%ifarch %{ix86} %{arm}
Thanks.
Full change:
============
commit 3660965686f90fbabb5d81f78b52885b0ee6a0be
Author: Robert-André Mauchin <zebob.m(a)gmail.com>
Date: Thu May 17 21:03:07 2018 +0200
Bump to upstream 0923c70de240c513ff98174aa10a783bdcf0560e
Fixes Github issue #12
diff --git a/.gitignore b/.gitignore
index 034de0f..273cd37 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
/cachecontrol-fd225a25f1983d116db58553068677ba03f51fa9.tar.gz
+/cachecontrol-0923c70de240c513ff98174aa10a783bdcf0560e.tar.gz
diff --git a/golang-github-pquerna-cachecontrol.spec b/golang-github-pquerna-cachecontrol.spec
index a8787c6..f8585dc 100644
--- a/golang-github-pquerna-cachecontrol.spec
+++ b/golang-github-pquerna-cachecontrol.spec
@@ -1,13 +1,8 @@
# Run tests in check section
-# Disable on 32 bits system because of bug https://github.com/pquerna/cachecontrol/issues/12
-%ifarch %{ix86} %{arm}
-%bcond_with check
-%else
%bcond_without check
-%endif
%global goipath github.com/pquerna/cachecontrol
-%global commit fd225a25f1983d116db58553068677ba03f51fa9
+%global commit 0923c70de240c513ff98174aa10a783bdcf0560e
%global common_description %{expand:
cachecontrol implements RFC 7234 Hypertext Transfer Protocol (HTTP/1.1):
@@ -20,7 +15,7 @@ decisions about if a particular response is cachable.}
Name: %{goname}
Version: 0
-Release: 0.1%{?dist}
+Release: 0.2%{?dist}
Summary: Golang HTTP Cache-Control Parser and Interpretation
License: ASL 2.0
URL: %{gourl}
@@ -66,6 +61,10 @@ building other packages which use import path with
%changelog
+* Thu May 17 2018 Robert-André Mauchin <zebob.m(a)gmail.com> - 0.0.2.20180517git0923c70
+- Bump to upstream 0923c70de240c513ff98174aa10a783bdcf0560e
+- Fixes Github issue #12
+
* Thu May 17 2018 Robert-André Mauchin <zebob.m(a)gmail.com> - 0.0.1.20180517gitfd225a
- First package for Fedora
diff --git a/sources b/sources
index cef76da..8cd78e7 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (cachecontrol-fd225a25f1983d116db58553068677ba03f51fa9.tar.gz) = 0fa2b124c784c80bb11d691d59268ce213d317a8aa1b224f744a751510250e2a84bc3492d17cb4aeba47e6d9fdf2643e7dfaaa0832947394d20664274eb27ae9
+SHA512 (cachecontrol-0923c70de240c513ff98174aa10a783bdcf0560e.tar.gz) = f0929d5800e5879bd364be6d9d37396fd9a7710d8b2c12cd029279f446bb61cf938409120a97d2ff656e3faabc7539e380c8b302df70de6d0946cbe805f8f2a4
5 years, 10 months
Architecture specific change in rpms/golang-github-pquerna-cachecontrol.git
by githook-noreply@fedoraproject.org
The package rpms/golang-github-pquerna-cachecontrol.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/golang-github-pquerna-cachecontro....
Change:
-%ifarch %{ix86} %{arm}
Thanks.
Full change:
============
commit 1209860e37af557a69ae7c1c93df0e64177bfef3
Author: Robert-André Mauchin <zebob.m(a)gmail.com>
Date: Thu May 17 21:03:07 2018 +0200
Bump to upstream 0923c70de240c513ff98174aa10a783bdcf0560e
Fixes Github issue #12
diff --git a/.gitignore b/.gitignore
index 034de0f..273cd37 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
/cachecontrol-fd225a25f1983d116db58553068677ba03f51fa9.tar.gz
+/cachecontrol-0923c70de240c513ff98174aa10a783bdcf0560e.tar.gz
diff --git a/golang-github-pquerna-cachecontrol.spec b/golang-github-pquerna-cachecontrol.spec
index a8787c6..f8585dc 100644
--- a/golang-github-pquerna-cachecontrol.spec
+++ b/golang-github-pquerna-cachecontrol.spec
@@ -1,13 +1,8 @@
# Run tests in check section
-# Disable on 32 bits system because of bug https://github.com/pquerna/cachecontrol/issues/12
-%ifarch %{ix86} %{arm}
-%bcond_with check
-%else
%bcond_without check
-%endif
%global goipath github.com/pquerna/cachecontrol
-%global commit fd225a25f1983d116db58553068677ba03f51fa9
+%global commit 0923c70de240c513ff98174aa10a783bdcf0560e
%global common_description %{expand:
cachecontrol implements RFC 7234 Hypertext Transfer Protocol (HTTP/1.1):
@@ -20,7 +15,7 @@ decisions about if a particular response is cachable.}
Name: %{goname}
Version: 0
-Release: 0.1%{?dist}
+Release: 0.2%{?dist}
Summary: Golang HTTP Cache-Control Parser and Interpretation
License: ASL 2.0
URL: %{gourl}
@@ -66,6 +61,10 @@ building other packages which use import path with
%changelog
+* Thu May 17 2018 Robert-André Mauchin <zebob.m(a)gmail.com> - 0.0.2.20180517git0923c70
+- Bump to upstream 0923c70de240c513ff98174aa10a783bdcf0560e
+- Fixes Github issue #12
+
* Thu May 17 2018 Robert-André Mauchin <zebob.m(a)gmail.com> - 0.0.1.20180517gitfd225a
- First package for Fedora
diff --git a/sources b/sources
index cef76da..8cd78e7 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (cachecontrol-fd225a25f1983d116db58553068677ba03f51fa9.tar.gz) = 0fa2b124c784c80bb11d691d59268ce213d317a8aa1b224f744a751510250e2a84bc3492d17cb4aeba47e6d9fdf2643e7dfaaa0832947394d20664274eb27ae9
+SHA512 (cachecontrol-0923c70de240c513ff98174aa10a783bdcf0560e.tar.gz) = f0929d5800e5879bd364be6d9d37396fd9a7710d8b2c12cd029279f446bb61cf938409120a97d2ff656e3faabc7539e380c8b302df70de6d0946cbe805f8f2a4
5 years, 10 months
Architecture specific change in rpms/sssd.git
by githook-noreply@fedoraproject.org
The package rpms/sssd.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/sssd.git/commit/?id=1c3b8ca6587c0....
Change:
-ExcludeArch: armv7hl
Thanks.
Full change:
============
commit 1c3b8ca6587c067be59bf09b40367334f49c6e63
Author: Fabiano Fidêncio <fidencio(a)redhat.com>
Date: Thu May 17 17:21:23 2018 +0200
Revert "Add: "ExcludeArch: armv7hl""
This reverts commit bc3790f5a0da28c52d1d22a6da574b7b133ac14d.
(cherry picked from commit 4979898a6e3472d1452f62bce2142b5d1a1f56b0)
(cherry picked from commit e428c4af458f94316833161cf64a76e692361f26)
(cherry picked from commit fb3a33a26b02dc22ca38693ed621531b03c963e8)
diff --git a/sssd.spec b/sssd.spec
index 4c97fef..6ef3154 100644
--- a/sssd.spec
+++ b/sssd.spec
@@ -32,7 +32,7 @@
Name: sssd
Version: 1.16.1
-Release: 7%{?dist}
+Release: 8%{?dist}
Group: Applications/System
Summary: System Security Services Daemon
License: GPLv3+
@@ -218,7 +218,6 @@ Requires: libsss_idmap = %{version}-%{release}
Requires(post): systemd-units chkconfig
Requires(preun): systemd-units chkconfig
Requires(postun): systemd-units chkconfig
-ExcludeArch: armv7hl
### Provides ###
Provides: libsss_sudo-devel = %{version}-%{release}
@@ -237,7 +236,6 @@ Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
Requires(post): /usr/sbin/alternatives
Requires(preun): /usr/sbin/alternatives
-ExcludeArch: armv7hl
%description client
Provides the libraries needed by the PAM and NSS stacks to connect to the SSSD
@@ -250,7 +248,6 @@ License: LGPLv3+
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
Conflicts: sssd-common < %{version}-%{release}
-ExcludeArch: armv7hl
%description -n libsss_sudo
A utility library to allow communication between SUDO and SSSD
@@ -260,8 +257,6 @@ Summary: A library to allow communication between Autofs and SSSD
Group: Development/Libraries
License: LGPLv3+
Conflicts: sssd-common < %{version}-%{release}
-ExcludeArch: armv7hl
-
%description -n libsss_autofs
A utility library to allow communication between Autofs and SSSD
@@ -274,7 +269,6 @@ Requires: sssd-common = %{version}-%{release}
# required by sss_obfuscate
Requires: python3-sss = %{version}-%{release}
Requires: python3-sssdconfig = %{version}-%{release}
-ExcludeArch: armv7hl
%description tools
Provides userspace tools for manipulating users, groups, and nested groups in
@@ -1307,6 +1301,9 @@ fi
%{_libdir}/%{name}/modules/libwbclient.so
%changelog
+* Thu May 17 2018 Fabiano Fidêncio <fidencio(a)fedoraproject.org> - 1.16.1-8
+- Revert 589d1a48 as the builders are back to f27
+
* Wed May 16 2018 Fabiano Fidêncio <fidencio(a)fedoraproject.org> - 1.16.1-7
- Related: upstream#3436 - Certificates used in unit tests have limited
lifetime
5 years, 10 months