Architecture specific change in rpms/guitarix.git
by githook-noreply@fedoraproject.org
The package rpms/guitarix.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/guitarix.git/commit/?id=bd98c8976....
Change:
+%ifarch x86_64
Thanks.
Full change:
============
commit bd98c89760f35ed46d7ed5e69d5db6cdd0082bac
Author: Guido Aulisi <guido.aulisi(a)gmail.com>
Date: Fri Jun 12 18:10:54 2020 +0200
Update to 0.40.0
Add appdata
Some spec cleanup
diff --git a/.gitignore b/.gitignore
index 4451857..f9cd985 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,3 +30,4 @@ guitarix-0.11.0.tar.bz2
/guitarix2-0.37.3.tar.xz
/guitarix2-0.38.1.tar.xz
/guitarix2-0.39.0.tar.xz
+/guitarix2-0.40.0.tar.xz
diff --git a/guitarix-format-string.patch b/guitarix-format-string.patch
new file mode 100644
index 0000000..fc4c73d
--- /dev/null
+++ b/guitarix-format-string.patch
@@ -0,0 +1,12 @@
+diff --git a/trunk/src/LV2/xputty/xfilepicker.cpp b/trunk/src/LV2/xputty/xfilepicker.cpp
+index 5c4b4db7..605dde02 100644
+--- a/src/LV2/xputty/xfilepicker.cpp
++++ b/src/LV2/xputty/xfilepicker.cpp
+@@ -191,6 +191,6 @@ void fp_init(FilePicker *filepicker, const char *path) {
+ filepicker->selected_file = NULL;
+ filepicker->path = NULL;
+ filepicker->filter = NULL;
+- asprintf(&filepicker->path, path);
++ asprintf(&filepicker->path, "%s", path);
+ assert(filepicker->path != NULL);
+ }
diff --git a/guitarix.appdata.xml b/guitarix.appdata.xml
new file mode 100644
index 0000000..46d4df1
--- /dev/null
+++ b/guitarix.appdata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="desktop">
+ <id>guitarix.desktop</id>
+ <name>guitarix</name>
+ <summary>A virtual guitar amplifier</summary>
+ <developer_name>Hermann Meyer, Andreas Degert, Pete Shorthose, Markus Schmidt</developer_name>
+ <description>
+ <p>Guitarix takes the signal from your guitar as any real amp would do: as a mono-signal from your sound card.</p>
+ <p>The input is processed by a main amp and a rack-section. Both can be routed separately and deliver a processed stereo-signal via Jack.</p>
+ <p>You may fill the rack with effects from more than 25 built-in modules, including stuff from a simple noise gate to brain-slashing modulation f/x like flanger, phaser or auto-wah.</p>
+ </description>
+ <metadata_license>CC0-1.0</metadata_license>
+ <project_license>GPL-2.0+</project_license>
+ <url type="bugtracker">https://sourceforge.net/p/guitarix/bugs/</url>
+ <url type="help">https://www.reddit.com/r/Guitarix/</url>
+ <url type="homepage">https://guitarix.org/</url>
+ <screenshots>
+ <screenshot type="default">
+ <caption/>
+ <image height="767" width="524">https://guitarix.org/images/screenshots/Guitarix_0.35.0.jpg</image>
+ </screenshot>
+ </screenshots>
+</component>
diff --git a/guitarix.spec b/guitarix.spec
index b725375..8ee379a 100644
--- a/guitarix.spec
+++ b/guitarix.spec
@@ -3,16 +3,16 @@
%global altname gx_head
%global altname2 guitarix2
-# Workaround for rhbz#1721348
-%define __brp_strip_static_archive %{nil}
-
Name: guitarix
-Version: 0.39.0
-Release: 2%{?dist}
-Summary: Mono amplifier to JACK
+Version: 0.40.0
+Release: 1%{?dist}
+Summary: A virtual guitar amplifier
License: GPLv2+
URL: http://guitarix.sourceforge.net/
Source0: http://sourceforge.net/projects/%{name}/files/%{name}/%{altname2}-%{versi...
+Source1: %{name}.appdata.xml
+# Fix backported from upstream commit 2609ca14
+Patch0: %{name}-format-string.patch
BuildRequires: gcc-c++
BuildRequires: python3
@@ -20,9 +20,9 @@ BuildRequires: %{_bindir}/find
BuildRequires: %{_bindir}/pathfix.py
BuildRequires: desktop-file-utils
BuildRequires: faust
-BuildRequires: fftw-devel
-BuildRequires: gtk2-devel
-BuildRequires: gtkmm24-devel
+BuildRequires: fftw-devel >= 3.3.8
+BuildRequires: gtk3-devel >= 3.22
+BuildRequires: gtkmm30-devel >= 3.22
BuildRequires: jack-audio-connection-kit-devel
BuildRequires: ladspa-devel
BuildRequires: libsigc++20-devel
@@ -38,32 +38,23 @@ BuildRequires: lilv-devel
BuildRequires: gperf
BuildRequires: avahi-gobject-devel
BuildRequires: eigen3-devel
-BuildRequires: libcurl-devel
+BuildRequires: libcurl-devel >= 7.26.0
+BuildRequires: google-roboto-condensed-fonts
+BuildRequires: %{_bindir}/sassc
+BuildRequires: glade-devel
+BuildRequires: libappstream-glib
+
Requires: clearlooks-compact-gnome-theme
-Requires: jack_capture
-Requires: jconv
-Requires: ladspa-%{name}-plugins = %{version}-%{release}
-Requires: qjackctl
-Requires: vorbis-tools
Requires: google-roboto-condensed-fonts
%description
-Guitarix is a simple mono amplifier to be used in a 'JACKified' environment,
-i.e. a system using the JACK Audio Connection Kit, a professionally-capable
-audio/MIDI server and master transport control.
-
-Guitarix provides one JACK input port and two JACK output ports. It is designed
-to produce nice trash/metal/rock/blues guitar sounds. Controls for bass, treble,
-gain, compressor, preamp, balance, distortion, freeverb, crybaby (wah) and echo
-are available. A fixed resonator is used when distortion is disabled. To modify
-the sound 'pressure', you can use the feedback and feedforward sliders.
-
-Guitarix includes an experimental tuner and a JACK MIDI output port with 3
-channels. They are fed by a mix from a pitch tracker and a beat detector. You
-can pitch the octave (2 octaves up or down), choose the MIDI channel, the MIDI
-program, the velocity and the sensitivity, which translates into how fast the
-note will read after the beat detector emits a signal. Values for the beat
-detector can be set for all channels.
+Guitarix takes the signal from your guitar as any real amp would do:
+as a mono-signal from your sound card.
+The input is processed by a main amp and a rack-section.
+Both can be routed separately and deliver a processed stereo-signal via Jack.
+You may fill the rack with effects from more than 25 built-in modules,
+including stuff from a simple noise gate to brain-slashing modulation f/x
+like flanger, phaser or auto-wah.
%package -n libgxw
Summary: Guitarix GTK library
@@ -132,7 +123,7 @@ This package contains the guitarix amp plug-ins that come together with
guitarix, but can also be used by any other ladspa host.
%prep
-%setup -q -n %{name}-%{version}
+%autosetup -p1 -n %{name}-%{version}
# Fix unversioned python shebangs
pathfix.py -pni %{_bindir}/python3 \
@@ -149,17 +140,21 @@ sed -i -e 's|-O3||' wscript
%build
%set_build_flags
-./waf -vv configure --prefix=%{_prefix} --libdir=%{_libdir} \
- --cxxflags="-std=c++0x -fomit-frame-pointer -ftree-loop-linear \
- -ffinite-math-only -fno-math-errno -fno-signed-zeros -fstrength-reduce \
-%ifarch %ix86 x86_64
- -msse \
+CXXFLAGS+=" -fomit-frame-pointer -ftree-loop-linear -ffinite-math-only -fno-math-errno -fno-signed-zeros -fstrength-reduce"
+%ifarch %{ix86}
+CFLAGS+=" -msse -mfpmath=sse"
+CXXFLAGS+=" -msse -mfpmath=sse"
+%endif
+
+%ifarch x86_64
+CFLAGS+=" -msse2 -mfpmath=sse"
+CXXFLAGS+=" -msse2 -mfpmath=sse"
%endif
- %{optflags}" \
- --shared-lib --lib-dev \
+
+./waf -vv configure --prefix=%{_prefix} --libdir=%{_libdir} \
+ --shared-lib --lib-dev --no-ldconfig --glade-support \
--ladspa --ladspadir=%{_libdir}/ladspa --lv2dir=%{_libdir}/lv2 \
- --glade-support --glade-catalog-dir=%{_datadir}/glade/catalogs \
- --glade-modules-dir=%{_libdir}/glade/modules
+ --cxxflags-release="-DNDEBUG"
./waf -vv build %{?_smp_mflags}
%install
@@ -172,10 +167,17 @@ desktop-file-install \
chmod 755 %{buildroot}%{_libdir}/libgxw*.so.0.1
rm -rf %{buildroot}%{_libdir}/libgxw*.so
-ln -s %{_libdir}/libgxwmm.so.0.1 %{buildroot}%{_libdir}/libgxwmm.so
-ln -s %{_libdir}/libgxw.so.0.1 %{buildroot}%{_libdir}/libgxw.so
+ln -s libgxwmm.so.0.1 %{buildroot}%{_libdir}/libgxwmm.so
+ln -s libgxw.so.0.1 %{buildroot}%{_libdir}/libgxw.so
chmod 755 %{buildroot}%{_libdir}/glade/modules/libgladegx.so
+# install appdata file
+install -d -m755 %{buildroot}%{_metainfodir}
+install -p -m644 %{SOURCE1} %{buildroot}%{_metainfodir}
+
+# validate appdata
+appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/%{name}.appdata.xml
+
%find_lang %{name}
@@ -186,6 +188,7 @@ chmod 755 %{buildroot}%{_libdir}/glade/modules/libgladegx.so
%{_datadir}/%{altname}/
%{_datadir}/pixmaps/*
%{_datadir}/applications/%{name}.desktop
+%{_metainfodir}/%{name}.appdata.xml
%files -n libgxw
%{_libdir}/libgxw.so.0*
@@ -218,6 +221,11 @@ chmod 755 %{buildroot}%{_libdir}/glade/modules/libgladegx.so
%{_libdir}/lv2/*
%changelog
+* Thu Jun 11 2020 Guido Aulisi <guido.aulisi(a)gmail.com> - 0.40.0-1
+- Update to 0.40.0
+- Add appdata
+- Some spec cleanup
+
* Thu May 28 2020 Jonathan Wakely <jwakely(a)redhat.com> - 0.39.0-2
- Rebuilt for Boost 1.73
diff --git a/sources b/sources
index d63d670..84dfa30 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (guitarix2-0.39.0.tar.xz) = 5eb799498385ab9aa865e3f5a7e79d77f7f62c9bd7ad6875ec32bdec85829ed5b84bed3b0eab786ce74088fe2e1d53080f70afcb25ab1ef8d8f78a676b4947df
+SHA512 (guitarix2-0.40.0.tar.xz) = 902e4d924cae68a477518cb87d7b63edb8716db93e11add921e733c315f2646652fb1b434d182e836e1e866035cabe22a41d8dc66df0b6156b5242cdd31d51e8
3 years, 10 months
Architecture specific change in rpms/newsflash.git
by githook-noreply@fedoraproject.org
The package rpms/newsflash.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/newsflash.git/commit/?id=72a69369....
Change:
-ExcludeArch: %{ix86} %{arm}
Thanks.
Full change:
============
commit 72a69369d6013a41e5cab31a4fef7d7ed6bc296a
Author: Igor Raits <ignatenkobrain(a)fedoraproject.org>
Date: Fri Jun 12 11:34:15 2020 +0200
Fix for 32bit platforms + update of fix for missing icon
Signed-off-by: Igor Raits <ignatenkobrain(a)fedoraproject.org>
diff --git a/0001-dont-call-show_all-in-app-constructor.patch b/0001-dont-call-show_all-in-app-constructor.patch
new file mode 100644
index 0000000..49cddf1
--- /dev/null
+++ b/0001-dont-call-show_all-in-app-constructor.patch
@@ -0,0 +1,2801 @@
+From 2a9405ea8148329fa8973b7d7098a8b6ba6495a8 Mon Sep 17 00:00:00 2001
+From: Jan Lukas Gernert <jangernert(a)gmail.com>
+Date: Fri, 12 Jun 2020 10:07:54 +0200
+Subject: [PATCH] dont call show_all in app constructor
+
+---
+ data/resources/ui/main_window.ui | 2336 +++++++++++++++---------------
+ src/app.rs | 1 -
+ 2 files changed, 1169 insertions(+), 1168 deletions(-)
+
+diff --git a/data/resources/ui/main_window.ui b/data/resources/ui/main_window.ui
+index 700a91e..a2d7aef 100644
+--- a/data/resources/ui/main_window.ui
++++ b/data/resources/ui/main_window.ui
+@@ -1,5 +1,5 @@
+ <?xml version="1.0" encoding="UTF-8"?>
+-<!-- Generated with glade 3.22.2 -->
++<!-- Generated with glade 3.36.0 -->
+ <interface>
+ <requires lib="gtk+" version="3.20"/>
+ <requires lib="libhandy" version="0.0"/>
+@@ -9,749 +9,830 @@
+ <property name="window_position">center</property>
+ <property name="default_width">1200</property>
+ <property name="default_height">600</property>
+- <child type="titlebar">
+- <object class="HdyTitleBar">
++ <child>
++ <object class="GtkStack" id="main_stack">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
++ <property name="transition_type">slide-left</property>
+ <child>
+- <object class="GtkStack" id="header_stack">
++ <object class="GtkBox" id="welcome_page">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="transition_duration">50</property>
+- <property name="transition_type">crossfade</property>
++ <property name="halign">center</property>
++ <property name="margin_start">20</property>
++ <property name="margin_end">20</property>
++ <property name="margin_top">50</property>
++ <property name="margin_bottom">50</property>
++ <property name="orientation">vertical</property>
+ <child>
+- <object class="HdyLeaflet" id="header_leaflet">
++ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="visible_child">left_headerbar</property>
+- <property name="transition_type">over</property>
++ <property name="label" translatable="yes">Where are your feeds?</property>
++ <property name="justify">center</property>
++ <style>
++ <class name="h1"/>
++ </style>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkLabel">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="yes">Please select the RSS service you are using and log in to get going.</property>
++ <property name="justify">center</property>
++ <property name="wrap">True</property>
++ <property name="ellipsize">end</property>
++ <property name="lines">3</property>
++ <style>
++ <class name="h2"/>
++ </style>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="padding">2</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkScrolledWindow">
++ <property name="width_request">350</property>
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="halign">center</property>
++ <property name="shadow_type">in</property>
+ <child>
+- <object class="GtkHeaderBar" id="left_headerbar">
++ <object class="GtkViewport">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="has_subtitle">False</property>
+- <property name="spacing">5</property>
+- <property name="show_close_button">True</property>
+ <child>
+- <object class="GtkButton" id="left_back_button">
++ <object class="GtkListBox" id="list">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="selection_mode">none</property>
++ <style>
++ <class name="list-separated"/>
++ </style>
++ </object>
++ </child>
++ </object>
++ </child>
++ <style>
++ <class name="frame"/>
++ </style>
++ </object>
++ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ <property name="padding">20</property>
++ <property name="position">2</property>
++ </packing>
++ </child>
++ </object>
++ <packing>
++ <property name="name">welcome</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkBox" id="password_login">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="orientation">vertical</property>
++ <child>
++ <object class="GtkInfoBar" id="pw_info_bar">
++ <property name="can_focus">False</property>
++ <property name="no_show_all">True</property>
++ <property name="homogeneous">True</property>
++ <property name="message_type">error</property>
++ <property name="show_close_button">True</property>
++ <child internal-child="action_area">
++ <object class="GtkButtonBox">
++ <property name="can_focus">False</property>
++ <property name="spacing">6</property>
++ <property name="layout_style">end</property>
++ <child>
++ <object class="GtkButton" id="ignore_button">
++ <property name="label" translatable="yes">Ignore</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+- <property name="no_show_all">True</property>
+- <child>
+- <object class="GtkImage">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="icon_name">go-previous-symbolic</property>
+- </object>
+- </child>
+ </object>
++ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
++ </packing>
+ </child>
+ <child>
+- <object class="GtkMenuButton" id="mode_switch_button">
++ <object class="GtkButton" id="pw_details_button">
++ <property name="label" translatable="yes">Details</property>
++ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+- <property name="no_show_all">True</property>
+- <child>
+- <object class="GtkBox">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="spacing">5</property>
+- <child>
+- <object class="GtkStack" id="mode_switch_stack">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="transition_duration">50</property>
+- <property name="transition_type">crossfade</property>
+- <child>
+- <object class="GtkLabel">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="label" translatable="yes">All</property>
+- <property name="xalign">0</property>
+- </object>
+- <packing>
+- <property name="name">all</property>
+- <property name="title" translatable="yes">all</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkLabel">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="label" translatable="yes">Unread</property>
+- <property name="xalign">0</property>
+- </object>
+- <packing>
+- <property name="name">unread</property>
+- <property name="title" translatable="yes">unread</property>
+- <property name="position">1</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkLabel">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="label" translatable="yes">Starred</property>
+- <property name="xalign">0</property>
+- </object>
+- <packing>
+- <property name="name">marked</property>
+- <property name="title" translatable="yes">marked</property>
+- <property name="position">2</property>
+- </packing>
+- </child>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkImage">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="icon_name">go-down-symbolic</property>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="position">1</property>
+- </packing>
+- </child>
+- </object>
+- </child>
+ </object>
+ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child internal-child="content_area">
++ <object class="GtkBox">
++ <property name="can_focus">False</property>
++ <property name="spacing">16</property>
+ <child>
+- <object class="GtkBox" id="mode_switch_box">
++ <object class="GtkLabel" id="pw_info_bar_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="homogeneous">True</property>
+- <child>
+- <object class="GtkToggleButton" id="all_button">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="focus_on_click">False</property>
+- <property name="receives_default">True</property>
+- <property name="active">True</property>
+- <child>
+- <object class="GtkLabel">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="label" translatable="yes">All</property>
+- </object>
+- </child>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkToggleButton" id="unread_button">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="focus_on_click">False</property>
+- <property name="receives_default">True</property>
+- <child>
+- <object class="GtkLabel">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="label" translatable="yes">Unread</property>
+- </object>
+- </child>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="position">1</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkToggleButton" id="marked_button">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="focus_on_click">False</property>
+- <property name="receives_default">True</property>
+- <child>
+- <object class="GtkLabel">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="label" translatable="yes">Starred</property>
+- </object>
+- </child>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="position">2</property>
+- </packing>
+- </child>
+- <style>
+- <class name="linked"/>
+- </style>
++ <property name="margin_start">20</property>
++ <property name="margin_end">20</property>
++ <property name="hexpand">True</property>
++ <property name="label" translatable="yes">label</property>
++ <property name="xalign">0</property>
+ </object>
+ <packing>
+- <property name="position">2</property>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
+ </packing>
+ </child>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkBox">
++ <property name="width_request">350</property>
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="halign">center</property>
++ <property name="valign">center</property>
++ <property name="hexpand">True</property>
++ <property name="vexpand">True</property>
++ <property name="orientation">vertical</property>
++ <child>
++ <object class="GtkLabel" id="headline">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="yes">Headline</property>
++ <property name="ellipsize">end</property>
++ <style>
++ <class name="h2"/>
++ </style>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkImage" id="logo">
++ <property name="width_request">64</property>
++ <property name="height_request">64</property>
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="margin_top">30</property>
++ <property name="margin_bottom">30</property>
++ <property name="stock">gtk-missing-image</property>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkGrid">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <child>
+- <object class="GtkButton" id="update_button">
++ <object class="GtkLabel" id="url_label">
+ <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="receives_default">True</property>
+- <property name="tooltip_text" translatable="yes">Refresh Content</property>
+- <child>
+- <object class="GtkStack" id="update_stack">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="transition_type">crossfade</property>
+- <child>
+- <object class="GtkImage">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="icon_name">view-refresh-symbolic</property>
+- </object>
+- <packing>
+- <property name="name">icon</property>
+- <property name="title" translatable="yes">icon</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkSpinner">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="active">True</property>
+- </object>
+- <packing>
+- <property name="name">spinner</property>
+- <property name="title" translatable="yes">spinner</property>
+- <property name="position">1</property>
+- </packing>
+- </child>
+- </object>
+- </child>
++ <property name="can_focus">False</property>
++ <property name="margin_start">40</property>
++ <property name="label" translatable="yes">Url:</property>
++ <property name="xalign">1</property>
+ </object>
+ <packing>
+- <property name="position">3</property>
++ <property name="left_attach">0</property>
++ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+- <object class="GtkButton" id="offline_status_button">
++ <object class="GtkLabel">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="margin_start">40</property>
++ <property name="label" translatable="yes">Username:</property>
++ <property name="xalign">1</property>
++ </object>
++ <packing>
++ <property name="left_attach">0</property>
++ <property name="top_attach">1</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkLabel">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="margin_start">42</property>
++ <property name="label" translatable="yes">Password:</property>
++ <property name="xalign">1</property>
++ </object>
++ <packing>
++ <property name="left_attach">0</property>
++ <property name="top_attach">2</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkEntry" id="url_entry">
++ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+- <property name="receives_default">True</property>
+- <property name="no_show_all">True</property>
+- <property name="tooltip_text" translatable="yes">Go back to online mode</property>
+- <child>
+- <object class="GtkImage">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="icon_name">network-offline-symbolic</property>
+- </object>
+- </child>
++ <property name="margin_start">15</property>
++ <property name="margin_end">15</property>
++ <property name="margin_top">2</property>
++ <property name="margin_bottom">2</property>
++ <property name="hexpand">True</property>
++ <property name="input_purpose">url</property>
+ </object>
+ <packing>
+- <property name="position">5</property>
++ <property name="left_attach">1</property>
++ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+- <object class="GtkToggleButton" id="search_button">
++ <object class="GtkEntry" id="user_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+- <property name="receives_default">True</property>
+- <property name="tooltip_text" translatable="yes">Search Articles</property>
+- <child>
+- <object class="GtkImage">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="icon_name">system-search-symbolic</property>
+- </object>
+- </child>
++ <property name="margin_start">15</property>
++ <property name="margin_end">15</property>
++ <property name="margin_top">2</property>
++ <property name="margin_bottom">2</property>
++ <property name="hexpand">True</property>
+ </object>
+ <packing>
+- <property name="position">5</property>
++ <property name="left_attach">1</property>
++ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+- <object class="GtkButton" id="mark_all_button">
++ <object class="GtkEntry" id="pass_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+- <property name="receives_default">True</property>
+- <property name="tooltip_text" translatable="yes">Set All/Feed/Category as read</property>
++ <property name="margin_start">15</property>
++ <property name="margin_end">15</property>
++ <property name="margin_top">2</property>
++ <property name="margin_bottom">2</property>
++ <property name="visibility">False</property>
++ <property name="input_purpose">password</property>
++ </object>
++ <packing>
++ <property name="left_attach">1</property>
++ <property name="top_attach">2</property>
++ </packing>
++ </child>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">2</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkRevealer" id="http_auth_revealer">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="transition_type">slide-up</property>
++ <child>
++ <object class="GtkBox">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="orientation">vertical</property>
++ <child>
++ <object class="GtkLabel">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="margin_top">20</property>
++ <property name="margin_bottom">10</property>
++ <property name="label" translatable="yes">HTTP Basic Auth</property>
++ <style>
++ <class name="h3"/>
++ </style>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
+ <child>
+- <object class="GtkStack" id="mark_all_stack">
++ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <object class="GtkImage">
++ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="icon_name">emblem-ok-symbolic</property>
++ <property name="margin_start">40</property>
++ <property name="label" translatable="yes">Username:</property>
++ <property name="xalign">1</property>
+ </object>
+ <packing>
+- <property name="name">image</property>
+- <property name="title" translatable="yes">image</property>
++ <property name="left_attach">0</property>
++ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+- <object class="GtkSpinner">
++ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="active">True</property>
++ <property name="margin_start">40</property>
++ <property name="label" translatable="yes">Password:</property>
++ <property name="xalign">1</property>
+ </object>
+ <packing>
+- <property name="name">spinner</property>
+- <property name="title" translatable="yes">spinner</property>
+- <property name="position">1</property>
++ <property name="left_attach">0</property>
++ <property name="top_attach">1</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkEntry" id="http_user_entry">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="margin_start">15</property>
++ <property name="margin_end">15</property>
++ <property name="margin_top">2</property>
++ <property name="margin_bottom">2</property>
++ <property name="hexpand">True</property>
++ </object>
++ <packing>
++ <property name="left_attach">1</property>
++ <property name="top_attach">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkEntry" id="http_pass_entry">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="margin_start">15</property>
++ <property name="margin_end">15</property>
++ <property name="margin_top">2</property>
++ <property name="margin_bottom">2</property>
++ <property name="hexpand">True</property>
++ <property name="visibility">False</property>
++ <property name="input_purpose">password</property>
++ </object>
++ <packing>
++ <property name="left_attach">1</property>
++ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">1</property>
++ </packing>
+ </child>
+ </object>
+- <packing>
+- <property name="position">7</property>
+- </packing>
+ </child>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">3</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkButton" id="login_button">
++ <property name="label" translatable="yes">Login</property>
++ <property name="visible">True</property>
++ <property name="sensitive">False</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">True</property>
++ <property name="halign">end</property>
++ <property name="margin_end">15</property>
++ <property name="margin_top">2</property>
++ <property name="margin_bottom">2</property>
++ <style>
++ <class name="suggested-action"/>
++ </style>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">4</property>
++ </packing>
++ </child>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
++ </object>
++ <packing>
++ <property name="name">password_login</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkBox" id="oauth_box">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="orientation">vertical</property>
++ <child>
++ <object class="GtkInfoBar" id="oauth_info_bar">
++ <property name="can_focus">False</property>
++ <property name="no_show_all">True</property>
++ <property name="message_type">warning</property>
++ <property name="show_close_button">True</property>
++ <child internal-child="action_area">
++ <object class="GtkButtonBox">
++ <property name="can_focus">False</property>
++ <property name="spacing">6</property>
++ <property name="layout_style">end</property>
+ <child>
+- <object class="GtkMenuButton" id="menu_button">
++ <object class="GtkButton" id="oauth_details_button">
++ <property name="label" translatable="yes">Details</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+- <child>
+- <object class="GtkImage">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="icon_name">open-menu-symbolic</property>
+- </object>
+- </child>
+ </object>
+ <packing>
+- <property name="pack_type">end</property>
+- <property name="position">3</property>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">0</property>
++ </packing>
+ </child>
+- <child>
+- <object class="GtkSeparator">
+- <property name="visible">True</property>
++ <child internal-child="content_area">
++ <object class="GtkBox">
+ <property name="can_focus">False</property>
+- <property name="vexpand">True</property>
+- <property name="orientation">vertical</property>
++ <property name="spacing">16</property>
++ <child>
++ <object class="GtkLabel" id="oauth_info_bar_label">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="yes">label</property>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
+ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">0</property>
++ </packing>
+ </child>
+- <child>
+- <object class="GtkHeaderBar" id="right_headerbar">
+- <property name="width_request">300</property>
+- <property name="visible">True</property>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <placeholder/>
++ </child>
++ </object>
++ <packing>
++ <property name="name">oauth_login</property>
++ <property name="position">2</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkBox" id="page">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="orientation">vertical</property>
++ <child>
++ <object class="GtkInfoBar" id="undo_bar">
++ <property name="can_focus">False</property>
++ <property name="no_show_all">True</property>
++ <property name="message_type">warning</property>
++ <property name="show_close_button">True</property>
++ <property name="revealed">False</property>
++ <child internal-child="action_area">
++ <object class="GtkButtonBox">
+ <property name="can_focus">False</property>
+- <property name="hexpand">True</property>
+- <property name="has_subtitle">False</property>
+- <property name="spacing">5</property>
+- <property name="show_close_button">True</property>
++ <property name="spacing">6</property>
++ <property name="layout_style">end</property>
+ <child>
+- <object class="GtkButton" id="right_back_button">
++ <object class="GtkButton" id="undo_button">
++ <property name="label" translatable="yes">Undo</property>
++ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+- <property name="no_show_all">True</property>
+- <child>
+- <object class="GtkImage">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="icon_name">go-previous-symbolic</property>
+- </object>
+- </child>
+ </object>
+ <packing>
+- <property name="position">1</property>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child internal-child="content_area">
++ <object class="GtkBox">
++ <property name="can_focus">False</property>
++ <property name="spacing">16</property>
++ <child>
++ <object class="GtkLabel" id="undo_label">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="yes">Delte Feed/Category</property>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
+ </packing>
+ </child>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkInfoBar" id="error_bar">
++ <property name="can_focus">False</property>
++ <property name="no_show_all">True</property>
++ <property name="message_type">error</property>
++ <property name="show_close_button">True</property>
++ <child internal-child="action_area">
++ <object class="GtkButtonBox">
++ <property name="can_focus">False</property>
++ <property name="spacing">6</property>
++ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
++ <property name="spacing">6</property>
+ <child>
+- <object class="GtkToggleButton" id="mark_article_button">
++ <object class="GtkButton" id="relogin_button">
++ <property name="label" translatable="yes">Login</property>
+ <property name="visible">True</property>
+- <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+- <property name="tooltip_text" translatable="yes">Toggle Starred</property>
+- <child>
+- <object class="GtkStack" id="mark_article_stack">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="transition_duration">50</property>
+- <property name="transition_type">crossfade</property>
+- <child>
+- <object class="GtkImage">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="icon_name">unmarked-symbolic</property>
+- </object>
+- <packing>
+- <property name="name">unmarked</property>
+- <property name="title" translatable="yes">unmarked</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkImage">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="icon_name">marked-symbolic</property>
+- </object>
+- <packing>
+- <property name="name">marked</property>
+- <property name="title" translatable="yes">marked</property>
+- <property name="position">1</property>
+- </packing>
+- </child>
+- </object>
+- </child>
++ <style>
++ <class name="suggested-action"/>
++ </style>
+ </object>
+ <packing>
+- <property name="expand">False</property>
++ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+- <object class="GtkToggleButton" id="mark_article_read_button">
++ <object class="GtkButton" id="offline_button">
++ <property name="label" translatable="yes">Go Offline</property>
+ <property name="visible">True</property>
+- <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+- <property name="tooltip_text" translatable="yes">Toggle Read</property>
+- <child>
+- <object class="GtkStack" id="mark_article_read_stack">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="transition_duration">50</property>
+- <property name="transition_type">crossfade</property>
+- <child>
+- <object class="GtkImage">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="icon_name">read-symbolic</property>
+- </object>
+- <packing>
+- <property name="name">read</property>
+- <property name="title" translatable="yes">read</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkImage">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="icon_name">unread-symbolic</property>
+- </object>
+- <packing>
+- <property name="name">unread</property>
+- <property name="title" translatable="yes">unread</property>
+- <property name="position">1</property>
+- </packing>
+- </child>
+- </object>
+- </child>
++ <property name="always_show_image">True</property>
+ </object>
+ <packing>
+- <property name="expand">False</property>
++ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- <style>
+- <class name="linked"/>
+- </style>
+- </object>
+- <packing>
+- <property name="position">2</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkMenuButton" id="more_actions_button">
+- <property name="visible">True</property>
+- <property name="sensitive">False</property>
+- <property name="can_focus">True</property>
+- <property name="receives_default">True</property>
+ <child>
+- <object class="GtkStack" id="more_actions_stack">
++ <object class="GtkButton" id="info_button">
+ <property name="visible">True</property>
+- <property name="can_focus">False</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">True</property>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="icon_name">view-more-symbolic</property>
+- </object>
+- <packing>
+- <property name="name">image</property>
+- <property name="title" translatable="yes">image</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkSpinner">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="active">True</property>
++ <property name="icon_name">dialog-question-symbolic</property>
+ </object>
+- <packing>
+- <property name="name">spinner</property>
+- <property name="title" translatable="yes">spinner</property>
+- <property name="position">1</property>
+- </packing>
+ </child>
+ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="pack_type">end</property>
++ <property name="position">2</property>
++ </packing>
+ </child>
+ </object>
+ <packing>
+- <property name="pack_type">end</property>
+- <property name="position">1</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkMenuButton" id="tag_button">
+- <property name="visible">True</property>
+- <property name="sensitive">False</property>
+- <property name="can_focus">True</property>
+- <property name="receives_default">True</property>
+- <child>
+- <object class="GtkImage" id="tag_image">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="icon_name">tag-symbolic</property>
+- </object>
+- </child>
+- </object>
+- <packing>
+- <property name="pack_type">end</property>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+- <child>
+- <object class="GtkToggleButton" id="scrap_content_button">
+- <property name="visible">True</property>
+- <property name="sensitive">False</property>
+- <property name="can_focus">True</property>
+- <property name="receives_default">True</property>
+- <property name="tooltip_text" translatable="yes">Try to show full content</property>
+- <child>
+- <object class="GtkStack" id="scrap_article_stack">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="transition_duration">50</property>
+- <property name="transition_type">crossfade</property>
+- <child>
+- <object class="GtkImage">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="icon_name">accessories-dictionary-symbolic</property>
+- </object>
+- <packing>
+- <property name="name">image</property>
+- <property name="title" translatable="yes">image</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkSpinner">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="active">True</property>
+- </object>
+- <packing>
+- <property name="name">spinner</property>
+- <property name="title" translatable="yes">spinner</property>
+- <property name="position">1</property>
+- </packing>
+- </child>
+- </object>
+- </child>
+- </object>
+- <packing>
+- <property name="pack_type">end</property>
+- <property name="position">4</property>
+- </packing>
+- </child>
+ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">0</property>
++ </packing>
+ </child>
+- </object>
+- <packing>
+- <property name="name">content</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkHeaderBar" id="welcome_headerbar">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="title" translatable="yes">NewsFlash</property>
+- <property name="has_subtitle">False</property>
+- <property name="show_close_button">True</property>
+- <child>
+- <placeholder/>
+- </child>
+- </object>
+- <packing>
+- <property name="name">welcome</property>
+- <property name="position">1</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkHeaderBar" id="login_headerbar">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="title" translatable="yes">NewsFlash</property>
+- <property name="show_close_button">True</property>
+- <child>
+- <object class="GtkButton" id="back_button">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="receives_default">True</property>
+- <property name="always_show_image">True</property>
++ <child internal-child="content_area">
++ <object class="GtkBox">
++ <property name="can_focus">False</property>
++ <property name="spacing">16</property>
+ <child>
+- <object class="GtkImage">
++ <object class="GtkLabel" id="error_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="icon_name">go-previous-symbolic</property>
++ <property name="label" translatable="yes">label</property>
+ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
++ </packing>
+ </child>
+ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">0</property>
++ </packing>
+ </child>
+ </object>
+- <packing>
+- <property name="name">login</property>
+- <property name="position">2</property>
+- </packing>
+- </child>
+- </object>
+- </child>
+- </object>
+- </child>
+- <child>
+- <object class="GtkStack" id="main_stack">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="transition_type">slide-left</property>
+- <child>
+- <object class="GtkBox" id="welcome_page">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="halign">center</property>
+- <property name="margin_left">20</property>
+- <property name="margin_right">20</property>
+- <property name="margin_top">50</property>
+- <property name="margin_bottom">50</property>
+- <property name="orientation">vertical</property>
+- <child>
+- <object class="GtkLabel">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="label" translatable="yes">Where are your feeds?</property>
+- <property name="justify">center</property>
+- <style>
+- <class name="h1"/>
+- </style>
+- </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkLabel">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="label" translatable="yes">Please select the RSS service you are using and log in to get going.</property>
+- <property name="justify">center</property>
+- <property name="wrap">True</property>
+- <property name="ellipsize">end</property>
+- <property name="lines">3</property>
+- <style>
+- <class name="h2"/>
+- </style>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="padding">2</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+- <object class="GtkScrolledWindow">
+- <property name="width_request">350</property>
++ <object class="HdyLeaflet" id="major_leaflet">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="halign">center</property>
+- <property name="shadow_type">in</property>
++ <property name="hexpand">True</property>
++ <property name="vexpand">True</property>
++ <property name="visible_child">minor_leaflet</property>
++ <property name="transition_type">over</property>
+ <child>
+- <object class="GtkViewport">
++ <object class="HdyLeaflet" id="minor_leaflet">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
++ <property name="visible_child">feedlist_box</property>
++ <property name="transition_type">over</property>
+ <child>
+- <object class="GtkListBox" id="list">
++ <object class="GtkBox" id="feedlist_box">
++ <property name="width_request">220</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="selection_mode">none</property>
++ <property name="hexpand">True</property>
++ <property name="orientation">vertical</property>
++ <child>
++ <placeholder/>
++ </child>
++ </object>
++ </child>
++ <child>
++ <object class="GtkSeparator">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="orientation">vertical</property>
+ <style>
+- <class name="list-separated"/>
++ <class name="dark-separator"/>
+ </style>
+ </object>
+ </child>
++ <child>
++ <object class="GtkBox" id="articlelist_box">
++ <property name="width_request">380</property>
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="hexpand">True</property>
++ <property name="orientation">vertical</property>
++ <child>
++ <object class="HdySearchBar" id="search_bar">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <child>
++ <object class="GtkSearchEntry" id="search_entry">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="primary_icon_name">edit-find-symbolic</property>
++ <property name="primary_icon_activatable">False</property>
++ <property name="primary_icon_sensitive">False</property>
++ </object>
++ </child>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <placeholder/>
++ </child>
++ </object>
++ </child>
++ </object>
++ </child>
++ <child>
++ <object class="GtkSeparator">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="orientation">vertical</property>
++ </object>
++ </child>
++ <child>
++ <object class="GtkBox" id="articleview_box">
++ <property name="width_request">300</property>
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="hexpand">True</property>
++ <property name="orientation">vertical</property>
++ <child>
++ <placeholder/>
++ </child>
+ </object>
+ </child>
+- <style>
+- <class name="frame"/>
+- </style>
+ </object>
+ <packing>
+- <property name="expand">True</property>
++ <property name="expand">False</property>
+ <property name="fill">True</property>
+- <property name="padding">20</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+- <property name="name">welcome</property>
++ <property name="name">content</property>
++ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+- <object class="GtkBox" id="password_login">
++ <object class="GtkBox" id="reset_page">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+- <object class="GtkInfoBar" id="pw_info_bar">
++ <object class="GtkInfoBar" id="reset_info_bar">
++ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="no_show_all">True</property>
+- <property name="homogeneous">True</property>
+- <property name="message_type">error</property>
++ <property name="hexpand">True</property>
+ <property name="show_close_button">True</property>
++ <property name="revealed">False</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <property name="layout_style">end</property>
+ <child>
+- <object class="GtkButton" id="ignore_button">
+- <property name="label" translatable="yes">Ignore</property>
+- <property name="can_focus">True</property>
+- <property name="receives_default">True</property>
+- </object>
+- <packing>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkButton" id="pw_details_button">
++ <object class="GtkButton" id="details_button">
+ <property name="label" translatable="yes">Details</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+@@ -760,7 +841,7 @@
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+- <property name="position">1</property>
++ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+@@ -775,14 +856,10 @@
+ <property name="can_focus">False</property>
+ <property name="spacing">16</property>
+ <child>
+- <object class="GtkLabel" id="pw_info_bar_label">
++ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="margin_left">20</property>
+- <property name="margin_right">20</property>
+- <property name="hexpand">True</property>
+- <property name="label" translatable="yes">label</property>
+- <property name="xalign">0</property>
++ <property name="label" translatable="yes">Resetting Account failed</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+@@ -806,20 +883,19 @@
+ </child>
+ <child>
+ <object class="GtkBox">
+- <property name="width_request">350</property>
+- <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+- <property name="valign">center</property>
+- <property name="hexpand">True</property>
+- <property name="vexpand">True</property>
++ <property name="margin_start">20</property>
++ <property name="margin_end">20</property>
++ <property name="margin_top">50</property>
++ <property name="margin_bottom">50</property>
+ <property name="orientation">vertical</property>
+ <child>
+- <object class="GtkLabel" id="headline">
++ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="label" translatable="yes">Headline</property>
+- <property name="ellipsize">end</property>
++ <property name="vexpand">True</property>
++ <property name="label" translatable="yes">Resetting leads to all local data being lost</property>
+ <style>
+ <class name="h2"/>
+ </style>
+@@ -831,784 +907,710 @@
+ </packing>
+ </child>
+ <child>
+- <object class="GtkImage" id="logo">
+- <property name="width_request">64</property>
+- <property name="height_request">64</property>
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="margin_top">30</property>
+- <property name="margin_bottom">30</property>
+- <property name="stock">gtk-missing-image</property>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="position">1</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkGrid">
++ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <object class="GtkLabel" id="url_label">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="margin_left">40</property>
+- <property name="label" translatable="yes">Url:</property>
+- <property name="xalign">1</property>
+- </object>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="top_attach">0</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkLabel">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="margin_left">40</property>
+- <property name="label" translatable="yes">Username:</property>
+- <property name="xalign">1</property>
+- </object>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="top_attach">1</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkLabel">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="margin_left">42</property>
+- <property name="label" translatable="yes">Password:</property>
+- <property name="xalign">1</property>
+- </object>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="top_attach">2</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkEntry" id="url_entry">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="margin_left">15</property>
+- <property name="margin_right">15</property>
+- <property name="margin_top">2</property>
+- <property name="margin_bottom">2</property>
+- <property name="hexpand">True</property>
+- <property name="input_purpose">url</property>
+- </object>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="top_attach">0</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkEntry" id="user_entry">
++ <object class="GtkButton" id="cancel_button">
++ <property name="label" translatable="yes">I changed my mind</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+- <property name="margin_left">15</property>
+- <property name="margin_right">15</property>
+- <property name="margin_top">2</property>
+- <property name="margin_bottom">2</property>
+- <property name="hexpand">True</property>
++ <property name="receives_default">True</property>
+ </object>
+ <packing>
+- <property name="left_attach">1</property>
+- <property name="top_attach">1</property>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+- <object class="GtkEntry" id="pass_entry">
++ <object class="GtkButton" id="reset_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+- <property name="margin_left">15</property>
+- <property name="margin_right">15</property>
+- <property name="margin_top">2</property>
+- <property name="margin_bottom">2</property>
+- <property name="visibility">False</property>
+- <property name="input_purpose">password</property>
++ <property name="receives_default">True</property>
++ <child>
++ <object class="GtkStack" id="reset_stack">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="transition_duration">50</property>
++ <property name="transition_type">crossfade</property>
++ <child>
++ <object class="GtkLabel" id="reset_label">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="yes">Reset</property>
++ </object>
++ <packing>
++ <property name="name">reset_label</property>
++ <property name="title" translatable="yes">page0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkSpinner" id="reset_spinner">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="active">True</property>
++ </object>
++ <packing>
++ <property name="name">reset_spinner</property>
++ <property name="title" translatable="yes">page1</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
++ </object>
++ </child>
++ <style>
++ <class name="destructive-action"/>
++ </style>
+ </object>
+ <packing>
+- <property name="left_attach">1</property>
+- <property name="top_attach">2</property>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="pack_type">end</property>
++ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+- <property name="position">2</property>
++ <property name="position">1</property>
+ </packing>
+ </child>
++ </object>
++ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
++ </object>
++ <packing>
++ <property name="name">reset_page</property>
++ <property name="position">4</property>
++ </packing>
++ </child>
++ </object>
++ </child>
++ <child type="titlebar">
++ <object class="HdyTitleBar">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <child>
++ <object class="GtkStack" id="header_stack">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="transition_duration">50</property>
++ <property name="transition_type">crossfade</property>
++ <child>
++ <object class="HdyLeaflet" id="header_leaflet">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="visible_child">left_headerbar</property>
++ <property name="transition_type">over</property>
+ <child>
+- <object class="GtkRevealer" id="http_auth_revealer">
++ <object class="GtkHeaderBar" id="left_headerbar">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="transition_type">slide-up</property>
++ <property name="has_subtitle">False</property>
++ <property name="spacing">5</property>
++ <property name="show_close_button">True</property>
+ <child>
+- <object class="GtkBox">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="orientation">vertical</property>
++ <object class="GtkButton" id="left_back_button">
++ <property name="can_focus">True</property>
++ <property name="receives_default">True</property>
++ <property name="no_show_all">True</property>
+ <child>
+- <object class="GtkLabel">
++ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="margin_top">20</property>
+- <property name="margin_bottom">10</property>
+- <property name="label" translatable="yes">HTTP Basic Auth</property>
+- <style>
+- <class name="h3"/>
+- </style>
++ <property name="icon_name">go-previous-symbolic</property>
+ </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="position">0</property>
+- </packing>
+ </child>
++ </object>
++ </child>
++ <child>
++ <object class="GtkMenuButton" id="mode_switch_button">
++ <property name="can_focus">True</property>
++ <property name="receives_default">True</property>
++ <property name="no_show_all">True</property>
+ <child>
+- <object class="GtkGrid">
++ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
++ <property name="spacing">5</property>
+ <child>
+- <object class="GtkLabel">
++ <object class="GtkStack" id="mode_switch_stack">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="margin_left">40</property>
+- <property name="label" translatable="yes">Username:</property>
+- <property name="xalign">1</property>
++ <property name="transition_duration">50</property>
++ <property name="transition_type">crossfade</property>
++ <child>
++ <object class="GtkLabel">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="yes">All</property>
++ <property name="xalign">0</property>
++ </object>
++ <packing>
++ <property name="name">all</property>
++ <property name="title" translatable="yes">all</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkLabel">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="yes">Unread</property>
++ <property name="xalign">0</property>
++ </object>
++ <packing>
++ <property name="name">unread</property>
++ <property name="title" translatable="yes">unread</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkLabel">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="yes">Starred</property>
++ <property name="xalign">0</property>
++ </object>
++ <packing>
++ <property name="name">marked</property>
++ <property name="title" translatable="yes">marked</property>
++ <property name="position">2</property>
++ </packing>
++ </child>
+ </object>
+ <packing>
+- <property name="left_attach">0</property>
+- <property name="top_attach">0</property>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+- <object class="GtkLabel">
++ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="margin_left">40</property>
+- <property name="label" translatable="yes">Password:</property>
+- <property name="xalign">1</property>
++ <property name="icon_name">go-down-symbolic</property>
+ </object>
+ <packing>
+- <property name="left_attach">0</property>
+- <property name="top_attach">1</property>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">1</property>
+ </packing>
+ </child>
++ </object>
++ </child>
++ </object>
++ <packing>
++ <property name="position">1</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkBox" id="mode_switch_box">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="homogeneous">True</property>
++ <child>
++ <object class="GtkToggleButton" id="all_button">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="focus_on_click">False</property>
++ <property name="receives_default">True</property>
++ <property name="active">True</property>
+ <child>
+- <object class="GtkEntry" id="http_user_entry">
++ <object class="GtkLabel">
+ <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="margin_left">15</property>
+- <property name="margin_right">15</property>
+- <property name="margin_top">2</property>
+- <property name="margin_bottom">2</property>
+- <property name="hexpand">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="yes">All</property>
+ </object>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="top_attach">0</property>
+- </packing>
+ </child>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkToggleButton" id="unread_button">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="focus_on_click">False</property>
++ <property name="receives_default">True</property>
+ <child>
+- <object class="GtkEntry" id="http_pass_entry">
++ <object class="GtkLabel">
+ <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="margin_left">15</property>
+- <property name="margin_right">15</property>
+- <property name="margin_top">2</property>
+- <property name="margin_bottom">2</property>
+- <property name="hexpand">True</property>
+- <property name="visibility">False</property>
+- <property name="input_purpose">password</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="yes">Unread</property>
++ </object>
++ </child>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkToggleButton" id="marked_button">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="focus_on_click">False</property>
++ <property name="receives_default">True</property>
++ <child>
++ <object class="GtkLabel">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="yes">Starred</property>
+ </object>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="top_attach">1</property>
+- </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+- <property name="position">1</property>
++ <property name="position">2</property>
+ </packing>
+ </child>
+- </object>
+- </child>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="position">3</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkButton" id="login_button">
+- <property name="label" translatable="yes">Login</property>
+- <property name="visible">True</property>
+- <property name="sensitive">False</property>
+- <property name="can_focus">True</property>
+- <property name="receives_default">True</property>
+- <property name="halign">end</property>
+- <property name="margin_right">15</property>
+- <property name="margin_top">2</property>
+- <property name="margin_bottom">2</property>
+- <style>
+- <class name="suggested-action"/>
+- </style>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="position">4</property>
+- </packing>
+- </child>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="position">1</property>
+- </packing>
+- </child>
+- </object>
+- <packing>
+- <property name="name">password_login</property>
+- <property name="position">1</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkBox" id="oauth_box">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="orientation">vertical</property>
+- <child>
+- <object class="GtkInfoBar" id="oauth_info_bar">
+- <property name="can_focus">False</property>
+- <property name="no_show_all">True</property>
+- <property name="message_type">warning</property>
+- <property name="show_close_button">True</property>
+- <child internal-child="action_area">
+- <object class="GtkButtonBox">
+- <property name="can_focus">False</property>
+- <property name="spacing">6</property>
+- <property name="layout_style">end</property>
+- <child>
+- <object class="GtkButton" id="oauth_details_button">
+- <property name="label" translatable="yes">Details</property>
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="receives_default">True</property>
+- </object>
+- <packing>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
+- <child internal-child="content_area">
+- <object class="GtkBox">
+- <property name="can_focus">False</property>
+- <property name="spacing">16</property>
+- <child>
+- <object class="GtkLabel" id="oauth_info_bar_label">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="label" translatable="yes">label</property>
++ <style>
++ <class name="linked"/>
++ </style>
+ </object>
+ <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="position">0</property>
++ <property name="position">2</property>
+ </packing>
+ </child>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
+- <child>
+- <placeholder/>
+- </child>
+- </object>
+- <packing>
+- <property name="name">oauth_login</property>
+- <property name="position">2</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkBox" id="page">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="orientation">vertical</property>
+- <child>
+- <object class="GtkInfoBar" id="undo_bar">
+- <property name="can_focus">False</property>
+- <property name="no_show_all">True</property>
+- <property name="message_type">warning</property>
+- <property name="show_close_button">True</property>
+- <property name="revealed">False</property>
+- <child internal-child="action_area">
+- <object class="GtkButtonBox">
+- <property name="can_focus">False</property>
+- <property name="spacing">6</property>
+- <property name="layout_style">end</property>
+ <child>
+- <object class="GtkButton" id="undo_button">
+- <property name="label" translatable="yes">Undo</property>
++ <object class="GtkMenuButton" id="menu_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
++ <child>
++ <object class="GtkImage">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="icon_name">open-menu-symbolic</property>
++ </object>
++ </child>
+ </object>
+ <packing>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- <property name="position">0</property>
++ <property name="pack_type">end</property>
++ <property name="position">3</property>
+ </packing>
+ </child>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
+- <child internal-child="content_area">
+- <object class="GtkBox">
+- <property name="can_focus">False</property>
+- <property name="spacing">16</property>
+ <child>
+- <object class="GtkLabel" id="undo_label">
++ <object class="GtkButton" id="update_button">
+ <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="label" translatable="yes">Delte Feed/Category</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">True</property>
++ <property name="tooltip_text" translatable="yes">Refresh Content</property>
++ <child>
++ <object class="GtkStack" id="update_stack">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="transition_type">crossfade</property>
++ <child>
++ <object class="GtkImage">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="icon_name">view-refresh-symbolic</property>
++ </object>
++ <packing>
++ <property name="name">icon</property>
++ <property name="title" translatable="yes">icon</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkSpinner">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="active">True</property>
++ </object>
++ <packing>
++ <property name="name">spinner</property>
++ <property name="title" translatable="yes">spinner</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
++ </object>
++ </child>
+ </object>
+ <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="position">0</property>
++ <property name="position">3</property>
+ </packing>
+ </child>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkInfoBar" id="error_bar">
+- <property name="can_focus">False</property>
+- <property name="no_show_all">True</property>
+- <property name="message_type">error</property>
+- <property name="show_close_button">True</property>
+- <child internal-child="action_area">
+- <object class="GtkButtonBox">
+- <property name="can_focus">False</property>
+- <property name="spacing">6</property>
+- <property name="layout_style">end</property>
+ <child>
+- <object class="GtkBox">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="spacing">6</property>
++ <object class="GtkButton" id="offline_status_button">
++ <property name="can_focus">True</property>
++ <property name="receives_default">True</property>
++ <property name="no_show_all">True</property>
++ <property name="tooltip_text" translatable="yes">Go back to online mode</property>
+ <child>
+- <object class="GtkButton" id="relogin_button">
+- <property name="label" translatable="yes">Login</property>
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="receives_default">True</property>
+- <style>
+- <class name="suggested-action"/>
+- </style>
++ <object class="GtkImage">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="icon_name">network-offline-symbolic</property>
+ </object>
+- <packing>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- <property name="position">0</property>
+- </packing>
+ </child>
++ </object>
++ <packing>
++ <property name="position">5</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkToggleButton" id="search_button">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">True</property>
++ <property name="tooltip_text" translatable="yes">Search Articles</property>
+ <child>
+- <object class="GtkButton" id="offline_button">
+- <property name="label" translatable="yes">Go Offline</property>
++ <object class="GtkImage">
+ <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="receives_default">True</property>
+- <property name="always_show_image">True</property>
++ <property name="can_focus">False</property>
++ <property name="icon_name">system-search-symbolic</property>
+ </object>
+- <packing>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- <property name="position">1</property>
+- </packing>
+ </child>
++ </object>
++ <packing>
++ <property name="position">5</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkButton" id="mark_all_button">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">True</property>
++ <property name="tooltip_text" translatable="yes">Set All/Feed/Category as read</property>
+ <child>
+- <object class="GtkButton" id="info_button">
++ <object class="GtkStack" id="mark_all_stack">
+ <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="receives_default">True</property>
++ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="icon_name">dialog-question-symbolic</property>
++ <property name="icon_name">emblem-ok-symbolic</property>
++ </object>
++ <packing>
++ <property name="name">image</property>
++ <property name="title" translatable="yes">image</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkSpinner">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="active">True</property>
+ </object>
++ <packing>
++ <property name="name">spinner</property>
++ <property name="title" translatable="yes">spinner</property>
++ <property name="position">1</property>
++ </packing>
+ </child>
+ </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- <property name="pack_type">end</property>
+- <property name="position">2</property>
+- </packing>
+ </child>
+ </object>
+ <packing>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- <property name="position">3</property>
++ <property name="position">7</property>
+ </packing>
+ </child>
+ </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- <property name="position">0</property>
+- </packing>
+ </child>
+- <child internal-child="content_area">
+- <object class="GtkBox">
++ <child>
++ <object class="GtkSeparator">
++ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="spacing">16</property>
+- <child>
+- <object class="GtkLabel" id="error_label">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="label" translatable="yes">label</property>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
++ <property name="vexpand">True</property>
++ <property name="orientation">vertical</property>
+ </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- <property name="position">0</property>
+- </packing>
+ </child>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="position">1</property>
+- </packing>
+- </child>
+- <child>
+- <object class="HdyLeaflet" id="major_leaflet">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="hexpand">True</property>
+- <property name="vexpand">True</property>
+- <property name="visible_child">minor_leaflet</property>
+- <property name="transition_type">over</property>
+ <child>
+- <object class="HdyLeaflet" id="minor_leaflet">
++ <object class="GtkHeaderBar" id="right_headerbar">
++ <property name="width_request">300</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="visible_child">feedlist_box</property>
+- <property name="transition_type">over</property>
++ <property name="hexpand">True</property>
++ <property name="has_subtitle">False</property>
++ <property name="spacing">5</property>
++ <property name="show_close_button">True</property>
+ <child>
+- <object class="GtkBox" id="feedlist_box">
+- <property name="width_request">220</property>
++ <object class="GtkMenuButton" id="more_actions_button">
+ <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="hexpand">True</property>
+- <property name="orientation">vertical</property>
++ <property name="sensitive">False</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">True</property>
+ <child>
+- <placeholder/>
++ <object class="GtkStack" id="more_actions_stack">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <child>
++ <object class="GtkImage">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="icon_name">view-more-symbolic</property>
++ </object>
++ <packing>
++ <property name="name">image</property>
++ <property name="title" translatable="yes">image</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkSpinner">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="active">True</property>
++ </object>
++ <packing>
++ <property name="name">spinner</property>
++ <property name="title" translatable="yes">spinner</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
++ </object>
+ </child>
+ </object>
++ <packing>
++ <property name="pack_type">end</property>
++ <property name="position">1</property>
++ </packing>
+ </child>
+ <child>
+- <object class="GtkSeparator">
+- <property name="can_focus">False</property>
+- <property name="orientation">vertical</property>
+- <style>
+- <class name="dark-separator"/>
+- </style>
++ <object class="GtkButton" id="right_back_button">
++ <property name="can_focus">True</property>
++ <property name="receives_default">True</property>
++ <property name="no_show_all">True</property>
++ <child>
++ <object class="GtkImage">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="icon_name">go-previous-symbolic</property>
++ </object>
++ </child>
+ </object>
++ <packing>
++ <property name="position">1</property>
++ </packing>
+ </child>
+ <child>
+- <object class="GtkBox" id="articlelist_box">
+- <property name="width_request">380</property>
++ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="hexpand">True</property>
+- <property name="orientation">vertical</property>
+ <child>
+- <object class="HdySearchBar" id="search_bar">
++ <object class="GtkToggleButton" id="mark_article_button">
+ <property name="visible">True</property>
+- <property name="can_focus">False</property>
++ <property name="sensitive">False</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">True</property>
++ <property name="tooltip_text" translatable="yes">Toggle Starred</property>
+ <child>
+- <object class="GtkSearchEntry" id="search_entry">
++ <object class="GtkStack" id="mark_article_stack">
+ <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="primary_icon_name">edit-find-symbolic</property>
+- <property name="primary_icon_activatable">False</property>
+- <property name="primary_icon_sensitive">False</property>
++ <property name="can_focus">False</property>
++ <property name="transition_duration">50</property>
++ <property name="transition_type">crossfade</property>
++ <child>
++ <object class="GtkImage">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="icon_name">unmarked-symbolic</property>
++ </object>
++ <packing>
++ <property name="name">unmarked</property>
++ <property name="title" translatable="yes">unmarked</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkImage">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="icon_name">marked-symbolic</property>
++ </object>
++ <packing>
++ <property name="name">marked</property>
++ <property name="title" translatable="yes">marked</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
++ </object>
++ </child>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkToggleButton" id="mark_article_read_button">
++ <property name="visible">True</property>
++ <property name="sensitive">False</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">True</property>
++ <property name="tooltip_text" translatable="yes">Toggle Read</property>
++ <child>
++ <object class="GtkStack" id="mark_article_read_stack">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="transition_duration">50</property>
++ <property name="transition_type">crossfade</property>
++ <child>
++ <object class="GtkImage">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="icon_name">read-symbolic</property>
++ </object>
++ <packing>
++ <property name="name">read</property>
++ <property name="title" translatable="yes">read</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkImage">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="icon_name">unread-symbolic</property>
++ </object>
++ <packing>
++ <property name="name">unread</property>
++ <property name="title" translatable="yes">unread</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+- <property name="position">0</property>
++ <property name="position">1</property>
+ </packing>
+ </child>
+- <child>
+- <placeholder/>
+- </child>
+- </object>
+- </child>
+- </object>
+- </child>
+- <child>
+- <object class="GtkSeparator">
+- <property name="can_focus">False</property>
+- <property name="orientation">vertical</property>
+- </object>
+- </child>
+- <child>
+- <object class="GtkBox" id="articleview_box">
+- <property name="width_request">300</property>
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="hexpand">True</property>
+- <property name="orientation">vertical</property>
+- <child>
+- <placeholder/>
+- </child>
+- </object>
+- </child>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="position">2</property>
+- </packing>
+- </child>
+- </object>
+- <packing>
+- <property name="name">content</property>
+- <property name="position">3</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkBox" id="reset_page">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="orientation">vertical</property>
+- <child>
+- <object class="GtkInfoBar" id="reset_info_bar">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="hexpand">True</property>
+- <property name="show_close_button">True</property>
+- <property name="revealed">False</property>
+- <child internal-child="action_area">
+- <object class="GtkButtonBox">
+- <property name="can_focus">False</property>
+- <property name="spacing">6</property>
+- <property name="layout_style">end</property>
+- <child>
+- <object class="GtkButton" id="details_button">
+- <property name="label" translatable="yes">Details</property>
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="receives_default">True</property>
+- </object>
+- <packing>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
+- <child internal-child="content_area">
+- <object class="GtkBox">
+- <property name="can_focus">False</property>
+- <property name="spacing">16</property>
+- <child>
+- <object class="GtkLabel">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="label" translatable="yes">Resetting Account failed</property>
++ <style>
++ <class name="linked"/>
++ </style>
+ </object>
+ <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="position">0</property>
++ <property name="position">2</property>
+ </packing>
+ </child>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkBox">
+- <property name="can_focus">False</property>
+- <property name="halign">center</property>
+- <property name="margin_left">20</property>
+- <property name="margin_right">20</property>
+- <property name="margin_top">50</property>
+- <property name="margin_bottom">50</property>
+- <property name="orientation">vertical</property>
+- <child>
+- <object class="GtkLabel">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="vexpand">True</property>
+- <property name="label" translatable="yes">Resetting leads to all local data being lost</property>
+- <style>
+- <class name="h2"/>
+- </style>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkBox">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+ <child>
+- <object class="GtkButton" id="cancel_button">
+- <property name="label" translatable="yes">I changed my mind</property>
++ <object class="GtkMenuButton" id="tag_button">
+ <property name="visible">True</property>
++ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
++ <child>
++ <object class="GtkImage" id="tag_image">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="icon_name">tag-symbolic</property>
++ </object>
++ </child>
+ </object>
+ <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="position">0</property>
++ <property name="pack_type">end</property>
++ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+- <object class="GtkButton" id="reset_button">
++ <object class="GtkToggleButton" id="scrap_content_button">
+ <property name="visible">True</property>
++ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
++ <property name="tooltip_text" translatable="yes">Try to show full content</property>
+ <child>
+- <object class="GtkStack" id="reset_stack">
++ <object class="GtkStack" id="scrap_article_stack">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="transition_duration">50</property>
+ <property name="transition_type">crossfade</property>
+ <child>
+- <object class="GtkLabel" id="reset_label">
++ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="label" translatable="yes">Reset</property>
++ <property name="icon_name">accessories-dictionary-symbolic</property>
+ </object>
+ <packing>
+- <property name="name">reset_label</property>
+- <property name="title" translatable="yes">page0</property>
++ <property name="name">image</property>
++ <property name="title" translatable="yes">image</property>
+ </packing>
+ </child>
+ <child>
+- <object class="GtkSpinner" id="reset_spinner">
++ <object class="GtkSpinner">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="active">True</property>
+ </object>
+ <packing>
+- <property name="name">reset_spinner</property>
+- <property name="title" translatable="yes">page1</property>
++ <property name="name">spinner</property>
++ <property name="title" translatable="yes">spinner</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+- <style>
+- <class name="destructive-action"/>
+- </style>
+ </object>
+ <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+ <property name="pack_type">end</property>
+- <property name="position">1</property>
++ <property name="position">4</property>
+ </packing>
+ </child>
+ </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="position">1</property>
+- </packing>
+ </child>
+ </object>
+ <packing>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
++ <property name="name">content</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkHeaderBar" id="welcome_headerbar">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="title" translatable="yes">NewsFlash</property>
++ <property name="has_subtitle">False</property>
++ <property name="show_close_button">True</property>
++ <child>
++ <placeholder/>
++ </child>
++ </object>
++ <packing>
++ <property name="name">welcome</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
++ <child>
++ <object class="GtkHeaderBar" id="login_headerbar">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="title" translatable="yes">NewsFlash</property>
++ <property name="show_close_button">True</property>
++ <child>
++ <object class="GtkButton" id="back_button">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">True</property>
++ <property name="always_show_image">True</property>
++ <child>
++ <object class="GtkImage">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="icon_name">go-previous-symbolic</property>
++ </object>
++ </child>
++ </object>
++ </child>
++ </object>
++ <packing>
++ <property name="name">login</property>
++ <property name="position">2</property>
++ </packing>
++ </child>
+ </object>
+- <packing>
+- <property name="name">reset_page</property>
+- <property name="position">4</property>
+- </packing>
+ </child>
+ </object>
+ </child>
+@@ -1633,8 +1635,8 @@
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="margin_left">10</property>
+- <property name="margin_right">10</property>
++ <property name="margin_start">10</property>
++ <property name="margin_end">10</property>
+ <property name="margin_top">10</property>
+ <property name="margin_bottom">10</property>
+ <property name="label" translatable="yes">You are now offline.
+@@ -1650,8 +1652,8 @@ Click here to go back online.</property>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="margin_left">10</property>
+- <property name="margin_right">10</property>
++ <property name="margin_start">10</property>
++ <property name="margin_end">10</property>
+ <property name="margin_top">10</property>
+ <property name="margin_bottom">10</property>
+ <property name="label" translatable="yes">You are back online.</property>
+diff --git a/src/app.rs b/src/app.rs
+index 7dfb76e..88bfc37 100644
+--- a/src/app.rs
++++ b/src/app.rs
+@@ -202,7 +202,6 @@ impl App {
+ }
+
+ app.window.init(&app.news_flash, app.threadpool.clone(), &app.features);
+- app.window.widget.show_all();
+ app
+ }
+
+--
+2.27.0
+
diff --git a/0001-use-usize-where-possible.patch b/0001-use-usize-where-possible.patch
new file mode 100644
index 0000000..d39d206
--- /dev/null
+++ b/0001-use-usize-where-possible.patch
@@ -0,0 +1,791 @@
+From 38361e7c8d644b10d9b6747c26eeec2b50d42845 Mon Sep 17 00:00:00 2001
+From: Jan Lukas Gernert <jangernert(a)gmail.com>
+Date: Sun, 7 Jun 2020 18:55:59 +0200
+Subject: [PATCH] use usize where possible
+
+---
+ src/article_list/article_row.rs | 24 ++++++------
+ src/article_list/mod.rs | 4 +-
+ src/article_view/mod.rs | 56 +++++++++++++--------------
+ src/content_page/content_header.rs | 12 +++---
+ src/error_bar.rs | 18 ++++-----
+ src/login_screen/password_login.rs | 38 +++++++++---------
+ src/login_screen/web_login.rs | 30 +++++---------
+ src/reset_page.rs | 4 +-
+ src/sidebar/feed_list/category_row.rs | 12 +++---
+ src/sidebar/feed_list/feed_row.rs | 10 ++---
+ src/tag_popover/mod.rs | 20 +++++-----
+ src/util/gtk_util.rs | 7 +++-
+ 12 files changed, 114 insertions(+), 121 deletions(-)
+
+diff --git a/src/article_list/article_row.rs b/src/article_list/article_row.rs
+index 255665b..ca3ebf6 100644
+--- a/src/article_list/article_row.rs
++++ b/src/article_list/article_row.rs
+@@ -24,7 +24,7 @@ pub struct ArticleRow {
+ unread_stack: Stack,
+ title_label: Label,
+ row_hovered: Arc<RwLock<bool>>,
+- connected_signals: Vec<(u64, Widget)>,
++ connected_signals: Vec<(usize, Widget)>,
+ }
+
+ impl ArticleRow {
+@@ -175,7 +175,7 @@ impl ArticleRow {
+ title_label: &Label,
+ article_id: &ArticleID,
+ list_model: &Arc<RwLock<ArticleListModel>>,
+- ) -> Vec<(u64, Widget)> {
++ ) -> Vec<(usize, Widget)> {
+ let mut vec = Vec::new();
+ vec.push((
+ eventbox
+@@ -192,7 +192,7 @@ impl ArticleRow {
+ }
+ Inhibit(false)
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ eventbox.clone().upcast::<Widget>(),
+ ));
+
+@@ -211,7 +211,7 @@ impl ArticleRow {
+ }
+ Inhibit(false)
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ eventbox.clone().upcast::<Widget>(),
+ ));
+
+@@ -249,7 +249,7 @@ impl ArticleRow {
+ Util::send(&sender, Action::MarkArticleRead(update));
+ Inhibit(true)
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ eventbox.clone().upcast::<Widget>(),
+ ));
+
+@@ -264,7 +264,7 @@ impl ArticleRow {
+ marked_stack: &Stack,
+ article_id: &ArticleID,
+ list_model: &Arc<RwLock<ArticleListModel>>,
+- ) -> Vec<(u64, Widget)> {
++ ) -> Vec<(usize, Widget)> {
+ let mut vec = Vec::new();
+
+ vec.push((
+@@ -282,7 +282,7 @@ impl ArticleRow {
+ }
+ Inhibit(false)
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ eventbox.clone().upcast::<Widget>(),
+ ));
+
+@@ -301,7 +301,7 @@ impl ArticleRow {
+ }
+ Inhibit(false)
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ eventbox.clone().upcast::<Widget>(),
+ ));
+
+@@ -337,7 +337,7 @@ impl ArticleRow {
+ Util::send(&sender, Action::MarkArticle(update));
+ Inhibit(true)
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ eventbox.clone().upcast::<Widget>(),
+ ));
+
+@@ -352,7 +352,7 @@ impl ArticleRow {
+ marked_stack: &Stack,
+ title_label: &Label,
+ row_hovered: &Arc<RwLock<bool>>,
+- ) -> Vec<(u64, Widget)> {
++ ) -> Vec<(usize, Widget)> {
+ Self::update_title_label(&title_label, *read.read());
+ Self::update_unread_stack(&unread_stack, *read.read(), *row_hovered.read());
+ Self::update_marked_stack(&marked_stack, *marked.read());
+@@ -382,7 +382,7 @@ impl ArticleRow {
+ }
+ Inhibit(true)
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ eventbox.clone().upcast::<Widget>(),
+ ));
+
+@@ -409,7 +409,7 @@ impl ArticleRow {
+ }
+ Inhibit(true)
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ eventbox.clone().upcast::<Widget>(),
+ ));
+
+diff --git a/src/article_list/mod.rs b/src/article_list/mod.rs
+index 86cbbd6..1122367 100644
+--- a/src/article_list/mod.rs
++++ b/src/article_list/mod.rs
+@@ -33,7 +33,7 @@ pub struct ArticleList {
+ list_1: Arc<RwLock<SingleArticleList>>,
+ list_2: Arc<RwLock<SingleArticleList>>,
+ list_model: Arc<RwLock<ArticleListModel>>,
+- list_activate_signal: Option<u64>,
++ list_activate_signal: Option<usize>,
+ local_state: MainWindowState,
+ global_state: Arc<RwLock<MainWindowState>>,
+ current_list: Arc<RwLock<CurrentList>>,
+@@ -263,7 +263,7 @@ impl ArticleList {
+ }
+ }))
+ .to_glib();
+- self.list_activate_signal = Some(activate_signal_id);
++ self.list_activate_signal = Some(activate_signal_id as usize);
+ }
+
+ fn require_new_list(&self, new_state: &RwLock<MainWindowState>) -> bool {
+diff --git a/src/article_view/mod.rs b/src/article_view/mod.rs
+index b29edb2..f43c487 100644
+--- a/src/article_view/mod.rs
++++ b/src/article_view/mod.rs
+@@ -59,16 +59,16 @@ pub struct ArticleView {
+ visible_feed_name: Arc<RwLock<Option<String>>>,
+ widnow_state: Arc<RwLock<MainWindowState>>,
+ internal_state: Arc<RwLock<InternalState>>,
+- load_changed_signal: Arc<RwLock<Option<u64>>>,
+- decide_policy_signal: Arc<RwLock<Option<u64>>>,
+- mouse_over_signal: Arc<RwLock<Option<u64>>>,
+- scroll_signal: Arc<RwLock<Option<u64>>>,
+- key_press_signal: Arc<RwLock<Option<u64>>>,
+- ctx_menu_signal: Arc<RwLock<Option<u64>>>,
+- load_signal: Arc<RwLock<Option<u64>>>,
+- click_signal: Arc<RwLock<Option<u64>>>,
+- click_release_signal: Arc<RwLock<Option<u64>>>,
+- drag_motion_notify_signal: Arc<RwLock<Option<u64>>>,
++ load_changed_signal: Arc<RwLock<Option<usize>>>,
++ decide_policy_signal: Arc<RwLock<Option<usize>>>,
++ mouse_over_signal: Arc<RwLock<Option<usize>>>,
++ scroll_signal: Arc<RwLock<Option<usize>>>,
++ key_press_signal: Arc<RwLock<Option<usize>>>,
++ ctx_menu_signal: Arc<RwLock<Option<usize>>>,
++ load_signal: Arc<RwLock<Option<usize>>>,
++ click_signal: Arc<RwLock<Option<usize>>>,
++ click_release_signal: Arc<RwLock<Option<usize>>>,
++ drag_motion_notify_signal: Arc<RwLock<Option<usize>>>,
+ drag_released_motion_signal: Arc<RwLock<Option<u32>>>,
+ drag_buffer_update_signal: Arc<RwLock<Option<u32>>>,
+ progress_overlay_delay_signal: Arc<RwLock<Option<u32>>>,
+@@ -303,15 +303,15 @@ impl ArticleView {
+ progress_overlay_label: &Arc<RwLock<ProgressOverlay>>,
+ old_state: &Arc<RwLock<InternalState>>,
+ stack: >k::Stack,
+- load_changed_signal: &Arc<RwLock<Option<u64>>>,
+- decide_policy_signal: &Arc<RwLock<Option<u64>>>,
+- mouse_over_signal: &Arc<RwLock<Option<u64>>>,
+- scroll_signal: &Arc<RwLock<Option<u64>>>,
+- key_press_signal: &Arc<RwLock<Option<u64>>>,
+- ctx_menu_signal: &Arc<RwLock<Option<u64>>>,
+- load_signal: &Arc<RwLock<Option<u64>>>,
+- click_signal: &Arc<RwLock<Option<u64>>>,
+- click_release_signal: &Arc<RwLock<Option<u64>>>,
++ load_changed_signal: &Arc<RwLock<Option<usize>>>,
++ decide_policy_signal: &Arc<RwLock<Option<usize>>>,
++ mouse_over_signal: &Arc<RwLock<Option<usize>>>,
++ scroll_signal: &Arc<RwLock<Option<usize>>>,
++ key_press_signal: &Arc<RwLock<Option<usize>>>,
++ ctx_menu_signal: &Arc<RwLock<Option<usize>>>,
++ load_signal: &Arc<RwLock<Option<usize>>>,
++ click_signal: &Arc<RwLock<Option<usize>>>,
++ click_release_signal: &Arc<RwLock<Option<usize>>>,
+ drag_released_motion_signal: &Arc<RwLock<Option<u32>>>,
+ drag_buffer_update_signal: &Arc<RwLock<Option<u32>>>,
+ progress_overlay_delay_signal: &Arc<RwLock<Option<u32>>>,
+@@ -431,7 +431,7 @@ impl ArticleView {
+ }
+ false
+ })
+- .to_glib(),
++ .to_glib() as usize,
+ );
+
+ //----------------------------------
+@@ -463,7 +463,7 @@ impl ArticleView {
+ url_overlay_label.read().reveal(false);
+ }
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ );
+
+ //----------------------------------
+@@ -489,7 +489,7 @@ impl ArticleView {
+ }
+ Inhibit(false)
+ })
+- .to_glib(),
++ .to_glib() as usize,
+ );
+
+ //------------------------------------------------
+@@ -509,7 +509,7 @@ impl ArticleView {
+ }
+ Inhibit(true)
+ })
+- .to_glib(),
++ .to_glib() as usize,
+ );
+
+ //----------------------------------
+@@ -542,7 +542,7 @@ impl ArticleView {
+
+ false
+ })
+- .to_glib(),
++ .to_glib() as usize,
+ );
+
+ //----------------------------------
+@@ -571,7 +571,7 @@ impl ArticleView {
+ progress_handle.read().reveal(true);
+ progress_handle.read().set_percentage(progress);
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ );
+ Continue(false)
+ }))
+@@ -652,7 +652,7 @@ impl ArticleView {
+ Self::set_scroll_pos_static(view, scroll_pos + scroll);
+ Inhibit(false)
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ );
+ }
+ }
+@@ -662,7 +662,7 @@ impl ArticleView {
+ }
+ Inhibit(false)
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ );
+
+ self.click_release_signal.write().replace(
+@@ -724,7 +724,7 @@ impl ArticleView {
+ }
+ Inhibit(false)
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ );
+
+ //----------------------------------
+diff --git a/src/content_page/content_header.rs b/src/content_page/content_header.rs
+index e3bd5e3..8d828c9 100644
+--- a/src/content_page/content_header.rs
++++ b/src/content_page/content_header.rs
+@@ -33,7 +33,7 @@ pub struct ContentHeader {
+ marked_button: ToggleButton,
+ scrap_content_button: ToggleButton,
+ scrap_content_stack: Stack,
+- scrap_content_event: RwLock<Option<u64>>,
++ scrap_content_event: RwLock<Option<usize>>,
+ tag_button: MenuButton,
+ tag_popover: RwLock<Option<TagPopover>>,
+ more_actions_button: MenuButton,
+@@ -43,8 +43,8 @@ pub struct ContentHeader {
+ mark_article_read_button: ToggleButton,
+ mark_article_stack: Stack,
+ mark_article_read_stack: Stack,
+- mark_article_event: RwLock<Option<u64>>,
+- mark_article_read_event: RwLock<Option<u64>>,
++ mark_article_event: RwLock<Option<usize>>,
++ mark_article_read_event: RwLock<Option<usize>>,
+ }
+
+ impl ContentHeader {
+@@ -557,7 +557,7 @@ impl ContentHeader {
+ }
+ Util::send(&sender, Action::ToggleArticleMarked);
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ );
+
+ self.mark_article_read_event.write().replace(
+@@ -573,7 +573,7 @@ impl ContentHeader {
+ }
+ Util::send(&sender, Action::ToggleArticleRead);
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ );
+
+ self.scrap_content_event.write().replace(
+@@ -590,7 +590,7 @@ impl ContentHeader {
+ Util::send(&sender, Action::RedrawArticle);
+ }
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ );
+
+ self.more_actions_button.set_sensitive(sensitive);
+diff --git a/src/error_bar.rs b/src/error_bar.rs
+index cf24d98..48761c9 100644
+--- a/src/error_bar.rs
++++ b/src/error_bar.rs
+@@ -15,9 +15,9 @@ pub struct ErrorBar {
+ detail_button: Button,
+ login_button: Button,
+ offline_button: Button,
+- detail_signal: Arc<RwLock<Option<u64>>>,
+- relogin_signal: Arc<RwLock<Option<u64>>>,
+- offline_signal: Arc<RwLock<Option<u64>>>,
++ detail_signal: Arc<RwLock<Option<usize>>>,
++ relogin_signal: Arc<RwLock<Option<usize>>>,
++ offline_signal: Arc<RwLock<Option<usize>>>,
+ sender: Sender<Action>,
+ }
+
+@@ -71,9 +71,9 @@ impl ErrorBar {
+ detail_button: &Button,
+ login_button: &Button,
+ offline_button: &Button,
+- detail_signal: &Arc<RwLock<Option<u64>>>,
+- relogin_signal: &Arc<RwLock<Option<u64>>>,
+- offline_signal: &Arc<RwLock<Option<u64>>>,
++ detail_signal: &Arc<RwLock<Option<usize>>>,
++ relogin_signal: &Arc<RwLock<Option<usize>>>,
++ offline_signal: &Arc<RwLock<Option<usize>>>,
+ ) {
+ info_bar.set_revealed(false);
+ GtkUtil::disconnect_signal(*detail_signal.read(), detail_button);
+@@ -114,7 +114,7 @@ impl ErrorBar {
+ log::info!("retry login");
+ Util::send(&sender, Action::RetryLogin);
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ );
+
+ *self.offline_signal.write() = Some(
+@@ -141,7 +141,7 @@ impl ErrorBar {
+ );
+ Util::send(&sender, Action::SetOfflineMode(true));
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ );
+ }
+
+@@ -155,7 +155,7 @@ impl ErrorBar {
+ error!("Failed to spawn ErrorDialog. Parent window not found.");
+ }
+ })
+- .to_glib(),
++ .to_glib() as usize,
+ );
+ }
+ }
+diff --git a/src/login_screen/password_login.rs b/src/login_screen/password_login.rs
+index be1e1fd..683d3e9 100644
+--- a/src/login_screen/password_login.rs
++++ b/src/login_screen/password_login.rs
+@@ -34,16 +34,16 @@ pub struct PasswordLogin {
+ login_button: gtk::Button,
+ ignore_tls_button: gtk::Button,
+ error_details_button: gtk::Button,
+- info_bar_close_signal: RwLock<Option<u64>>,
+- info_bar_response_signal: RwLock<Option<u64>>,
+- url_entry_signal: RwLock<Option<u64>>,
+- user_entry_signal: RwLock<Option<u64>>,
+- pass_entry_signal: RwLock<Option<u64>>,
+- http_user_entry_signal: RwLock<Option<u64>>,
+- http_pass_entry_signal: RwLock<Option<u64>>,
+- login_button_signal: RwLock<Option<u64>>,
+- ignore_tls_signal: RwLock<Option<u64>>,
+- error_details_signal: RwLock<Option<u64>>,
++ info_bar_close_signal: RwLock<Option<usize>>,
++ info_bar_response_signal: RwLock<Option<usize>>,
++ url_entry_signal: RwLock<Option<usize>>,
++ user_entry_signal: RwLock<Option<usize>>,
++ pass_entry_signal: RwLock<Option<usize>>,
++ http_user_entry_signal: RwLock<Option<usize>>,
++ http_pass_entry_signal: RwLock<Option<usize>>,
++ login_button_signal: RwLock<Option<usize>>,
++ ignore_tls_signal: RwLock<Option<usize>>,
++ error_details_signal: RwLock<Option<usize>>,
+ }
+
+ impl PasswordLogin {
+@@ -129,7 +129,7 @@ impl PasswordLogin {
+ .connect_close(|info_bar| {
+ PasswordLogin::hide_info_bar(info_bar);
+ })
+- .to_glib(),
++ .to_glib() as usize,
+ );
+ self.info_bar_response_signal.write().replace(
+ self.info_bar
+@@ -138,7 +138,7 @@ impl PasswordLogin {
+ PasswordLogin::hide_info_bar(info_bar);
+ }
+ })
+- .to_glib(),
++ .to_glib() as usize,
+ );
+
+ if let LoginGUI::Password(pw_gui_desc) = &info.login_gui {
+@@ -157,19 +157,19 @@ impl PasswordLogin {
+ // check if 'login' should be clickable
+ self.url_entry_signal
+ .write()
+- .replace(self.setup_entry(&self.url_entry, &pw_gui_desc).to_glib());
++ .replace(self.setup_entry(&self.url_entry, &pw_gui_desc).to_glib() as usize);
+ self.user_entry_signal
+ .write()
+- .replace(self.setup_entry(&self.user_entry, &pw_gui_desc).to_glib());
++ .replace(self.setup_entry(&self.user_entry, &pw_gui_desc).to_glib() as usize);
+ self.pass_entry_signal
+ .write()
+- .replace(self.setup_entry(&self.pass_entry, &pw_gui_desc).to_glib());
++ .replace(self.setup_entry(&self.pass_entry, &pw_gui_desc).to_glib() as usize);
+ self.http_user_entry_signal
+ .write()
+- .replace(self.setup_entry(&self.http_user_entry, &pw_gui_desc).to_glib());
++ .replace(self.setup_entry(&self.http_user_entry, &pw_gui_desc).to_glib() as usize);
+ self.http_pass_entry_signal
+ .write()
+- .replace(self.setup_entry(&self.http_pass_entry, &pw_gui_desc).to_glib());
++ .replace(self.setup_entry(&self.http_pass_entry, &pw_gui_desc).to_glib() as usize);
+
+ // harvest login data
+ self.login_button_signal.write().replace(
+@@ -231,7 +231,7 @@ impl PasswordLogin {
+ let login_data = LoginData::Password(login_data);
+ Util::send(&sender, Action::Login(login_data));
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ );
+
+ return Ok(());
+@@ -324,7 +324,7 @@ impl PasswordLogin {
+ .expect("MainWindow is not a parent of password login error details button.");
+ let _dialog = ErrorDialog::new(&error, &parent);
+ })
+- .to_glib(),
++ .to_glib() as usize,
+ );
+ self.info_bar.set_visible(true);
+ self.info_bar.set_revealed(true);
+diff --git a/src/login_screen/web_login.rs b/src/login_screen/web_login.rs
+index 641415e..274c4fc 100644
+--- a/src/login_screen/web_login.rs
++++ b/src/login_screen/web_login.rs
+@@ -3,14 +3,7 @@ use crate::app::Action;
+ use crate::error_dialog::ErrorDialog;
+ use crate::i18n::i18n;
+ use crate::util::{BuilderHelper, GtkUtil, Util, GTK_BUILDER_ERROR};
+-use glib::{
+- clone,
+- object::ObjectExt,
+- signal::SignalHandlerId,
+- source::Continue,
+- translate::{FromGlib, ToGlib},
+- Sender,
+-};
++use glib::{clone, source::Continue, translate::ToGlib, Sender};
+ use gtk::{Box, BoxExt, Button, ButtonExt, InfoBar, InfoBarExt, Label, LabelExt, ResponseType, WidgetExt};
+ use news_flash::models::{LoginData, LoginGUI, OAuthData, PluginInfo};
+ use news_flash::{NewsFlashError, NewsFlashErrorKind};
+@@ -26,10 +19,10 @@ pub struct WebLogin {
+ info_bar: gtk::InfoBar,
+ info_bar_label: gtk::Label,
+ error_details_button: gtk::Button,
+- redirect_signal_id: Rc<RwLock<Option<u64>>>,
+- info_bar_close_signal: RwLock<Option<u64>>,
+- info_bar_response_signal: RwLock<Option<u64>>,
+- error_details_signal: RwLock<Option<u64>>,
++ redirect_signal_id: Rc<RwLock<Option<usize>>>,
++ info_bar_close_signal: RwLock<Option<usize>>,
++ info_bar_response_signal: RwLock<Option<usize>>,
++ error_details_signal: RwLock<Option<usize>>,
+ }
+
+ impl WebLogin {
+@@ -86,7 +79,7 @@ impl WebLogin {
+ let parent = GtkUtil::get_main_window(button).expect("MainWindow is not parent of details button.");
+ let _dialog = ErrorDialog::new(&error, &parent);
+ })
+- .to_glib(),
++ .to_glib() as usize,
+ );
+
+ self.info_bar.set_visible(true);
+@@ -100,7 +93,7 @@ impl WebLogin {
+ .connect_close(|info_bar| {
+ WebLogin::hide_info_bar(info_bar);
+ })
+- .to_glib(),
++ .to_glib() as usize,
+ );
+ self.info_bar_response_signal.write().replace(
+ self.info_bar
+@@ -109,7 +102,7 @@ impl WebLogin {
+ WebLogin::hide_info_bar(info_bar);
+ }
+ })
+- .to_glib(),
++ .to_glib() as usize,
+ );
+
+ if let LoginGUI::OAuth(web_login_desc) = info.login_gui.clone() {
+@@ -129,10 +122,7 @@ impl WebLogin {
+ url: uri.as_str().to_owned(),
+ };
+ let oauth_data = LoginData::OAuth(oauth_data);
+- if let Some(signal_id) = *redirect_signal_id.read() {
+- let signal_id = SignalHandlerId::from_glib(signal_id);
+- webview.disconnect(signal_id);
+- }
++ GtkUtil::disconnect_signal(*redirect_signal_id.read(), webview);
+ webview.stop_loading();
+ Util::send(&sender, Action::Login(oauth_data));
+ }
+@@ -145,7 +135,7 @@ impl WebLogin {
+ }
+ }));
+
+- self.redirect_signal_id.write().replace(signal_id.to_glib());
++ self.redirect_signal_id.write().replace(signal_id.to_glib() as usize);
+ return Ok(());
+ }
+
+diff --git a/src/reset_page.rs b/src/reset_page.rs
+index 6382cac..f088ff2 100644
+--- a/src/reset_page.rs
++++ b/src/reset_page.rs
+@@ -12,7 +12,7 @@ pub struct ResetPage {
+ reset_button: Button,
+ info_bar: InfoBar,
+ error_details_button: Button,
+- error_details_signal: RwLock<Option<u64>>,
++ error_details_signal: RwLock<Option<usize>>,
+ }
+
+ impl ResetPage {
+@@ -72,7 +72,7 @@ impl ResetPage {
+ .expect("MainWindow is not a parent of password login error details button.");
+ let _dialog = ErrorDialog::new(&error, &parent);
+ })
+- .to_glib(),
++ .to_glib() as usize,
+ );
+
+ self.info_bar.set_revealed(true);
+diff --git a/src/sidebar/feed_list/category_row.rs b/src/sidebar/feed_list/category_row.rs
+index b33e694..0b6f580 100644
+--- a/src/sidebar/feed_list/category_row.rs
++++ b/src/sidebar/feed_list/category_row.rs
+@@ -32,7 +32,7 @@ pub struct CategoryRow {
+ item_count_event: EventBox,
+ title: Label,
+ expanded: bool,
+- connected_signals: Vec<(u64, Widget)>,
++ connected_signals: Vec<(usize, Widget)>,
+ }
+
+ impl CategoryRow {
+@@ -96,7 +96,7 @@ impl CategoryRow {
+ arrow_image.set_opacity(1.0);
+ Inhibit(false)
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ arrow_event.clone().upcast::<Widget>(),
+ ));
+
+@@ -106,7 +106,7 @@ impl CategoryRow {
+ arrow_image.set_opacity(0.8);
+ Inhibit(false)
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ arrow_event.clone().upcast::<Widget>(),
+ ));
+
+@@ -127,7 +127,7 @@ impl CategoryRow {
+ Inhibit(false)
+ }),
+ )
+- .to_glib(),
++ .to_glib() as usize,
+ arrow_event.clone().upcast::<Widget>(),
+ ));
+
+@@ -155,7 +155,7 @@ impl CategoryRow {
+ features: &Arc<RwLock<Option<PluginCapabilities>>>,
+ label: String,
+ sender: Sender<Action>,
+- ) -> Option<(u64, Widget)> {
++ ) -> Option<(usize, Widget)> {
+ row.set_activatable(true);
+ row.set_can_focus(false);
+ row.get_style_context().remove_class("activatable");
+@@ -240,7 +240,7 @@ impl CategoryRow {
+ row.set_state_flags(StateFlags::PRELIGHT, false);
+
+ Inhibit(true)
+- })).to_glib(), eventbox.clone().upcast::<Widget>()))
++ })).to_glib() as usize, eventbox.clone().upcast::<Widget>()))
+ } else {
+ None
+ }
+diff --git a/src/sidebar/feed_list/feed_row.rs b/src/sidebar/feed_list/feed_row.rs
+index 86529ad..248332b 100644
+--- a/src/sidebar/feed_list/feed_row.rs
++++ b/src/sidebar/feed_list/feed_row.rs
+@@ -39,7 +39,7 @@ pub struct FeedRow {
+ revealer: Revealer,
+ hide_timeout: Arc<RwLock<Option<u32>>>,
+ favicon: Image,
+- connected_signals: Vec<(u64, Widget)>,
++ connected_signals: Vec<(usize, Widget)>,
+ }
+
+ impl FeedRow {
+@@ -100,7 +100,7 @@ impl FeedRow {
+ id: &FeedID,
+ parent_id: &CategoryID,
+ label: String,
+- ) -> Vec<(u64, Widget)> {
++ ) -> Vec<(usize, Widget)> {
+ let mut vec = Vec::new();
+
+ row.set_activatable(true);
+@@ -135,7 +135,7 @@ impl FeedRow {
+ }
+ }
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ revealer.clone().upcast::<Widget>(),
+ ));
+
+@@ -152,7 +152,7 @@ impl FeedRow {
+ style_context.remove_class("drag-icon");
+ drag_context.drag_set_icon_surface(&surface);
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ revealer.clone().upcast::<Widget>(),
+ ));
+
+@@ -231,7 +231,7 @@ impl FeedRow {
+ row.set_state_flags(StateFlags::PRELIGHT, false);
+
+ Inhibit(true)
+- })).to_glib(), row.clone().upcast::<Widget>()));
++ })).to_glib() as usize, row.clone().upcast::<Widget>()));
+ }
+
+ vec
+diff --git a/src/tag_popover/mod.rs b/src/tag_popover/mod.rs
+index af0905e..9b6a38e 100644
+--- a/src/tag_popover/mod.rs
++++ b/src/tag_popover/mod.rs
+@@ -28,11 +28,11 @@ pub struct TagPopover {
+ unassigned_tags_list_stack: Stack,
+ assigned_tags: Arc<RwLock<Vec<Tag>>>,
+ unassigned_tags: Arc<RwLock<Vec<Tag>>>,
+- add_button_signal: Option<u64>,
+- back_button_signal: Option<u64>,
+- popover_close_signal: Option<u64>,
+- assigned_click_signal: Option<u64>,
+- unassigned_click_signal: Option<u64>,
++ add_button_signal: Option<usize>,
++ back_button_signal: Option<usize>,
++ popover_close_signal: Option<usize>,
++ assigned_click_signal: Option<usize>,
++ unassigned_click_signal: Option<usize>,
+ }
+
+ impl TagPopover {
+@@ -55,7 +55,7 @@ impl TagPopover {
+ .connect_clicked(clone!(@weak main_stack => @default-panic, move |_button| {
+ main_stack.set_visible_child_full("possible_tags", StackTransitionType::SlideLeft);
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ );
+
+ let back_button_signal = Some(
+@@ -63,7 +63,7 @@ impl TagPopover {
+ .connect_clicked(clone!(@weak main_stack => @default-panic, move |_button| {
+ main_stack.set_visible_child_full("assigned_tags", StackTransitionType::SlideRight);
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ );
+
+ let popover_close_signal = Some(
+@@ -71,7 +71,7 @@ impl TagPopover {
+ .connect_closed(clone!(@weak main_stack => @default-panic, move |_button| {
+ main_stack.set_visible_child_full("assigned_tags", StackTransitionType::None);
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ );
+
+ let assigned_click_signal = Some(
+@@ -79,7 +79,7 @@ impl TagPopover {
+ .connect_row_activated(|_list, _row| {
+ info!("click");
+ })
+- .to_glib(),
++ .to_glib() as usize,
+ );
+
+ let unassigned_click_signal = Some(
+@@ -130,7 +130,7 @@ impl TagPopover {
+ main_stack.set_visible_child_full("assigned_tags", StackTransitionType::SlideRight);
+ list.remove(row);
+ }))
+- .to_glib(),
++ .to_glib() as usize,
+ );
+
+ let popover = TagPopover {
+diff --git a/src/util/gtk_util.rs b/src/util/gtk_util.rs
+index d8ec0f0..7189533 100644
+--- a/src/util/gtk_util.rs
++++ b/src/util/gtk_util.rs
+@@ -155,9 +155,12 @@ impl GtkUtil {
+ None
+ }
+
+- pub fn disconnect_signal<T: ObjectExt>(signal_id: Option<u64>, widget: &T) {
++ pub fn disconnect_signal<T: ObjectExt>(signal_id: Option<usize>, widget: &T) {
+ if let Some(signal_id) = signal_id {
+- let signal_id = SignalHandlerId::from_glib(signal_id);
++ #[cfg(target_pointer_width = "64")]
++ let signal_id = SignalHandlerId::from_glib(signal_id as u64);
++ #[cfg(target_pointer_width = "32")]
++ let signal_id = SignalHandlerId::from_glib(signal_id as u32);
+ widget.disconnect(signal_id);
+ }
+ //warn!("Signal ID to disconnect is NONE");
+--
+2.27.0
+
diff --git a/newsflash.spec b/newsflash.spec
index 084a0f7..d2e60c5 100644
--- a/newsflash.spec
+++ b/newsflash.spec
@@ -2,7 +2,7 @@
Name: newsflash
Version: 1.0~rc1
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: Modern feed reader
# (MIT or ASL 2.0) and BSD
@@ -19,10 +19,14 @@ Summary: Modern feed reader
License: GPLv3+ and BSD and ASL 2.0 and MIT and Unlicense and zlib
URL: https://gitlab.com/news-flash/news_flash_gtk
Source0: https://gitlab.com/news-flash/news_flash_gtk/-/archive/%{version_no_tilde...
+# https://gitlab.com/news-flash/news_flash_gtk/-/issues/66
+# https://gitlab.com/news-flash/news_flash_gtk/-/commit/38361e7c8d644b10d9b...
+Patch0001: 0001-use-usize-where-possible.patch
+# https://gitlab.com/news-flash/news_flash_gtk/-/issues/77
+# https://gitlab.com/news-flash/news_flash_gtk/-/commit/2a9405ea8148329fa89...
+Patch0002: 0001-dont-call-show_all-in-app-constructor.patch
ExclusiveArch: %{rust_arches}
-# https://gitlab.com/news-flash/news_flash_gtk/-/issues/66
-ExcludeArch: %{ix86} %{arm}
BuildRequires: rust-packaging
BuildRequires: meson
@@ -48,8 +52,6 @@ sed -i \
# We will build by cargo ourselves
sed -i -e '/\(build_by_default\|install\)/s/true/false/' src/meson.build
sed -i -e '/dependency/d' meson.build
-# https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2893
-sed -i -e '/app.window.widget.show_all/d' src/app.rs
%cargo_prep
%generate_buildrequires
@@ -79,6 +81,10 @@ appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/com.gitla
%{_datadir}/metainfo/com.gitlab.newsflash.appdata.xml
%changelog
+* Fri Jun 12 2020 Igor Raits <ignatenkobrain(a)fedoraproject.org> - 1.0~rc1-3
+- Backport fix for 32bit platforms
+- Update fix for missing icon in GNOME Shell
+
* Fri Jun 12 2020 Igor Raits <ignatenkobrain(a)fedoraproject.org> - 1.0~rc1-2
- Fixup showing icon
3 years, 10 months
Architecture specific change in rpms/scilab.git
by githook-noreply@fedoraproject.org
The package rpms/scilab.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/scilab.git/commit/?id=3983bff2070....
Change:
-ExcludeArch: s390x armv7hl i686
Thanks.
Full change:
============
commit 3983bff2070e94a46c0c12e03f8727ffd3ee6cef
Author: Miro Hrončok <miro(a)hroncok.cz>
Date: Fri Jun 12 10:51:30 2020 +0200
Orphaned for 6+ weeks
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 3d71f88..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,11 +0,0 @@
-*~
-/clog
-/.build-*.log
-/results_scilab/
-/noarch/
-/x86_64/
-/i686/
-/scilab-*/
-/scilab-*.src.rpm
-/scilab-*-src.tar.gz
-
diff --git a/dead.package b/dead.package
new file mode 100644
index 0000000..5204a84
--- /dev/null
+++ b/dead.package
@@ -0,0 +1 @@
+Orphaned for 6+ weeks
diff --git a/scilab-0001-Use-pkcon-to-install-doc-package.patch b/scilab-0001-Use-pkcon-to-install-doc-package.patch
deleted file mode 100644
index d75554a..0000000
--- a/scilab-0001-Use-pkcon-to-install-doc-package.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Index: scilab-6.0.2/modules/helptools/macros/help.sci
-===================================================================
---- scilab-6.0.2.orig/modules/helptools/macros/help.sci
-+++ scilab-6.0.2/modules/helptools/macros/help.sci
-@@ -58,7 +58,8 @@ function help(varargin)
- error(msprintf(gettext("%s: The help browser is disabled in %s mode.\n"), "help", getscilabmode()));
- end
- else
-- error(msprintf(gettext("%s: help file(.jar) is not installed.\n"), "help"));
-+ warning(msprintf(gettext("%s: help file(.jar) is not installed.\n"), "help"));
-+ unix_w("pkcon install scilab-doc");
- end
-
- endfunction
diff --git a/scilab-0002-jogl-2.3.2.patch b/scilab-0002-jogl-2.3.2.patch
deleted file mode 100644
index f4b8b5e..0000000
--- a/scilab-0002-jogl-2.3.2.patch
+++ /dev/null
@@ -1,556 +0,0 @@
-commit db79126ed25fc254e83f8a96b164cb2dbf0d6204
-Author: Clément DAVID <clement.david(a)scilab-enterprises.com>
-Date: Wed Dec 2 15:09:07 2015 +0100
-
- Update to JoGL 2.3.2
-
- Change-Id: Ic188bb392d1dd8441d1a4132004f77b63a3353df
-
-Index: scilab-6.0.2/configure
-===================================================================
---- scilab-6.0.2.orig/configure
-+++ scilab-6.0.2/configure
-@@ -15377,7 +15377,7 @@ EOF
-
- CLASSPATH=$ac_java_classpath
- export CLASSPATH
-- cmd="$JAVA conftestSharedChecker jogl2 javax.media.opengl.glu.GLUnurbs $jar_resolved "
-+ cmd="$JAVA conftestSharedChecker jogl2 jogamp.opengl.x11.glx.GLX $jar_resolved "
- if (echo $cmd >&5 ; eval $cmd >conftestSharedChecker.java.output 2>&5); then
- PACKAGE_JAR_FILE=$(tail -n 1 conftestSharedChecker.java.output);
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PACKAGE_JAR_FILE" >&5
-@@ -15389,10 +15389,10 @@ $as_echo "$PACKAGE_JAR_FILE" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- $as_echo "no" >&6; }
- if test "" = "yes"; then
-- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not find or use the Java package/jar jogl2 used by Scilab 3D rendering - Version 2.0 (looking for package javax.media.opengl.glu.GLUnurbs)" >&5
--$as_echo "$as_me: WARNING: Could not find or use the Java package/jar jogl2 used by Scilab 3D rendering - Version 2.0 (looking for package javax.media.opengl.glu.GLUnurbs)" >&2;}
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not find or use the Java package/jar jogl2 used by Scilab 3D rendering - Version 2.3 (looking for package jogamp.opengl.x11.glx.GLX)" >&5
-+$as_echo "$as_me: WARNING: Could not find or use the Java package/jar jogl2 used by Scilab 3D rendering - Version 2.3 (looking for package jogamp.opengl.x11.glx.GLX)" >&2;}
- else
-- as_fn_error $? "Could not find or use the Java package/jar jogl2 used by Scilab 3D rendering - Version 2.0 (looking for package javax.media.opengl.glu.GLUnurbs)" "$LINENO" 5
-+ as_fn_error $? "Could not find or use the Java package/jar jogl2 used by Scilab 3D rendering - Version 2.3 (looking for package jogamp.opengl.x11.glx.GLX)" "$LINENO" 5
- fi
- fi
- if test -f conftestSharedChecker.java.output; then
-@@ -15403,8 +15403,8 @@ $as_echo "$as_me: WARNING: Could not fin
-
-
-
-- { $as_echo "$as_me:${as_lineno-$LINENO}: checking minimal version (Specification-Version 2.2) of jogl2" >&5
--$as_echo_n "checking minimal version (Specification-Version 2.2) of jogl2... " >&6; }
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking minimal version (Specification-Version 2.3) of jogl2" >&5
-+$as_echo_n "checking minimal version (Specification-Version 2.3) of jogl2... " >&6; }
- export JARFILE=$JOGL2;
- if test "x" == "x"; then
-
-@@ -15417,7 +15417,7 @@ import java.util.jar.JarFile;
-
- public class conftest {
- public static void main(String[] argv) {
-- String minVersion="2.2";
-+ String minVersion="2.3";
- try {
- String version = new JarFile(System.getenv("JARFILE")).getManifest().getMainAttributes().getValue("Specification-Version");
- System.out.println(version);
-@@ -15470,7 +15470,7 @@ EOF
- STDOUT=`cat conftest.java.output`
- fi
- echo "configure: CLASSPATH was $CLASSPATH" >&5
-- as_fn_error $? "Wrong version of jogl2. Expected at least 2.2. Found $STDOUT" "$LINENO" 5
-+ as_fn_error $? "Wrong version of jogl2. Expected at least 2.3. Found $STDOUT" "$LINENO" 5
- fi
- fi
- if test -f conftest.java.output; then
-@@ -15480,7 +15480,7 @@ EOF
- echo "configure: failed program was:" >&5
- cat conftest.java >&5
- echo "configure: CLASSPATH was $CLASSPATH" >&5
-- as_fn_error $? "Wrong version of jogl2. Expected at least 2.2. Found $STDOUT" "$LINENO" 5
-+ as_fn_error $? "Wrong version of jogl2. Expected at least 2.3. Found $STDOUT" "$LINENO" 5
- fi
-
- else
-@@ -15494,7 +15494,7 @@ import java.util.jar.JarFile;
-
- public class conftest {
- public static void main(String[] argv) {
-- String minVersion="2.2";
-+ String minVersion="2.3";
- try {
- String version = new JarFile(System.getenv("JARFILE")).getManifest().getMainAttributes().getValue("Specification-Version");
- System.out.println("Specification-Version" + ": " + version);
-@@ -15864,7 +15864,7 @@ EOF
-
- CLASSPATH=$ac_java_classpath
- export CLASSPATH
-- cmd="$JAVA conftestSharedChecker gluegen2-rt jogamp.common.os.MachineDescriptionRuntime $jar_resolved "
-+ cmd="$JAVA conftestSharedChecker gluegen2-rt com.jogamp.common.os.Platform $jar_resolved "
- if (echo $cmd >&5 ; eval $cmd >conftestSharedChecker.java.output 2>&5); then
- PACKAGE_JAR_FILE=$(tail -n 1 conftestSharedChecker.java.output);
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PACKAGE_JAR_FILE" >&5
-@@ -15876,10 +15876,10 @@ $as_echo "$PACKAGE_JAR_FILE" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- $as_echo "no" >&6; }
- if test "" = "yes"; then
-- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not find or use the Java package/jar gluegen2-rt used by Scilab 3D rendering (looking for package jogamp.common.os.MachineDescriptionRuntime)" >&5
--$as_echo "$as_me: WARNING: Could not find or use the Java package/jar gluegen2-rt used by Scilab 3D rendering (looking for package jogamp.common.os.MachineDescriptionRuntime)" >&2;}
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not find or use the Java package/jar gluegen2-rt used by Scilab 3D rendering (looking for package com.jogamp.common.os.Platform)" >&5
-+$as_echo "$as_me: WARNING: Could not find or use the Java package/jar gluegen2-rt used by Scilab 3D rendering (looking for package com.jogamp.common.os.Platform)" >&2;}
- else
-- as_fn_error $? "Could not find or use the Java package/jar gluegen2-rt used by Scilab 3D rendering (looking for package jogamp.common.os.MachineDescriptionRuntime)" "$LINENO" 5
-+ as_fn_error $? "Could not find or use the Java package/jar gluegen2-rt used by Scilab 3D rendering (looking for package com.jogamp.common.os.Platform)" "$LINENO" 5
- fi
- fi
- if test -f conftestSharedChecker.java.output; then
-Index: scilab-6.0.2/configure.ac
-===================================================================
---- scilab-6.0.2.orig/configure.ac
-+++ scilab-6.0.2/configure.ac
-@@ -942,11 +942,11 @@ if test "$with_javasci" != no -o "$with_
- AC_SUBST(SKINLF)
-
- # JOGL 2
-- AC_JAVA_CHECK_JAR([jogl2],[javax.media.opengl.glu.GLUnurbs],[Scilab 3D rendering - Version 2.0])
-+ AC_JAVA_CHECK_JAR([jogl2],[jogamp.opengl.x11.glx.GLX],[Scilab 3D rendering - Version 2.3])
- JOGL2=$PACKAGE_JAR_FILE
- AC_SUBST(JOGL2)
-
-- AC_JAVA_CHECK_VERSION_MANIFEST([jogl2],$JOGL2,[2.2],[Specification-Version])
-+ AC_JAVA_CHECK_VERSION_MANIFEST([jogl2],$JOGL2,[2.3],[Specification-Version])
-
- if test "$MACOSX" = 1; then
- echo "Check of the presence of libjogl.jnilib and libjogl_awt.jnilib disabled under Mac OS X"
-@@ -973,7 +973,7 @@ interface for JOGL2 - or libGL (OpenGL l
- fi
-
- # JoGL Native <=> Java connector
-- AC_JAVA_CHECK_JAR([gluegen2-rt],[jogamp.common.os.MachineDescriptionRuntime],[Scilab 3D rendering])
-+ AC_JAVA_CHECK_JAR([gluegen2-rt],[com.jogamp.common.os.Platform],[Scilab 3D rendering])
- GLUEGEN2_RT=$PACKAGE_JAR_FILE
- AC_SUBST(GLUEGEN2_RT)
-
-Index: scilab-6.0.2/modules/gui/src/java/org/scilab/modules/gui/SwingView.java
-===================================================================
---- scilab-6.0.2.orig/modules/gui/src/java/org/scilab/modules/gui/SwingView.java
-+++ scilab-6.0.2/modules/gui/src/java/org/scilab/modules/gui/SwingView.java
-@@ -88,10 +88,10 @@ import java.util.Map;
- import java.util.Set;
- import java.util.UUID;
-
--import javax.media.opengl.GL;
--import javax.media.opengl.GLCapabilities;
--import javax.media.opengl.GLProfile;
--import javax.media.opengl.awt.GLCanvas;
-+import com.jogamp.opengl.GL;
-+import com.jogamp.opengl.GLCapabilities;
-+import com.jogamp.opengl.GLProfile;
-+import com.jogamp.opengl.awt.GLCanvas;
- import javax.swing.JComponent;
- import javax.swing.JSeparator;
- import javax.swing.SwingUtilities;
-Index: scilab-6.0.2/modules/gui/src/java/org/scilab/modules/gui/bridge/ScilabBridge.java
-===================================================================
---- scilab-6.0.2.orig/modules/gui/src/java/org/scilab/modules/gui/bridge/ScilabBridge.java
-+++ scilab-6.0.2/modules/gui/src/java/org/scilab/modules/gui/bridge/ScilabBridge.java
-@@ -23,7 +23,7 @@ import java.awt.Cursor;
- import java.awt.Font;
- import java.awt.image.BufferedImage;
-
--import javax.media.opengl.GL;
-+import com.jogamp.opengl.GL;
-
- import org.scilab.modules.gui.canvas.Canvas;
- import org.scilab.modules.gui.canvas.ScilabCanvas;
-Index: scilab-6.0.2/modules/gui/src/java/org/scilab/modules/gui/bridge/canvas/SwingScilabCanvas.java
-===================================================================
---- scilab-6.0.2.orig/modules/gui/src/java/org/scilab/modules/gui/bridge/canvas/SwingScilabCanvas.java
-+++ scilab-6.0.2/modules/gui/src/java/org/scilab/modules/gui/bridge/canvas/SwingScilabCanvas.java
-@@ -35,8 +35,8 @@ import java.awt.event.MouseListener;
- import java.awt.event.MouseMotionListener;
- import java.awt.image.BufferedImage;
-
--import javax.media.opengl.GL;
--import javax.media.opengl.GLAutoDrawable;
-+import com.jogamp.opengl.GL;
-+import com.jogamp.opengl.GLAutoDrawable;
- import javax.swing.JPanel;
-
- import org.scilab.forge.scirenderer.Canvas;
-Index: scilab-6.0.2/modules/gui/src/java/org/scilab/modules/gui/bridge/canvas/SwingScilabCanvasImpl.java
-===================================================================
---- scilab-6.0.2.orig/modules/gui/src/java/org/scilab/modules/gui/bridge/canvas/SwingScilabCanvasImpl.java
-+++ scilab-6.0.2/modules/gui/src/java/org/scilab/modules/gui/bridge/canvas/SwingScilabCanvasImpl.java
-@@ -22,12 +22,12 @@ import java.awt.HeadlessException;
- import java.util.Calendar;
- import java.util.StringTokenizer;
-
--import javax.media.opengl.GL;
--import javax.media.opengl.GLCapabilities;
--import javax.media.opengl.GLException;
--import javax.media.opengl.GLProfile;
--import javax.media.opengl.awt.GLCanvas;
--import javax.media.opengl.awt.GLJPanel;
-+import com.jogamp.opengl.GL;
-+import com.jogamp.opengl.GLCapabilities;
-+import com.jogamp.opengl.GLException;
-+import com.jogamp.opengl.GLProfile;
-+import com.jogamp.opengl.awt.GLCanvas;
-+import com.jogamp.opengl.awt.GLJPanel;
-
- import org.scilab.modules.action_binding.InterpreterManagement;
- import org.scilab.modules.commons.OS;
-Index: scilab-6.0.2/modules/gui/src/java/org/scilab/modules/gui/canvas/Canvas.java
-===================================================================
---- scilab-6.0.2.orig/modules/gui/src/java/org/scilab/modules/gui/canvas/Canvas.java
-+++ scilab-6.0.2/modules/gui/src/java/org/scilab/modules/gui/canvas/Canvas.java
-@@ -17,7 +17,7 @@ package org.scilab.modules.gui.canvas;
-
- import java.awt.image.BufferedImage;
-
--import javax.media.opengl.GL;
-+import com.jogamp.opengl.GL;
-
- import org.scilab.modules.gui.dockable.Dockable;
-
-Index: scilab-6.0.2/modules/gui/src/java/org/scilab/modules/gui/canvas/ScilabCanvas.java
-===================================================================
---- scilab-6.0.2.orig/modules/gui/src/java/org/scilab/modules/gui/canvas/ScilabCanvas.java
-+++ scilab-6.0.2/modules/gui/src/java/org/scilab/modules/gui/canvas/ScilabCanvas.java
-@@ -19,7 +19,7 @@ package org.scilab.modules.gui.canvas;
-
- import java.awt.image.BufferedImage;
-
--import javax.media.opengl.GL;
-+import com.jogamp.opengl.GL;
-
- import org.scilab.modules.gui.bridge.ScilabBridge;
- import org.scilab.modules.gui.dockable.ScilabDockable;
-Index: scilab-6.0.2/modules/gui/src/java/org/scilab/modules/gui/canvas/ScilabCanvasBridge.java
-===================================================================
---- scilab-6.0.2.orig/modules/gui/src/java/org/scilab/modules/gui/canvas/ScilabCanvasBridge.java
-+++ scilab-6.0.2/modules/gui/src/java/org/scilab/modules/gui/canvas/ScilabCanvasBridge.java
-@@ -17,7 +17,7 @@ package org.scilab.modules.gui.canvas;
-
- import java.awt.image.BufferedImage;
-
--import javax.media.opengl.GL;
-+import com.jogamp.opengl.GL;
-
- import org.scilab.modules.gui.bridge.canvas.SwingScilabCanvas;
- import org.scilab.modules.gui.utils.Position;
-Index: scilab-6.0.2/modules/gui/src/java/org/scilab/modules/gui/canvas/SimpleCanvas.java
-===================================================================
---- scilab-6.0.2.orig/modules/gui/src/java/org/scilab/modules/gui/canvas/SimpleCanvas.java
-+++ scilab-6.0.2/modules/gui/src/java/org/scilab/modules/gui/canvas/SimpleCanvas.java
-@@ -18,7 +18,7 @@ package org.scilab.modules.gui.canvas;
- import org.scilab.modules.gui.utils.Position;
- import org.scilab.modules.gui.utils.Size;
-
--import javax.media.opengl.GL;
-+import com.jogamp.opengl.GL;
- import java.awt.image.BufferedImage;
-
- /**
-Index: scilab-6.0.2/modules/scirenderer/scirenderer-libs.properties
-===================================================================
---- scilab-6.0.2.orig/modules/scirenderer/scirenderer-libs.properties
-+++ scilab-6.0.2/modules/scirenderer/scirenderer-libs.properties
-@@ -1,7 +1,7 @@
- ; Define all libs needed by scirenderer
-
- ; Uncomment this line and declare path to jogl2.jar gluegen2-rt.jar jlatexmath.jar and native libraries
--jogl2.jar = /usr/share/java/jogl2.jar
--gluegen2.jar = /usr/share/java/gluegen2-rt.jar
-+jogl2.jar = /usr/lib/java/jogl2.jar
-+gluegen2.jar = /usr/lib/java/gluegen2-rt.jar
- jlatexmath.jar = /usr/share/java/jlatexmath.jar
- jni.path = /usr/lib/jni
-Index: scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/JoGLCanvas.java
-===================================================================
---- scilab-6.0.2.orig/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/JoGLCanvas.java
-+++ scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/JoGLCanvas.java
-@@ -19,16 +19,16 @@ import java.awt.image.BufferedImage;
- import java.lang.reflect.InvocationTargetException;
- import java.util.concurrent.Semaphore;
-
--import javax.media.opengl.DebugGL2;
--import javax.media.opengl.GL2;
--import javax.media.opengl.GLAutoDrawable;
--import javax.media.opengl.GLCapabilities;
--import javax.media.opengl.GLContext;
--import javax.media.opengl.GLDrawableFactory;
--import javax.media.opengl.GLEventListener;
--import javax.media.opengl.GLException;
--import javax.media.opengl.GLOffscreenAutoDrawable;
--import javax.media.opengl.GLProfile;
-+import com.jogamp.opengl.DebugGL2;
-+import com.jogamp.opengl.GL2;
-+import com.jogamp.opengl.GLAutoDrawable;
-+import com.jogamp.opengl.GLCapabilities;
-+import com.jogamp.opengl.GLContext;
-+import com.jogamp.opengl.GLDrawableFactory;
-+import com.jogamp.opengl.GLEventListener;
-+import com.jogamp.opengl.GLException;
-+import com.jogamp.opengl.GLOffscreenAutoDrawable;
-+import com.jogamp.opengl.GLProfile;
- import javax.swing.SwingUtilities;
-
- import org.scilab.forge.scirenderer.Canvas;
-Index: scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/JoGLCanvasFactory.java
-===================================================================
---- scilab-6.0.2.orig/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/JoGLCanvasFactory.java
-+++ scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/JoGLCanvasFactory.java
-@@ -16,7 +16,7 @@ package org.scilab.forge.scirenderer.imp
-
- import org.scilab.forge.scirenderer.Canvas;
-
--import javax.media.opengl.GLAutoDrawable;
-+import com.jogamp.opengl.GLAutoDrawable;
-
- /**
- * @author Pierre Lando
-Index: scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/JoGLCapacity.java
-===================================================================
---- scilab-6.0.2.orig/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/JoGLCapacity.java
-+++ scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/JoGLCapacity.java
-@@ -14,7 +14,7 @@
-
- package org.scilab.forge.scirenderer.implementation.jogl;
-
--import javax.media.opengl.GL2;
-+import com.jogamp.opengl.GL2;
-
- /**
- * This class store current OpenGl context capacity.
-Index: scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/JoGLDrawingTools.java
-===================================================================
---- scilab-6.0.2.orig/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/JoGLDrawingTools.java
-+++ scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/JoGLDrawingTools.java
-@@ -34,7 +34,7 @@ import org.scilab.forge.scirenderer.tran
- import org.scilab.forge.scirenderer.tranformations.TransformationManagerListener;
- import org.scilab.forge.scirenderer.tranformations.Vector3d;
-
--import javax.media.opengl.GL2;
-+import com.jogamp.opengl.GL2;
-
- /**
- *
-Index: scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/JoGLParameters.java
-===================================================================
---- scilab-6.0.2.orig/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/JoGLParameters.java
-+++ scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/JoGLParameters.java
-@@ -14,8 +14,8 @@
-
- package org.scilab.forge.scirenderer.implementation.jogl;
-
--import javax.media.opengl.GL;
--import javax.media.opengl.glu.GLU;
-+import com.jogamp.opengl.GL;
-+import com.jogamp.opengl.glu.GLU;
-
- /**
- * @author Pierre Lando
-Index: scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/buffers/JoGLBuffersManager.java
-===================================================================
---- scilab-6.0.2.orig/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/buffers/JoGLBuffersManager.java
-+++ scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/buffers/JoGLBuffersManager.java
-@@ -19,7 +19,7 @@ import org.scilab.forge.scirenderer.buff
- import org.scilab.forge.scirenderer.buffers.ElementsBuffer;
- import org.scilab.forge.scirenderer.buffers.IndicesBuffer;
-
--import javax.media.opengl.GL2;
-+import com.jogamp.opengl.GL2;
- import java.util.Collection;
- import java.util.HashSet;
- import java.util.Set;
-Index: scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/buffers/JoGLDataBuffer.java
-===================================================================
---- scilab-6.0.2.orig/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/buffers/JoGLDataBuffer.java
-+++ scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/buffers/JoGLDataBuffer.java
-@@ -16,7 +16,7 @@ package org.scilab.forge.scirenderer.imp
-
- import org.scilab.forge.scirenderer.buffers.DataBuffer;
-
--import javax.media.opengl.GL;
-+import com.jogamp.opengl.GL;
- import java.nio.Buffer;
-
- /**
-Index: scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/buffers/JoGLElementsBuffer.java
-===================================================================
---- scilab-6.0.2.orig/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/buffers/JoGLElementsBuffer.java
-+++ scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/buffers/JoGLElementsBuffer.java
-@@ -16,7 +16,7 @@ package org.scilab.forge.scirenderer.imp
-
- import org.scilab.forge.scirenderer.buffers.ElementsBuffer;
-
--import javax.media.opengl.GL2;
-+import com.jogamp.opengl.GL2;
- import java.nio.Buffer;
- import java.nio.FloatBuffer;
-
-Index: scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/buffers/JoGLIndicesBuffer.java
-===================================================================
---- scilab-6.0.2.orig/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/buffers/JoGLIndicesBuffer.java
-+++ scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/buffers/JoGLIndicesBuffer.java
-@@ -16,7 +16,7 @@ package org.scilab.forge.scirenderer.imp
-
- import org.scilab.forge.scirenderer.buffers.IndicesBuffer;
-
--import javax.media.opengl.GL;
-+import com.jogamp.opengl.GL;
- import java.nio.Buffer;
- import java.nio.IntBuffer;
- import java.util.Collection;
-Index: scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/clipping/JoGLClippingManager.java
-===================================================================
---- scilab-6.0.2.orig/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/clipping/JoGLClippingManager.java
-+++ scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/clipping/JoGLClippingManager.java
-@@ -18,7 +18,7 @@ import org.scilab.forge.scirenderer.clip
- import org.scilab.forge.scirenderer.clipping.ClippingPlane;
- import org.scilab.forge.scirenderer.implementation.jogl.JoGLDrawingTools;
-
--import javax.media.opengl.GL2;
-+import com.jogamp.opengl.GL2;
-
- /**
- * @author Pierre Lando
-Index: scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/clipping/JoGLClippingPlane.java
-===================================================================
---- scilab-6.0.2.orig/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/clipping/JoGLClippingPlane.java
-+++ scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/clipping/JoGLClippingPlane.java
-@@ -20,7 +20,7 @@ import org.scilab.forge.scirenderer.tran
- import org.scilab.forge.scirenderer.tranformations.TransformationFactory;
- import org.scilab.forge.scirenderer.tranformations.Vector4d;
-
--import javax.media.opengl.GL2;
-+import com.jogamp.opengl.GL2;
-
- /**
- * @author Pierre Lando
-Index: scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/drawer/JoGLShapeDrawer.java
-===================================================================
---- scilab-6.0.2.orig/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/drawer/JoGLShapeDrawer.java
-+++ scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/drawer/JoGLShapeDrawer.java
-@@ -26,7 +26,7 @@ import org.scilab.forge.scirenderer.text
- import org.scilab.forge.scirenderer.lightning.LightManager;
- import org.scilab.forge.scirenderer.shapes.appearance.Material;
-
--import javax.media.opengl.GL2;
-+import com.jogamp.opengl.GL2;
- import java.nio.FloatBuffer;
- import java.nio.IntBuffer;
-
-Index: scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/lightning/JoGLLight.java
-===================================================================
---- scilab-6.0.2.orig/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/lightning/JoGLLight.java
-+++ scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/lightning/JoGLLight.java
-@@ -14,7 +14,7 @@
-
- package org.scilab.forge.scirenderer.implementation.jogl.lightning;
-
--import javax.media.opengl.GL2;
-+import com.jogamp.opengl.GL2;
-
- import org.scilab.forge.scirenderer.implementation.jogl.utils.GLShortCuts;
- import org.scilab.forge.scirenderer.lightning.Light;
-Index: scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/lightning/JoGLLightManager.java
-===================================================================
---- scilab-6.0.2.orig/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/lightning/JoGLLightManager.java
-+++ scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/lightning/JoGLLightManager.java
-@@ -20,7 +20,7 @@ import org.scilab.forge.scirenderer.ligh
- import org.scilab.forge.scirenderer.lightning.LightManager;
- import org.scilab.forge.scirenderer.shapes.appearance.Material;
-
--import javax.media.opengl.GL2;
-+import com.jogamp.opengl.GL2;
-
- /**
- * JoGL implementation of {@link LightManager}
-Index: scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/picking/GLPickingManager.java
-===================================================================
---- scilab-6.0.2.orig/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/picking/GLPickingManager.java
-+++ scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/picking/GLPickingManager.java
-@@ -14,7 +14,7 @@
-
- package org.scilab.forge.scirenderer.implementation.jogl.picking;
-
--import javax.media.opengl.GL;
-+import com.jogamp.opengl.GL;
-
- /**
- * @author Pierre Lando
-Index: scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/picking/JoGLPickingTools.java
-===================================================================
---- scilab-6.0.2.orig/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/picking/JoGLPickingTools.java
-+++ scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/picking/JoGLPickingTools.java
-@@ -19,7 +19,7 @@ import org.scilab.forge.scirenderer.impl
- import org.scilab.forge.scirenderer.picking.PickingTools;
- import org.scilab.forge.scirenderer.tranformations.Vector3d;
-
--import javax.media.opengl.GL2;
-+import com.jogamp.opengl.GL2;
- import java.awt.Point;
- import java.nio.FloatBuffer;
-
-Index: scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/renderer/JoGLRenderer.java
-===================================================================
---- scilab-6.0.2.orig/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/renderer/JoGLRenderer.java
-+++ scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/renderer/JoGLRenderer.java
-@@ -18,7 +18,7 @@ import org.scilab.forge.scirenderer.Draw
- import org.scilab.forge.scirenderer.implementation.jogl.JoGLDrawingTools;
- import org.scilab.forge.scirenderer.renderer.Renderer;
-
--import javax.media.opengl.GL2;
-+import com.jogamp.opengl.GL2;
-
- /**
- * @author Pierre Lando
-Index: scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/renderer/JoGLRendererManager.java
-===================================================================
---- scilab-6.0.2.orig/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/renderer/JoGLRendererManager.java
-+++ scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/renderer/JoGLRendererManager.java
-@@ -18,7 +18,7 @@ import org.scilab.forge.scirenderer.impl
- import org.scilab.forge.scirenderer.renderer.Renderer;
- import org.scilab.forge.scirenderer.renderer.RendererManager;
-
--import javax.media.opengl.GL2;
-+import com.jogamp.opengl.GL2;
- import java.util.HashSet;
- import java.util.Set;
- import java.util.Stack;
-Index: scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/texture/JoGLTextureManager.java
-===================================================================
---- scilab-6.0.2.orig/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/texture/JoGLTextureManager.java
-+++ scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/texture/JoGLTextureManager.java
-@@ -32,11 +32,11 @@ import org.scilab.forge.scirenderer.tran
- import org.scilab.forge.scirenderer.tranformations.Vector3d;
-
-
--import javax.media.opengl.GL;
--import javax.media.opengl.GL2;
--import javax.media.opengl.GL2ES1;
--import javax.media.opengl.GL2GL3;
--import javax.media.opengl.GLProfile;
-+import com.jogamp.opengl.GL;
-+import com.jogamp.opengl.GL2;
-+import com.jogamp.opengl.GL2ES1;
-+import com.jogamp.opengl.GL2GL3;
-+import com.jogamp.opengl.GLProfile;
- import java.awt.Dimension;
- import java.nio.ByteBuffer;
- import java.nio.FloatBuffer;
-Index: scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/utils/GLShortCuts.java
-===================================================================
---- scilab-6.0.2.orig/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/utils/GLShortCuts.java
-+++ scilab-6.0.2/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/utils/GLShortCuts.java
-@@ -17,7 +17,7 @@ package org.scilab.forge.scirenderer.imp
- import org.scilab.forge.scirenderer.shapes.appearance.Appearance;
- import org.scilab.forge.scirenderer.shapes.appearance.Color;
-
--import javax.media.opengl.GL2;
-+import com.jogamp.opengl.GL2;
-
- /**
- *
diff --git a/scilab-0003-fix-ppc64le-build.patch b/scilab-0003-fix-ppc64le-build.patch
deleted file mode 100644
index 339186a..0000000
--- a/scilab-0003-fix-ppc64le-build.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Index: scilab-6.0.2/configure
-===================================================================
---- scilab-6.0.2.orig/configure
-+++ scilab-6.0.2/configure
-@@ -12391,7 +12391,7 @@ $as_echo "$ac_cv_java_jvm_jni_working" >
- powerpc)
- machine=ppc
- ;;
-- ppc64|ppc64le)
-+ ppc64)
- machine=ppc64
- ;;
- armv*)
-Index: scilab-6.0.2/bin/scilab
-===================================================================
---- scilab-6.0.2.orig/bin/scilab
-+++ scilab-6.0.2/bin/scilab
-@@ -554,11 +554,15 @@ detect_java_vm() {
- armv*)
- proc="arm"
- ;;
-+ aarch32)
-+ proc="arm"
-+ ;;
- aarch64)
- proc="aarch64"
- ;;
- *)
-- echo "Could not find the Java configuration for the model <${MODEL}>. Please contact us on http://bugzilla.scilab.org"
-+ # best effort to simplify further arch support
-+ proc="$MODEL"
- ;;
- esac
- ;;
-@@ -613,7 +617,7 @@ detect_java_vm() {
- CLASSPATH="${CLASSPATH:+:$CLASSPATH}$SCI/modules/core/jar/org.scilab.modules.core.jar"
- # @TODO This is the default path of the official sun JVM.
- # It is different for other implementation of the JVM....
-- LD_LIBRARY_PATH="$JRE_HOME/lib/$proc/:$JRE_HOME/lib/$proc/server/:$JRE_HOME/lib/$proc/native_threads/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
-+ LD_LIBRARY_PATH="$JRE_HOME/lib/$proc/:$JRE_HOME/lib/$proc/server/:$JRE_HOME/lib/$proc/client/:$JRE_HOME/lib/$proc/native_threads/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
- fi
-
- # Bug http://bugzilla.scilab.org/show_bug.cgi?id=14290 -
diff --git a/scilab-0004-Fix-build-with-ocaml-4.0.4.patch b/scilab-0004-Fix-build-with-ocaml-4.0.4.patch
deleted file mode 100644
index 2b9beed..0000000
--- a/scilab-0004-Fix-build-with-ocaml-4.0.4.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 39662e94dca4d3c71ba0e7792de2d200f0ec7a08 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Cl=C3=A9ment=20DAVID?= <clement.david(a)esi-group.com>
-Date: Mon, 27 Mar 2017 17:45:41 +0200
-Subject: [PATCH] Fix build with ocaml 4.0.4
-
-Change-Id: I962fe026f1c44f7f76435db0b4838b0d936994c8
----
- scilab/modules/scicos/Makefile.in | 12 ++---
- scilab/modules/scicos/Makefile.modelica.am | 2 +-
- scilab/modules/scicos/src/xml2modelica/linenum.mll | 56 ----------------------
- 4 files changed, 11 insertions(+), 67 deletions(-)
- delete mode 100644 scilab/modules/scicos/src/xml2modelica/linenum.mll
-
-Index: scilab-6.0.2/modules/scicos/src/modelica_compiler/optimization.ml
-===================================================================
---- scilab-6.0.2.orig/modules/scicos/src/modelica_compiler/optimization.ml
-+++ scilab-6.0.2/modules/scicos/src/modelica_compiler/optimization.ml
-@@ -162,7 +162,7 @@ let num_of_float f =
- let num_of_positive_float f =
- let m, e = frexp f in
- let sm = string_of_float m in
-- let s = String.make 16 '0' in
-+ let s = Bytes.make 16 '0' in
- String.blit sm 2 s 0 (String.length sm - 2);
- let e' = Num.power_num (Num.Int 2) (Num.num_of_int e) in
- Num.div_num (Num.mult_num (Num.num_of_string s) e') scaling_factor
diff --git a/scilab-0005-fix-build-with-modern-lucene.patch b/scilab-0005-fix-build-with-modern-lucene.patch
deleted file mode 100644
index ddde3e5..0000000
--- a/scilab-0005-fix-build-with-modern-lucene.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Index: scilab-6.0.2/modules/xcos/src/java/org/scilab/modules/xcos/palette/PaletteIndexer.java
-===================================================================
---- scilab-6.0.2.orig/modules/xcos/src/java/org/scilab/modules/xcos/palette/PaletteIndexer.java
-+++ scilab-6.0.2/modules/xcos/src/java/org/scilab/modules/xcos/palette/PaletteIndexer.java
-@@ -162,7 +162,6 @@ public final class PaletteIndexer {
-
- // add the block name
- Field refname = new TextField("refname", basename, Field.Store.YES);
-- refname.setBoost(100f);
- doc.add(refname);
-
- // add the refpurpose
-@@ -176,7 +175,6 @@ public final class PaletteIndexer {
- refpurpose = new TextField("refpurpose", "", Field.Store.YES);
- }
-
-- refpurpose.setBoost(10f);
- doc.add(refpurpose);
- }
-
-Index: scilab-6.0.2/modules/xcos/src/java/org/scilab/modules/xcos/palette/PaletteSearcher.java
-===================================================================
---- scilab-6.0.2.orig/modules/xcos/src/java/org/scilab/modules/xcos/palette/PaletteSearcher.java
-+++ scilab-6.0.2/modules/xcos/src/java/org/scilab/modules/xcos/palette/PaletteSearcher.java
-@@ -57,7 +57,6 @@ public final class PaletteSearcher {
-
- StandardQueryParser queryParserHelper = new StandardQueryParser();
- queryParserHelper.setAllowLeadingWildcard(true);
-- queryParserHelper.setLowercaseExpandedTerms(true);
- queryParserHelper.setAnalyzer(mgr.getAnalyzer());
- queryParserHelper.setMultiFields(new String[] {"refname", "refpurpose", "content"});
-
diff --git a/scilab-0006-update-runtime-batik-detection.patch b/scilab-0006-update-runtime-batik-detection.patch
deleted file mode 100644
index 4c75f03..0000000
--- a/scilab-0006-update-runtime-batik-detection.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: scilab-6.0.0/modules/xcos/src/java/org/scilab/modules/xcos/Xcos.java
-===================================================================
---- scilab-6.0.0.orig/modules/xcos/src/java/org/scilab/modules/xcos/Xcos.java
-+++ scilab-6.0.0/modules/xcos/src/java/org/scilab/modules/xcos/Xcos.java
-@@ -101,7 +101,7 @@ public final class Xcos {
- * Dependencies version
- */
- private static final List<String> MXGRAPH_VERSIONS = null;
-- private static final List<String> BATIK_VERSIONS = Arrays.asList("1.7", "1.8pre", "1.8");
-+ private static final List<String> BATIK_VERSIONS = Arrays.asList("1.7", "1.8pre", "1.8", "1.9");
-
- private static final String UNABLE_TO_LOAD_JGRAPHX = Messages.gettext("Unable to load the jgraphx library.\nExpecting version %s ; Getting version %s .");
- private static final String UNABLE_TO_LOAD_BATIK = Messages.gettext("Unable to load the Batik library. \nExpecting version %s ; Getting version %s .");
diff --git a/scilab.spec b/scilab.spec
deleted file mode 100644
index ae28e5d..0000000
--- a/scilab.spec
+++ /dev/null
@@ -1,492 +0,0 @@
-# baserelease defines which build revision of this version we're building.
-# The magical name baserelease is matched by the rpmdev-bumpspec tool, which
-# you should use.
-%global baserelease 4
-
-# On a released (stable or beta) version set it to 1
-%global is_release 1
-# On a stable version set it to 1
-%global is_stable 1
-
-# On a pre-release packages set this to the selected name
-%global prerelease_name beta-2
-
-# On a snapshot packages set this to the selected date and commit.
-%global prerelease_date 20161209
-%global prerelease_timestamp 1481215650
-
-# pkg_release is what we'll fill in for the rpm Release: field
-%if %{is_release}
- %if %{is_stable}
- # stable release
- %global pkg_release %{baserelease}%{?dist}
- %else
- # alpha or beta release
- %global escaped_prerelease_name %(echo %{prerelease_name} |tr -cd [:alnum:])
- %global pkg_release 0.%{baserelease}.%{escaped_prerelease_name}%{?dist}
- %endif
-%else
- # nightly build
- %global pkg_release 0.%{baserelease}.%{prerelease_date}snap%{?dist}
-%endif
-
-Name: scilab
-Version: 6.0.2
-Release: %{pkg_release}
-Summary: Scientific software package for numerical computations
-ExcludeArch: s390x armv7hl i686
-
-License: CeCILL
-URL: http://www.scilab.org/
-%if %{is_release}
- %if %{is_stable}
- # stable release
-Source0: http://www.scilab.org/download/%{version}/scilab-%{version}-src.tar.gz
- %else
- # alpha or beta release
-Source0: http://www.scilab.org/download/%{version}-%{prerelease_name}/scilab-%{ver...
- %endif
-%else
- # nightly build
-Source0: http://downloadarea.scilab.org/download/%(date -d%{prerelease_date} +%%Y-%%m-%%d)/scilab-master-%{prerelease_timestamp}-src.tar.gz
-%endif
-
-# Bug 767102 - help() should suggest scilab-doc
-Patch1: %{name}-0001-Use-pkcon-to-install-doc-package.patch
-# Update to the latest JOGL version
-# see https://codereview.scilab.org/#/c/17530/
-Patch2: %{name}-0002-jogl-2.3.2.patch
-# Add support for ppc64le
-Patch3: %{name}-0003-fix-ppc64le-build.patch
-# Fix the OCaML build
-# Patch4: %{name}-0004-Fix-build-with-ocaml-4.0.4.patch
-# Fix Lucene API compat
-Patch5: %{name}-0005-fix-build-with-modern-lucene.patch
-# Fix GFortran errors
-#Patch7: %{name}-0007-fix-gfortran-errors.patch
-
-# Dependencies are extracted from :
-# "http://wiki.scilab.org/Dependencies of Scilab 5.X"
-
-# Mandatory
-BuildRequires: gcc
-BuildRequires: gcc-c++
-BuildRequires: gcc-gfortran
-
-## for dynamic link features
-Requires: gcc
-Requires: gcc-c++
-Requires: gcc-gfortran
-
-# Core
-BuildRequires: libxml2-devel
-BuildRequires: pcre-devel
-BuildRequires: ncurses-devel
-BuildRequires: libcurl-devel
-BuildRequires: eigen3-devel
-
-# Numerical libraries
-# see "http://wiki.scilab.org/Linalg performances"
-# TBD Packaging guidelines https://fedorahosted.org/fpc/ticket/352
-BuildRequires: lapack-devel
-BuildRequires: arpack-devel
-
-# GUI/Console
-BuildRequires: jpackage-utils
-BuildRequires: java-devel
-BuildRequires: ant
-
-BuildRequires: flexdock
-BuildRequires: jogl2
-BuildRequires: mesa-libGL-devel
-
-Requires: flexdock
-Requires: jogl2
-
-BuildRequires: jrosetta
-Requires: jrosetta
-
-BuildRequires: apache-commons-logging
-BuildRequires: javahelp2
-BuildRequires: jlatexmath
-BuildRequires: jlatexmath-fop
-BuildRequires: jgraphx
-BuildRequires: lucene
-BuildRequires: lucene-analysis
-BuildRequires: lucene-queryparser
-BuildRequires: fop
-BuildRequires: jeuclid
-BuildRequires: batik
-BuildRequires: xmlgraphics-commons
-BuildRequires: ecj
-
-Requires: apache-commons-logging
-Requires: javahelp2
-Requires: jlatexmath
-Requires: jlatexmath-fop
-Requires: jgraphx
-Requires: fop
-Requires: jeuclid
-Requires: batik
-Requires: xmlgraphics-commons
-Requires: ecj
-Requires: bwidget
-
-# TCL/TK features
-BuildRequires: tcl-devel
-BuildRequires: tk-devel
-
-Requires: tcl
-Requires: tk
-
-# Modelica
-#BuildRequires: ocaml
-#BuildRequires: ocaml-num-devel
-
-# Documentation
-BuildRequires: saxon
-BuildRequires: docbook-style-xsl
-BuildRequires: liberation-sans-fonts
-
-# QA tests and validation
-BuildRequires: checkstyle
-BuildRequires: junit
-
-# All optional dependencies are needed to provide a full-featured Scilab
-BuildRequires: gettext-devel
-BuildRequires: fftw-devel
-BuildRequires: matio-devel
-BuildRequires: suitesparse-devel
-BuildRequires: hdf5-devel
-
-# Specific dependencies for packaging purpose
-BuildRequires: desktop-file-utils
-BuildRequires: libappstream-glib
-
-%description
-Scilab is the free software for numerical computation providing a powerful
-computing environment for engineering and scientific applications. It
-includes hundreds of mathematical functions. It has a high level programming
-language allowing access to advanced data structures, 2-D and 3-D graphical
-functions.
-
-%package devel
-License: CeCILL
-
-Summary: Scientific software package for numerical computations (include files)
-
-Requires: %{name}%{?_isa} = %{version}-%{release}
-
-%description devel
-Scilab is the free software for numerical computation providing a powerful
-computing environment for engineering and scientific applications. It
-includes hundreds of mathematical functions. It has a high level programming
-language allowing access to advanced data structures, 2-D and 3-D graphical
-functions.
-
-This package provide include files for Scilab.
-
-%package doc
-License: CeCILL
-
-Summary: Scientific software package (documentation files)
-
-BuildArch: noarch
-Requires: %{name} = %{version}-%{release}
-
-%description doc
-Scilab is the free software for numerical computation providing a powerful
-computing environment for engineering and scientific applications. It
-includes hundreds of mathematical functions. It has a high level programming
-language allowing access to advanced data structures, 2-D and 3-D graphical
-functions.
-
-This package provide documentation files for Scilab.
-
-%package tests
-License: CeCILL
-
-Summary: Provides test files for Scilab
-
-BuildArch: noarch
-Requires: %{name} = %{version}-%{release}
-Requires: testng
-
-%description tests
-Scilab is the free software for numerical computation providing a powerful
-computing environment for engineering and scientific applications. It
-includes hundreds of mathematical functions. It has a high level programming
-language allowing access to advanced data structures, 2-D and 3-D graphical
-functions.
-
-This package provide test files for Scilab.
-
-%prep
-%if %{is_release}
- %if %{is_stable}
-%setup -q
- %else
-%setup -q -n %{name}-%{version}-%{prerelease_name}
- %endif
-%else
-%setup -q -n %{name}-master-%{prerelease_timestamp}
-%endif
-
-%patch1 -p1 -b .pkgcon
-%patch2 -p1 -b .jogl
-%patch3 -p1 -b .ppc64le
-#%patch4 -p1 -b .ocaml
-%patch5 -p1 -b .lucene
-#%patch7 -p1 -b .gfortran
-
-# Fix Class-Path in manifest
-sed -i '/name="Class-Path"/d' build.incl.xml
-
-# Fix file-not-utf8
-iconv -f ISO_8859-1 -t UTF-8 COPYING >COPYING.utf8
-mv COPYING.utf8 COPYING
-
-# Rename if the builder's home exists
-[ -d ~/.Scilab.before.build -a -d ~/.Scilab ] && rm -fr ~/.Scilab || true
-[ -d ~/.Scilab ] && mv ~/.Scilab ~/.Scilab.before.build || true
-
-
-%build
-# enforce a specific GL implementation
-export LIBGL_ALWAYS_SOFTWARE=1
-
-# disable-static-system-lib: do not static link with compiler libs
-# without-emf: disabled because freehep-*.jar are not packaged in fedora and
-# it is a windows specific format
-%configure \
- --disable-static-system-lib \
- --without-emf \
- --without-modelica
-
-#make -C modules/scicos modelicac modelicat XML2Modelica
-make %{?_smp_mflags}
-make %{?_smp_mflags} doc SCIVERBOSE=1
-
-%install
-make %{?_smp_mflags} install DESTDIR=%{buildroot}
-desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop
-appstream-util validate-relax --nonet %{buildroot}%{_datadir}/appdata/%{name}.appdata.xml
-%find_lang %{name}
-
-# Remove specific applications, user should use CLI options instead
-rm -fr %{buildroot}%{_datadir}/applications/%{name}-*.desktop \
- %{buildroot}%{_datadir}/applications/scinotes.desktop \
- %{buildroot}%{_datadir}/applications/xcos.desktop
-# Remove la files
-rm -fr %{buildroot}%{_libdir}/%{name}/*.la
-
-# Add localized help files to scilab-doc.lang
-# adapted from find-lang.sh
-# always provide the english help to handle missing localized help pages
-find %{buildroot}%{_datadir}/%{name}/modules/helptools/jar -type f -o -type l|sed '
-s:'"%{buildroot}"'::
-s:\(.*/'"%{name}"'_\)\([^\._]\+\)\(.*\.jar$\):%lang(\2) \1\2\3:
-s:^\([^%].*\)::
-s:%lang(en) ::
-s:%lang(C) ::
-/^$/d' |tee %{name}-doc.lang
-
-%check
-# disabled as linear_algebra spec failed
-make check-TESTS || true
-
-%files -f %{name}.lang
-%doc README.md ACKNOWLEDGEMENTS CHANGES.md COPYING COPYING-BSD
-%{_bindir}/*
-%{_libdir}/%{name}
-%{_datadir}/%{name}
-%{_datadir}/applications/*.desktop
-%{_datadir}/appdata/*.appdata.xml
-%{_datadir}/icons/*/*/*/*.png
-%{_datadir}/mime/packages/%{name}.xml
-# part of scilab-devel
-%exclude %{_datadir}/%{name}/contrib
-%exclude %{_datadir}/%{name}/tools
-# part of scilab-doc
-%exclude %{_datadir}/%{name}/modules/helptools/jar/%{name}_*.jar
-%exclude %{_datadir}/%{name}/modules/*/examples
-%exclude %{_datadir}/%{name}/modules/*/help
-%exclude %{_datadir}/%{name}/modules/*/javadoc
-# part of scilab-tests
-%exclude %{_datadir}/%{name}/modules/*/tests
-
-%files devel
-%doc README.md ACKNOWLEDGEMENTS CHANGES.md COPYING COPYING-BSD
-%{_includedir}/%{name}
-%{_libdir}/pkgconfig/%{name}.pc
-%{_datadir}/%{name}/contrib
-%{_datadir}/%{name}/tools
-
-%files doc -f %{name}-doc.lang
-%doc README.md ACKNOWLEDGEMENTS CHANGES.md COPYING COPYING-BSD
-%{_datadir}/doc/%{name}-*
-%{_datadir}/%{name}/modules/*/examples
-%{_datadir}/%{name}/modules/*/help
-%{_datadir}/%{name}/modules/*/javadoc
-
-%files tests
-%doc README.md ACKNOWLEDGEMENTS CHANGES.md COPYING COPYING-BSD
-%{_datadir}/%{name}/modules/*/tests
-
-%changelog
-* Thu Jan 30 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.0.2-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
-
-* Fri Jul 26 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.0.2-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
-
-* Sat Mar 16 2019 Orion Poplawski <orion(a)nwra.com> - 6.0.2-2
-- Rebuild for hdf5 1.10.5
-
-* Mon Feb 25 2019 Clément David <c.david86(a)gmail.com> - 6.0.2-1
-- Update to 6.0.2
-
-* Sat Feb 02 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.0.1-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
-
-* Sat Jul 14 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.0.1-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
-
-* Wed Feb 28 2018 Clément David <c.david86(a)gmail.com> - 6.0.1-1
-- Update to 6.0.1
-
-* Fri Feb 09 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.0.0-6
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
-
-* Sat Jan 06 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6.0.0-5
-- Remove obsolete scriptlets
-
-* Thu Aug 03 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.0.0-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
-
-* Thu Jul 27 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.0.0-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
-
-* Mon Mar 27 2017 Clément David <c.david86(a)gmail.com> - 6.0.0-2
-- Build with ocaml 4.0.4
-
-* Tue Feb 21 2017 Clément David <c.david86(a)gmail.com> - 6.0.0-1
-- Update to the latest release
-
-* Sat Feb 11 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.0.0-0.11.20161209snap
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
-
-* Fri Dec 09 2016 Clément David <c.david86(a)gmail.com> - 6.0.0-0.9.20161209snap
-- fix implicit-function-declaration and implicit-int errors
-
-* Tue Dec 06 2016 Orion Poplawski <orion(a)cora.nwra.com> - 6.0.0-0.9.beta2
-- Rebuild for hdf5 1.8.18
-
-* Sat Nov 05 2016 Richard W.M. Jones <rjones(a)redhat.com> - 6.0.0-0.8.beta2
-- Rebuild for OCaml 4.04.0.
-
-* Wed Jun 29 2016 Orion Poplawski <orion(a)cora.nwra.com> - 6.0.0-0.7.beta2
-- Rebuild for hdf5 1.8.17
-
-* Fri Jun 24 2016 Clément David <c.david86(a)gmail.com> - 6.0.0-0.6.beta2
-- rebuilt
-
-* Thu Jun 23 2016 Clément David <c.david86(a)gmail.com> - 6.0.0-0.5.beta2
-- Update the version
-
-* Thu Mar 10 2016 Peter Robinson <pbrobinson(a)fedoraproject.org> 6.0.0-0.4.beta1
-- Bump Release to 4, so it's not lower than Alpha.
-
-* Wed Feb 17 2016 Clément David <c.david86(a)gmail.com> - 6.0.0-0.1.beta1
-- Update the version
-
-* Thu Feb 04 2016 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.0.0-0.3.alpha2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
-
-* Thu Jan 21 2016 Orion Poplawski <orion(a)cora.nwra.com> - 6.0.0-0.2.alpha2
-- Rebuild for hdf5 1.8.16
-
-* Wed Dec 02 2015 Clément David <c.david86(a)gmail.com> - 6.0.0-0.1.alpha2
-- Update version
-
-* Tue Dec 01 2015 Clément David <c.david86(a)gmail.com> - 6.0.0-0.3.alpha1
-- Use appstream-util instead of the deprecated appdata-validate
-
-* Tue Sep 08 2015 Clément David <c.david86(a)gmail.com> - 6.0.0-0.2.alpha1
-- Re-enable the build for ARM
-
-* Tue Sep 08 2015 Clément David <c.david86(a)gmail.com> - 6.0.0-0.1.alpha1
-- Upgrade version to Scilab 6.0.0
-
-* Fri Aug 14 2015 Clément David <c.david86(a)gmail.com>
-- fix build after batik and fop upgrade
-
-* Fri Jun 19 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 5.5.2-5
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
-
-* Thu Jun 11 2015 Nils Philippsen <nils(a)redhat.com> - 5.5.2-4
-- rebuild for suitesparse-4.4.4
-
-* Wed May 20 2015 Clément David <c.david86(a)gmail.com> - 5.5.2-3
-- Disable any specific flags
-
-* Sun May 17 2015 Orion Poplawski <orion(a)cora.nwra.com> - 5.5.2-2
-- Rebuild for hdf5 1.8.15
-
-* Tue Apr 14 2015 Clément David <c.david86(a)gmail.com> - 5.5.2-1
-- Update version
-
-* Tue Mar 24 2015 Mikolaj Izdebski <mizdebsk(a)redhat.com> - 5.5.1-6
-- Remove unneeded BR on cobertura
-
-* Tue Feb 03 2015 Clément David <c.david86(a)gmail.com> - 5.5.1-5
-- Remove xcos.desktop scinotes.desktop
-- Update to the latest xmlgraphics-common
-
-* Wed Jan 07 2015 Orion Poplawski <orion(a)cora.nwra.com> - 5.5.1-4
-- Rebuild for hdf5 1.8.14
-
-* Fri Dec 12 2014 Clément David <c.david86(a)gmail.com> - 5.5.1-3
-- Re-enable the arm build to check
-
-* Wed Nov 19 2014 Clément David <c.david86(a)gmail.com> - 5.5.1-2
-- Fix Release value
-
-* Fri Oct 03 2014 Clément David <c.david86(a)gmail.com> - 5.5.1-1.1
-- Update version
-
-* Mon Aug 18 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 5.5.0-8
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
-
-* Sat Aug 16 2014 Rex Dieter <rdieter(a)fedoraproject.org> 5.5.0-7
-- update mime scriptlets
-
-* Tue Jun 10 2014 Orion Poplawski <orion(a)cora.nwra.com> - 5.5.0-6.3
-- Rebuild for hdf 1.8.13
-
-* Sun Jun 08 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 5.5.0-5.2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
-
-* Tue May 27 2014 Orion Poplawski <orion(a)cora.nwra.com> - 5.5.0-4.1
-- Rebuild for Tcl/Tk 8.6
-
-* Fri May 23 2014 Clément David <c.david86(a)gmail.com> - 5.5.0-3
-- Fix #1026735: bwidget missing dependency
-- Fix #1093990: ecj missing dependency
-
-* Wed May 21 2014 Jaroslav Škarvada <jskarvad(a)redhat.com> - 5.5.0-2.1
-- Rebuilt for https://fedoraproject.org/wiki/Changes/f21tcl86
-
-* Fri Apr 11 2014 Clément David <c.david86(a)gmail.com> - 5.5.0-1
-- Update to 5.5.0
-
-* Fri Mar 29 2013 Clément David <c.david86(a)gmail.com> - 5.4.1-1
-- Update to 5.4.1
-- disable matio 1.5
-
-* Tue Oct 30 2012 Clément David <c.david86(a)gmail.com> - 5.4.0-1
-- Update to 5.4.0
-
-* Sun Oct 30 2011 <c.david86(a)gmail.com> 5.3.3-1
-- First package
-
diff --git a/series b/series
deleted file mode 100644
index d258d5c..0000000
--- a/series
+++ /dev/null
@@ -1,6 +0,0 @@
-scilab-0001-Use-pkcon-to-install-doc-package.patch
-scilab-0002-jogl-2.3.2.patch
-scilab-0003-fix-ppc64le-build.patch
-scilab-0004-Fix-build-with-ocaml-4.0.4.patch
-scilab-0005-fix-build-with-modern-lucene.patch
-scilab-0007-fix-gfortran-errors.patch
diff --git a/sources b/sources
deleted file mode 100644
index 699c59a..0000000
--- a/sources
+++ /dev/null
@@ -1 +0,0 @@
-SHA512 (scilab-6.0.2-src.tar.gz) = 194fbf02e83436e5be8949fadf67e7b9b739eaa02d876b01505634d59b2d02adbf2c48a50bc2fe61c25956cae6aea4f832f429506dcab26d4e110d1bcd9ddfef
3 years, 10 months
[Report] Packages Restricting Arches
by root
New package excluding arches (1)
============================
- rust-choosier
ExclusiveArch: %{rust_arches}
Package that edited their arches constraints (1)
=============================================
- rmd
was ExclusiveArch: x86_64
is ExclusiveArch: %{ix86} x86_64
List of packages currently excluding arches (2756)
===========================================
- 0ad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- 90-Second-Portraits
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- GoldenCheetah
ExclusiveArch: %{qt5_qtwebengine_arches}
- GtkAda
ExclusiveArch: %{GPRbuild_arches}
- GtkAda3
ExclusiveArch: %{GPRbuild_arches}
- PragmARC
ExclusiveArch: %{GPRbuild_arches}
- R-V8
ExclusiveArch: %{nodejs_arches}
- 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}
- algobox
ExclusiveArch: %{qt5_qtwebengine_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}
- appstream-generator
ExclusiveArch: x86_64 %{ix86} %{arm}
- arduino
ExclusiveArch: %{go_arches}
- arduino-builder
ExclusiveArch: %{go_arches}
- arm-trusted-firmware
ExclusiveArch: aarch64
- 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} aarch64 s390x
- bcm283x-firmware
ExclusiveArch: %{arm} aarch64
- berusky2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{mips}
- biosdevname
ExclusiveArch: %{ix86} x86_64
- bless
ExclusiveArch: %mono_arches
- boo
ExclusiveArch: %{mono_arches}
- bpftrace
ExclusiveArch: x86_64 %{power64} aarch64
- calamares
ExclusiveArch: %{ix86} x86_64
- calibre
ExclusiveArch: %{qt5_qtwebengine_arches}
- carto
ExclusiveArch: %{nodejs_arches} noarch
- ccdciel
ExclusiveArch: %{fpc_arches}
- cdcollect
ExclusiveArch: %{mono_arches}
- ceph
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}
- cpu-x
ExclusiveArch: i686 x86_64
- 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 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 ppc64le
ExclusiveArch: x86_64 ppc64le
- dbus-sharp
ExclusiveArch: %mono_arches
- dbus-sharp-glib
ExclusiveArch: %mono_arches
- dbxtool
ExclusiveArch: i386 x86_64 aarch64
- deepin-daemon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- discord-irc
ExclusiveArch: %{nodejs_arches} noarch
- dlm
ExclusiveArch: i686 x86_64
- dmidecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- docker-distribution
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- dolphin-emu
ExclusiveArch: x86_64 aarch64
- dotnet-build-reference-packages
ExclusiveArch: x86_64
- dotnet3.1
ExclusiveArch: x86_64
- doublecmd
ExclusiveArch: %{ix86} x86_64
- dpdk
ExclusiveArch: x86_64 i686 aarch64 ppc64le
- dssi-vst
ExclusiveArch: %{ix86} x86_64
- dyninst
ExclusiveArch: %{ix86} x86_64 ppc64le aarch64
- 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
- enki
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- envytools
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- eric
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- extlinux-bootloader
ExclusiveArch: %{arm} aarch64
- fcitx-libpinyin
ExclusiveArch: %{qt5_qtwebengine_arches}
- fedora-dockerfiles
ExclusiveArch: %{go_arches}
- fes
ExclusiveArch: %{ix86} x86_64
- flannel
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- florist
ExclusiveArch: %{GPRbuild_arches}
- fpc
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64 ppc64le
- frescobaldi
ExclusiveArch: %{qt5_qtwebengine_arches}
- frysk
ExclusiveArch: %{ix86} x86_64 ppc64
- fst
ExclusiveArch: i686
- fwts
ExclusiveArch: x86_64 %{arm} aarch64 s390x %{power64}
- ga
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- gbrainy
ExclusiveArch: %mono_arches
- gdata-sharp
ExclusiveArch: %mono_arches
- gdb-exploitable
ExclusiveArch: x86_64 i386
ExclusiveArch: x86_64 noarch
- gearhead1
ExclusiveArch: %{fpc_arches}
- gela-asis
ExclusiveArch: %GPRbuild_arches
- ghdl
ExclusiveArch: %{GNAT_arches}
- ghostwriter
ExclusiveArch: %{qt5_qtwebengine_arches}
- gio-sharp
ExclusiveArch: %mono_arches
- gir-to-d
ExclusiveArch: %{ldc_arches}
- git-octopus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- giver
ExclusiveArch: %{mono_arches}
- gkeyfile-sharp
ExclusiveArch: %mono_arches
- glibc32
ExclusiveArch: x86_64
- glibd
ExclusiveArch: %{ldc_arches}
- gmqcc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- gnatcoll
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-bindings
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-db
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}
- go-bindata
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- go-compilers
ExclusiveArch: %{go_arches}
- go-rpm-macros
ExclusiveArch: %{golang_arches} %{gccgo_arches}
- godep
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang
ExclusiveArch: %{golang_arches}
- gomtree
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gotun
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: x86_64
- goverlay
ExclusiveArch: %{fpc_arches}
- gprbuild
ExclusiveArch: %{GPRbuild_arches} %{bootstrap_arch}
- gprolog
ExclusiveArch: x86_64 %{ix86} ppc alpha
- grafana
ExclusiveArch: %{grafana_arches}
- grafana-pcp
ExclusiveArch: %{nodejs_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}
- hip
ExclusiveArch: x86_64
- hsakmt
ExclusiveArch: x86_64 aarch64
- hyena
ExclusiveArch: %{mono_arches}
- hyperscan
ExclusiveArch: x86_64
- hyperv-daemons
ExclusiveArch: i686 x86_64
- i3status-rs
ExclusiveArch: %{rust_arches}
- icaro
ExclusiveArch: %{ix86} x86_64 noarch
- imvirt
ExclusiveArch: %{ix86} x86_64 ia64
- indistarter
ExclusiveArch: %{fpc_arches}
- infinipath-psm
ExclusiveArch: x86_64
- intel-cmt-cat
ExclusiveArch: x86_64 i686 i586
ExclusiveArch: x86_64 i686 i586
- intel-gmmlib
ExclusiveArch: x86_64 i686
- intel-mediasdk
ExclusiveArch: x86_64
- intel-undervolt
ExclusiveArch: i386 x86_64
- ioport
ExclusiveArch: %{ix86} x86_64
- ipmctl
ExclusiveArch: x86_64
- ipw2100-firmware
ExclusiveArch: noarch i386 x86_64
- ipw2200-firmware
ExclusiveArch: noarch i386 x86_64
- iucode-tool
ExclusiveArch: %{ix86} x86_64
- iyfct
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- 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}
- keepass
ExclusiveArch: %{mono_arches}
- kernel
ExclusiveArch: x86_64 s390x %{arm} aarch64 ppc64le
ExclusiveArch: noarch i386 i686 x86_64 s390x %{arm} aarch64 ppc64le
- kf5-akonadi-search
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-audiocd-kio
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kalarmcal
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kblog
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kcalendarcore
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kcalendarutils
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kitinerary
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kmailtransport
ExclusiveArch: x86_64 %{arm}
- kf5-ktnef
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-libkdcraw
ExclusiveArch: x86_64 ppc64le %{arm}
- kicad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- kiwix-desktop
ExclusiveArch: %{qt5_qtwebengine_arches}
- knot-resolver
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- knotes
ExclusiveArch: x86_64 %{arm}
- kompose
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 s390x
- kosmtik
ExclusiveArch: %{nodejs_arches} noarch
- kubernetes
ExclusiveArch: x86_64 aarch64 ppc64le s390x %{arm}
- lazarus
ExclusiveArch: %{fpc_arches}
- ldc
ExclusiveArch: %{ldc_arches}
- libbsr
ExclusiveArch: %{power64}
- libclc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
- libcxl
ExclusiveArch: %{power64}
- libdfp
ExclusiveArch: ppc ppc64 ppc64le s390 s390x
- libica
ExclusiveArch: s390 s390x
- libipt
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- libocxl
ExclusiveArch: ppc64le
- libpmemobj-cpp
ExclusiveArch: x86_64
- libpsm2
ExclusiveArch: x86_64
- libquentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- libretro-desmume2015
ExclusiveArch: i686 x86_64
- librtas
ExclusiveArch: %{power64}
- libservicelog
ExclusiveArch: ppc %{power64}
- libsmbios
ExclusiveArch: x86_64 %{ix86}
- libunwind
ExclusiveArch: %{arm} aarch64 hppa ia64 mips ppc %{power64} s390x %{ix86} x86_64
- libva-intel-hybrid-driver
ExclusiveArch: %{ix86} x86_64 ia64
- libvmi
ExclusiveArch: x86_64
- libvpd
ExclusiveArch: %{power64}
- libxsmm
ExclusiveArch: x86_64
- libzfcphbaapi
ExclusiveArch: s390 s390x
- lightdm
ExclusiveArch: x86_64 ppc64le
- lodash
ExclusiveArch: %{nodejs_arches} noarch
- log4net
ExclusiveArch: %mono_arches
- lrmi
ExclusiveArch: %{ix86}
- lsvpd
ExclusiveArch: %{power64}
- luajit
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 s390x ppc64le
- luxcorerender
ExclusiveArch: x86_64
- mactel-boot
ExclusiveArch: x86_64
- manifest-tool
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- mantle
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- matreshka
ExclusiveArch: %GPRbuild_arches
- maxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- mbpfan
ExclusiveArch: x86_64
- 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} %{ix86} 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
- mirrorlist-server
ExclusiveArch: %{rust_arches}
- 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
- 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-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
- mozilla-iot-gateway
ExclusiveArch: %{nodejs_arches} noarch
- mozilla-iot-gateway-addon-node
ExclusiveArch: %{nodejs_arches} noarch
- mrrescue
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- msr-tools
ExclusiveArch: %{ix86} x86_64
- mustache-d
ExclusiveArch: %{ldc_arches}
- mysql-connector-net
ExclusiveArch: %{mono_arches}
- nant
ExclusiveArch: %mono_arches
- nbc
ExclusiveArch: %{fpc_arches}
- nbdkit
ExclusiveArch: x86_64
- ndesk-dbus
ExclusiveArch: %{mono_arches}
- ndesk-dbus-glib
ExclusiveArch: %{mono_arches}
- newsflash
ExclusiveArch: %{rust_arches}
- newtonsoft-json
ExclusiveArch: %{mono_arches}
- nim
ExclusiveArch: %{nim_arches}
- node-gyp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs
ExclusiveArch: %{nodejs_arches}
- nodejs-Base64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-abbrev
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-acorn-dynamic-import
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn-jsx
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-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-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-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-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-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-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-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-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-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-aws-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws-sign2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-code-frame
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-plugins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base32-encode
ExclusiveArch: %{nodejs_arches} 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-batch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bcrypt
ExclusiveArch: %{nodejs_arches}
- 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-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-writer
ExclusiveArch: %{nodejs_arches} noarch
- 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-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
- 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-camelcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase-keys
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-connect-middleware
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-chalk
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-char-spinner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-character-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-chardet
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-charenc
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-charm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-check-env
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-check-error
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-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-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-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-compare-func
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-compare-versions
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-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-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-dot-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-console-group
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-consolemd
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-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-convert-hex
ExclusiveArch: %{nodejs_arches} 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-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-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-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-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-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-data-uri-to-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-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-defaults
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defence-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-define-properties
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-define-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defined
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-delayed-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-delegates
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dep-graph
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-depd
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-discord-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-docopt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-doctrine
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-dryice
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duplexer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplexer2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-ebnf-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-echomd
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-end-of-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-ex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-symbol
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-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-promisify
ExclusiveArch: %{nodejs_arches} 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-location-detector
ExclusiveArch: %{nodejs_arches} 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-estree-walker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-esutils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-event-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-eventemitter2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-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-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
- 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-eyes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fancy-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-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-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-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-flush-write-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fmix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fn-dot-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-for-each
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-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-temp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-vacuum
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-write-stream-atomic
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-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-port
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-getobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-git-tails
ExclusiveArch: %{ix86} x86_64 %{arm} 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-gonzales-pe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-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-concat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-internal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-nodeunit
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-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-sed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-simple-mocha
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-handlebars
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-har-validator
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-symbols
ExclusiveArch: %{nodejs_arches} 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-heap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hex-to-array-buffer
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-http-deceiver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-errors
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-http-signature
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-humanize-ms
ExclusiveArch: %{nodejs_arches} 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-image-size
ExclusiveArch: %{nodejs_arches} 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-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-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-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-irc-formatting
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irc-upd
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-accessor-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-arrayish
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-boolean-object
ExclusiveArch: %{nodejs_arches} 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-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-function
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-module
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-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-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: %{nodejs_arches} noarch
- nodejs-is-unc-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-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-reporters
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jest-mock
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jison-lex
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-json-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-localizer
ExclusiveArch: %{nodejs_arches} 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: %{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-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-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-less-plugin-clean-css
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-levn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-libpq
ExclusiveArch: %{nodejs_arches}
- nodejs-libxmljs
ExclusiveArch: %{nodejs_arches}
- 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-locate-character
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-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lolex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-long
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-longest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-loud-rejection
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lru-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lru-queue
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-error
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-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-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-merge-descriptors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-metascript
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-micromatch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-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-minipass
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-mock-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-modify-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-module-not-found-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb-core
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-monocle
ExclusiveArch: %{nodejs_arches} 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-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-nanomatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nanomsg
ExclusiveArch: %{nodejs_arches}
- nodejs-nanoseconds
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-negative-zero
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-net-browserify-alt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-next-tick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-static
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-stringprep
ExclusiveArch: %{nodejs_arches}
- nodejs-node-uuid
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nodemon
ExclusiveArch: %{nodejs_arches} 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-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-run-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-user-validate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npmlog
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-assign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-dot-omit
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-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-opener
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-limit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-locate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-try
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-package
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-parse-github-repo-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-parseuri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-strategy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-array
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-pbkdf2-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pedding
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-numeric
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-packet-stream
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-pinkie
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pinkie-promise
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-posix-character-classes
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-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-prism-media
ExclusiveArch: %{nodejs_arches} 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
- 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-addr
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-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-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-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-file
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-pkg
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: %{nodejs_arches} noarch
- nodejs-realize-package-specifier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rechoir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-reduce-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regex-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regex-not
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-require-self
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-request
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-cs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-require-directory
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-inject
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-main-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-relative
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-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-retry
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reusify
ExclusiveArch: %{nodejs_arches} 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-rollup-plugin-buble
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-commonjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-node-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-pluginutils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ronn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-sax
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-secure-random
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-seedrandom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-semver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sentiment
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-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
- 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-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-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-snekfetch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sntp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-socket-dot-io-parser
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-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-exceptions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-license-ids
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec-js
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-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-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-pair
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-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-streamsearch
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-json-comments
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-path
ExclusiveArch: %{nodejs_arches} noarch
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-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-svgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-symbol-observable
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-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-liferay
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-terst
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testdata-w3c-json-form
ExclusiveArch: %{nodejs_arches} 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-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-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-tippex
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-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-toidentifier
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-tslib
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tsscmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tunnel-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tv4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tweetnacl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tweetnacl-util
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-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: %{nodejs_arches} 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-unicode-length
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-uri-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-urix
ExclusiveArch: %{nodejs_arches} 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-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-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-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vhost
ExclusiveArch: %{nodejs_arches} 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-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-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-file-atomic
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-xmlhttprequest
ExclusiveArch: %{nodejs_arches} 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-yeast
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zeropad
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
- notify-sharp
ExclusiveArch: %{mono_arches}
- notify-sharp3
ExclusiveArch: %{mono_arches}
- nuget
ExclusiveArch: %{mono_arches}
- numatop
ExclusiveArch: x86_64 ppc64le
- nunit
ExclusiveArch: %{mono_arches}
- nunit2
ExclusiveArch: %{mono_arches}
- nvml
ExclusiveArch: x86_64 ppc64le
- nwchem
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- obs-service-rust2rpm
ExclusiveArch: %{rust_arches} noarch
- oci-kvm-hook
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- oci-seccomp-bpf-hook
ExclusiveArch: x86_64 %{power64} aarch64 s390x
- oci-umount
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- oidn
ExclusiveArch: x86_64
- olpc-kbdshim
ExclusiveArch: %{ix86} %{arm}
- olpc-netutils
ExclusiveArch: %{ix86} %{arm}
- olpc-utils
ExclusiveArch: %{ix86} %{arm}
- onedrive
ExclusiveArch: %{ldc_arches}
- opae
ExclusiveArch: x86_64
- opal-prd
ExclusiveArch: ppc64le
- open-vm-tools
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64
- openblas
ExclusiveArch: %{openblas_arches}
- openjfx
ExclusiveArch: x86_64
- openjfx8
ExclusiveArch: x86_64
- openlibm
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 %{power64}
- openni
ExclusiveArch: %{ix86} x86_64 %{arm}
- openni-primesense
ExclusiveArch: %{ix86} x86_64 %{arm}
- openssl-ibmca
ExclusiveArch: s390 s390x
- origin
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- orion
ExclusiveArch: %{qt5_qtwebengine_arches}
- orthorobot
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- paflib
ExclusiveArch: ppc %{power64}
- pcc
ExclusiveArch: %{ix86} x86_64
- pcmciautils
ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64 %{arm}
- pdfmod
ExclusiveArch: %mono_arches
- peripety
ExclusiveArch: %{rust_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
- pmdk-convert
ExclusiveArch: x86_64
- pmemkv
ExclusiveArch: x86_64
- pocl
ExclusiveArch: %{arm} aarch64 %{ix86} 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}
- pveclib
ExclusiveArch: ppc %{power64}
- pvs-sbcl
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- pyqtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- python-etcd
ExclusiveArch: noarch %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- python-healpy
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-javabridge
ExclusiveArch: i686 x86_64
- python-openoffice
ExclusiveArch: noarch 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}
- qmapshack
ExclusiveArch: %{qt5_qtwebengine_arches}
- qt4pas
ExclusiveArch: %{fpc_arches}
- qt5-qtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- quantum-espresso
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86}
- quentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- 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
- rmd
ExclusiveArch: %{ix86} x86_64
- rocm-runtime
ExclusiveArch: x86_64 aarch64
- rocminfo
ExclusiveArch: x86_64 aarch64
- rpm-ostree
ExclusiveArch: %{rust_arches}
- rr
ExclusiveArch: %{ix86} x86_64
- rssguard
ExclusiveArch: %{qt5_qtwebengine_arches}
- rubygem-childprocess
ExclusiveArch: %{ix86} x86_64 noarch
- runc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le %{mips} s390x
- rust
ExclusiveArch: %{rust_arches}
- rust-abomonation
ExclusiveArch: %{rust_arches}
- rust-actix
ExclusiveArch: %{rust_arches}
- rust-actix-codec
ExclusiveArch: %{rust_arches}
- rust-actix-connect
ExclusiveArch: %{rust_arches}
- rust-actix-files
ExclusiveArch: %{rust_arches}
- rust-actix-http
ExclusiveArch: %{rust_arches}
- rust-actix-macros
ExclusiveArch: %{rust_arches}
- rust-actix-router
ExclusiveArch: %{rust_arches}
- rust-actix-rt
ExclusiveArch: %{rust_arches}
- rust-actix-server
ExclusiveArch: %{rust_arches}
- rust-actix-server-config
ExclusiveArch: %{rust_arches}
- rust-actix-service
ExclusiveArch: %{rust_arches}
- rust-actix-testing
ExclusiveArch: %{rust_arches}
- rust-actix-threadpool
ExclusiveArch: %{rust_arches}
- rust-actix-tls
ExclusiveArch: %{rust_arches}
- rust-actix-utils
ExclusiveArch: %{rust_arches}
- rust-actix-web
ExclusiveArch: %{rust_arches}
- rust-actix-web-codegen
ExclusiveArch: %{rust_arches}
- rust-actix_derive
ExclusiveArch: %{rust_arches}
- rust-addr2line
ExclusiveArch: %{rust_arches}
- rust-adler32
ExclusiveArch: %{rust_arches}
- rust-aes
ExclusiveArch: %{rust_arches}
- rust-aes-soft
ExclusiveArch: %{rust_arches}
- rust-afterburn
ExclusiveArch: %{rust_arches}
- rust-ahash
ExclusiveArch: %{rust_arches}
- rust-aho-corasick
ExclusiveArch: %{rust_arches}
- rust-alga
ExclusiveArch: %{rust_arches}
- rust-alga_derive
ExclusiveArch: %{rust_arches}
- rust-alloc-no-stdlib
ExclusiveArch: %{rust_arches}
- rust-alloc-stdlib
ExclusiveArch: %{rust_arches}
- rust-alphanumeric-sort
ExclusiveArch: %{rust_arches}
- rust-ammonia
ExclusiveArch: %{rust_arches}
- rust-ansi_colours
ExclusiveArch: %{rust_arches}
- rust-ansi_term
ExclusiveArch: %{rust_arches}
- rust-ansi_term0.11
ExclusiveArch: %{rust_arches}
- rust-antidote
ExclusiveArch: %{rust_arches}
- rust-anyhow
ExclusiveArch: %{rust_arches}
- rust-anymap
ExclusiveArch: %{rust_arches}
- rust-aom-sys
ExclusiveArch: %{rust_arches}
- rust-app_dirs
ExclusiveArch: %{rust_arches}
- rust-approx
ExclusiveArch: %{rust_arches}
- rust-arbitrary
ExclusiveArch: %{rust_arches}
- rust-arc-swap
ExclusiveArch: %{rust_arches}
- rust-arg_enum_proc_macro
ExclusiveArch: %{rust_arches}
- rust-array-init
ExclusiveArch: %{rust_arches}
- rust-arraydeque
ExclusiveArch: %{rust_arches}
- rust-arrayref
ExclusiveArch: %{rust_arches}
- rust-arrayvec
ExclusiveArch: %{rust_arches}
- rust-article_scraper
ExclusiveArch: %{rust_arches}
- rust-ascii
ExclusiveArch: %{rust_arches}
- rust-askalono
ExclusiveArch: %{rust_arches}
- rust-askalono-cli
ExclusiveArch: %{rust_arches}
- rust-assert-json-diff
ExclusiveArch: %{rust_arches}
- rust-assert_cmd
ExclusiveArch: %{rust_arches}
- rust-assert_fs
ExclusiveArch: %{rust_arches}
- rust-assert_matches
ExclusiveArch: %{rust_arches}
- rust-async-attributes
ExclusiveArch: %{rust_arches}
- rust-async-compression
ExclusiveArch: %{rust_arches}
- rust-async-task
ExclusiveArch: %{rust_arches}
- rust-async-trait
ExclusiveArch: %{rust_arches}
- rust-asyncgit
ExclusiveArch: %{rust_arches}
- rust-atk
ExclusiveArch: %{rust_arches}
- rust-atk-sys
ExclusiveArch: %{rust_arches}
- rust-atom
ExclusiveArch: %{rust_arches}
- rust-atomicwrites
ExclusiveArch: %{rust_arches}
- rust-attohttpc
ExclusiveArch: %{rust_arches}
- rust-atty
ExclusiveArch: %{rust_arches}
- rust-autocfg
ExclusiveArch: %{rust_arches}
- rust-average
ExclusiveArch: %{rust_arches}
- rust-awc
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-base64-0.10
ExclusiveArch: %{rust_arches}
- rust-base64-0.11
ExclusiveArch: %{rust_arches}
- rust-bat
ExclusiveArch: %{rust_arches}
- rust-battery
ExclusiveArch: %{rust_arches}
- rust-bencher
ExclusiveArch: %{rust_arches}
- rust-better-panic
ExclusiveArch: %{rust_arches}
- rust-bincode
ExclusiveArch: %{rust_arches}
- rust-bincode0.8
ExclusiveArch: %{rust_arches}
- rust-bindgen
ExclusiveArch: %{rust_arches}
- rust-bit-set
ExclusiveArch: %{rust_arches}
- rust-bit-vec
ExclusiveArch: %{rust_arches}
- rust-bitflags
ExclusiveArch: %{rust_arches}
- rust-bitmaps
ExclusiveArch: %{rust_arches}
- rust-bitstream-io
ExclusiveArch: %{rust_arches}
- rust-blake2
ExclusiveArch: %{rust_arches}
- rust-blobby
ExclusiveArch: %{rust_arches}
- rust-block-buffer
ExclusiveArch: %{rust_arches}
- rust-block-cipher-trait
ExclusiveArch: %{rust_arches}
- rust-block-modes
ExclusiveArch: %{rust_arches}
- rust-block-padding
ExclusiveArch: %{rust_arches}
- rust-bodhi
ExclusiveArch: %{rust_arches}
- rust-bodhi-cli
ExclusiveArch: %{rust_arches}
- rust-box_drawing
ExclusiveArch: %{rust_arches}
- rust-brev
ExclusiveArch: %{rust_arches}
- rust-brotli
ExclusiveArch: %{rust_arches}
- rust-brotli-decompressor
ExclusiveArch: %{rust_arches}
- rust-brotli-sys
ExclusiveArch: %{rust_arches}
- rust-brotli2
ExclusiveArch: %{rust_arches}
- rust-bstr
ExclusiveArch: %{rust_arches}
- rust-buf_redux
ExclusiveArch: %{rust_arches}
- rust-bufstream
ExclusiveArch: %{rust_arches}
- rust-build_const
ExclusiveArch: %{rust_arches}
- rust-byte-tools
ExclusiveArch: %{rust_arches}
- rust-byte-unit
ExclusiveArch: %{rust_arches}
- rust-bytecount
ExclusiveArch: %{rust_arches}
- rust-bytemuck
ExclusiveArch: %{rust_arches}
- rust-byteorder
ExclusiveArch: %{rust_arches}
- rust-bytes
ExclusiveArch: %{rust_arches}
- rust-bytes0.3
ExclusiveArch: %{rust_arches}
- rust-bytes0.4
ExclusiveArch: %{rust_arches}
- rust-bytesize
ExclusiveArch: %{rust_arches}
- rust-bytestring
ExclusiveArch: %{rust_arches}
- rust-c2-chacha
ExclusiveArch: %{rust_arches}
- rust-c_vec
ExclusiveArch: %{rust_arches}
- rust-cairo-rs
ExclusiveArch: %{rust_arches}
- rust-cairo-sys-rs
ExclusiveArch: %{rust_arches}
- rust-calloop
ExclusiveArch: %{rust_arches}
- rust-caps
ExclusiveArch: %{rust_arches}
- rust-cargo
ExclusiveArch: %{rust_arches}
- rust-cargo-bloat
ExclusiveArch: %{rust_arches}
- rust-cargo-c
ExclusiveArch: %{rust_arches}
- rust-cargo-husky
ExclusiveArch: %{rust_arches}
- rust-cargo-platform
ExclusiveArch: %{rust_arches}
- rust-cargo_metadata
ExclusiveArch: %{rust_arches}
- rust-cassowary
ExclusiveArch: %{rust_arches}
- rust-cast
ExclusiveArch: %{rust_arches}
- rust-cbindgen
ExclusiveArch: %{rust_arches}
- rust-cc
ExclusiveArch: %{rust_arches}
- rust-cexpr
ExclusiveArch: %{rust_arches}
- rust-cfg-if
ExclusiveArch: %{rust_arches}
- rust-chainerror
ExclusiveArch: %{rust_arches}
- rust-charset
ExclusiveArch: %{rust_arches}
- rust-chbs
ExclusiveArch: %{rust_arches}
- rust-checked_int_cast
ExclusiveArch: %{rust_arches}
- rust-choosier
ExclusiveArch: %{rust_arches}
- rust-chrono
ExclusiveArch: %{rust_arches}
- rust-chrono-humanize
ExclusiveArch: %{rust_arches}
- rust-chrono-tz
ExclusiveArch: %{rust_arches}
- rust-chunked_transfer
ExclusiveArch: %{rust_arches}
- rust-clang-sys
ExclusiveArch: %{rust_arches}
- rust-clap
ExclusiveArch: %{rust_arches}
- rust-clicolors-control
ExclusiveArch: %{rust_arches}
- rust-cmake
ExclusiveArch: %{rust_arches}
- rust-color-backtrace
ExclusiveArch: %{rust_arches}
- rust-color_quant
ExclusiveArch: %{rust_arches}
- rust-colored
ExclusiveArch: %{rust_arches}
- rust-colored_json
ExclusiveArch: %{rust_arches}
- rust-compiletest_rs
ExclusiveArch: %{rust_arches}
- rust-comrak
ExclusiveArch: %{rust_arches}
- rust-config
ExclusiveArch: %{rust_arches}
- rust-console
ExclusiveArch: %{rust_arches}
- rust-console0.9
ExclusiveArch: %{rust_arches}
- rust-const-random
ExclusiveArch: %{rust_arches}
- rust-const-random-macro
ExclusiveArch: %{rust_arches}
- rust-content_inspector
ExclusiveArch: %{rust_arches}
- rust-conv
ExclusiveArch: %{rust_arches}
- rust-cookie
ExclusiveArch: %{rust_arches}
- rust-cookie_store
ExclusiveArch: %{rust_arches}
- rust-copyless
ExclusiveArch: %{rust_arches}
- rust-coreos-installer
ExclusiveArch: %{rust_arches}
- rust-cpio
ExclusiveArch: %{rust_arches}
- rust-cpp_demangle
ExclusiveArch: %{rust_arches}
- rust-crates-io
ExclusiveArch: %{rust_arches}
- rust-crc
ExclusiveArch: %{rust_arches}
- rust-crc-any
ExclusiveArch: %{rust_arches}
- rust-crc-core
ExclusiveArch: %{rust_arches}
- rust-crc32fast
ExclusiveArch: %{rust_arches}
- rust-criterion
ExclusiveArch: %{rust_arches}
- rust-criterion-plot
ExclusiveArch: %{rust_arches}
- rust-crossbeam
ExclusiveArch: %{rust_arches}
- rust-crossbeam-channel
ExclusiveArch: %{rust_arches}
- rust-crossbeam-deque
ExclusiveArch: %{rust_arches}
- rust-crossbeam-epoch
ExclusiveArch: %{rust_arches}
- rust-crossbeam-queue
ExclusiveArch: %{rust_arches}
- rust-crossbeam-utils
ExclusiveArch: %{rust_arches}
- rust-crossterm
ExclusiveArch: %{rust_arches}
- rust-crypto-hash
ExclusiveArch: %{rust_arches}
- rust-crypto-mac
ExclusiveArch: %{rust_arches}
- rust-cryptovec
ExclusiveArch: %{rust_arches}
- rust-cssparser
ExclusiveArch: %{rust_arches}
- rust-cssparser-macros
ExclusiveArch: %{rust_arches}
- rust-csv
ExclusiveArch: %{rust_arches}
- rust-csv-core
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-darling
ExclusiveArch: %{rust_arches}
- rust-darling_core
ExclusiveArch: %{rust_arches}
- rust-darling_macro
ExclusiveArch: %{rust_arches}
- rust-dashmap
ExclusiveArch: %{rust_arches}
- rust-data-encoding
ExclusiveArch: %{rust_arches}
- rust-data-url
ExclusiveArch: %{rust_arches}
- rust-datetime
ExclusiveArch: %{rust_arches}
- rust-dav1d-sys
ExclusiveArch: %{rust_arches}
- rust-dbus
ExclusiveArch: %{rust_arches}
- rust-dbus0.2
ExclusiveArch: %{rust_arches}
- rust-dbus0.6
ExclusiveArch: %{rust_arches}
- rust-debug-helper
ExclusiveArch: %{rust_arches}
- rust-decimal
ExclusiveArch: %{rust_arches}
- rust-deflate
ExclusiveArch: %{rust_arches}
- rust-defmac
ExclusiveArch: %{rust_arches}
- rust-delta_e
ExclusiveArch: %{rust_arches}
- rust-derive_builder
ExclusiveArch: %{rust_arches}
- rust-derive_builder_core
ExclusiveArch: %{rust_arches}
- rust-derive_more
ExclusiveArch: %{rust_arches}
- rust-des
ExclusiveArch: %{rust_arches}
- rust-desed
ExclusiveArch: %{rust_arches}
- rust-deunicode
ExclusiveArch: %{rust_arches}
- rust-devicemapper
ExclusiveArch: %{rust_arches}
- rust-diesel
ExclusiveArch: %{rust_arches}
- rust-diesel_derives
ExclusiveArch: %{rust_arches}
- rust-diesel_migrations
ExclusiveArch: %{rust_arches}
- rust-diff
ExclusiveArch: %{rust_arches}
- rust-difference
ExclusiveArch: %{rust_arches}
- rust-digest
ExclusiveArch: %{rust_arches}
- rust-directories
ExclusiveArch: %{rust_arches}
- rust-dirs
ExclusiveArch: %{rust_arches}
- rust-dirs-sys
ExclusiveArch: %{rust_arches}
- rust-dissimilar
ExclusiveArch: %{rust_arches}
- rust-dlib
ExclusiveArch: %{rust_arches}
- rust-dns-parser
ExclusiveArch: %{rust_arches}
- rust-doc-comment
ExclusiveArch: %{rust_arches}
- rust-docmatic
ExclusiveArch: %{rust_arches}
- rust-docopt
ExclusiveArch: %{rust_arches}
- rust-dotenv
ExclusiveArch: %{rust_arches}
- rust-downcast-rs
ExclusiveArch: %{rust_arches}
- rust-dtoa
ExclusiveArch: %{rust_arches}
- rust-dtoa-short
ExclusiveArch: %{rust_arches}
- rust-dua-cli
ExclusiveArch: %{rust_arches}
- rust-duct
ExclusiveArch: %{rust_arches}
- rust-dunce
ExclusiveArch: %{rust_arches}
- rust-dutree
ExclusiveArch: %{rust_arches}
- rust-edit-distance
ExclusiveArch: %{rust_arches}
- rust-either
ExclusiveArch: %{rust_arches}
- rust-elasticlunr-rs
ExclusiveArch: %{rust_arches}
- rust-encode_unicode
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-encoding_rs_io
ExclusiveArch: %{rust_arches}
- rust-entities
ExclusiveArch: %{rust_arches}
- rust-enum-as-inner
ExclusiveArch: %{rust_arches}
- rust-enum_primitive
ExclusiveArch: %{rust_arches}
- rust-env_logger
ExclusiveArch: %{rust_arches}
- rust-env_logger0.4
ExclusiveArch: %{rust_arches}
- rust-env_logger0.5
ExclusiveArch: %{rust_arches}
- rust-env_logger0.6
ExclusiveArch: %{rust_arches}
- rust-envsubst
ExclusiveArch: %{rust_arches}
- rust-erased-serde
ExclusiveArch: %{rust_arches}
- rust-err-derive
ExclusiveArch: %{rust_arches}
- rust-errln
ExclusiveArch: %{rust_arches}
- rust-errno
ExclusiveArch: %{rust_arches}
- rust-error-chain
ExclusiveArch: %{rust_arches}
- rust-escaper
ExclusiveArch: %{rust_arches}
- rust-escargot
ExclusiveArch: %{rust_arches}
- rust-exa
ExclusiveArch: %{rust_arches}
- rust-extend
ExclusiveArch: %{rust_arches}
- rust-extprim
ExclusiveArch: %{rust_arches}
- rust-extprim_literals_macros
ExclusiveArch: %{rust_arches}
- rust-fail
ExclusiveArch: %{rust_arches}
- rust-failure
ExclusiveArch: %{rust_arches}
- rust-failure-tools
ExclusiveArch: %{rust_arches}
- rust-failure_derive
ExclusiveArch: %{rust_arches}
- rust-fake-simd
ExclusiveArch: %{rust_arches}
- rust-fake_clock
ExclusiveArch: %{rust_arches}
- rust-fallible-iterator
ExclusiveArch: %{rust_arches}
- rust-fd-find
ExclusiveArch: %{rust_arches}
- rust-fedora
ExclusiveArch: %{rust_arches}
- rust-fedora-coreos-pinger
ExclusiveArch: %{rust_arches}
- rust-fedora-update-feedback
ExclusiveArch: %{rust_arches}
- rust-feed-rs
ExclusiveArch: %{rust_arches}
- rust-feedbin_api
ExclusiveArch: %{rust_arches}
- rust-feedly_api
ExclusiveArch: %{rust_arches}
- rust-fern
ExclusiveArch: %{rust_arches}
- rust-fever_api
ExclusiveArch: %{rust_arches}
- rust-ffsend
ExclusiveArch: %{rust_arches}
- rust-ffsend-api
ExclusiveArch: %{rust_arches}
- rust-filesize
ExclusiveArch: %{rust_arches}
- rust-filetime
ExclusiveArch: %{rust_arches}
- rust-findshlibs
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-float-ord
ExclusiveArch: %{rust_arches}
- rust-flume
ExclusiveArch: %{rust_arches}
- rust-fnv
ExclusiveArch: %{rust_arches}
- rust-foreign-types
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared
ExclusiveArch: %{rust_arches}
- rust-fragile
ExclusiveArch: %{rust_arches}
- rust-fs2
ExclusiveArch: %{rust_arches}
- rust-fs_extra
ExclusiveArch: %{rust_arches}
- rust-fuse
ExclusiveArch: %{rust_arches}
- rust-futf
ExclusiveArch: %{rust_arches}
- rust-futures
ExclusiveArch: %{rust_arches}
- rust-futures-channel
ExclusiveArch: %{rust_arches}
- rust-futures-core
ExclusiveArch: %{rust_arches}
- rust-futures-cpupool
ExclusiveArch: %{rust_arches}
- rust-futures-executor
ExclusiveArch: %{rust_arches}
- rust-futures-io
ExclusiveArch: %{rust_arches}
- rust-futures-macro
ExclusiveArch: %{rust_arches}
- rust-futures-sink
ExclusiveArch: %{rust_arches}
- rust-futures-task
ExclusiveArch: %{rust_arches}
- rust-futures-timer
ExclusiveArch: %{rust_arches}
- rust-futures-util
ExclusiveArch: %{rust_arches}
- rust-futures0.1
ExclusiveArch: %{rust_arches}
- rust-fuzzy-matcher
ExclusiveArch: %{rust_arches}
- rust-fxhash
ExclusiveArch: %{rust_arches}
- rust-gcsf
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-generic-array
ExclusiveArch: %{rust_arches}
- rust-getch
ExclusiveArch: %{rust_arches}
- rust-gethostname
ExclusiveArch: %{rust_arches}
- rust-getopts
ExclusiveArch: %{rust_arches}
- rust-getrandom
ExclusiveArch: %{rust_arches}
- rust-gettext-rs
ExclusiveArch: %{rust_arches}
- rust-gettext-sys
ExclusiveArch: %{rust_arches}
- rust-gif
ExclusiveArch: %{rust_arches}
- rust-gimli
ExclusiveArch: %{rust_arches}
- rust-gio
ExclusiveArch: %{rust_arches}
- rust-gio-sys
ExclusiveArch: %{rust_arches}
- rust-gir-format-check
ExclusiveArch: %{rust_arches}
- rust-git-delta
ExclusiveArch: %{rust_arches}
- rust-git2
ExclusiveArch: %{rust_arches}
- rust-git2-curl
ExclusiveArch: %{rust_arches}
- rust-gitui
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-globwalk
ExclusiveArch: %{rust_arches}
- rust-gobject-sys
ExclusiveArch: %{rust_arches}
- rust-goblin
ExclusiveArch: %{rust_arches}
- rust-google-drive3-fork
ExclusiveArch: %{rust_arches}
- rust-grep
ExclusiveArch: %{rust_arches}
- rust-grep-cli
ExclusiveArch: %{rust_arches}
- rust-grep-matcher
ExclusiveArch: %{rust_arches}
- rust-grep-pcre2
ExclusiveArch: %{rust_arches}
- rust-grep-printer
ExclusiveArch: %{rust_arches}
- rust-grep-regex
ExclusiveArch: %{rust_arches}
- rust-grep-searcher
ExclusiveArch: %{rust_arches}
- rust-groupable
ExclusiveArch: %{rust_arches}
- rust-gspell
ExclusiveArch: %{rust_arches}
- rust-gspell-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video-sys
ExclusiveArch: %{rust_arches}
- rust-gtk
ExclusiveArch: %{rust_arches}
- rust-gtk-macros
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-h2
ExclusiveArch: %{rust_arches}
- rust-half
ExclusiveArch: %{rust_arches}
- rust-hamcrest
ExclusiveArch: %{rust_arches}
- rust-handlebars
ExclusiveArch: %{rust_arches}
- rust-hashbrown
ExclusiveArch: %{rust_arches}
- rust-headers
ExclusiveArch: %{rust_arches}
- rust-headers-core
ExclusiveArch: %{rust_arches}
- rust-headers-derive
ExclusiveArch: %{rust_arches}
- rust-heapsize
ExclusiveArch: %{rust_arches}
- rust-heck
ExclusiveArch: %{rust_arches}
- rust-hex
ExclusiveArch: %{rust_arches}
- rust-hex-literal
ExclusiveArch: %{rust_arches}
- rust-hex-literal-impl
ExclusiveArch: %{rust_arches}
- rust-hexyl
ExclusiveArch: %{rust_arches}
- rust-hkdf
ExclusiveArch: %{rust_arches}
- rust-hmac
ExclusiveArch: %{rust_arches}
- rust-home
ExclusiveArch: %{rust_arches}
- rust-horrorshow
ExclusiveArch: %{rust_arches}
- rust-hostname
ExclusiveArch: %{rust_arches}
- rust-html2pango
ExclusiveArch: %{rust_arches}
- rust-html5ever
ExclusiveArch: %{rust_arches}
- rust-http
ExclusiveArch: %{rust_arches}
- rust-http-body
ExclusiveArch: %{rust_arches}
- rust-http0.1
ExclusiveArch: %{rust_arches}
- rust-httparse
ExclusiveArch: %{rust_arches}
- rust-humansize
ExclusiveArch: %{rust_arches}
- rust-humantime
ExclusiveArch: %{rust_arches}
- rust-humantime1
ExclusiveArch: %{rust_arches}
- rust-hyper
ExclusiveArch: %{rust_arches}
- rust-hyper-native-tls
ExclusiveArch: %{rust_arches}
- rust-hyper-staticfile
ExclusiveArch: %{rust_arches}
- rust-hyper-tls
ExclusiveArch: %{rust_arches}
- rust-hyper0.10
ExclusiveArch: %{rust_arches}
- rust-hyperfine
ExclusiveArch: %{rust_arches}
- rust-i3ipc
ExclusiveArch: %{rust_arches}
- rust-id_tree
ExclusiveArch: %{rust_arches}
- rust-ident_case
ExclusiveArch: %{rust_arches}
- rust-idna
ExclusiveArch: %{rust_arches}
- rust-idna0.1
ExclusiveArch: %{rust_arches}
- rust-ignore
ExclusiveArch: %{rust_arches}
- rust-im-rc
ExclusiveArch: %{rust_arches}
- rust-image
ExclusiveArch: %{rust_arches}
- rust-imgref
ExclusiveArch: %{rust_arches}
- rust-indexmap
ExclusiveArch: %{rust_arches}
- rust-indicatif
ExclusiveArch: %{rust_arches}
- rust-inflate
ExclusiveArch: %{rust_arches}
- rust-inotify
ExclusiveArch: %{rust_arches}
- rust-inotify-sys
ExclusiveArch: %{rust_arches}
- rust-input_buffer
ExclusiveArch: %{rust_arches}
- rust-interpolate_name
ExclusiveArch: %{rust_arches}
- rust-intervaltree
ExclusiveArch: %{rust_arches}
- rust-iovec
ExclusiveArch: %{rust_arches}
- rust-ipnet
ExclusiveArch: %{rust_arches}
- rust-ipnetwork
ExclusiveArch: %{rust_arches}
- rust-iron
ExclusiveArch: %{rust_arches}
- rust-isahc
ExclusiveArch: %{rust_arches}
- rust-iso8601
ExclusiveArch: %{rust_arches}
- rust-iter-read
ExclusiveArch: %{rust_arches}
- rust-itertools
ExclusiveArch: %{rust_arches}
- rust-itertools-num
ExclusiveArch: %{rust_arches}
- rust-itertools0.8
ExclusiveArch: %{rust_arches}
- rust-itoa
ExclusiveArch: %{rust_arches}
- rust-ivf
ExclusiveArch: %{rust_arches}
- rust-javascriptcore-rs
ExclusiveArch: %{rust_arches}
- rust-javascriptcore-rs-sys
ExclusiveArch: %{rust_arches}
- rust-jetscii
ExclusiveArch: %{rust_arches}
- rust-jobserver
ExclusiveArch: %{rust_arches}
- rust-jpeg-decoder
ExclusiveArch: %{rust_arches}
- rust-jql
ExclusiveArch: %{rust_arches}
- rust-json
ExclusiveArch: %{rust_arches}
- rust-jwalk
ExclusiveArch: %{rust_arches}
- rust-kstring
ExclusiveArch: %{rust_arches}
- rust-kv-log-macro
ExclusiveArch: %{rust_arches}
- rust-lab
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-letter-avatar
ExclusiveArch: %{rust_arches}
- rust-lexical-core
ExclusiveArch: %{rust_arches}
- rust-libc
ExclusiveArch: %{rust_arches}
- rust-libdbus-sys
ExclusiveArch: %{rust_arches}
- rust-libflate
ExclusiveArch: %{rust_arches}
- rust-libflate_lz77
ExclusiveArch: %{rust_arches}
- rust-libgit2-sys
ExclusiveArch: %{rust_arches}
- rust-libhandy
ExclusiveArch: %{rust_arches}
- rust-libhandy-sys
ExclusiveArch: %{rust_arches}
- rust-libloading
ExclusiveArch: %{rust_arches}
- rust-libm
ExclusiveArch: %{rust_arches}
- rust-libmount
ExclusiveArch: %{rust_arches}
- rust-liboverdrop
ExclusiveArch: %{rust_arches}
- rust-libpulse-binding
ExclusiveArch: %{rust_arches}
- rust-libpulse-sys
ExclusiveArch: %{rust_arches}
- rust-libslirp
ExclusiveArch: %{rust_arches}
- rust-libslirp-sys
ExclusiveArch: %{rust_arches}
- rust-libsqlite3-sys
ExclusiveArch: %{rust_arches}
- rust-libssh2-sys
ExclusiveArch: %{rust_arches}
- rust-libsystemd
ExclusiveArch: %{rust_arches}
- rust-libudev
ExclusiveArch: %{rust_arches}
- rust-libudev-sys
ExclusiveArch: %{rust_arches}
- rust-libxml
ExclusiveArch: %{rust_arches}
- rust-libz-sys
ExclusiveArch: %{rust_arches}
- rust-line-wrap
ExclusiveArch: %{rust_arches}
- rust-linked-hash-map
ExclusiveArch: %{rust_arches}
- rust-linkify
ExclusiveArch: %{rust_arches}
- rust-lipsum
ExclusiveArch: %{rust_arches}
- rust-liquid
ExclusiveArch: %{rust_arches}
- rust-liquid-core
ExclusiveArch: %{rust_arches}
- rust-liquid-derive
ExclusiveArch: %{rust_arches}
- rust-liquid-lib
ExclusiveArch: %{rust_arches}
- rust-listenfd
ExclusiveArch: %{rust_arches}
- rust-lmdb
ExclusiveArch: %{rust_arches}
- rust-lmdb-sys
ExclusiveArch: %{rust_arches}
- rust-locale
ExclusiveArch: %{rust_arches}
- rust-locale_config
ExclusiveArch: %{rust_arches}
- rust-lock_api
ExclusiveArch: %{rust_arches}
- rust-lockfree
ExclusiveArch: %{rust_arches}
- rust-log
ExclusiveArch: %{rust_arches}
- rust-log-mdc
ExclusiveArch: %{rust_arches}
- rust-log0.3
ExclusiveArch: %{rust_arches}
- rust-log4rs
ExclusiveArch: %{rust_arches}
- rust-loggerv
ExclusiveArch: %{rust_arches}
- rust-loopdev
ExclusiveArch: %{rust_arches}
- rust-lru-cache
ExclusiveArch: %{rust_arches}
- rust-lru_time_cache
ExclusiveArch: %{rust_arches}
- rust-lscolors
ExclusiveArch: %{rust_arches}
- rust-lsd
ExclusiveArch: %{rust_arches}
- rust-lzma-sys
ExclusiveArch: %{rust_arches}
- rust-lzw
ExclusiveArch: %{rust_arches}
- rust-mac
ExclusiveArch: %{rust_arches}
- rust-macro-attr
ExclusiveArch: %{rust_arches}
- rust-magic-crypt
ExclusiveArch: %{rust_arches}
- rust-maildir
ExclusiveArch: %{rust_arches}
- rust-mailparse
ExclusiveArch: %{rust_arches}
- rust-man
ExclusiveArch: %{rust_arches}
- rust-maplit
ExclusiveArch: %{rust_arches}
- rust-markup5ever
ExclusiveArch: %{rust_arches}
- rust-markup5ever_rcdom
ExclusiveArch: %{rust_arches}
- rust-match_cfg
ExclusiveArch: %{rust_arches}
- rust-matches
ExclusiveArch: %{rust_arches}
- rust-matrixmultiply
ExclusiveArch: %{rust_arches}
- rust-maxminddb
ExclusiveArch: %{rust_arches}
- rust-maybe-uninit
ExclusiveArch: %{rust_arches}
- rust-md-5
ExclusiveArch: %{rust_arches}
- rust-md5
ExclusiveArch: %{rust_arches}
- rust-mdl
ExclusiveArch: %{rust_arches}
- rust-memchr
ExclusiveArch: %{rust_arches}
- rust-memmap
ExclusiveArch: %{rust_arches}
- rust-memmap2
ExclusiveArch: %{rust_arches}
- rust-memoffset
ExclusiveArch: %{rust_arches}
- rust-metadeps
ExclusiveArch: %{rust_arches}
- rust-migrations_internals
ExclusiveArch: %{rust_arches}
- rust-migrations_macros
ExclusiveArch: %{rust_arches}
- rust-mime
ExclusiveArch: %{rust_arches}
- rust-mime-sniffer
ExclusiveArch: %{rust_arches}
- rust-mime0.2
ExclusiveArch: %{rust_arches}
- rust-mime_guess
ExclusiveArch: %{rust_arches}
- rust-mime_guess1
ExclusiveArch: %{rust_arches}
- rust-miniflux_api
ExclusiveArch: %{rust_arches}
- rust-miniz-sys
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide_c_api
ExclusiveArch: %{rust_arches}
- rust-mint
ExclusiveArch: %{rust_arches}
- rust-mio
ExclusiveArch: %{rust_arches}
- rust-mio-extras
ExclusiveArch: %{rust_arches}
- rust-mio-uds
ExclusiveArch: %{rust_arches}
- rust-mio0.6
ExclusiveArch: %{rust_arches}
- rust-mktemp
ExclusiveArch: %{rust_arches}
- rust-mnt
ExclusiveArch: %{rust_arches}
- rust-mockito
ExclusiveArch: %{rust_arches}
- rust-modifier
ExclusiveArch: %{rust_arches}
- rust-muldiv
ExclusiveArch: %{rust_arches}
- rust-multimap
ExclusiveArch: %{rust_arches}
- rust-multipart
ExclusiveArch: %{rust_arches}
- rust-mustache
ExclusiveArch: %{rust_arches}
- rust-nalgebra
ExclusiveArch: %{rust_arches}
- rust-nasm-rs
ExclusiveArch: %{rust_arches}
- rust-native-tls
ExclusiveArch: %{rust_arches}
- rust-natord
ExclusiveArch: %{rust_arches}
- rust-net2
ExclusiveArch: %{rust_arches}
- rust-netmap_sys
ExclusiveArch: %{rust_arches}
- rust-new_debug_unreachable
ExclusiveArch: %{rust_arches}
- rust-news-flash
ExclusiveArch: %{rust_arches}
- rust-newtype_derive
ExclusiveArch: %{rust_arches}
- rust-nickel
ExclusiveArch: %{rust_arches}
- rust-nix
ExclusiveArch: %{rust_arches}
- rust-nix0.14
ExclusiveArch: %{rust_arches}
- rust-no-panic
ExclusiveArch: %{rust_arches}
- rust-nodrop
ExclusiveArch: %{rust_arches}
- rust-nom
ExclusiveArch: %{rust_arches}
- rust-nom4
ExclusiveArch: %{rust_arches}
- rust-noop_proc_macro
ExclusiveArch: %{rust_arches}
- rust-normalize-line-endings
ExclusiveArch: %{rust_arches}
- rust-notify
ExclusiveArch: %{rust_arches}
- rust-num
ExclusiveArch: %{rust_arches}
- rust-num-bigint
ExclusiveArch: %{rust_arches}
- rust-num-complex
ExclusiveArch: %{rust_arches}
- rust-num-derive
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-numtoa
ExclusiveArch: %{rust_arches}
- rust-object
ExclusiveArch: %{rust_arches}
- rust-odds
ExclusiveArch: %{rust_arches}
- rust-once_cell
ExclusiveArch: %{rust_arches}
- rust-onig
ExclusiveArch: %{rust_arches}
- rust-onig_sys
ExclusiveArch: %{rust_arches}
- rust-oorandom
ExclusiveArch: %{rust_arches}
- rust-opaque-debug
ExclusiveArch: %{rust_arches}
- rust-open
ExclusiveArch: %{rust_arches}
- rust-opener
ExclusiveArch: %{rust_arches}
- rust-openssh-keys
ExclusiveArch: %{rust_arches}
- rust-openssl
ExclusiveArch: %{rust_arches}
- rust-openssl-probe
ExclusiveArch: %{rust_arches}
- rust-openssl-sys
ExclusiveArch: %{rust_arches}
- rust-ord_subset
ExclusiveArch: %{rust_arches}
- rust-ordered-float
ExclusiveArch: %{rust_arches}
- rust-os_info
ExclusiveArch: %{rust_arches}
- rust-os_pipe
ExclusiveArch: %{rust_arches}
- rust-osstrtools
ExclusiveArch: %{rust_arches}
- rust-owned-alloc
ExclusiveArch: %{rust_arches}
- rust-owning_ref
ExclusiveArch: %{rust_arches}
- rust-packaging
ExclusiveArch: %{rust_arches}
- 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-parity-wasm
ExclusiveArch: %{rust_arches}
- rust-parking_lot
ExclusiveArch: %{rust_arches}
- rust-parking_lot_core
ExclusiveArch: %{rust_arches}
- rust-parse-zoneinfo
ExclusiveArch: %{rust_arches}
- rust-partial-io
ExclusiveArch: %{rust_arches}
- rust-paste
ExclusiveArch: %{rust_arches}
- rust-paste-impl
ExclusiveArch: %{rust_arches}
- rust-path-absolutize
ExclusiveArch: %{rust_arches}
- rust-path-dedot
ExclusiveArch: %{rust_arches}
- rust-path-slash
ExclusiveArch: %{rust_arches}
- rust-pathdiff
ExclusiveArch: %{rust_arches}
- rust-pbr
ExclusiveArch: %{rust_arches}
- rust-pcap
ExclusiveArch: %{rust_arches}
- rust-pcre2
ExclusiveArch: %{rust_arches}
- rust-pcre2-sys
ExclusiveArch: %{rust_arches}
- rust-peeking_take_while
ExclusiveArch: %{rust_arches}
- rust-peg
ExclusiveArch: %{rust_arches}
- rust-percent-encoding
ExclusiveArch: %{rust_arches}
- rust-percent-encoding1
ExclusiveArch: %{rust_arches}
- rust-peresil
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-pest_generator
ExclusiveArch: %{rust_arches}
- rust-pest_meta
ExclusiveArch: %{rust_arches}
- rust-petgraph
ExclusiveArch: %{rust_arches}
- rust-phf
ExclusiveArch: %{rust_arches}
- rust-phf0.7
ExclusiveArch: %{rust_arches}
- rust-phf_codegen
ExclusiveArch: %{rust_arches}
- rust-phf_codegen0.7
ExclusiveArch: %{rust_arches}
- rust-phf_generator
ExclusiveArch: %{rust_arches}
- rust-phf_generator0.7
ExclusiveArch: %{rust_arches}
- rust-phf_macros
ExclusiveArch: %{rust_arches}
- rust-phf_macros0.7
ExclusiveArch: %{rust_arches}
- rust-phf_shared
ExclusiveArch: %{rust_arches}
- rust-phf_shared0.7
ExclusiveArch: %{rust_arches}
- rust-pico-args
ExclusiveArch: %{rust_arches}
- rust-pin-project
ExclusiveArch: %{rust_arches}
- rust-pin-project-internal
ExclusiveArch: %{rust_arches}
- rust-pin-project-lite
ExclusiveArch: %{rust_arches}
- rust-pin-utils
ExclusiveArch: %{rust_arches}
- rust-pipe
ExclusiveArch: %{rust_arches}
- rust-piper
ExclusiveArch: %{rust_arches}
- rust-pkg-config
ExclusiveArch: %{rust_arches}
- rust-plain
ExclusiveArch: %{rust_arches}
- rust-platform-dirs
ExclusiveArch: %{rust_arches}
- rust-platforms
ExclusiveArch: %{rust_arches}
- rust-plist
ExclusiveArch: %{rust_arches}
- rust-plugin
ExclusiveArch: %{rust_arches}
- rust-pnet_base
ExclusiveArch: %{rust_arches}
- rust-pnet_datalink
ExclusiveArch: %{rust_arches}
- rust-pnet_sys
ExclusiveArch: %{rust_arches}
- rust-png
ExclusiveArch: %{rust_arches}
- rust-podio
ExclusiveArch: %{rust_arches}
- rust-pommes
ExclusiveArch: %{rust_arches}
- rust-ppv-lite86
ExclusiveArch: %{rust_arches}
- rust-precomputed-hash
ExclusiveArch: %{rust_arches}
- rust-predicates
ExclusiveArch: %{rust_arches}
- rust-predicates-core
ExclusiveArch: %{rust_arches}
- rust-predicates-tree
ExclusiveArch: %{rust_arches}
- rust-pretty-git-prompt
ExclusiveArch: %{rust_arches}
- rust-pretty_assertions
ExclusiveArch: %{rust_arches}
- rust-pretty_env_logger
ExclusiveArch: %{rust_arches}
- rust-prettytable-rs
ExclusiveArch: %{rust_arches}
- rust-proc-macro-error
ExclusiveArch: %{rust_arches}
- rust-proc-macro-error-attr
ExclusiveArch: %{rust_arches}
- rust-proc-macro-hack
ExclusiveArch: %{rust_arches}
- rust-proc-macro-nested
ExclusiveArch: %{rust_arches}
- rust-proc-macro2
ExclusiveArch: %{rust_arches}
- rust-proc-macro2-0.4
ExclusiveArch: %{rust_arches}
- rust-proc-quote
ExclusiveArch: %{rust_arches}
- rust-proc-quote-impl
ExclusiveArch: %{rust_arches}
- rust-procedural-masquerade
ExclusiveArch: %{rust_arches}
- rust-process_path
ExclusiveArch: %{rust_arches}
- rust-procfs
ExclusiveArch: %{rust_arches}
- rust-procs
ExclusiveArch: %{rust_arches}
- rust-progress-streams
ExclusiveArch: %{rust_arches}
- rust-prometheus
ExclusiveArch: %{rust_arches}
- rust-proptest
ExclusiveArch: %{rust_arches}
- rust-proptest-derive
ExclusiveArch: %{rust_arches}
- rust-protobuf
ExclusiveArch: %{rust_arches}
- rust-protobuf-codegen
ExclusiveArch: %{rust_arches}
- rust-protobuf-codegen-pure
ExclusiveArch: %{rust_arches}
- rust-protoc
ExclusiveArch: %{rust_arches}
- rust-protoc-rust
ExclusiveArch: %{rust_arches}
- rust-psm
ExclusiveArch: %{rust_arches}
- rust-psutil
ExclusiveArch: %{rust_arches}
- rust-publicsuffix
ExclusiveArch: %{rust_arches}
- rust-pulldown-cmark
ExclusiveArch: %{rust_arches}
- rust-pulse
ExclusiveArch: %{rust_arches}
- rust-qr2term
ExclusiveArch: %{rust_arches}
- rust-qrcode
ExclusiveArch: %{rust_arches}
- rust-quick-error
ExclusiveArch: %{rust_arches}
- rust-quickcheck
ExclusiveArch: %{rust_arches}
- rust-quickcheck0.6
ExclusiveArch: %{rust_arches}
- rust-quickcheck_macros
ExclusiveArch: %{rust_arches}
- rust-quickersort
ExclusiveArch: %{rust_arches}
- rust-quote
ExclusiveArch: %{rust_arches}
- rust-quote0.3
ExclusiveArch: %{rust_arches}
- rust-quote0.6
ExclusiveArch: %{rust_arches}
- rust-quoted_printable
ExclusiveArch: %{rust_arches}
- rust-r2d2
ExclusiveArch: %{rust_arches}
- rust-rand
ExclusiveArch: %{rust_arches}
- rust-rand0.4
ExclusiveArch: %{rust_arches}
- rust-rand0.5
ExclusiveArch: %{rust_arches}
- rust-rand0.6
ExclusiveArch: %{rust_arches}
- rust-rand_chacha
ExclusiveArch: %{rust_arches}
- rust-rand_chacha0.1
ExclusiveArch: %{rust_arches}
- rust-rand_core
ExclusiveArch: %{rust_arches}
- rust-rand_core0.3
ExclusiveArch: %{rust_arches}
- rust-rand_core0.4
ExclusiveArch: %{rust_arches}
- rust-rand_distr
ExclusiveArch: %{rust_arches}
- rust-rand_hc
ExclusiveArch: %{rust_arches}
- rust-rand_hc0.1
ExclusiveArch: %{rust_arches}
- rust-rand_isaac
ExclusiveArch: %{rust_arches}
- rust-rand_isaac0.1
ExclusiveArch: %{rust_arches}
- rust-rand_jitter
ExclusiveArch: %{rust_arches}
- rust-rand_jitter0.1
ExclusiveArch: %{rust_arches}
- rust-rand_os
ExclusiveArch: %{rust_arches}
- rust-rand_os0.1
ExclusiveArch: %{rust_arches}
- rust-rand_pcg
ExclusiveArch: %{rust_arches}
- rust-rand_pcg0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xoshiro
ExclusiveArch: %{rust_arches}
- rust-random-fast-rng
ExclusiveArch: %{rust_arches}
- rust-random-trait
ExclusiveArch: %{rust_arches}
- rust-randomize
ExclusiveArch: %{rust_arches}
- rust-rav1e
ExclusiveArch: %{rust_arches}
- rust-rawpointer
ExclusiveArch: %{rust_arches}
- rust-rawslice
ExclusiveArch: %{rust_arches}
- rust-rayon
ExclusiveArch: %{rust_arches}
- rust-rayon-core
ExclusiveArch: %{rust_arches}
- rust-readwrite
ExclusiveArch: %{rust_arches}
- rust-recycler
ExclusiveArch: %{rust_arches}
- rust-ref-cast
ExclusiveArch: %{rust_arches}
- rust-ref-cast-impl
ExclusiveArch: %{rust_arches}
- rust-regex
ExclusiveArch: %{rust_arches}
- rust-regex-automata
ExclusiveArch: %{rust_arches}
- rust-regex-syntax
ExclusiveArch: %{rust_arches}
- rust-region
ExclusiveArch: %{rust_arches}
- rust-relay
ExclusiveArch: %{rust_arches}
- rust-remove_dir_all
ExclusiveArch: %{rust_arches}
- rust-reqwest
ExclusiveArch: %{rust_arches}
- rust-resize
ExclusiveArch: %{rust_arches}
- rust-resolv-conf
ExclusiveArch: %{rust_arches}
- rust-restson
ExclusiveArch: %{rust_arches}
- rust-retry
ExclusiveArch: %{rust_arches}
- rust-rgb
ExclusiveArch: %{rust_arches}
- rust-ripgrep
ExclusiveArch: %{rust_arches}
- rust-rle-decode-fast
ExclusiveArch: %{rust_arches}
- rust-rmp
ExclusiveArch: %{rust_arches}
- rust-rmp-serde
ExclusiveArch: %{rust_arches}
- rust-roff
ExclusiveArch: %{rust_arches}
- rust-ron
ExclusiveArch: %{rust_arches}
- rust-rpassword
ExclusiveArch: %{rust_arches}
- rust-rpick
ExclusiveArch: %{rust_arches}
- rust-ruma-identifiers
ExclusiveArch: %{rust_arches}
- rust-rust-embed
ExclusiveArch: %{rust_arches}
- rust-rust-embed-impl
ExclusiveArch: %{rust_arches}
- rust-rust-embed-utils
ExclusiveArch: %{rust_arches}
- rust-rust-ini
ExclusiveArch: %{rust_arches}
- rust-rust-stemmers
ExclusiveArch: %{rust_arches}
- rust-rust_decimal
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer_normal_macro
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer_proc_macro
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer_sys
ExclusiveArch: %{rust_arches}
- rust-rustc-demangle
ExclusiveArch: %{rust_arches}
- rust-rustc-hash
ExclusiveArch: %{rust_arches}
- rust-rustc-serialize
ExclusiveArch: %{rust_arches}
- rust-rustc-test
ExclusiveArch: %{rust_arches}
- rust-rustc_tools_util
ExclusiveArch: %{rust_arches}
- rust-rustc_version
ExclusiveArch: %{rust_arches}
- rust-rustdoc-stripper
ExclusiveArch: %{rust_arches}
- rust-rustfilt
ExclusiveArch: %{rust_arches}
- rust-rustfix
ExclusiveArch: %{rust_arches}
- rust-rustio
ExclusiveArch: %{rust_arches}
- rust-rustversion
ExclusiveArch: %{rust_arches}
- rust-rusty-fork
ExclusiveArch: %{rust_arches}
- rust-rustyline
ExclusiveArch: %{rust_arches}
- rust-rustyline-derive
ExclusiveArch: %{rust_arches}
- rust-ryu
ExclusiveArch: %{rust_arches}
- rust-safe-transmute
ExclusiveArch: %{rust_arches}
- rust-safemem
ExclusiveArch: %{rust_arches}
- rust-same-file
ExclusiveArch: %{rust_arches}
- rust-sass-rs
ExclusiveArch: %{rust_arches}
- rust-sass-sys
ExclusiveArch: %{rust_arches}
- rust-scan_fmt
ExclusiveArch: %{rust_arches}
- rust-scheduled-thread-pool
ExclusiveArch: %{rust_arches}
- rust-scoped-tls
ExclusiveArch: %{rust_arches}
- rust-scoped-tls-hkt
ExclusiveArch: %{rust_arches}
- rust-scoped_threadpool
ExclusiveArch: %{rust_arches}
- rust-scopeguard
ExclusiveArch: %{rust_arches}
- rust-scopetime
ExclusiveArch: %{rust_arches}
- rust-scroll
ExclusiveArch: %{rust_arches}
- rust-scroll_derive
ExclusiveArch: %{rust_arches}
- rust-sd
ExclusiveArch: %{rust_arches}
- rust-seahash
ExclusiveArch: %{rust_arches}
- rust-secret-service
ExclusiveArch: %{rust_arches}
- rust-semver
ExclusiveArch: %{rust_arches}
- rust-semver-parser
ExclusiveArch: %{rust_arches}
- rust-semver-parser0.7
ExclusiveArch: %{rust_arches}
- rust-serde
ExclusiveArch: %{rust_arches}
- rust-serde-big-array
ExclusiveArch: %{rust_arches}
- rust-serde-pickle
ExclusiveArch: %{rust_arches}
- rust-serde-value
ExclusiveArch: %{rust_arches}
- rust-serde-xml-rs
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_repr
ExclusiveArch: %{rust_arches}
- rust-serde_stacker
ExclusiveArch: %{rust_arches}
- rust-serde_test
ExclusiveArch: %{rust_arches}
- rust-serde_url_params
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded
ExclusiveArch: %{rust_arches}
- rust-serde_with_macros
ExclusiveArch: %{rust_arches}
- rust-serde_yaml
ExclusiveArch: %{rust_arches}
- rust-sha-1
ExclusiveArch: %{rust_arches}
- rust-sha1
ExclusiveArch: %{rust_arches}
- rust-sha2
ExclusiveArch: %{rust_arches}
- rust-shared_child
ExclusiveArch: %{rust_arches}
- rust-shell-escape
ExclusiveArch: %{rust_arches}
- rust-shell-words
ExclusiveArch: %{rust_arches}
- rust-shellexpand
ExclusiveArch: %{rust_arches}
- rust-shlex
ExclusiveArch: %{rust_arches}
- rust-signal-hook
ExclusiveArch: %{rust_arches}
- rust-signal-hook-registry
ExclusiveArch: %{rust_arches}
- rust-silver
ExclusiveArch: %{rust_arches}
- rust-simd_helpers
ExclusiveArch: %{rust_arches}
- rust-simple_logger
ExclusiveArch: %{rust_arches}
- rust-simplelog
ExclusiveArch: %{rust_arches}
- rust-siphasher
ExclusiveArch: %{rust_arches}
- rust-size
ExclusiveArch: %{rust_arches}
- rust-sized-chunks
ExclusiveArch: %{rust_arches}
- rust-skeptic
ExclusiveArch: %{rust_arches}
- rust-skim
ExclusiveArch: %{rust_arches}
- rust-slab
ExclusiveArch: %{rust_arches}
- rust-slash-formatter
ExclusiveArch: %{rust_arches}
- rust-slice-deque
ExclusiveArch: %{rust_arches}
- rust-slog
ExclusiveArch: %{rust_arches}
- rust-slog-async
ExclusiveArch: %{rust_arches}
- rust-slog-scope
ExclusiveArch: %{rust_arches}
- rust-slog-term
ExclusiveArch: %{rust_arches}
- rust-slotmap
ExclusiveArch: %{rust_arches}
- rust-slug
ExclusiveArch: %{rust_arches}
- rust-sluice
ExclusiveArch: %{rust_arches}
- rust-smallvec
ExclusiveArch: %{rust_arches}
- rust-smart-default
ExclusiveArch: %{rust_arches}
- rust-snafu
ExclusiveArch: %{rust_arches}
- rust-snafu-derive
ExclusiveArch: %{rust_arches}
- rust-snowflake
ExclusiveArch: %{rust_arches}
- rust-socket2
ExclusiveArch: %{rust_arches}
- rust-soup-sys
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-stacker
ExclusiveArch: %{rust_arches}
- rust-standback
ExclusiveArch: %{rust_arches}
- rust-starship
ExclusiveArch: %{rust_arches}
- rust-starship_module_config_derive
ExclusiveArch: %{rust_arches}
- rust-static_assertions
ExclusiveArch: %{rust_arches}
- rust-statistical
ExclusiveArch: %{rust_arches}
- rust-stb_truetype
ExclusiveArch: %{rust_arches}
- rust-stream-cipher
ExclusiveArch: %{rust_arches}
- rust-streaming-stats
ExclusiveArch: %{rust_arches}
- rust-string
ExclusiveArch: %{rust_arches}
- rust-string_cache
ExclusiveArch: %{rust_arches}
- rust-string_cache_codegen
ExclusiveArch: %{rust_arches}
- rust-string_cache_shared
ExclusiveArch: %{rust_arches}
- rust-strings
ExclusiveArch: %{rust_arches}
- rust-strip-ansi-escapes
ExclusiveArch: %{rust_arches}
- rust-strsim
ExclusiveArch: %{rust_arches}
- rust-structopt
ExclusiveArch: %{rust_arches}
- rust-structopt-derive
ExclusiveArch: %{rust_arches}
- rust-structopt-derive0.2
ExclusiveArch: %{rust_arches}
- rust-structopt0.2
ExclusiveArch: %{rust_arches}
- rust-strum
ExclusiveArch: %{rust_arches}
- rust-strum_macros
ExclusiveArch: %{rust_arches}
- rust-subtle
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin-sys
ExclusiveArch: %{rust_arches}
- rust-sval
ExclusiveArch: %{rust_arches}
- rust-sval_derive
ExclusiveArch: %{rust_arches}
- rust-sxd-document
ExclusiveArch: %{rust_arches}
- rust-syn
ExclusiveArch: %{rust_arches}
- rust-syn-mid
ExclusiveArch: %{rust_arches}
- rust-syn0.15
ExclusiveArch: %{rust_arches}
- rust-synom
ExclusiveArch: %{rust_arches}
- rust-synstructure
ExclusiveArch: %{rust_arches}
- rust-syntect
ExclusiveArch: %{rust_arches}
- rust-sys-info
ExclusiveArch: %{rust_arches}
- rust-sysinfo
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-target-lexicon
ExclusiveArch: %{rust_arches}
- rust-tealdeer
ExclusiveArch: %{rust_arches}
- rust-teloxide
ExclusiveArch: %{rust_arches}
- rust-teloxide-macros
ExclusiveArch: %{rust_arches}
- rust-tempdir
ExclusiveArch: %{rust_arches}
- rust-tempfile
ExclusiveArch: %{rust_arches}
- rust-tendril
ExclusiveArch: %{rust_arches}
- rust-tera
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-terminal_size
ExclusiveArch: %{rust_arches}
- rust-terminfo
ExclusiveArch: %{rust_arches}
- rust-termion
ExclusiveArch: %{rust_arches}
- rust-termios
ExclusiveArch: %{rust_arches}
- rust-test-assembler
ExclusiveArch: %{rust_arches}
- rust-tester
ExclusiveArch: %{rust_arches}
- rust-testing_logger
ExclusiveArch: %{rust_arches}
- rust-textwrap
ExclusiveArch: %{rust_arches}
- rust-thiserror
ExclusiveArch: %{rust_arches}
- rust-thiserror-impl
ExclusiveArch: %{rust_arches}
- rust-thread-id
ExclusiveArch: %{rust_arches}
- rust-thread-scoped
ExclusiveArch: %{rust_arches}
- rust-thread_local
ExclusiveArch: %{rust_arches}
- rust-threadpool
ExclusiveArch: %{rust_arches}
- rust-tiff
ExclusiveArch: %{rust_arches}
- rust-tiger-digest
ExclusiveArch: %{rust_arches}
- rust-time
ExclusiveArch: %{rust_arches}
- rust-time-macros
ExclusiveArch: %{rust_arches}
- rust-time-macros-impl
ExclusiveArch: %{rust_arches}
- rust-time0.1
ExclusiveArch: %{rust_arches}
- rust-timebomb
ExclusiveArch: %{rust_arches}
- rust-timer
ExclusiveArch: %{rust_arches}
- rust-timerfd
ExclusiveArch: %{rust_arches}
- rust-tiny_http
ExclusiveArch: %{rust_arches}
- rust-tinytemplate
ExclusiveArch: %{rust_arches}
- rust-tinyvec
ExclusiveArch: %{rust_arches}
- rust-tokei
ExclusiveArch: %{rust_arches}
- rust-tokio
ExclusiveArch: %{rust_arches}
- rust-tokio-codec
ExclusiveArch: %{rust_arches}
- rust-tokio-core
ExclusiveArch: %{rust_arches}
- rust-tokio-current-thread
ExclusiveArch: %{rust_arches}
- rust-tokio-executor
ExclusiveArch: %{rust_arches}
- rust-tokio-fs
ExclusiveArch: %{rust_arches}
- rust-tokio-io
ExclusiveArch: %{rust_arches}
- rust-tokio-io-pool
ExclusiveArch: %{rust_arches}
- rust-tokio-macros
ExclusiveArch: %{rust_arches}
- rust-tokio-mock-task
ExclusiveArch: %{rust_arches}
- rust-tokio-openssl
ExclusiveArch: %{rust_arches}
- rust-tokio-reactor
ExclusiveArch: %{rust_arches}
- rust-tokio-socks
ExclusiveArch: %{rust_arches}
- rust-tokio-sync
ExclusiveArch: %{rust_arches}
- rust-tokio-tcp
ExclusiveArch: %{rust_arches}
- rust-tokio-test
ExclusiveArch: %{rust_arches}
- rust-tokio-threadpool
ExclusiveArch: %{rust_arches}
- rust-tokio-timer
ExclusiveArch: %{rust_arches}
- rust-tokio-tls
ExclusiveArch: %{rust_arches}
- rust-tokio-tls0.2
ExclusiveArch: %{rust_arches}
- rust-tokio-tungstenite
ExclusiveArch: %{rust_arches}
- rust-tokio-udp
ExclusiveArch: %{rust_arches}
- rust-tokio-uds
ExclusiveArch: %{rust_arches}
- rust-tokio-util
ExclusiveArch: %{rust_arches}
- rust-tokio-util0.2
ExclusiveArch: %{rust_arches}
- rust-tokio0.1
ExclusiveArch: %{rust_arches}
- rust-toml
ExclusiveArch: %{rust_arches}
- rust-toml0.4
ExclusiveArch: %{rust_arches}
- rust-tower-layer
ExclusiveArch: %{rust_arches}
- rust-tower-service
ExclusiveArch: %{rust_arches}
- rust-tower-test
ExclusiveArch: %{rust_arches}
- rust-tower-util
ExclusiveArch: %{rust_arches}
- rust-traitobject
ExclusiveArch: %{rust_arches}
- rust-treebitmap
ExclusiveArch: %{rust_arches}
- rust-treeline
ExclusiveArch: %{rust_arches}
- rust-trust-dns-native-tls
ExclusiveArch: %{rust_arches}
- rust-trust-dns-openssl
ExclusiveArch: %{rust_arches}
- rust-trust-dns-proto
ExclusiveArch: %{rust_arches}
- rust-trust-dns-resolver
ExclusiveArch: %{rust_arches}
- rust-try-lock
ExclusiveArch: %{rust_arches}
- rust-try_from
ExclusiveArch: %{rust_arches}
- rust-try_or
ExclusiveArch: %{rust_arches}
- rust-trybuild
ExclusiveArch: %{rust_arches}
- rust-tui
ExclusiveArch: %{rust_arches}
- rust-tui-react
ExclusiveArch: %{rust_arches}
- rust-tuikit
ExclusiveArch: %{rust_arches}
- rust-tungstenite
ExclusiveArch: %{rust_arches}
- rust-twoway
ExclusiveArch: %{rust_arches}
- rust-typeable
ExclusiveArch: %{rust_arches}
- rust-typed-arena
ExclusiveArch: %{rust_arches}
- rust-typemap
ExclusiveArch: %{rust_arches}
- rust-typenum
ExclusiveArch: %{rust_arches}
- rust-ucd-parse
ExclusiveArch: %{rust_arches}
- rust-ucd-trie
ExclusiveArch: %{rust_arches}
- rust-ucd-util
ExclusiveArch: %{rust_arches}
- rust-unchecked-index
ExclusiveArch: %{rust_arches}
- rust-unescape
ExclusiveArch: %{rust_arches}
- rust-unic-char-property
ExclusiveArch: %{rust_arches}
- rust-unic-char-range
ExclusiveArch: %{rust_arches}
- rust-unic-common
ExclusiveArch: %{rust_arches}
- rust-unic-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-category
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-common
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-version
ExclusiveArch: %{rust_arches}
- rust-unicase
ExclusiveArch: %{rust_arches}
- rust-unicase1
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-unicode-xid0.1
ExclusiveArch: %{rust_arches}
- rust-unicode_categories
ExclusiveArch: %{rust_arches}
- rust-unindent
ExclusiveArch: %{rust_arches}
- rust-unix_socket
ExclusiveArch: %{rust_arches}
- rust-unreachable
ExclusiveArch: %{rust_arches}
- rust-unsafe-any
ExclusiveArch: %{rust_arches}
- rust-untrusted
ExclusiveArch: %{rust_arches}
- rust-uom
ExclusiveArch: %{rust_arches}
- rust-url
ExclusiveArch: %{rust_arches}
- rust-url1
ExclusiveArch: %{rust_arches}
- rust-url_serde
ExclusiveArch: %{rust_arches}
- rust-urlencoding
ExclusiveArch: %{rust_arches}
- rust-urlshortener
ExclusiveArch: %{rust_arches}
- rust-users
ExclusiveArch: %{rust_arches}
- rust-utf-8
ExclusiveArch: %{rust_arches}
- rust-utf8-ranges
ExclusiveArch: %{rust_arches}
- rust-utf8parse
ExclusiveArch: %{rust_arches}
- rust-uuid
ExclusiveArch: %{rust_arches}
- rust-uuid0.7
ExclusiveArch: %{rust_arches}
- rust-v_escape
ExclusiveArch: %{rust_arches}
- rust-v_escape_derive
ExclusiveArch: %{rust_arches}
- rust-v_htmlescape
ExclusiveArch: %{rust_arches}
- rust-varlink
ExclusiveArch: %{rust_arches}
- rust-varlink-cli
ExclusiveArch: %{rust_arches}
- rust-varlink_generator
ExclusiveArch: %{rust_arches}
- rust-varlink_parser
ExclusiveArch: %{rust_arches}
- rust-varlink_stdinterfaces
ExclusiveArch: %{rust_arches}
- rust-vec_map
ExclusiveArch: %{rust_arches}
- rust-vergen
ExclusiveArch: %{rust_arches}
- rust-version-compare
ExclusiveArch: %{rust_arches}
- rust-version-sync
ExclusiveArch: %{rust_arches}
- rust-version_check
ExclusiveArch: %{rust_arches}
- rust-vmw_backdoor
ExclusiveArch: %{rust_arches}
- rust-void
ExclusiveArch: %{rust_arches}
- rust-vte
ExclusiveArch: %{rust_arches}
- rust-wait-timeout
ExclusiveArch: %{rust_arches}
- rust-walkdir
ExclusiveArch: %{rust_arches}
- rust-want
ExclusiveArch: %{rust_arches}
- rust-warp
ExclusiveArch: %{rust_arches}
- rust-wayland-scanner
ExclusiveArch: %{rust_arches}
- rust-wayland-sys
ExclusiveArch: %{rust_arches}
- rust-webkit2gtk
ExclusiveArch: %{rust_arches}
- rust-webkit2gtk-sys
ExclusiveArch: %{rust_arches}
- rust-websocket
ExclusiveArch: %{rust_arches}
- rust-websocket-base
ExclusiveArch: %{rust_arches}
- rust-which
ExclusiveArch: %{rust_arches}
- rust-wild
ExclusiveArch: %{rust_arches}
- rust-ws
ExclusiveArch: %{rust_arches}
- rust-x11
ExclusiveArch: %{rust_arches}
- rust-xattr
ExclusiveArch: %{rust_arches}
- rust-xdg
ExclusiveArch: %{rust_arches}
- rust-xkbcommon
ExclusiveArch: %{rust_arches}
- rust-xml-rs
ExclusiveArch: %{rust_arches}
- rust-xml5ever
ExclusiveArch: %{rust_arches}
- rust-xz2
ExclusiveArch: %{rust_arches}
- rust-y4m
ExclusiveArch: %{rust_arches}
- rust-yaml-rust
ExclusiveArch: %{rust_arches}
- rust-yaml-rust0.3
ExclusiveArch: %{rust_arches}
- rust-ybaas
ExclusiveArch: %{rust_arches}
- rust-ytop
ExclusiveArch: %{rust_arches}
- rust-yubibomb
ExclusiveArch: %{rust_arches}
- rust-yup-oauth2
ExclusiveArch: %{rust_arches}
- rust-zincati
ExclusiveArch: %{rust_arches}
- rust-zoneinfo_compiled
ExclusiveArch: %{rust_arches}
- rust-zoxide
ExclusiveArch: %{rust_arches}
- rust-zram-generator
ExclusiveArch: %{rust_arches}
- rust-zstd
ExclusiveArch: %{rust_arches}
- rust-zstd-safe
ExclusiveArch: %{rust_arches}
- rust-zstd-sys
ExclusiveArch: %{rust_arches}
- s390utils
ExclusiveArch: s390 s390x
- safetyblanket
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- sagemath
ExclusiveArch: aarch64 %{ix86} x86_64 ppc sparcv9
- sbcl
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- sbd
ExclusiveArch: i686 x86_64 s390x aarch64 ppc64le
- sbsigntools
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- seabios
ExclusiveArch: x86_64
- seamonkey
ExclusiveArch: 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}
- snapd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- soup-sharp
ExclusiveArch: %{mono_arches}
- 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
- springlobby
ExclusiveArch: %{ix86} x86_64
- squeekboard
ExclusiveArch: %{rust_arches}
- startdde
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- statsd
ExclusiveArch: %{nodejs_arches} noarch
- stratis-cli
ExclusiveArch: %{rust_arches} noarch
- stratisd
ExclusiveArch: %{rust_arches}
- stripesnoop
ExclusiveArch: %{ix86} x86_64
- supercollider
ExclusiveArch: %{qt5_qtwebengine_arches}
- supermin
ExclusiveArch: x86_64
- svt-av1
ExclusiveArch: x86_64
- svt-vp9
ExclusiveArch: x86_64
- swift-lang
ExclusiveArch: x86_64 aarch64
- sysbench
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- syslinux
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- taglib-sharp
ExclusiveArch: %{mono_arches}
- tarantool
ExclusiveArch: %{ix86} x86_64
- tboot
ExclusiveArch: %{ix86} x86_64
- tdlib
ExclusiveArch: 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
- tilix
ExclusiveArch: %{ldc_arches}
- tmux-top
ExclusiveArch: %{go_arches}
- tomboy
ExclusiveArch: %{mono_arches}
- toolbox
ExclusiveArch: aarch64 %{arm} ppc64le s390x x86_64
- torbrowser-launcher
ExclusiveArch: %{ix86} x86_64
- 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
- uglify-js1
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- unetbootin
ExclusiveArch: %{ix86} x86_64
- ursa-major
ExclusiveArch: noarch aarch64 ppc64le s390x x86_64
- v8-314
ExclusiveArch: %{ix86} x86_64 %{arm} mips mipsel ppc ppc64
- valgrind
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64
- vapoursynth
ExclusiveArch: %{ix86} x86_64
- vboot-utils
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- vim-go
ExclusiveArch: %{?golang_arches}%{!?golang_arches:%{ix86} x86_64 %{arm}}
- virt-p2v
ExclusiveArch: x86_64
- virtualbox-guest-additions
ExclusiveArch: i686 x86_64
- virtualplanet
ExclusiveArch: %{fpc_arches}
- vkd3d
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- vmaf
ExclusiveArch: x86_64
- vmem
ExclusiveArch: x86_64
- vmemcache
ExclusiveArch: x86_64 ppc64 ppc64le s390x aarch64
- vrq
ExclusiveArch: %{ix86} x86_64
- warsow
ExclusiveArch: %{ix86} x86_64 %{arm}
- warsow-data
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{ix86} x86_64 %{arm}
- webkit2-sharp
ExclusiveArch: %mono_arches
- wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: %{ix86} %{arm}
- wine-dxvk
ExclusiveArch: %{ix86} x86_64
- winetricks
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- wxMaxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
- x2goclient
ExclusiveArch: x86_64
- xe-guest-utilities-latest
ExclusiveArch: %{ix86} x86_64
- xen
ExclusiveArch: %{ix86} x86_64 armv7hl aarch64
- xmlada
ExclusiveArch: %{GPRbuild_arches}
- xorg-x11-drv-armsoc
ExclusiveArch: %{arm} aarch64
- xorg-x11-drv-intel
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-openchrome
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vesa
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vmware
ExclusiveArch: %{ix86} x86_64 ia64
- xsp
ExclusiveArch: %mono_arches
- yarnpkg
ExclusiveArch: %{nodejs_arches} noarch
- ycssmin
ExclusiveArch: %{nodejs_arches} noarch
- zeromq-ada
ExclusiveArch: %{GPRbuild_arches}
- zlib-ada
ExclusiveArch: %{GPRbuild_arches}
- zola
ExclusiveArch: %{rust_arches}
3 years, 10 months
Architecture specific change in rpms/rust-choosier.git
by githook-noreply@fedoraproject.org
The package rpms/rust-choosier.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/rust-choosier.git/commit/?id=edb1....
Change:
+ExclusiveArch: %{rust_arches}
Thanks.
Full change:
============
commit edb140604d21b9dcf532bf6ef2d8ff8268cb5075
Author: Michel Alexandre Salim <salimma(a)fedoraproject.org>
Date: Thu Jun 11 14:52:23 2020 -0700
Initial package
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b1e1cbb
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/choosier-0.1.0.crate
diff --git a/rust-choosier.spec b/rust-choosier.spec
new file mode 100644
index 0000000..d21bbfd
--- /dev/null
+++ b/rust-choosier.spec
@@ -0,0 +1,60 @@
+# Generated by rust2rpm 13
+%bcond_without check
+%global __cargo_skip_build 0
+
+%global crate choosier
+
+Name: rust-%{crate}
+Version: 0.1.0
+Release: 1%{?dist}
+Summary: Choose your browser based on the URL given
+
+# Upstream license specification: MPL-2.0
+License: MPLv2.0
+URL: https://crates.io/crates/choosier
+Source: %{crates_source}
+
+ExclusiveArch: %{rust_arches}
+
+BuildRequires: rust-packaging
+BuildRequires: desktop-file-utils
+
+%global _description %{expand:
+Choose your browser based on the URL given.}
+
+%description %{_description}
+
+%package -n %{crate}
+Summary: %{summary}
+
+%description -n %{crate} %{_description}
+
+%files -n %{crate}
+%license LICENSE.txt
+%doc README.md examples
+%{_bindir}/choosier
+%{_datadir}/applications/choosier.desktop
+
+%prep
+%autosetup -n %{crate}-%{version_no_tilde} -p1
+%cargo_prep
+
+%generate_buildrequires
+%cargo_generate_buildrequires
+
+%build
+%cargo_build
+
+%install
+%cargo_install
+%make_install PREFIX=%{_prefix}
+desktop-file-validate %{buildroot}/%{_datadir}/applications/choosier.desktop
+
+%if %{with check}
+%check
+%cargo_test
+%endif
+
+%changelog
+* Sun Jun 07 18:20:05 PDT 2020 Michel Alexandre Salim <salimma(a)fedoraproject.org> - 0.1.0-1
+- Initial package
diff --git a/sources b/sources
new file mode 100644
index 0000000..14378e0
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (choosier-0.1.0.crate) = 03a126e00b6946ba087cc38b0da0aed09f87443a341973b04d3a58bb0a1c99920c79e2b7decfa8e49f96017d36635acba2bd3b2225b3301f152f195392d74b18
3 years, 10 months
Architecture specific change in rpms/espresso.git
by githook-noreply@fedoraproject.org
The package rpms/espresso.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/espresso.git/commit/?id=34259b40e....
Change:
+ExcludeArch: s390x
Thanks.
Full change:
============
commit 34259b40e3b0bbf528205d5408ca6eb1d312d1cd
Author: Christoph Junghans <junghans(a)votca.org>
Date: Thu Jun 11 12:43:01 2020 -0600
fix build with boost-1.73
diff --git a/3725.patch b/3725.patch
new file mode 100644
index 0000000..9ce21bc
--- /dev/null
+++ b/3725.patch
@@ -0,0 +1,22 @@
+From 48f042382bfe19c54139c10e29d492864d054678 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jean-No=C3=ABl=20Grad?= <jgrad(a)icp.uni-stuttgart.de>
+Date: Fri, 22 May 2020 17:03:17 +0200
+Subject: [PATCH] Fix Variant bug revealed by boost 1.73
+
+---
+ src/script_interface/Variant.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/script_interface/Variant.hpp b/src/script_interface/Variant.hpp
+index e400af836a..6c1751aca1 100644
+--- a/src/script_interface/Variant.hpp
++++ b/src/script_interface/Variant.hpp
+@@ -72,7 +72,7 @@ inline bool is_none(Variant const &v) { return is_type<None>(v); }
+
+ template <typename T, typename U>
+ std::vector<Variant> pack_pair(const std::pair<T, U> &pair) {
+- return {{pair.first, pair.second}};
++ return {pair.first, pair.second};
+ }
+
+ template <typename T, typename U>
diff --git a/espresso.spec b/espresso.spec
index bb0796a..8052f69 100644
--- a/espresso.spec
+++ b/espresso.spec
@@ -4,8 +4,10 @@
Name: espresso
Version: 4.1.2
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: Extensible Simulation Package for Research on Soft matter
+# segfault on s390x: https://github.com/espressomd/espresso/issues/3753
+ExcludeArch: s390x
License: GPLv3+
URL: http://espressomd.org
@@ -13,6 +15,8 @@ URL: http://espressomd.org
Source0: https://github.com/%{name}md/%{name}/archive/%{commit}/%{name}-%{commit}....
%else
Source0: https://github.com/%{name}md/%{name}/releases/download/%{version}/%{name}...
+# https://github.com/espressomd/espresso/pull/3725.patch on boost-1.73
+Patch0: https://github.com/espressomd/espresso/pull/3725.patch
%endif
@@ -105,6 +109,7 @@ This package contains %{name} compiled against MPICH2.
%setup -q -n espresso-%{commit}
%else
%setup -q -n %{name}
+%patch0 -p1
%endif
%build
@@ -157,6 +162,9 @@ done
%{python3_sitearch}/mpich/%{name}md/
%changelog
+* Thu Jun 11 2020 Christoph Junghans <junghans(a)votca.org> - 4.1.2-4
+- fix build with boost-1.73
+
* Tue May 26 2020 Miro Hrončok <mhroncok(a)redhat.com> - 4.1.2-3
- Rebuilt for Python 3.9
3 years, 10 months
Architecture specific change in rpms/ocaml-ppx-sexp-conv.git
by githook-noreply@fedoraproject.org
The package rpms/ocaml-ppx-sexp-conv.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-ppx-sexp-conv.git/commit/?i....
Change:
+%ifarch %{ocaml_native_compiler}
Thanks.
Full change:
============
commit 4724c8277aff7b558502bec4b8ee6d737b85a7b4
Author: Jerry James <loganjerry(a)gmail.com>
Date: Thu Jun 11 10:48:33 2020 -0600
Initial import.
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..fe07ea6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/ppx_sexp_conv-*.tar.gz
diff --git a/ocaml-ppx-sexp-conv.spec b/ocaml-ppx-sexp-conv.spec
new file mode 100644
index 0000000..93d4e97
--- /dev/null
+++ b/ocaml-ppx-sexp-conv.spec
@@ -0,0 +1,107 @@
+%ifnarch %{ocaml_native_compiler}
+%global debug_package %{nil}
+%endif
+
+%global srcname ppx-sexp-conv
+%global upname ppx_sexp_conv
+
+Name: ocaml-%{srcname}
+Version: 0.13.0
+Release: 2%{?dist}
+Summary: Generate S-expression conversion functions from type definitions
+License: MIT
+URL: https://github.com/janestreet/%{upname}
+Source0: %{url}/archive/v%{version}/%{upname}-%{version}.tar.gz
+
+BuildRequires: ocaml >= 4.04.2
+BuildRequires: (ocaml-base-devel >= 0.13 and ocaml-base-devel < 0.14)
+BuildRequires: ocaml-dune >= 1.5.1
+BuildRequires: ocaml-ppxlib-devel >= 0.9.0
+BuildRequires: ocaml-ppx-inline-test-devel
+BuildRequires: ocaml-odoc
+BuildRequires: (ocaml-sexplib0-devel >= 0.13 and ocaml-sexplib0-devel < 0.14)
+
+%description
+Ppx_sexp_conv is a PPX syntax extension that generates code for
+converting OCaml types to and from s-expressions, as defined in the
+sexplib0 library.
+
+%package devel
+Summary: Development files for %{name}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: ocaml-base-devel%{?_isa}
+Requires: ocaml-ppxlib-devel%{?_isa}
+
+%description devel
+The %{name}-devel package contains libraries and signature
+files for developing applications that use %{name}.
+
+%prep
+%autosetup -n %{upname}-%{version}
+
+%build
+dune build %{?_smp_mflags}
+dune build %{?_smp_mflags} @doc
+
+%install
+dune install --destdir=%{buildroot}
+
+# We do not want the dune markers
+find _build/default/_doc/_html -name .dune-keep -delete
+
+# We do not want the ml files
+find %{buildroot}%{_libdir}/ocaml -name \*.ml -delete
+
+# We install the documentation with the doc macro
+rm -fr %{buildroot}%{_prefix}/doc
+
+%ifarch %{ocaml_native_compiler}
+# Add missing executable bits
+find %{buildroot}%{_libdir}/ocaml -name \*.cmxs -exec chmod a+x {} \+
+%endif
+
+%check
+dune runtest
+
+%files
+%doc CHANGES.md README.org
+%license LICENSE.md
+%dir %{_libdir}/ocaml/%{upname}/
+%dir %{_libdir}/ocaml/%{upname}/expander/
+%dir %{_libdir}/ocaml/%{upname}/runtime-lib/
+%{_libdir}/ocaml/%{upname}/META
+%{_libdir}/ocaml/%{upname}/*.cma
+%{_libdir}/ocaml/%{upname}/*.cmi
+%{_libdir}/ocaml/%{upname}/*/*.cma
+%{_libdir}/ocaml/%{upname}/*/*.cmi
+%ifarch %{ocaml_native_compiler}
+%{_libdir}/ocaml/%{upname}/*.cmxs
+%{_libdir}/ocaml/%{upname}/*/*.cmxs
+%endif
+
+%files devel
+%doc _build/default/_doc/_html/*
+%{_libdir}/ocaml/%{upname}/dune-package
+%{_libdir}/ocaml/%{upname}/opam
+%ifarch %{ocaml_native_compiler}
+%{_libdir}/ocaml/%{upname}/*.a
+%{_libdir}/ocaml/%{upname}/*.cmx
+%{_libdir}/ocaml/%{upname}/*.cmxa
+%{_libdir}/ocaml/%{upname}/*/*.a
+%{_libdir}/ocaml/%{upname}/*/*.cmx
+%{_libdir}/ocaml/%{upname}/*/*.cmxa
+%endif
+%{_libdir}/ocaml/%{upname}/*.cmt
+%{_libdir}/ocaml/%{upname}/*.cmti
+%{_libdir}/ocaml/%{upname}/*.mli
+%{_libdir}/ocaml/%{upname}/*/*.cmt
+%{_libdir}/ocaml/%{upname}/*/*.cmti
+%{_libdir}/ocaml/%{upname}/*/*.mli
+
+%changelog
+* Sun Jun 7 2020 Jerry James <loganjerry(a)gmail.com> - 0.13.0-2
+- Drop CONTRIBUTING.md
+- Use boolean dependencies to more fully reflect upstream version dependencies
+
+* Thu May 7 2020 Jerry James <loganjerry(a)gmail.com> - 0.13.0-1
+- Initial RPM
diff --git a/sources b/sources
new file mode 100644
index 0000000..6b2cfcc
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (ppx_sexp_conv-0.13.0.tar.gz) = bb8dccf8422251c44879feedc2f174ae46407e5227632f9bba80057f3a5bd8cbcb38b5258ce254762b4502f23254c51fabb3475bc6d5657be8e07d1dcde12dbb
3 years, 10 months
Architecture specific change in rpms/ocaml-ppx-sexp-conv.git
by githook-noreply@fedoraproject.org
The package rpms/ocaml-ppx-sexp-conv.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-ppx-sexp-conv.git/commit/?i....
Change:
+%ifarch %{ocaml_native_compiler}
Thanks.
Full change:
============
commit 4724c8277aff7b558502bec4b8ee6d737b85a7b4
Author: Jerry James <loganjerry(a)gmail.com>
Date: Thu Jun 11 10:48:33 2020 -0600
Initial import.
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..fe07ea6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/ppx_sexp_conv-*.tar.gz
diff --git a/ocaml-ppx-sexp-conv.spec b/ocaml-ppx-sexp-conv.spec
new file mode 100644
index 0000000..93d4e97
--- /dev/null
+++ b/ocaml-ppx-sexp-conv.spec
@@ -0,0 +1,107 @@
+%ifnarch %{ocaml_native_compiler}
+%global debug_package %{nil}
+%endif
+
+%global srcname ppx-sexp-conv
+%global upname ppx_sexp_conv
+
+Name: ocaml-%{srcname}
+Version: 0.13.0
+Release: 2%{?dist}
+Summary: Generate S-expression conversion functions from type definitions
+License: MIT
+URL: https://github.com/janestreet/%{upname}
+Source0: %{url}/archive/v%{version}/%{upname}-%{version}.tar.gz
+
+BuildRequires: ocaml >= 4.04.2
+BuildRequires: (ocaml-base-devel >= 0.13 and ocaml-base-devel < 0.14)
+BuildRequires: ocaml-dune >= 1.5.1
+BuildRequires: ocaml-ppxlib-devel >= 0.9.0
+BuildRequires: ocaml-ppx-inline-test-devel
+BuildRequires: ocaml-odoc
+BuildRequires: (ocaml-sexplib0-devel >= 0.13 and ocaml-sexplib0-devel < 0.14)
+
+%description
+Ppx_sexp_conv is a PPX syntax extension that generates code for
+converting OCaml types to and from s-expressions, as defined in the
+sexplib0 library.
+
+%package devel
+Summary: Development files for %{name}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: ocaml-base-devel%{?_isa}
+Requires: ocaml-ppxlib-devel%{?_isa}
+
+%description devel
+The %{name}-devel package contains libraries and signature
+files for developing applications that use %{name}.
+
+%prep
+%autosetup -n %{upname}-%{version}
+
+%build
+dune build %{?_smp_mflags}
+dune build %{?_smp_mflags} @doc
+
+%install
+dune install --destdir=%{buildroot}
+
+# We do not want the dune markers
+find _build/default/_doc/_html -name .dune-keep -delete
+
+# We do not want the ml files
+find %{buildroot}%{_libdir}/ocaml -name \*.ml -delete
+
+# We install the documentation with the doc macro
+rm -fr %{buildroot}%{_prefix}/doc
+
+%ifarch %{ocaml_native_compiler}
+# Add missing executable bits
+find %{buildroot}%{_libdir}/ocaml -name \*.cmxs -exec chmod a+x {} \+
+%endif
+
+%check
+dune runtest
+
+%files
+%doc CHANGES.md README.org
+%license LICENSE.md
+%dir %{_libdir}/ocaml/%{upname}/
+%dir %{_libdir}/ocaml/%{upname}/expander/
+%dir %{_libdir}/ocaml/%{upname}/runtime-lib/
+%{_libdir}/ocaml/%{upname}/META
+%{_libdir}/ocaml/%{upname}/*.cma
+%{_libdir}/ocaml/%{upname}/*.cmi
+%{_libdir}/ocaml/%{upname}/*/*.cma
+%{_libdir}/ocaml/%{upname}/*/*.cmi
+%ifarch %{ocaml_native_compiler}
+%{_libdir}/ocaml/%{upname}/*.cmxs
+%{_libdir}/ocaml/%{upname}/*/*.cmxs
+%endif
+
+%files devel
+%doc _build/default/_doc/_html/*
+%{_libdir}/ocaml/%{upname}/dune-package
+%{_libdir}/ocaml/%{upname}/opam
+%ifarch %{ocaml_native_compiler}
+%{_libdir}/ocaml/%{upname}/*.a
+%{_libdir}/ocaml/%{upname}/*.cmx
+%{_libdir}/ocaml/%{upname}/*.cmxa
+%{_libdir}/ocaml/%{upname}/*/*.a
+%{_libdir}/ocaml/%{upname}/*/*.cmx
+%{_libdir}/ocaml/%{upname}/*/*.cmxa
+%endif
+%{_libdir}/ocaml/%{upname}/*.cmt
+%{_libdir}/ocaml/%{upname}/*.cmti
+%{_libdir}/ocaml/%{upname}/*.mli
+%{_libdir}/ocaml/%{upname}/*/*.cmt
+%{_libdir}/ocaml/%{upname}/*/*.cmti
+%{_libdir}/ocaml/%{upname}/*/*.mli
+
+%changelog
+* Sun Jun 7 2020 Jerry James <loganjerry(a)gmail.com> - 0.13.0-2
+- Drop CONTRIBUTING.md
+- Use boolean dependencies to more fully reflect upstream version dependencies
+
+* Thu May 7 2020 Jerry James <loganjerry(a)gmail.com> - 0.13.0-1
+- Initial RPM
diff --git a/sources b/sources
new file mode 100644
index 0000000..6b2cfcc
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (ppx_sexp_conv-0.13.0.tar.gz) = bb8dccf8422251c44879feedc2f174ae46407e5227632f9bba80057f3a5bd8cbcb38b5258ce254762b4502f23254c51fabb3475bc6d5657be8e07d1dcde12dbb
3 years, 10 months
Architecture specific change in rpms/wine.git
by githook-noreply@fedoraproject.org
The package rpms/wine.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/wine.git/commit/?id=faadc28cc0665...
https://src.fedoraproject.org/cgit/rpms/wine.git/commit/?id=b6dc9f8efeed3...
https://src.fedoraproject.org/cgit/rpms/wine.git/commit/?id=ed2472170e1a0...
https://src.fedoraproject.org/cgit/rpms/wine.git/commit/?id=6a3375aed7da5...
https://src.fedoraproject.org/cgit/rpms/wine.git/commit/?id=41fb9606e6f1c....
Change:
+%ifarch %{arm} aarch64
-%ifarch %{arm} aarch64
+%ifarch %{arm} aarch64
-%ifarch aarch64
+%ifarch aarch64
Thanks.
Full change:
============
commit faadc28cc066527eeae214364effc049183878d9
Author: Michael Cronenworth <mike(a)cchtml.com>
Date: Thu Jun 11 08:59:39 2020 -0500
Backout arm patches due to code rebase by upstream, this will be included in 5.11
diff --git a/wine-staging-5.10-ntdll-arm0.patch b/wine-staging-5.10-ntdll-arm0.patch
deleted file mode 100644
index 74f1f00..0000000
--- a/wine-staging-5.10-ntdll-arm0.patch
+++ /dev/null
@@ -1,964 +0,0 @@
-From 9a4c8c5631101f8571dbdce726ae864060e446c9 Mon Sep 17 00:00:00 2001
-From: Zebediah Figura <z.figura12(a)gmail.com>
-Date: Mon, 8 Jun 2020 15:59:31 -0500
-Subject: [PATCH] Rebase against 17529582402ebe27ef975fc7dcb8353f4f95e629.
-
----
- ...ase-Maintain-FLS-storage-list-in-PEB.patch | 44 ++--
- .../0001-ntdll-Add-stub-for-NtContinue.patch | 63 ------
- ...o-continue-execution-after-exception.patch | 82 --------
- patches/ntdll-NtContinue/definition | 3 -
- ...dll-Support-x86_64-syscall-emulation.patch | 14 +-
- ...mporary-signal-handler-during-proces.patch | 32 +--
- patches/patchinstall.sh | 198 ++++++++----------
- ...ate-syscall-thunks-for-ntdll-exports.patch | 34 +--
- ...e-client-side-file-descriptor-cache-.patch | 20 +-
- staging/upstream-commit | 2 +-
- 10 files changed, 156 insertions(+), 336 deletions(-)
- delete mode 100644 patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch
- delete mode 100644 patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch
- delete mode 100644 patches/ntdll-NtContinue/definition
-
-diff --git a/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch b/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch
-index 1d5434bf6..40f2a0b86 100644
---- a/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch
-+++ b/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch
-@@ -1,4 +1,4 @@
--From 5c370d9f0be803d89302da7471ef0b93b45a0d75 Mon Sep 17 00:00:00 2001
-+From 3fe24d6e3b216c21b6a7b68766414213fdd2ff2d Mon Sep 17 00:00:00 2001
- From: Paul Gofman <pgofman(a)codeweavers.com>
- Date: Thu, 23 Apr 2020 14:32:23 +0300
- Subject: [PATCH] kernelbase: Maintain FLS storage list in PEB.
-@@ -73,10 +73,10 @@ index 7501165dc87..2bcc3ee60c4 100644
- * FlsFree should fail
- * FlsGetValue and FlsSetValue should succeed
- diff --git a/dlls/kernel32/tests/thread.c b/dlls/kernel32/tests/thread.c
--index a454bf118cc..dac30959734 100644
-+index a9869863b44..b24f9e98bc7 100644
- --- a/dlls/kernel32/tests/thread.c
- +++ b/dlls/kernel32/tests/thread.c
--@@ -2435,7 +2435,6 @@ START_TEST(thread)
-+@@ -2377,7 +2377,6 @@ START_TEST(thread)
- }
- return;
- }
-@@ -84,7 +84,7 @@ index a454bf118cc..dac30959734 100644
- test_thread_info();
- test_reserved_tls();
- test_CreateRemoteThread();
--@@ -2463,6 +2462,5 @@ START_TEST(thread)
-+@@ -2405,6 +2404,5 @@ START_TEST(thread)
- test_thread_fpu_cw();
- test_thread_actctx();
- test_thread_description();
-@@ -92,7 +92,7 @@ index a454bf118cc..dac30959734 100644
- test_threadpool();
- }
- diff --git a/dlls/kernelbase/thread.c b/dlls/kernelbase/thread.c
--index 03b16da95bb..4409f120491 100644
-+index f20d460d07d..3c77b6a42f4 100644
- --- a/dlls/kernelbase/thread.c
- +++ b/dlls/kernelbase/thread.c
- @@ -38,6 +38,10 @@
-@@ -106,7 +106,7 @@ index 03b16da95bb..4409f120491 100644
-
- /***********************************************************************
- * Threads
--@@ -916,6 +920,19 @@ static void init_fiber_context( struct fiber_data *fiber )
-+@@ -915,6 +919,19 @@ static void init_fiber_context( struct fiber_data *fiber )
- #endif
- }
-
-@@ -126,7 +126,7 @@ index 03b16da95bb..4409f120491 100644
-
- /***********************************************************************
- * CreateFiber (kernelbase.@)
--@@ -1023,7 +1040,16 @@ void WINAPI DECLSPEC_HOTPATCH DeleteFiber( LPVOID fiber_ptr )
-+@@ -1022,7 +1039,16 @@ void WINAPI DECLSPEC_HOTPATCH DeleteFiber( LPVOID fiber_ptr )
- RtlExitUserThread( 1 );
- }
- RtlFreeUserStack( fiber->stack_allocation );
-@@ -144,7 +144,7 @@ index 03b16da95bb..4409f120491 100644
- HeapFree( GetProcessHeap(), 0, fiber );
- }
-
--@@ -1045,6 +1071,19 @@ void WINAPI DECLSPEC_HOTPATCH SwitchToFiber( LPVOID fiber )
-+@@ -1044,6 +1070,19 @@ void WINAPI DECLSPEC_HOTPATCH SwitchToFiber( LPVOID fiber )
- struct fiber_data *new_fiber = fiber;
- struct fiber_data *current_fiber = NtCurrentTeb()->Tib.u.FiberData;
-
-@@ -164,7 +164,7 @@ index 03b16da95bb..4409f120491 100644
- current_fiber->except = NtCurrentTeb()->Tib.ExceptionList;
- current_fiber->stack_limit = NtCurrentTeb()->Tib.StackLimit;
- current_fiber->fls_slots = NtCurrentTeb()->FlsSlots;
--@@ -1070,9 +1109,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
-+@@ -1069,9 +1108,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
- PEB * const peb = NtCurrentTeb()->Peb;
-
- RtlAcquirePebLock();
-@@ -175,7 +175,7 @@ index 03b16da95bb..4409f120491 100644
- {
- SetLastError( ERROR_NOT_ENOUGH_MEMORY );
- index = FLS_OUT_OF_INDEXES;
--@@ -1082,9 +1119,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
-+@@ -1081,9 +1118,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
- index = RtlFindClearBitsAndSet( peb->FlsBitmap, 1, 1 );
- if (index != ~0U)
- {
-@@ -186,7 +186,7 @@ index 03b16da95bb..4409f120491 100644
- {
- RtlClearBits( peb->FlsBitmap, index, 1 );
- index = FLS_OUT_OF_INDEXES;
--@@ -1092,8 +1127,8 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
-+@@ -1091,8 +1126,8 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
- }
- else
- {
-@@ -197,7 +197,7 @@ index 03b16da95bb..4409f120491 100644
- }
- }
- else SetLastError( ERROR_NO_MORE_ITEMS );
--@@ -1117,7 +1152,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsFree( DWORD index )
-+@@ -1116,7 +1151,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsFree( DWORD index )
- {
- /* FIXME: call Fls callback */
- /* FIXME: add equivalent of ThreadZeroTlsCell here */
-@@ -206,7 +206,7 @@ index 03b16da95bb..4409f120491 100644
- }
- else SetLastError( ERROR_INVALID_PARAMETER );
- RtlReleasePebLock();
--@@ -1136,7 +1171,7 @@ PVOID WINAPI DECLSPEC_HOTPATCH FlsGetValue( DWORD index )
-+@@ -1135,7 +1170,7 @@ PVOID WINAPI DECLSPEC_HOTPATCH FlsGetValue( DWORD index )
- return NULL;
- }
- SetLastError( ERROR_SUCCESS );
-@@ -215,7 +215,7 @@ index 03b16da95bb..4409f120491 100644
- }
-
-
--@@ -1150,14 +1185,12 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsSetValue( DWORD index, PVOID data )
-+@@ -1149,14 +1184,12 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsSetValue( DWORD index, PVOID data )
- SetLastError( ERROR_INVALID_PARAMETER );
- return FALSE;
- }
-@@ -233,10 +233,10 @@ index 03b16da95bb..4409f120491 100644
- }
-
- diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
--index 5e8de8821dd..71ef1cfea0a 100644
-+index ffbc9fabb23..be53d98e5b8 100644
- --- a/dlls/ntdll/loader.c
- +++ b/dlls/ntdll/loader.c
--@@ -179,6 +179,15 @@ static CRITICAL_SECTION_DEBUG dlldir_critsect_debug =
-+@@ -169,6 +169,15 @@ static CRITICAL_SECTION_DEBUG dlldir_critsect_debug =
- };
- static CRITICAL_SECTION dlldir_section = { &dlldir_critsect_debug, -1, 0, 0, 0, 0 };
-
-@@ -252,7 +252,7 @@ index 5e8de8821dd..71ef1cfea0a 100644
- static WINE_MODREF *cached_modref;
- static WINE_MODREF *current_modref;
- static WINE_MODREF *last_failed_modref;
--@@ -219,6 +228,16 @@ static RTL_UNLOAD_EVENT_TRACE unload_traces[RTL_UNLOAD_EVENT_TRACE_NUMBER];
-+@@ -209,6 +218,16 @@ static RTL_UNLOAD_EVENT_TRACE unload_traces[RTL_UNLOAD_EVENT_TRACE_NUMBER];
- static RTL_UNLOAD_EVENT_TRACE *unload_trace_ptr;
- static unsigned int unload_trace_seq;
-
-@@ -269,7 +269,7 @@ index 5e8de8821dd..71ef1cfea0a 100644
- static void module_push_unload_trace( const LDR_DATA_TABLE_ENTRY *ldr )
- {
- RTL_UNLOAD_EVENT_TRACE *ptr = &unload_traces[unload_trace_seq];
--@@ -3913,6 +3932,13 @@ void WINAPI LdrShutdownThread(void)
-+@@ -3610,6 +3629,13 @@ void WINAPI LdrShutdownThread(void)
- /* don't do any detach calls if process is exiting */
- if (process_detaching) return;
-
-@@ -283,15 +283,15 @@ index 5e8de8821dd..71ef1cfea0a 100644
- RtlEnterCriticalSection( &loader_section );
-
- mark = &NtCurrentTeb()->Peb->LdrData->InInitializationOrderModuleList;
--@@ -4153,6 +4179,7 @@ static void user_shared_data_init(void)
-+@@ -3819,6 +3845,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
- */
- void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknown3, ULONG_PTR unknown4 )
- {
- + static const unsigned int fls_slot_count = 8 * sizeof(NtCurrentTeb()->Peb->FlsBitmapBits);
-- static const LARGE_INTEGER zero;
- static int attach_done;
- int i;
--@@ -4191,6 +4218,25 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
-+ NTSTATUS status;
-+@@ -3856,6 +3883,25 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
- InsertHeadList( &tls_links, &NtCurrentTeb()->TlsLinks );
- RtlReleasePebLock();
-
-@@ -318,5 +318,5 @@ index 5e8de8821dd..71ef1cfea0a 100644
- {
- attach_done = 1;
- --
--2.25.3
-+2.26.2
-
-diff --git a/patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch b/patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch
-deleted file mode 100644
-index 7145857bd..000000000
---- a/patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch
-+++ /dev/null
-@@ -1,63 +0,0 @@
--From 9ea4f081689959bd393eab2caaa0ed8237846117 Mon Sep 17 00:00:00 2001
--From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
--Date: Thu, 25 May 2017 05:04:26 +0200
--Subject: [PATCH] ntdll: Add stub for NtContinue.
--
-----
-- dlls/ntdll/exception.c | 10 +++++++++-
-- dlls/ntdll/ntdll.spec | 4 ++--
-- 2 files changed, 11 insertions(+), 3 deletions(-)
--
--diff --git a/dlls/ntdll/exception.c b/dlls/ntdll/exception.c
--index c35312fd1d1..3b85f1efa04 100644
----- a/dlls/ntdll/exception.c
--+++ b/dlls/ntdll/exception.c
--@@ -328,7 +328,6 @@ LONG WINAPI call_unhandled_exception_filter( PEXCEPTION_POINTERS eptr )
-- return unhandled_exception_filter( eptr );
-- }
--
---
-- #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__)
--
-- struct dynamic_unwind_entry
--@@ -667,6 +666,15 @@ PRUNTIME_FUNCTION WINAPI RtlLookupFunctionEntry( ULONG_PTR pc, ULONG_PTR *base,
--
-- #endif /* __x86_64__ || __arm__ || __aarch64__ */
--
--+/*********************************************************************
--+ * NtContinue (NTDLL.@)
--+ */
--+NTSTATUS WINAPI NtContinue( CONTEXT *context, BOOLEAN alert )
--+{
--+ FIXME( "(%p, %d) stub!\n", context, alert );
--+ return STATUS_NOT_IMPLEMENTED;
--+}
--+
-- /*************************************************************
-- * __wine_spec_unimplemented_stub
-- *
--diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
--index 81faf7fc280..d21a6f08ac2 100644
----- a/dlls/ntdll/ntdll.spec
--+++ b/dlls/ntdll/ntdll.spec
--@@ -150,7 +150,7 @@
-- @ stdcall NtCompleteConnectPort(ptr)
-- # @ stub NtCompressKey
-- @ stdcall NtConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr)
---@ stub NtContinue
--+@ stdcall NtContinue(ptr long)
-- # @ stub NtCreateDebugObject
-- @ stdcall NtCreateDirectoryObject(ptr long ptr)
-- @ stdcall NtCreateEvent(ptr long ptr long long)
--@@ -1105,7 +1105,7 @@
-- @ stdcall -private ZwCompleteConnectPort(ptr) NtCompleteConnectPort
-- # @ stub ZwCompressKey
-- @ stdcall -private ZwConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr) NtConnectPort
---@ stub ZwContinue
--+@ stdcall -private ZwContinue(ptr long) NtContinue
-- # @ stub ZwCreateDebugObject
-- @ stdcall -private ZwCreateDirectoryObject(ptr long ptr) NtCreateDirectoryObject
-- @ stdcall -private ZwCreateEvent(ptr long ptr long long) NtCreateEvent
----
--2.17.1
--
-diff --git a/patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch b/patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch
-deleted file mode 100644
-index 902940977..000000000
---- a/patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch
-+++ /dev/null
-@@ -1,82 +0,0 @@
--From 812de54c6fc8f93e8fda01f0802397b183adab59 Mon Sep 17 00:00:00 2001
--From: Andrew Wesie <awesie(a)gmail.com>
--Date: Fri, 27 Jul 2018 01:26:56 -0500
--Subject: [PATCH] ntdll: Use NtContinue to continue execution after exceptions.
--
--NtContinue is exported by ntdll and some programs expect it to be used to
--restore the thread context after an exception handler returns
--EXCEPTION_CONTINUE_EXECUTION. It must take a context as its first argument
--and restore that context.
--
--Current implementation is a simple wrapper around NtSetContextThread. It is
--unlikely that it has the correct behavior if called by an external caller.
--
--The __syscall_NtContinue wrapper is used so that it can be hooked by a
--third-party.
-----
-- dlls/ntdll/exception.c | 5 +++--
-- dlls/ntdll/signal_i386.c | 3 ++-
-- dlls/ntdll/signal_x86_64.c | 3 ++-
-- 3 files changed, 7 insertions(+), 4 deletions(-)
--
--diff --git a/dlls/ntdll/exception.c b/dlls/ntdll/exception.c
--index 3b85f1efa..bc972254f 100644
----- a/dlls/ntdll/exception.c
--+++ b/dlls/ntdll/exception.c
--@@ -671,8 +671,9 @@ PRUNTIME_FUNCTION WINAPI RtlLookupFunctionEntry( ULONG_PTR pc, ULONG_PTR *base,
-- */
-- NTSTATUS WINAPI NtContinue( CONTEXT *context, BOOLEAN alert )
-- {
--- FIXME( "(%p, %d) stub!\n", context, alert );
--- return STATUS_NOT_IMPLEMENTED;
--+ TRACE( "(%p, %d) stub!\n", context, alert );
--+
--+ return NtSetContextThread( GetCurrentThread(), context );
-- }
--
-- /*************************************************************
--diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
--index e55164630..8fc885ed4 100644
----- a/dlls/ntdll/signal_i386.c
--+++ b/dlls/ntdll/signal_i386.c
--@@ -730,6 +730,7 @@ static NTSTATUS call_stack_handlers( EXCEPTION_RECORD *rec, CONTEXT *context )
-- return STATUS_UNHANDLED_EXCEPTION;
-- }
--
--+NTSTATUS WINAPI __syscall_NtContinue( CONTEXT *context, BOOLEAN alert );
--
-- /*******************************************************************
-- * raise_exception
--@@ -794,7 +795,7 @@ static NTSTATUS raise_exception( EXCEPTION_RECORD *rec, CONTEXT *context, BOOL f
-- NtTerminateProcess( NtCurrentProcess(), rec->ExceptionCode );
-- }
-- done:
--- return NtSetContextThread( GetCurrentThread(), context );
--+ return __syscall_NtContinue( context, FALSE );
-- }
--
--
--diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
--index e48529d73..0e74fda43 100644
----- a/dlls/ntdll/signal_x86_64.c
--+++ b/dlls/ntdll/signal_x86_64.c
--@@ -2520,6 +2520,7 @@ static NTSTATUS call_stack_handlers( EXCEPTION_RECORD *rec, CONTEXT *orig_contex
-- return STATUS_UNHANDLED_EXCEPTION;
-- }
--
--+NTSTATUS WINAPI __syscall_NtContinue( CONTEXT *context, BOOLEAN alert );
--
-- static NTSTATUS raise_exception( EXCEPTION_RECORD *rec, CONTEXT *context, BOOL first_chance )
-- {
--@@ -2582,7 +2583,7 @@ static NTSTATUS raise_exception( EXCEPTION_RECORD *rec, CONTEXT *context, BOOL f
-- }
--
-- done:
--- return NtSetContextThread( GetCurrentThread(), context );
--+ return __syscall_NtContinue( context, FALSE );
-- }
--
--
----
--2.23.0
--
-diff --git a/patches/ntdll-NtContinue/definition b/patches/ntdll-NtContinue/definition
-deleted file mode 100644
-index 06c2ebf9e..000000000
---- a/patches/ntdll-NtContinue/definition
-+++ /dev/null
-@@ -1,3 +0,0 @@
--Fixes: [31910] Add stub for NtContinue
--Fixes: [45572] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of NtContinue)
--Depends: winebuild-Fake_Dlls
-\ No newline at end of file
-diff --git a/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch b/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch
-index 4ae5fcdfa..0a39d4355 100644
---- a/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch
-+++ b/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch
-@@ -1,4 +1,4 @@
--From 20298be5a42af52be27c56f88ad6a8a0304b55b6 Mon Sep 17 00:00:00 2001
-+From cd04d1910294b035bb3858b3ef1bb295aec3a732 Mon Sep 17 00:00:00 2001
- From: Paul Gofman <pgofman(a)codeweavers.com>
- Date: Mon, 30 Dec 2019 13:27:53 +0300
- Subject: [PATCH] ntdll: Support x86_64 syscall emulation.
-@@ -15,7 +15,7 @@ is used for trapping syscalls.
- 3 files changed, 119 insertions(+), 2 deletions(-)
-
- diff --git a/configure.ac b/configure.ac
--index e3d63ed7501..2fbec4129df 100644
-+index e61a98455c3..4adeb52d225 100644
- --- a/configure.ac
- +++ b/configure.ac
- @@ -464,6 +464,7 @@ AC_CHECK_HEADERS(\
-@@ -27,7 +27,7 @@ index e3d63ed7501..2fbec4129df 100644
- linux/types.h \
- linux/ucdrom.h \
- diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
--index 0ccc7cbceb6..149ad1bf5e7 100644
-+index dd8b45fa907..a5612abf2b1 100644
- --- a/dlls/ntdll/signal_x86_64.c
- +++ b/dlls/ntdll/signal_x86_64.c
- @@ -24,6 +24,7 @@
-@@ -61,8 +61,8 @@ index 0ccc7cbceb6..149ad1bf5e7 100644
- typedef struct _SCOPE_TABLE
- {
- ULONG Count;
--@@ -2797,6 +2807,104 @@ static void usr1_handler( int signal, siginfo_t *siginfo, void *ucontext )
-- restore_context( &context, ucontext );
-+@@ -2480,6 +2490,104 @@ static inline DWORD is_privileged_instr( CONTEXT *context )
-+ return 0;
- }
-
- +extern unsigned int __wine_nb_syscalls;
-@@ -165,8 +165,8 @@ index 0ccc7cbceb6..149ad1bf5e7 100644
- +}
-
- /***********************************************************************
-- * __wine_set_signal_handler (NTDLL.@)
--@@ -2842,6 +2950,9 @@ void signal_init_process(void)
-+ * handle_interrupt
-+@@ -2793,6 +2901,9 @@ void signal_init_process(void)
- sig_act.sa_sigaction = trap_handler;
- if (sigaction( SIGTRAP, &sig_act, NULL ) == -1) goto error;
- #endif
-diff --git a/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch b/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch
-index d6e9a6824..db0631234 100644
---- a/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch
-+++ b/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch
-@@ -1,4 +1,4 @@
--From 46968c583a30476a86463530d0047699e64529b5 Mon Sep 17 00:00:00 2001
-+From bd60a4308f3ec1df20328887335b4c95f9be215d Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
- Date: Sat, 4 Oct 2014 02:53:22 +0200
- Subject: [PATCH] ntdll: Setup a temporary signal handler during process
-@@ -27,10 +27,10 @@ index 65c65cc02d8..63a4b597872 100644
- extern void debug_init(void) DECLSPEC_HIDDEN;
- extern TEB *thread_init( SIZE_T *info_size, BOOL *suspend ) DECLSPEC_HIDDEN;
- diff --git a/dlls/ntdll/signal_arm.c b/dlls/ntdll/signal_arm.c
--index 8ff9f66d3f0..44e3d2df523 100644
-+index a09848449a6..c6f7231fec6 100644
- --- a/dlls/ntdll/signal_arm.c
- +++ b/dlls/ntdll/signal_arm.c
--@@ -773,6 +773,12 @@ void signal_init_process(void)
-+@@ -792,6 +792,12 @@ void signal_init_process(void)
- exit(1);
- }
-
-@@ -44,11 +44,11 @@ index 8ff9f66d3f0..44e3d2df523 100644
- /***********************************************************************
- * RtlUnwind (NTDLL.@)
- diff --git a/dlls/ntdll/signal_arm64.c b/dlls/ntdll/signal_arm64.c
--index 104ffbf6df9..e7c6abd0046 100644
-+index a9a58a2e7ad..a9c6614794e 100644
- --- a/dlls/ntdll/signal_arm64.c
- +++ b/dlls/ntdll/signal_arm64.c
--@@ -1100,6 +1100,12 @@ int CDECL __wine_set_signal_handler(unsigned int sig, wine_signal_handler wsh)
-- return 0;
-+@@ -1047,6 +1047,12 @@ static void usr2_handler( int signal, siginfo_t *siginfo, void *sigcontext )
-+ restore_context( context, sigcontext );
- }
-
- +/**********************************************************************
-@@ -61,10 +61,10 @@ index 104ffbf6df9..e7c6abd0046 100644
- /**********************************************************************
- * signal_init_process
- diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
--index 1b0b9352a87..0fe9f7a3c84 100644
-+index 83868f25121..b048b2bc688 100644
- --- a/dlls/ntdll/signal_i386.c
- +++ b/dlls/ntdll/signal_i386.c
--@@ -1621,6 +1621,31 @@ static BOOL handle_interrupt( unsigned int interrupt, ucontext_t *sigcontext, st
-+@@ -1575,6 +1575,31 @@ static BOOL handle_interrupt( unsigned int interrupt, ucontext_t *sigcontext, st
- }
-
-
-@@ -96,7 +96,7 @@ index 1b0b9352a87..0fe9f7a3c84 100644
- /**********************************************************************
- * segv_handler
- *
--@@ -1948,6 +1973,34 @@ void signal_init_process(void)
-+@@ -1883,6 +1908,34 @@ void signal_init_process(void)
- exit(1);
- }
-
-@@ -132,11 +132,11 @@ index 1b0b9352a87..0fe9f7a3c84 100644
- /*******************************************************************
- * RtlUnwind (NTDLL.@)
- diff --git a/dlls/ntdll/signal_powerpc.c b/dlls/ntdll/signal_powerpc.c
--index 7e73322cbeb..07f0b89f30a 100644
-+index 879b2b58c49..f17d6267102 100644
- --- a/dlls/ntdll/signal_powerpc.c
- +++ b/dlls/ntdll/signal_powerpc.c
--@@ -637,6 +637,12 @@ int CDECL __wine_set_signal_handler(unsigned int sig, wine_signal_handler wsh)
-- return 0;
-+@@ -634,6 +634,12 @@ static void quit_handler( int signal, siginfo_t *siginfo, void *sigcontext )
-+ unix_funcs->abort_thread(0);
- }
-
- +/**********************************************************************
-@@ -147,12 +147,12 @@ index 7e73322cbeb..07f0b89f30a 100644
- +}
-
- /**********************************************************************
-- * signal_init_process
-+ * usr1_handler
- diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
--index 0ccc7cbceb6..dc8a1a987c5 100644
-+index c6b0fbf618d..bb481ba1b81 100644
- --- a/dlls/ntdll/signal_x86_64.c
- +++ b/dlls/ntdll/signal_x86_64.c
--@@ -2849,6 +2849,12 @@ void signal_init_process(void)
-+@@ -2777,6 +2777,12 @@ void signal_init_process(void)
- exit(1);
- }
-
-@@ -166,7 +166,7 @@ index 0ccc7cbceb6..dc8a1a987c5 100644
- static ULONG64 get_int_reg( CONTEXT *context, int reg )
- {
- diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
--index 8918b39a9c5..a2f5df1b1c2 100644
-+index d045466f6d2..49daa33ca58 100644
- --- a/dlls/ntdll/thread.c
- +++ b/dlls/ntdll/thread.c
- @@ -186,6 +186,7 @@ TEB *thread_init( SIZE_T *info_size, BOOL *suspend )
-diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh
-index c5ff8c0b3..9c2ce4ce0 100755
---- a/patches/patchinstall.sh
-+++ b/patches/patchinstall.sh
-@@ -52,7 +52,7 @@ usage()
- # Get the upstream commit sha
- upstream_commit()
- {
-- echo "3cc3b445752902e07231900befc296f74ad6576e"
-+ echo "17529582402ebe27ef975fc7dcb8353f4f95e629"
- }
-
- # Show version information
-@@ -183,7 +183,6 @@ patch_enable_all ()
- enable_ntdll_Junction_Points="$1"
- enable_ntdll_Manifest_Range="$1"
- enable_ntdll_NtAccessCheck="$1"
-- enable_ntdll_NtContinue="$1"
- enable_ntdll_NtDevicePath="$1"
- enable_ntdll_NtQueryEaFile="$1"
- enable_ntdll_NtQuerySection="$1"
-@@ -648,9 +647,6 @@ patch_enable ()
- ntdll-NtAccessCheck)
- enable_ntdll_NtAccessCheck="$2"
- ;;
-- ntdll-NtContinue)
-- enable_ntdll_NtContinue="$2"
-- ;;
- ntdll-NtDevicePath)
- enable_ntdll_NtDevicePath="$2"
- ;;
-@@ -1672,6 +1668,17 @@ if test "$enable_ntdll_Syscall_Emulation" -eq 1; then
- enable_winebuild_Fake_Dlls=1
- fi
-
-+if test "$enable_winebuild_Fake_Dlls" -eq 1; then
-+ if test "$enable_ntdll_WRITECOPY" -gt 1; then
-+ abort "Patchset ntdll-WRITECOPY disabled, but winebuild-Fake_Dlls depends on that."
-+ fi
-+ if test "$enable_ws2_32_WSACleanup" -gt 1; then
-+ abort "Patchset ws2_32-WSACleanup disabled, but winebuild-Fake_Dlls depends on that."
-+ fi
-+ enable_ntdll_WRITECOPY=1
-+ enable_ws2_32_WSACleanup=1
-+fi
-+
- if test "$enable_ntdll_NtQueryEaFile" -eq 1; then
- if test "$enable_ntdll_Junction_Points" -gt 1; then
- abort "Patchset ntdll-Junction_Points disabled, but ntdll-NtQueryEaFile depends on that."
-@@ -1686,24 +1693,6 @@ if test "$enable_ntdll_NtDevicePath" -eq 1; then
- enable_ntdll_Pipe_SpecialCharacters=1
- fi
-
--if test "$enable_ntdll_NtContinue" -eq 1; then
-- if test "$enable_winebuild_Fake_Dlls" -gt 1; then
-- abort "Patchset winebuild-Fake_Dlls disabled, but ntdll-NtContinue depends on that."
-- fi
-- enable_winebuild_Fake_Dlls=1
--fi
--
--if test "$enable_winebuild_Fake_Dlls" -eq 1; then
-- if test "$enable_ntdll_WRITECOPY" -gt 1; then
-- abort "Patchset ntdll-WRITECOPY disabled, but winebuild-Fake_Dlls depends on that."
-- fi
-- if test "$enable_ws2_32_WSACleanup" -gt 1; then
-- abort "Patchset ws2_32-WSACleanup disabled, but winebuild-Fake_Dlls depends on that."
-- fi
-- enable_ntdll_WRITECOPY=1
-- enable_ws2_32_WSACleanup=1
--fi
--
- if test "$enable_ntdll_Hide_Wine_Exports" -eq 1; then
- if test "$enable_advapi32_Token_Integrity_Level" -gt 1; then
- abort "Patchset advapi32-Token_Integrity_Level disabled, but ntdll-Hide_Wine_Exports depends on that."
-@@ -3977,98 +3966,6 @@ if test "$enable_ntdll_NtAccessCheck" -eq 1; then
- ) >> "$patchlist"
- fi
-
--# Patchset ws2_32-WSACleanup
--# |
--# | This patchset fixes the following Wine bugs:
--# | * [#18670] Properly close sockets when WSACleanup is called
--# |
--# | Modified files:
--# | * dlls/ntdll/ntdll.spec, dlls/ntdll/server.c, dlls/ntdll/unix/loader.c, dlls/ntdll/unix/server.c,
--# | dlls/ntdll/unix/unix_private.h, dlls/ntdll/unixlib.h, dlls/ws2_32/socket.c, dlls/ws2_32/tests/sock.c,
--# | include/wine/server.h, server/protocol.def, server/sock.c
--# |
--if test "$enable_ws2_32_WSACleanup" -eq 1; then
-- patch_apply ws2_32-WSACleanup/0001-ws2_32-Proper-WSACleanup-implementation-using-winese.patch
-- patch_apply ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch
-- (
-- printf '%s\n' '+ { "Matt Durgavich", "ws2_32: Proper WSACleanup implementation using wineserver function.", 2 },';
-- printf '%s\n' '+ { "Sebastian Lackner", "ws2_32: Invalidate client-side file descriptor cache in WSACleanup.", 1 },';
-- ) >> "$patchlist"
--fi
--
--# Patchset winebuild-Fake_Dlls
--# |
--# | This patchset has the following (direct or indirect) dependencies:
--# | * ntdll-WRITECOPY, ws2_32-WSACleanup
--# |
--# | This patchset fixes the following Wine bugs:
--# | * [#21232] Chromium-based browser engines (Chrome, Opera, Comodo Dragon, SRWare Iron) crash on startup unless '--no-
--# | sandbox' is used (native API sandboxing/hooking scheme incompatible with Wine)
--# | * [#42741] StarCraft I: 1.18 PTR fails to initialize ClientSdk.dll
--# | * [#45349] Multiple applications and games crash due to missing support for 64-bit syscall thunks (StreetFighter V)
--# | * [#45573] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of syscall return instructions)
--# | * [#45650] chromium 32-bit sandbox expects different syscall thunks depending on Windows version
--# |
--# | Modified files:
--# | * dlls/dbghelp/cpu_i386.c, dlls/kernel32/tests/loader.c, dlls/krnl386.exe16/kernel.c,
--# | dlls/krnl386.exe16/kernel16_private.h, dlls/krnl386.exe16/ne_module.c, dlls/krnl386.exe16/ne_segment.c,
--# | dlls/krnl386.exe16/task.c, dlls/krnl386.exe16/thunk.c, dlls/krnl386.exe16/wowthunk.c, dlls/ntdll/actctx.c,
--# | dlls/ntdll/directory.c, dlls/ntdll/loader.c, dlls/ntdll/locale.c, dlls/ntdll/ntdll_misc.h, dlls/ntdll/path.c,
--# | dlls/ntdll/process.c, dlls/ntdll/signal_i386.c, dlls/ntdll/tests/exception.c, dlls/ntdll/thread.c,
--# | dlls/ntdll/unix/thread.c, dlls/ntdll/unix/unix_private.h, dlls/ntdll/unix/virtual.c, dlls/ntdll/unixlib.h,
--# | dlls/system.drv16/system.c, dlls/toolhelp.dll16/toolhelp.c, dlls/user.exe16/message.c, dlls/user.exe16/user.c,
--# | dlls/user.exe16/window.c, include/winternl.h, libs/wine/loader.c, server/mapping.c, tools/winebuild/build.h,
--# | tools/winebuild/import.c, tools/winebuild/parser.c, tools/winebuild/relay.c, tools/winebuild/res32.c,
--# | tools/winebuild/spec16.c, tools/winebuild/spec32.c, tools/winebuild/utils.c
--# |
--if test "$enable_winebuild_Fake_Dlls" -eq 1; then
-- patch_apply winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch
-- patch_apply winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch
-- patch_apply winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
-- patch_apply winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch
-- patch_apply winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch
-- patch_apply winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch
-- patch_apply winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch
-- patch_apply winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch
-- patch_apply winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch
-- patch_apply winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch
-- patch_apply winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch
-- (
-- printf '%s\n' '+ { "Michael Müller", "kernel32/tests: Add basic tests for fake dlls.", 1 },';
-- printf '%s\n' '+ { "Sebastian Lackner", "krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit stack address.", 1 },';
-- printf '%s\n' '+ { "Michael Müller", "winebuild: Generate syscall thunks for ntdll exports.", 1 },';
-- printf '%s\n' '+ { "Michael Müller", "winebuild: Use multipass label system to generate fake dlls.", 1 },';
-- printf '%s\n' '+ { "Michael Müller", "winebuild: Add stub functions in fake dlls.", 1 },';
-- printf '%s\n' '+ { "Michael Müller", "winebuild: Add syscall thunks in fake dlls.", 1 },';
-- printf '%s\n' '+ { "Michael Müller", "winebuild: Fix size of relocation information in fake dlls.", 1 },';
-- printf '%s\n' '+ { "Michael Müller", "winebuild: Try to make sure RVA matches between fake and builtin DLLs.", 1 },';
-- printf '%s\n' '+ { "Michael Müller", "libs/wine: Use same file alignment for fake and builtin DLLs.", 1 },';
-- printf '%s\n' '+ { "Michael Müller", "tools/winebuild: Add syscall thunks for 64 bit.", 1 },';
-- printf '%s\n' '+ { "Paul Gofman", "ntdll: Call NtOpenFile through syscall thunk.", 1 },';
-- ) >> "$patchlist"
--fi
--
--# Patchset ntdll-NtContinue
--# |
--# | This patchset has the following (direct or indirect) dependencies:
--# | * ntdll-WRITECOPY, ws2_32-WSACleanup, winebuild-Fake_Dlls
--# |
--# | This patchset fixes the following Wine bugs:
--# | * [#31910] Add stub for NtContinue
--# | * [#45572] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of NtContinue)
--# |
--# | Modified files:
--# | * dlls/ntdll/exception.c, dlls/ntdll/ntdll.spec, dlls/ntdll/signal_i386.c, dlls/ntdll/signal_x86_64.c
--# |
--if test "$enable_ntdll_NtContinue" -eq 1; then
-- patch_apply ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch
-- patch_apply ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch
-- (
-- printf '%s\n' '+ { "Michael Müller", "ntdll: Add stub for NtContinue.", 1 },';
-- printf '%s\n' '+ { "Andrew Wesie", "ntdll: Use NtContinue to continue execution after exceptions.", 1 },';
-- ) >> "$patchlist"
--fi
--
- # Patchset ntdll-Pipe_SpecialCharacters
- # |
- # | This patchset fixes the following Wine bugs:
-@@ -4213,6 +4110,77 @@ if test "$enable_ntdll_Status_Mapping" -eq 1; then
- ) >> "$patchlist"
- fi
-
-+# Patchset ws2_32-WSACleanup
-+# |
-+# | This patchset fixes the following Wine bugs:
-+# | * [#18670] Properly close sockets when WSACleanup is called
-+# |
-+# | Modified files:
-+# | * dlls/ntdll/ntdll.spec, dlls/ntdll/server.c, dlls/ntdll/unix/loader.c, dlls/ntdll/unix/server.c,
-+# | dlls/ntdll/unix/unix_private.h, dlls/ntdll/unixlib.h, dlls/ws2_32/socket.c, dlls/ws2_32/tests/sock.c,
-+# | include/wine/server.h, server/protocol.def, server/sock.c
-+# |
-+if test "$enable_ws2_32_WSACleanup" -eq 1; then
-+ patch_apply ws2_32-WSACleanup/0001-ws2_32-Proper-WSACleanup-implementation-using-winese.patch
-+ patch_apply ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch
-+ (
-+ printf '%s\n' '+ { "Matt Durgavich", "ws2_32: Proper WSACleanup implementation using wineserver function.", 2 },';
-+ printf '%s\n' '+ { "Sebastian Lackner", "ws2_32: Invalidate client-side file descriptor cache in WSACleanup.", 1 },';
-+ ) >> "$patchlist"
-+fi
-+
-+# Patchset winebuild-Fake_Dlls
-+# |
-+# | This patchset has the following (direct or indirect) dependencies:
-+# | * ntdll-WRITECOPY, ws2_32-WSACleanup
-+# |
-+# | This patchset fixes the following Wine bugs:
-+# | * [#21232] Chromium-based browser engines (Chrome, Opera, Comodo Dragon, SRWare Iron) crash on startup unless '--no-
-+# | sandbox' is used (native API sandboxing/hooking scheme incompatible with Wine)
-+# | * [#42741] StarCraft I: 1.18 PTR fails to initialize ClientSdk.dll
-+# | * [#45349] Multiple applications and games crash due to missing support for 64-bit syscall thunks (StreetFighter V)
-+# | * [#45573] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of syscall return instructions)
-+# | * [#45650] chromium 32-bit sandbox expects different syscall thunks depending on Windows version
-+# |
-+# | Modified files:
-+# | * dlls/dbghelp/cpu_i386.c, dlls/kernel32/tests/loader.c, dlls/krnl386.exe16/kernel.c,
-+# | dlls/krnl386.exe16/kernel16_private.h, dlls/krnl386.exe16/ne_module.c, dlls/krnl386.exe16/ne_segment.c,
-+# | dlls/krnl386.exe16/task.c, dlls/krnl386.exe16/thunk.c, dlls/krnl386.exe16/wowthunk.c, dlls/ntdll/actctx.c,
-+# | dlls/ntdll/directory.c, dlls/ntdll/loader.c, dlls/ntdll/locale.c, dlls/ntdll/ntdll_misc.h, dlls/ntdll/path.c,
-+# | dlls/ntdll/process.c, dlls/ntdll/signal_i386.c, dlls/ntdll/tests/exception.c, dlls/ntdll/thread.c,
-+# | dlls/ntdll/unix/thread.c, dlls/ntdll/unix/unix_private.h, dlls/ntdll/unix/virtual.c, dlls/ntdll/unixlib.h,
-+# | dlls/system.drv16/system.c, dlls/toolhelp.dll16/toolhelp.c, dlls/user.exe16/message.c, dlls/user.exe16/user.c,
-+# | dlls/user.exe16/window.c, include/winternl.h, libs/wine/loader.c, server/mapping.c, tools/winebuild/build.h,
-+# | tools/winebuild/import.c, tools/winebuild/parser.c, tools/winebuild/relay.c, tools/winebuild/res32.c,
-+# | tools/winebuild/spec16.c, tools/winebuild/spec32.c, tools/winebuild/utils.c
-+# |
-+if test "$enable_winebuild_Fake_Dlls" -eq 1; then
-+ patch_apply winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch
-+ patch_apply winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch
-+ patch_apply winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
-+ patch_apply winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch
-+ patch_apply winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch
-+ patch_apply winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch
-+ patch_apply winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch
-+ patch_apply winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch
-+ patch_apply winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch
-+ patch_apply winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch
-+ patch_apply winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch
-+ (
-+ printf '%s\n' '+ { "Michael Müller", "kernel32/tests: Add basic tests for fake dlls.", 1 },';
-+ printf '%s\n' '+ { "Sebastian Lackner", "krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit stack address.", 1 },';
-+ printf '%s\n' '+ { "Michael Müller", "winebuild: Generate syscall thunks for ntdll exports.", 1 },';
-+ printf '%s\n' '+ { "Michael Müller", "winebuild: Use multipass label system to generate fake dlls.", 1 },';
-+ printf '%s\n' '+ { "Michael Müller", "winebuild: Add stub functions in fake dlls.", 1 },';
-+ printf '%s\n' '+ { "Michael Müller", "winebuild: Add syscall thunks in fake dlls.", 1 },';
-+ printf '%s\n' '+ { "Michael Müller", "winebuild: Fix size of relocation information in fake dlls.", 1 },';
-+ printf '%s\n' '+ { "Michael Müller", "winebuild: Try to make sure RVA matches between fake and builtin DLLs.", 1 },';
-+ printf '%s\n' '+ { "Michael Müller", "libs/wine: Use same file alignment for fake and builtin DLLs.", 1 },';
-+ printf '%s\n' '+ { "Michael Müller", "tools/winebuild: Add syscall thunks for 64 bit.", 1 },';
-+ printf '%s\n' '+ { "Paul Gofman", "ntdll: Call NtOpenFile through syscall thunk.", 1 },';
-+ ) >> "$patchlist"
-+fi
-+
- # Patchset ntdll-Syscall_Emulation
- # |
- # | This patchset has the following (direct or indirect) dependencies:
-diff --git a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
-index 751b497da..684c28e16 100644
---- a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
-+++ b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
-@@ -1,4 +1,4 @@
--From 1fec139d96f32869fc0c8d15219fff493d9951d8 Mon Sep 17 00:00:00 2001
-+From e60eb454ecfb4c043a585c1ecd2970c92be1c664 Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
- Date: Thu, 11 May 2017 05:32:55 +0200
- Subject: [PATCH] winebuild: Generate syscall thunks for ntdll exports.
-@@ -22,7 +22,7 @@ Based on a patch by Erich E. Hoover.
- 14 files changed, 214 insertions(+), 32 deletions(-)
-
- diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
--index 45d32399adf..b42cff8bcd4 100644
-+index ffbc9fabb23..a633099877d 100644
- --- a/dlls/ntdll/loader.c
- +++ b/dlls/ntdll/loader.c
- @@ -3810,6 +3810,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
-@@ -33,7 +33,7 @@ index 45d32399adf..b42cff8bcd4 100644
-
- /******************************************************************
- * LdrInitializeThunk (NTDLL.@)
--@@ -3827,6 +3828,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
-+@@ -3826,6 +3827,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
- WINE_MODREF *wm;
- LPCWSTR load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer;
-
-@@ -43,19 +43,19 @@ index 45d32399adf..b42cff8bcd4 100644
-
- if (process_detaching) return;
- diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
--index be88d9bf3c7..84ab7991886 100644
-+index 3be6342a945..85329be4f42 100644
- --- a/dlls/ntdll/signal_i386.c
- +++ b/dlls/ntdll/signal_i386.c
--@@ -448,6 +448,8 @@ static ULONG first_ldt_entry = 32;
-+@@ -444,6 +444,8 @@ struct stack_layout
-
-- static wine_signal_handler handlers[256];
-+ static ULONG first_ldt_entry = 32;
-
- +extern NTSTATUS WINAPI __syscall_NtGetContextThread( HANDLE handle, CONTEXT *context );
- +
- enum i386_trap_code
- {
- TRAP_x86_UNKNOWN = -1, /* Unknown fault (TRAP_sig not defined) */
--@@ -1159,7 +1161,7 @@ NTSTATUS CDECL DECLSPEC_HIDDEN __regs_NtGetContextThread( DWORD edi, DWORD esi,
-+@@ -1127,7 +1129,7 @@ NTSTATUS CDECL DECLSPEC_HIDDEN __regs_NtGetContextThread( DWORD edi, DWORD esi,
- {
- context->Ebp = ebp;
- context->Esp = (DWORD)&retaddr;
-@@ -78,7 +78,7 @@ index a5e6faa461a..51938bf84cc 100644
- ok( context.SegCs == LOWORD(expect.SegCs), "wrong SegCs %08x/%08x\n", context.SegCs, expect.SegCs );
- ok( context.SegDs == LOWORD(expect.SegDs), "wrong SegDs %08x/%08x\n", context.SegDs, expect.SegDs );
- diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
--index 79d13a01a86..94eb6d1252d 100644
-+index 49daa33ca58..17b5d40215a 100644
- --- a/dlls/ntdll/thread.c
- +++ b/dlls/ntdll/thread.c
- @@ -173,6 +173,7 @@ int __cdecl __wine_dbg_output( const char *str )
-@@ -99,10 +99,10 @@ index 79d13a01a86..94eb6d1252d 100644
- peb = teb->Peb;
- peb->FastPebLock = &peb_lock;
- diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c
--index b6458da61ad..a158ec20a6a 100644
-+index d4b7a51a627..bdc87e4b9cf 100644
- --- a/dlls/ntdll/unix/thread.c
- +++ b/dlls/ntdll/unix/thread.c
--@@ -83,7 +83,7 @@ static void pthread_exit_wrapper( int status )
-+@@ -85,7 +85,7 @@ static void pthread_exit_wrapper( int status )
- * init_threading
- */
- TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size, BOOL *suspend,
-@@ -111,7 +111,7 @@ index b6458da61ad..a158ec20a6a 100644
- {
- TEB *teb;
- SIZE_T info_size;
--@@ -95,6 +95,7 @@ TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZ
-+@@ -97,6 +97,7 @@ TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZ
- nb_threads = nb_threads_ptr;
-
- teb = virtual_alloc_first_teb();
-@@ -120,10 +120,10 @@ index b6458da61ad..a158ec20a6a 100644
- thread_data->request_fd = -1;
- thread_data->reply_fd = -1;
- diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
--index 880e3aacf33..6c7b961e95a 100644
-+index 19104f0f5cc..bdf8bc99e3f 100644
- --- a/dlls/ntdll/unix/unix_private.h
- +++ b/dlls/ntdll/unix/unix_private.h
--@@ -96,7 +96,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE
-+@@ -101,7 +101,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE
- extern void CDECL server_init_process_done(void) DECLSPEC_HIDDEN;
- extern TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size,
- BOOL *suspend, unsigned int *cpus, BOOL *wow64,
-@@ -133,19 +133,19 @@ index 880e3aacf33..6c7b961e95a 100644
- extern void CDECL DECLSPEC_NORETURN abort_thread( int status ) DECLSPEC_HIDDEN;
- extern void CDECL DECLSPEC_NORETURN exit_thread( int status ) DECLSPEC_HIDDEN;
- diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
--index 83c9f3a163b..63728b1c071 100644
-+index 6a751993421..4e39ed53786 100644
- --- a/dlls/ntdll/unixlib.h
- +++ b/dlls/ntdll/unixlib.h
- @@ -28,7 +28,7 @@ struct ldt_copy;
- struct msghdr;
-
- /* increment this when you change the function table */
---#define NTDLL_UNIXLIB_VERSION 31
--+#define NTDLL_UNIXLIB_VERSION 32
-+-#define NTDLL_UNIXLIB_VERSION 33
-++#define NTDLL_UNIXLIB_VERSION 34
-
- struct unix_funcs
- {
--@@ -172,7 +172,7 @@ struct unix_funcs
-+@@ -174,7 +174,7 @@ struct unix_funcs
-
- /* thread/process functions */
- TEB * (CDECL *init_threading)( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size,
-diff --git a/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch b/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch
-index 25c315648..0861f99c0 100644
---- a/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch
-+++ b/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch
-@@ -1,4 +1,4 @@
--From 1bb20ff5903d8d5e81e8a2b7b22bf67b189b16ec Mon Sep 17 00:00:00 2001
-+From 20661308a50202350a3a2887cbd558b1e931aad1 Mon Sep 17 00:00:00 2001
- From: Sebastian Lackner <sebastian(a)fds-team.de>
- Date: Sun, 6 Sep 2015 12:41:17 +0200
- Subject: [PATCH] ws2_32: Invalidate client-side file descriptor cache in
-@@ -17,7 +17,7 @@ Subject: [PATCH] ws2_32: Invalidate client-side file descriptor cache in
- 9 files changed, 36 insertions(+), 5 deletions(-)
-
- diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
--index c4d78128758..3d6c8850086 100644
-+index ce5c580bd54..279845ae830 100644
- --- a/dlls/ntdll/ntdll.spec
- +++ b/dlls/ntdll/ntdll.spec
- @@ -1576,6 +1576,7 @@
-@@ -48,10 +48,10 @@ index 6fb86a68d6f..2f95e190963 100644
- /***********************************************************************
- * server_init_process
- diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
--index b5ee692024c..d8827b147df 100644
-+index 618e3d6adb3..bdda739897b 100644
- --- a/dlls/ntdll/unix/loader.c
- +++ b/dlls/ntdll/unix/loader.c
--@@ -1074,6 +1074,7 @@ static struct unix_funcs unix_funcs =
-+@@ -1076,6 +1076,7 @@ static struct unix_funcs unix_funcs =
- server_select,
- server_wait,
- server_send_fd,
-@@ -91,10 +91,10 @@ index fb3f98dd579..0754928cfe8 100644
- /***********************************************************************
- * server_get_unix_fd
- diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
--index a422fd825ed..880e3aacf33 100644
-+index 03b92f9e912..19104f0f5cc 100644
- --- a/dlls/ntdll/unix/unix_private.h
- +++ b/dlls/ntdll/unix/unix_private.h
--@@ -84,6 +84,7 @@ extern unsigned int CDECL server_select( const select_op_t *select_op, data_size
-+@@ -89,6 +89,7 @@ extern unsigned int CDECL server_select( const select_op_t *select_op, data_size
- extern unsigned int CDECL server_wait( const select_op_t *select_op, data_size_t size, UINT flags,
- const LARGE_INTEGER *timeout ) DECLSPEC_HIDDEN;
- extern void CDECL server_send_fd( int fd ) DECLSPEC_HIDDEN;
-@@ -103,19 +103,19 @@ index a422fd825ed..880e3aacf33 100644
- int *needs_close, enum server_fd_type *type,
- unsigned int *options ) DECLSPEC_HIDDEN;
- diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
--index 58bdad19397..83c9f3a163b 100644
-+index 017a0a71b3f..6a751993421 100644
- --- a/dlls/ntdll/unixlib.h
- +++ b/dlls/ntdll/unixlib.h
- @@ -28,7 +28,7 @@ struct ldt_copy;
- struct msghdr;
-
- /* increment this when you change the function table */
---#define NTDLL_UNIXLIB_VERSION 30
--+#define NTDLL_UNIXLIB_VERSION 31
-+-#define NTDLL_UNIXLIB_VERSION 32
-++#define NTDLL_UNIXLIB_VERSION 33
-
- struct unix_funcs
- {
--@@ -187,6 +187,7 @@ struct unix_funcs
-+@@ -189,6 +189,7 @@ struct unix_funcs
- unsigned int (CDECL *server_wait)( const select_op_t *select_op, data_size_t size, UINT flags,
- const LARGE_INTEGER *timeout );
- void (CDECL *server_send_fd)( int fd );
-diff --git a/staging/upstream-commit b/staging/upstream-commit
-index f51939b28..8b37e5310 100644
---- a/staging/upstream-commit
-+++ b/staging/upstream-commit
-@@ -1 +1 @@
--3cc3b445752902e07231900befc296f74ad6576e
-+17529582402ebe27ef975fc7dcb8353f4f95e629
diff --git a/wine-staging-5.10-ntdll-arm1.patch b/wine-staging-5.10-ntdll-arm1.patch
deleted file mode 100644
index 56a6f4f..0000000
--- a/wine-staging-5.10-ntdll-arm1.patch
+++ /dev/null
@@ -1,950 +0,0 @@
-From 5306e1df11e772fe8125fcd5857e52cf1f83430b Mon Sep 17 00:00:00 2001
-From: Paul Gofman <gofmanp(a)gmail.com>
-Date: Thu, 11 Jun 2020 15:23:12 +0300
-Subject: [PATCH] Updated winebuild-Fake_Dlls patchset.
-
-Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49357
----
- ...-tests-Add-basic-tests-for-fake-dlls.patch | 8 +--
- ...-not-abuse-WOW32Reserved-field-for-1.patch | 36 ++++++-------
- ...ate-syscall-thunks-for-ntdll-exports.patch | 53 +++++++++++--------
- ...ltipass-label-system-to-generate-fak.patch | 10 ++--
- ...uild-Add-stub-functions-in-fake-dlls.patch | 36 ++++++-------
- ...uild-Add-syscall-thunks-in-fake-dlls.patch | 8 +--
- ...ze-of-relocation-information-in-fake.patch | 4 +-
- ...-make-sure-RVA-matches-between-fake-.patch | 10 ++--
- ...me-file-alignment-for-fake-and-built.patch | 8 +--
- ...ebuild-Add-syscall-thunks-for-64-bit.patch | 39 ++++++--------
- ...all-NtOpenFile-through-syscall-thunk.patch | 32 +++++------
- 11 files changed, 123 insertions(+), 121 deletions(-)
-
-diff --git a/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch b/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch
-index ef056cfcf..21d69fd59 100644
---- a/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch
-+++ b/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch
-@@ -1,4 +1,4 @@
--From de68d5c0e6bd728788bbec09100ea59802b8ff13 Mon Sep 17 00:00:00 2001
-+From 8b88aa45856684e63786425f72886f2ac57b3630 Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
- Date: Thu, 25 May 2017 07:02:46 +0200
- Subject: [PATCH] kernel32/tests: Add basic tests for fake dlls.
-@@ -8,10 +8,10 @@ Subject: [PATCH] kernel32/tests: Add basic tests for fake dlls.
- 1 file changed, 91 insertions(+)
-
- diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
--index 5474d543248..4e7a15970cb 100644
-+index ef8c47c04f1a..efd5a25a432d 100644
- --- a/dlls/kernel32/tests/loader.c
- +++ b/dlls/kernel32/tests/loader.c
--@@ -1535,6 +1535,96 @@ static void test_filenames(void)
-+@@ -1572,6 +1572,96 @@ static void test_filenames(void)
- DeleteFileA( long_path );
- }
-
-@@ -108,7 +108,7 @@ index 5474d543248..4e7a15970cb 100644
- /* Verify linking style of import descriptors */
- static void test_ImportDescriptors(void)
- {
--@@ -3997,6 +4087,7 @@ START_TEST(loader)
-+@@ -4094,6 +4184,7 @@ START_TEST(loader)
- return;
- }
-
-diff --git a/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch b/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch
-index 15aaa85df..ae98c2798 100644
---- a/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch
-+++ b/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch
-@@ -1,4 +1,4 @@
--From 25d08438aba3dee16c79ce3168a4f76f39816fad Mon Sep 17 00:00:00 2001
-+From 7af81866f286e60f601d1c3f9bfe8592a794d21d Mon Sep 17 00:00:00 2001
- From: Sebastian Lackner <sebastian(a)fds-team.de>
- Date: Tue, 16 May 2017 04:37:52 +0200
- Subject: [PATCH] krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit
-@@ -24,7 +24,7 @@ Subject: [PATCH] krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit
- 16 files changed, 78 insertions(+), 77 deletions(-)
-
- diff --git a/dlls/dbghelp/cpu_i386.c b/dlls/dbghelp/cpu_i386.c
--index fd808a0d324..7d6723977a2 100644
-+index fd808a0d3248..7d6723977a29 100644
- --- a/dlls/dbghelp/cpu_i386.c
- +++ b/dlls/dbghelp/cpu_i386.c
- @@ -213,16 +213,16 @@ static BOOL i386_stack_walk(struct cpu_stack_walk *csw, STACKFRAME64 *frame,
-@@ -48,7 +48,7 @@ index fd808a0d324..7d6723977a2 100644
- }
- next_switch = p;
- diff --git a/dlls/krnl386.exe16/kernel.c b/dlls/krnl386.exe16/kernel.c
--index 07a57d0d937..89ea5c042e7 100644
-+index 07a57d0d9372..89ea5c042e71 100644
- --- a/dlls/krnl386.exe16/kernel.c
- +++ b/dlls/krnl386.exe16/kernel.c
- @@ -47,8 +47,8 @@ static void thread_attach(void)
-@@ -72,7 +72,7 @@ index 07a57d0d937..89ea5c042e7 100644
- }
-
- diff --git a/dlls/krnl386.exe16/kernel16_private.h b/dlls/krnl386.exe16/kernel16_private.h
--index f15934daa0e..9f939a9d5ba 100644
-+index f15934daa0e4..9f939a9d5bac 100644
- --- a/dlls/krnl386.exe16/kernel16_private.h
- +++ b/dlls/krnl386.exe16/kernel16_private.h
- @@ -169,7 +169,7 @@ extern THHOOK *pThhook DECLSPEC_HIDDEN;
-@@ -119,7 +119,7 @@ index f15934daa0e..9f939a9d5ba 100644
-
- static inline struct kernel_thread_data *kernel_get_thread_data(void)
- diff --git a/dlls/krnl386.exe16/ne_module.c b/dlls/krnl386.exe16/ne_module.c
--index f1e1a14dd67..c951a18f869 100644
-+index f1e1a14dd679..c951a18f8699 100644
- --- a/dlls/krnl386.exe16/ne_module.c
- +++ b/dlls/krnl386.exe16/ne_module.c
- @@ -1208,7 +1208,7 @@ DWORD NE_StartTask(void)
-@@ -143,7 +143,7 @@ index f1e1a14dd67..c951a18f869 100644
- WOWCallback16Ex( 0, WCB16_REGS, 0, NULL, (DWORD *)&context );
- ExitThread( LOWORD(context.Eax) );
- diff --git a/dlls/krnl386.exe16/ne_segment.c b/dlls/krnl386.exe16/ne_segment.c
--index aa886148029..70eb3360914 100644
-+index aa8861480298..70eb33609144 100644
- --- a/dlls/krnl386.exe16/ne_segment.c
- +++ b/dlls/krnl386.exe16/ne_segment.c
- @@ -370,9 +370,9 @@ BOOL NE_LoadSegment( NE_MODULE *pModule, WORD segnum )
-@@ -209,7 +209,7 @@ index aa886148029..70eb3360914 100644
- args[7] = HIWORD(dwReason);
- args[6] = LOWORD(dwReason);
- diff --git a/dlls/krnl386.exe16/task.c b/dlls/krnl386.exe16/task.c
--index 39a60cb97a9..21de62c5a01 100644
-+index 39a60cb97a94..21de62c5a015 100644
- --- a/dlls/krnl386.exe16/task.c
- +++ b/dlls/krnl386.exe16/task.c
- @@ -624,7 +624,7 @@ void WINAPI InitTask16( CONTEXT *context )
-@@ -267,7 +267,7 @@ index 39a60cb97a9..21de62c5a01 100644
- context->Esp = OFFSETOF(pData->old_ss_sp) - sizeof(DWORD); /*ret addr*/
- pData->old_ss_sp = 0;
- diff --git a/dlls/krnl386.exe16/thunk.c b/dlls/krnl386.exe16/thunk.c
--index e913a08f88c..ecc94371488 100644
-+index e913a08f88cc..ecc94371488f 100644
- --- a/dlls/krnl386.exe16/thunk.c
- +++ b/dlls/krnl386.exe16/thunk.c
- @@ -429,7 +429,7 @@ void WINAPI __regs_QT_Thunk( CONTEXT *context )
-@@ -413,7 +413,7 @@ index e913a08f88c..ecc94371488 100644
- if (OFFSETOF(frame32->frame16) > lpbuf[2])
- {
- diff --git a/dlls/krnl386.exe16/wowthunk.c b/dlls/krnl386.exe16/wowthunk.c
--index 2dddbf93289..3a4b104a673 100644
-+index 2dddbf932898..3a4b104a673f 100644
- --- a/dlls/krnl386.exe16/wowthunk.c
- +++ b/dlls/krnl386.exe16/wowthunk.c
- @@ -127,7 +127,7 @@ static DWORD call16_handler( EXCEPTION_RECORD *record, EXCEPTION_REGISTRATION_RE
-@@ -473,7 +473,7 @@ index 2dddbf93289..3a4b104a673 100644
- }
- }
- diff --git a/dlls/ntdll/unix/signal_i386.c b/dlls/ntdll/unix/signal_i386.c
--index 2928f314358..138f56b94eb 100644
-+index ac34f86a5883..55f1e2ce4b23 100644
- --- a/dlls/ntdll/unix/signal_i386.c
- +++ b/dlls/ntdll/unix/signal_i386.c
- @@ -645,7 +645,7 @@ static inline void *init_handler( const ucontext_t *sigcontext )
-@@ -486,7 +486,7 @@ index 2928f314358..138f56b94eb 100644
- return (void *)(ESP_sig(sigcontext) & ~3);
- }
- diff --git a/dlls/system.drv16/system.c b/dlls/system.drv16/system.c
--index b6fd51c05f0..695ad7b6003 100644
-+index b6fd51c05f01..695ad7b60039 100644
- --- a/dlls/system.drv16/system.c
- +++ b/dlls/system.drv16/system.c
- @@ -70,7 +70,7 @@ static void CALLBACK SYSTEM_TimerTick( LPVOID arg, DWORD low, DWORD high )
-@@ -499,7 +499,7 @@ index b6fd51c05f0..695ad7b6003 100644
-
- WOWCallback16Ex( 0, WCB16_REGS, 0, NULL, (DWORD *)&context );
- diff --git a/dlls/toolhelp.dll16/toolhelp.c b/dlls/toolhelp.dll16/toolhelp.c
--index 578d1ae7fab..1077f0b0367 100644
-+index 578d1ae7faba..1077f0b03672 100644
- --- a/dlls/toolhelp.dll16/toolhelp.c
- +++ b/dlls/toolhelp.dll16/toolhelp.c
- @@ -491,8 +491,8 @@ BOOL16 WINAPI TaskNext16( TASKENTRY *lpte )
-@@ -523,7 +523,7 @@ index 578d1ae7fab..1077f0b0367 100644
- WORD user = LoadLibrary16( "USER.EXE" );
- WORD gdi = LoadLibrary16( "GDI.EXE" );
- diff --git a/dlls/user.exe16/message.c b/dlls/user.exe16/message.c
--index e3ca3fd779d..fa9388ceaa1 100644
-+index e3ca3fd779d3..fa9388ceaa11 100644
- --- a/dlls/user.exe16/message.c
- +++ b/dlls/user.exe16/message.c
- @@ -240,11 +240,11 @@ static LRESULT call_window_proc16( HWND16 hwnd, UINT16 msg, WPARAM16 wParam, LPA
-@@ -595,7 +595,7 @@ index e3ca3fd779d..fa9388ceaa1 100644
-
- stack16->ds = GetWindowLongPtrW( hwnd, GWLP_HINSTANCE );
- diff --git a/dlls/user.exe16/user.c b/dlls/user.exe16/user.c
--index 27b92793836..deec596f766 100644
-+index 27b92793836a..deec596f7660 100644
- --- a/dlls/user.exe16/user.c
- +++ b/dlls/user.exe16/user.c
- @@ -1394,7 +1394,7 @@ DWORD WINAPI GetTabbedTextExtent16( HDC16 hdc, LPCSTR lpstr, INT16 count,
-@@ -617,7 +617,7 @@ index 27b92793836..deec596f766 100644
- int userPercent, gdiPercent;
-
- diff --git a/dlls/user.exe16/window.c b/dlls/user.exe16/window.c
--index bf86719325b..1f53bdc9540 100644
-+index bf86719325b8..1f53bdc95402 100644
- --- a/dlls/user.exe16/window.c
- +++ b/dlls/user.exe16/window.c
- @@ -456,7 +456,7 @@ HWND16 WINAPI GetParent16( HWND16 hwnd )
-@@ -630,10 +630,10 @@ index bf86719325b..1f53bdc9540 100644
- /* don't use WIN_Handle32 here, we don't care about the full handle */
- return IsWindow( HWND_32(hwnd) );
- diff --git a/include/winternl.h b/include/winternl.h
--index acbce20c212..68c1ae3fd82 100644
-+index 87eb0d32926b..2d9f54b89d8c 100644
- --- a/include/winternl.h
- +++ b/include/winternl.h
--@@ -362,7 +362,7 @@ typedef struct _TEB
-+@@ -363,7 +363,7 @@ typedef struct _TEB
- PVOID WOW32Reserved; /* 0c0/0100 */
- ULONG CurrentLocale; /* 0c4/0108 */
- ULONG FpSoftwareStatusRegister; /* 0c8/010c */
-@@ -643,7 +643,7 @@ index acbce20c212..68c1ae3fd82 100644
- ACTIVATION_CONTEXT_STACK ActivationContextStack; /* 1a8/02c8 */
- BYTE SpareBytes1[24]; /* 1bc/02e8 */
- diff --git a/tools/winebuild/relay.c b/tools/winebuild/relay.c
--index 29d0a74c833..01bb97e02b4 100644
-+index 29d0a74c833c..01bb97e02b4c 100644
- --- a/tools/winebuild/relay.c
- +++ b/tools/winebuild/relay.c
- @@ -31,7 +31,7 @@
-diff --git a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
-index 547e27f8f..a0487f91b 100644
---- a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
-+++ b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
-@@ -1,4 +1,4 @@
--From 0c4d2573b123f2198f74292133b7a6eefa472620 Mon Sep 17 00:00:00 2001
-+From d8ff827f7a94aee2bed89c620120af0a148ca81c Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
- Date: Thu, 11 May 2017 05:32:55 +0200
- Subject: [PATCH] winebuild: Generate syscall thunks for ntdll exports.
-@@ -8,7 +8,7 @@ Based on a patch by Erich E. Hoover.
- dlls/ntdll/loader.c | 3 +
- dlls/ntdll/signal_i386.c | 4 +-
- dlls/ntdll/tests/exception.c | 2 +
-- dlls/ntdll/thread.c | 3 +-
-+ dlls/ntdll/thread.c | 10 +++-
- dlls/ntdll/unix/thread.c | 3 +-
- dlls/ntdll/unix/unix_private.h | 2 +-
- dlls/ntdll/unixlib.h | 4 +-
-@@ -19,13 +19,13 @@ Based on a patch by Erich E. Hoover.
- tools/winebuild/spec16.c | 22 +------
- tools/winebuild/spec32.c | 104 +++++++++++++++++++++++++++++++++
- tools/winebuild/utils.c | 21 +++++++
-- 14 files changed, 214 insertions(+), 32 deletions(-)
-+ 14 files changed, 221 insertions(+), 32 deletions(-)
-
- diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
--index 0c8f05285c4..26c540050dc 100644
-+index 2553b0b9d397..cac6aae2f3dd 100644
- --- a/dlls/ntdll/loader.c
- +++ b/dlls/ntdll/loader.c
--@@ -3810,6 +3810,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
-+@@ -4021,6 +4021,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
- return ret;
- }
-
-@@ -33,7 +33,7 @@ index 0c8f05285c4..26c540050dc 100644
-
- /******************************************************************
- * LdrInitializeThunk (NTDLL.@)
--@@ -3826,6 +3827,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
-+@@ -4038,6 +4039,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
- WINE_MODREF *wm;
- LPCWSTR load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer;
-
-@@ -43,7 +43,7 @@ index 0c8f05285c4..26c540050dc 100644
-
- RtlEnterCriticalSection( &loader_section );
- diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
--index 21cc1b3ead4..18be5693a7d 100644
-+index 21cc1b3ead40..18be5693a7d2 100644
- --- a/dlls/ntdll/signal_i386.c
- +++ b/dlls/ntdll/signal_i386.c
- @@ -346,6 +346,8 @@ __ASM_STDCALL_FUNC( RtlCaptureContext, 4,
-@@ -65,7 +65,7 @@ index 21cc1b3ead4..18be5693a7d 100644
- }
- return unix_funcs->NtGetContextThread( handle, context );
- diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c
--index a5e6faa461a..51938bf84cc 100644
-+index 1389a542cdee..54796476e25b 100644
- --- a/dlls/ntdll/tests/exception.c
- +++ b/dlls/ntdll/tests/exception.c
- @@ -1643,6 +1643,8 @@ static void test_thread_context(void)
-@@ -78,18 +78,25 @@ index a5e6faa461a..51938bf84cc 100644
- ok( context.SegCs == LOWORD(expect.SegCs), "wrong SegCs %08x/%08x\n", context.SegCs, expect.SegCs );
- ok( context.SegDs == LOWORD(expect.SegDs), "wrong SegDs %08x/%08x\n", context.SegDs, expect.SegDs );
- diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
--index 5a6809638ae..fa10cdf1062 100644
-+index ff5fe9d6226a..e93498b27ea0 100644
- --- a/dlls/ntdll/thread.c
- +++ b/dlls/ntdll/thread.c
--@@ -170,6 +170,7 @@ int __cdecl __wine_dbg_output( const char *str )
-+@@ -220,6 +220,14 @@ int __cdecl __wine_dbg_output( const char *str )
- return unix_funcs->dbg_output( str );
- }
-
-++#if defined(__i386__) || defined(__x86_64__)
- +extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
-++#else
-++void __wine_syscall_dispatcher( void )
-++{
-++ FIXME("Syscall dispatcher is not available for this architecture.\n");
-++}
-++#endif
-
- /***********************************************************************
- * thread_init
--@@ -181,7 +182,7 @@ int __cdecl __wine_dbg_output( const char *str )
-+@@ -231,7 +239,7 @@ int __cdecl __wine_dbg_output( const char *str )
- TEB *thread_init( SIZE_T *info_size, BOOL *suspend )
- {
- TEB *teb = unix_funcs->init_threading( &nb_threads, &__wine_ldt_copy, info_size, suspend, &server_cpus,
-@@ -99,7 +106,7 @@ index 5a6809638ae..fa10cdf1062 100644
- peb = teb->Peb;
- peb->FastPebLock = &peb_lock;
- diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c
--index 97b191e1a5b..2dbaa43e731 100644
-+index 97b191e1a5b3..2dbaa43e731a 100644
- --- a/dlls/ntdll/unix/thread.c
- +++ b/dlls/ntdll/unix/thread.c
- @@ -85,7 +85,7 @@ static void pthread_exit_wrapper( int status )
-@@ -120,10 +127,10 @@ index 97b191e1a5b..2dbaa43e731 100644
- thread_data->request_fd = -1;
- thread_data->reply_fd = -1;
- diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
--index 19dd216fc35..a1c48a52606 100644
-+index 92a58417827b..33a551e947c2 100644
- --- a/dlls/ntdll/unix/unix_private.h
- +++ b/dlls/ntdll/unix/unix_private.h
--@@ -107,7 +107,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE
-+@@ -108,7 +108,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE
- extern void CDECL server_init_process_done( void *relay ) DECLSPEC_HIDDEN;
- extern TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size,
- BOOL *suspend, unsigned int *cpus, BOOL *wow64,
-@@ -133,7 +140,7 @@ index 19dd216fc35..a1c48a52606 100644
- extern void CDECL DECLSPEC_NORETURN exit_process( int status ) DECLSPEC_HIDDEN;
- extern NTSTATUS CDECL get_thread_ldt_entry( HANDLE handle, void *data, ULONG len, ULONG *ret_len ) DECLSPEC_HIDDEN;
- diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
--index 4c580c49d13..4f0080db03d 100644
-+index 4c580c49d139..4f0080db03d9 100644
- --- a/dlls/ntdll/unixlib.h
- +++ b/dlls/ntdll/unixlib.h
- @@ -28,7 +28,7 @@ struct ldt_copy;
-@@ -155,10 +162,10 @@ index 4c580c49d13..4f0080db03d 100644
- void (CDECL *exit_process)( int status );
- NTSTATUS (CDECL *get_thread_ldt_entry)( HANDLE handle, void *data, ULONG len, ULONG *ret_len );
- diff --git a/include/winternl.h b/include/winternl.h
--index 68c1ae3fd82..f2da9157aab 100644
-+index 2d9f54b89d8c..0c15a0ee6c34 100644
- --- a/include/winternl.h
- +++ b/include/winternl.h
--@@ -359,7 +359,7 @@ typedef struct _TEB
-+@@ -360,7 +360,7 @@ typedef struct _TEB
- PVOID CsrClientThread; /* 03c/0070 */
- PVOID Win32ThreadInfo; /* 040/0078 */
- ULONG Win32ClientInfo[31]; /* 044/0080 used for user32 private data in Wine */
-@@ -168,7 +175,7 @@ index 68c1ae3fd82..f2da9157aab 100644
- ULONG FpSoftwareStatusRegister; /* 0c8/010c */
- PVOID SystemReserved1[54]; /* 0cc/0110 used for krnl386.exe16 private data in Wine */
- diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h
--index c162888a035..55d5b0b9dc2 100644
-+index c162888a0356..55d5b0b9dc28 100644
- --- a/tools/winebuild/build.h
- +++ b/tools/winebuild/build.h
- @@ -105,6 +105,7 @@ typedef struct
-@@ -216,7 +223,7 @@ index c162888a035..55d5b0b9dc2 100644
-
- extern int byte_swapped;
- diff --git a/tools/winebuild/import.c b/tools/winebuild/import.c
--index 04ab433dd65..0c6bafed8e5 100644
-+index 04ab433dd65a..0c6bafed8e54 100644
- --- a/tools/winebuild/import.c
- +++ b/tools/winebuild/import.c
- @@ -531,6 +531,7 @@ static void check_undefined_forwards( DLLSPEC *spec )
-@@ -256,7 +263,7 @@ index 04ab433dd65..0c6bafed8e5 100644
- }
- }
- diff --git a/tools/winebuild/parser.c b/tools/winebuild/parser.c
--index 0f2b9c1e10a..74216f8bb6e 100644
-+index 0f2b9c1e10ad..74216f8bb6e7 100644
- --- a/tools/winebuild/parser.c
- +++ b/tools/winebuild/parser.c
- @@ -543,6 +543,24 @@ static const char *parse_spec_flags( DLLSPEC *spec, ORDDEF *odp )
-@@ -347,7 +354,7 @@ index 0f2b9c1e10a..74216f8bb6e 100644
- }
-
- diff --git a/tools/winebuild/spec16.c b/tools/winebuild/spec16.c
--index a52c03aaa6a..15ef9a3f893 100644
-+index a52c03aaa6a7..15ef9a3f8930 100644
- --- a/tools/winebuild/spec16.c
- +++ b/tools/winebuild/spec16.c
- @@ -495,27 +495,6 @@ static int relay_type_compare( const void *e1, const void *e2 )
-@@ -387,7 +394,7 @@ index a52c03aaa6a..15ef9a3f893 100644
- entry_point->u.func.nb_args = 0;
- assert( !spec->ordinals[0] );
- diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
--index b1e20e0484d..22dd399cb2b 100644
-+index b1e20e0484dc..22dd399cb2b4 100644
- --- a/tools/winebuild/spec32.c
- +++ b/tools/winebuild/spec32.c
- @@ -374,6 +374,109 @@ static void output_relay_debug( DLLSPEC *spec )
-@@ -509,7 +516,7 @@ index b1e20e0484d..22dd399cb2b 100644
- output_exports( spec );
- output_imports( spec );
- diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c
--index 2a1fc960926..07a579004ad 100644
-+index 2a1fc960926b..07a579004adc 100644
- --- a/tools/winebuild/utils.c
- +++ b/tools/winebuild/utils.c
- @@ -860,6 +860,7 @@ void free_dll_spec( DLLSPEC *spec )
-diff --git a/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch b/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch
-index 6c3984f8b..d4813799e 100644
---- a/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch
-+++ b/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch
-@@ -1,4 +1,4 @@
--From 15182deeb13e26abdb3067a77353354726ac82aa Mon Sep 17 00:00:00 2001
-+From 344eb39bdfee74d4d826fa2f61a95736f0ee9823 Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
- Date: Mon, 15 May 2017 02:05:49 +0200
- Subject: [PATCH] winebuild: Use multipass label system to generate fake dlls.
-@@ -11,7 +11,7 @@ Subject: [PATCH] winebuild: Use multipass label system to generate fake dlls.
- 4 files changed, 181 insertions(+), 63 deletions(-)
-
- diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h
--index 6ee847f908c..210324406a9 100644
-+index 55d5b0b9dc28..8930df408d3b 100644
- --- a/tools/winebuild/build.h
- +++ b/tools/winebuild/build.h
- @@ -343,6 +343,7 @@ extern size_t input_buffer_pos;
-@@ -35,7 +35,7 @@ index 6ee847f908c..210324406a9 100644
- /* global variables */
-
- diff --git a/tools/winebuild/res32.c b/tools/winebuild/res32.c
--index bd55bb2fa5c..d9329019f8a 100644
-+index bd55bb2fa5c4..d9329019f8a3 100644
- --- a/tools/winebuild/res32.c
- +++ b/tools/winebuild/res32.c
- @@ -539,7 +539,6 @@ void output_bin_resources( DLLSPEC *spec, unsigned int start_rva )
-@@ -47,7 +47,7 @@ index bd55bb2fa5c..d9329019f8a 100644
- /* output the resource directories */
-
- diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
--index 22dd399cb2b..c38f1fe663c 100644
-+index 22dd399cb2b4..c38f1fe663c7 100644
- --- a/tools/winebuild/spec32.c
- +++ b/tools/winebuild/spec32.c
- @@ -844,11 +844,11 @@ void output_spec32_file( DLLSPEC *spec )
-@@ -279,7 +279,7 @@ index 22dd399cb2b..c38f1fe663c 100644
- }
-
- diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c
--index 7dc61a708db..64e1fa51455 100644
-+index 07a579004adc..80dec6db29ea 100644
- --- a/tools/winebuild/utils.c
- +++ b/tools/winebuild/utils.c
- @@ -34,6 +34,7 @@
-diff --git a/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch b/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch
-index f96d51aee..4ac05a314 100644
---- a/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch
-+++ b/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch
-@@ -1,4 +1,4 @@
--From 167ad04157dd746ee9395afa9505fe00cc866f9b Mon Sep 17 00:00:00 2001
-+From e5fc6ee60be5dd3b80af96dcbd81adb742ba7a5d Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
- Date: Mon, 15 May 2017 16:27:56 +0200
- Subject: [PATCH] winebuild: Add stub functions in fake dlls.
-@@ -14,10 +14,10 @@ Subject: [PATCH] winebuild: Add stub functions in fake dlls.
- 7 files changed, 251 insertions(+), 15 deletions(-)
-
- diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
--index 926fa913866..902907329c0 100644
-+index efd5a25a432d..182b61b731a2 100644
- --- a/dlls/kernel32/tests/loader.c
- +++ b/dlls/kernel32/tests/loader.c
--@@ -1596,9 +1596,7 @@ static void test_FakeDLL(void)
-+@@ -1597,9 +1597,7 @@ static void test_FakeDLL(void)
- ok(ptr != NULL, "MapViewOfFile failed with error %u\n", GetLastError());
-
- dir = RtlImageDirectoryEntryToData(ptr, TRUE, IMAGE_DIRECTORY_ENTRY_EXPORT, &size);
-@@ -27,7 +27,7 @@ index 926fa913866..902907329c0 100644
-
- names = RVAToAddr(dir->AddressOfNames, ptr);
- ordinals = RVAToAddr(dir->AddressOfNameOrdinals, ptr);
--@@ -1627,17 +1625,20 @@ todo_wine
-+@@ -1628,17 +1626,20 @@ todo_wine
- /* check position in memory */
- dll_rva = (DWORD_PTR)dll_func - (DWORD_PTR)module;
- map_rva = funcs[ordinals[i]];
-@@ -48,7 +48,7 @@ index 926fa913866..902907329c0 100644
- ok(!memcmp(map_func, dll_func, 0x20), "%s: Function content does not match!\n", func_name);
-
- if (!strcmp(func_name, "NtSetEvent"))
--@@ -1651,10 +1652,11 @@ todo_wine
-+@@ -1652,10 +1653,11 @@ todo_wine
- ok(event != NULL, "CreateEvent failed with error %u\n", GetLastError());
- pNtSetEvent(event, 0);
- ok(WaitForSingleObject(event, 0) == WAIT_OBJECT_0, "Event was not signaled\n");
-@@ -62,10 +62,10 @@ index 926fa913866..902907329c0 100644
- CloseHandle(map);
- CloseHandle(file);
- diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
--index 26c540050dc..09d3870c31a 100644
-+index cac6aae2f3dd..51d989f30b45 100644
- --- a/dlls/ntdll/loader.c
- +++ b/dlls/ntdll/loader.c
--@@ -3811,6 +3811,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
-+@@ -4022,6 +4022,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
- }
-
- extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
-@@ -73,7 +73,7 @@ index 26c540050dc..09d3870c31a 100644
-
- /******************************************************************
- * LdrInitializeThunk (NTDLL.@)
--@@ -3828,6 +3829,7 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
-+@@ -4040,6 +4041,7 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
- LPCWSTR load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer;
-
- NtCurrentTeb()->WOW32Reserved = __wine_syscall_dispatcher;
-@@ -82,12 +82,12 @@ index 26c540050dc..09d3870c31a 100644
- if (process_detaching) return;
-
- diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
--index fa10cdf1062..4840f527e59 100644
-+index e93498b27ea0..a14e3a12ae0c 100644
- --- a/dlls/ntdll/thread.c
- +++ b/dlls/ntdll/thread.c
--@@ -172,6 +172,39 @@ int __cdecl __wine_dbg_output( const char *str )
--
-- extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
-+@@ -229,6 +229,39 @@ void __wine_syscall_dispatcher( void )
-+ }
-+ #endif
-
- +void *WINAPI __wine_fakedll_dispatcher( const char *module, ULONG ord )
- +{
-@@ -125,7 +125,7 @@ index fa10cdf1062..4840f527e59 100644
- /***********************************************************************
- * thread_init
- *
--@@ -183,6 +216,7 @@ TEB *thread_init( SIZE_T *info_size, BOOL *suspend )
-+@@ -240,6 +273,7 @@ TEB *thread_init( SIZE_T *info_size, BOOL *suspend )
- {
- TEB *teb = unix_funcs->init_threading( &nb_threads, &__wine_ldt_copy, info_size, suspend, &server_cpus,
- &is_wow64, &server_start_time, __wine_syscall_dispatcher );
-@@ -134,10 +134,10 @@ index fa10cdf1062..4840f527e59 100644
- peb = teb->Peb;
- peb->FastPebLock = &peb_lock;
- diff --git a/include/winternl.h b/include/winternl.h
--index f2da9157aab..ce8021af503 100644
-+index 0c15a0ee6c34..6da672e979e5 100644
- --- a/include/winternl.h
- +++ b/include/winternl.h
--@@ -398,7 +398,7 @@ typedef struct _TEB
-+@@ -399,7 +399,7 @@ typedef struct _TEB
- PVOID Instrumentation[16]; /* f2c/16b8 */
- PVOID WinSockData; /* f6c/1738 */
- ULONG GdiBatchCount; /* f70/1740 */
-@@ -147,7 +147,7 @@ index f2da9157aab..ce8021af503 100644
- PVOID ReservedForPerf; /* f7c/1750 */
- PVOID ReservedForOle; /* f80/1758 */
- diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h
--index 8930df408d3..44113bad28a 100644
-+index 8930df408d3b..44113bad28af 100644
- --- a/tools/winebuild/build.h
- +++ b/tools/winebuild/build.h
- @@ -358,6 +358,7 @@ extern void put_word( unsigned short val );
-@@ -159,7 +159,7 @@ index 8930df408d3..44113bad28a 100644
- extern void align_output_rva( unsigned int file_align, unsigned int rva_align );
- extern size_t label_pos( const char *name );
- diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
--index c38f1fe663c..bf82ca497c0 100644
-+index c38f1fe663c7..bf82ca497c0d 100644
- --- a/tools/winebuild/spec32.c
- +++ b/tools/winebuild/spec32.c
- @@ -843,6 +843,163 @@ void output_spec32_file( DLLSPEC *spec )
-@@ -415,7 +415,7 @@ index c38f1fe663c..bf82ca497c0 100644
- /* .reloc contents */
- align_output_rva( file_align, section_align );
- diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c
--index 80dec6db29e..d394a1382c6 100644
-+index 80dec6db29ea..d394a1382c68 100644
- --- a/tools/winebuild/utils.c
- +++ b/tools/winebuild/utils.c
- @@ -549,7 +549,7 @@ size_t output_buffer_size;
-diff --git a/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch b/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch
-index 5ae2b3deb..13f46d6b0 100644
---- a/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch
-+++ b/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch
-@@ -1,4 +1,4 @@
--From 84a9f7b8192d7735108da2d7e81cf63faef97c13 Mon Sep 17 00:00:00 2001
-+From fd72d405abba827ab5e2603551d48200aedad3ce Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
- Date: Mon, 15 May 2017 17:56:48 +0200
- Subject: [PATCH] winebuild: Add syscall thunks in fake dlls.
-@@ -9,10 +9,10 @@ Subject: [PATCH] winebuild: Add syscall thunks in fake dlls.
- 2 files changed, 25 insertions(+), 3 deletions(-)
-
- diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
--index ec173c94a8e..a3bed8b310b 100644
-+index 182b61b731a2..98369c7d508c 100644
- --- a/dlls/kernel32/tests/loader.c
- +++ b/dlls/kernel32/tests/loader.c
--@@ -1602,7 +1602,6 @@ static void test_FakeDLL(void)
-+@@ -1639,7 +1639,6 @@ static void test_FakeDLL(void)
-
- /* check function content */
- map_func = RVAToAddr(map_rva, ptr);
-@@ -21,7 +21,7 @@ index ec173c94a8e..a3bed8b310b 100644
-
- if (!strcmp(func_name, "NtSetEvent"))
- diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
--index bf82ca497c0..6968e41260f 100644
-+index bf82ca497c0d..6968e41260f1 100644
- --- a/tools/winebuild/spec32.c
- +++ b/tools/winebuild/spec32.c
- @@ -860,13 +860,36 @@ static void create_stub_exports_text( DLLSPEC *spec )
-diff --git a/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch b/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch
-index 92a7161de..3b3745ed6 100644
---- a/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch
-+++ b/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch
-@@ -1,4 +1,4 @@
--From d77c31b1567bfbde1ce4ceb526ad596d0be3e788 Mon Sep 17 00:00:00 2001
-+From f92fc0572be02ce2eee2a9cbf60724372678a5af Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
- Date: Thu, 25 May 2017 03:22:25 +0200
- Subject: [PATCH] winebuild: Fix size of relocation information in fake dlls.
-@@ -8,7 +8,7 @@ Subject: [PATCH] winebuild: Fix size of relocation information in fake dlls.
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
- diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
--index 6968e41260f..f95b45b9a0d 100644
-+index 6968e41260f1..f95b45b9a0d5 100644
- --- a/tools/winebuild/spec32.c
- +++ b/tools/winebuild/spec32.c
- @@ -1238,8 +1238,8 @@ static void output_fake_module_pass( DLLSPEC *spec )
-diff --git a/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch b/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch
-index c4f1fb004..2cb4b7cf1 100644
---- a/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch
-+++ b/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch
-@@ -1,4 +1,4 @@
--From afa59bbabca36f306e9db4c1b080a250c4a919ea Mon Sep 17 00:00:00 2001
-+From 59efee63a7442dfee4d9e76b11f651a11a4b523e Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
- Date: Thu, 25 May 2017 21:46:27 +0200
- Subject: [PATCH] winebuild: Try to make sure RVA matches between fake and
-@@ -11,10 +11,10 @@ Subject: [PATCH] winebuild: Try to make sure RVA matches between fake and
- 3 files changed, 26 insertions(+), 5 deletions(-)
-
- diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
--index a3bed8b310b..8b5a345b086 100644
-+index 98369c7d508c..77e73b3ca37b 100644
- --- a/dlls/kernel32/tests/loader.c
- +++ b/dlls/kernel32/tests/loader.c
--@@ -1589,7 +1589,6 @@ static void test_FakeDLL(void)
-+@@ -1626,7 +1626,6 @@ static void test_FakeDLL(void)
- /* check position in memory */
- dll_rva = (DWORD_PTR)dll_func - (DWORD_PTR)module;
- map_rva = funcs[ordinals[i]];
-@@ -23,7 +23,7 @@ index a3bed8b310b..8b5a345b086 100644
- func_name, dll_rva, map_rva);
-
- diff --git a/libs/wine/loader.c b/libs/wine/loader.c
--index c3b59d90224..b6847ca77b3 100644
-+index c3b59d902243..b6847ca77b31 100644
- --- a/libs/wine/loader.c
- +++ b/libs/wine/loader.c
- @@ -335,8 +335,12 @@ static void *map_dll( const IMAGE_NT_HEADERS *nt_descr )
-@@ -54,7 +54,7 @@ index c3b59d90224..b6847ca77b3 100644
-
- memcpy( sec->Name, ".text", sizeof(".text") );
- diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
--index f95b45b9a0d..07d6eed05fc 100644
-+index f95b45b9a0d5..07d6eed05fcc 100644
- --- a/tools/winebuild/spec32.c
- +++ b/tools/winebuild/spec32.c
- @@ -381,14 +381,25 @@ static void output_relay_debug( DLLSPEC *spec )
-diff --git a/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch b/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch
-index e0ae33a59..9113beb5f 100644
---- a/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch
-+++ b/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch
-@@ -1,4 +1,4 @@
--From 29478273c4db90d209ac5afbdc1dd80add3d2c7e Mon Sep 17 00:00:00 2001
-+From 370eccb19c65a8b02abfa31a76651ae533dda22f Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
- Date: Thu, 25 May 2017 21:56:06 +0200
- Subject: [PATCH] libs/wine: Use same file alignment for fake and builtin DLLs.
-@@ -9,10 +9,10 @@ Subject: [PATCH] libs/wine: Use same file alignment for fake and builtin DLLs.
- 2 files changed, 1 insertion(+), 2 deletions(-)
-
- diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
--index 8b5a345b086..5373dc4efe1 100644
-+index 77e73b3ca37b..1f525194ce73 100644
- --- a/dlls/kernel32/tests/loader.c
- +++ b/dlls/kernel32/tests/loader.c
--@@ -1595,7 +1595,6 @@ static void test_FakeDLL(void)
-+@@ -1632,7 +1632,6 @@ static void test_FakeDLL(void)
- /* check position in file */
- map_offset = (DWORD_PTR)RtlImageRvaToVa(RtlImageNtHeader(ptr), ptr, map_rva, NULL) - (DWORD_PTR)ptr;
- dll_offset = (DWORD_PTR)RtlImageRvaToVa(RtlImageNtHeader(module), module, dll_rva, NULL) - (DWORD_PTR)module;
-@@ -21,7 +21,7 @@ index 8b5a345b086..5373dc4efe1 100644
- func_name, map_offset, dll_offset);
-
- diff --git a/libs/wine/loader.c b/libs/wine/loader.c
--index b6847ca77b3..4597a6cb324 100644
-+index b6847ca77b31..4597a6cb3243 100644
- --- a/libs/wine/loader.c
- +++ b/libs/wine/loader.c
- @@ -398,7 +398,7 @@ static void *map_dll( const IMAGE_NT_HEADERS *nt_descr )
-diff --git a/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch b/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch
-index 6024e5a2f..e40a80148 100644
---- a/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch
-+++ b/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch
-@@ -1,4 +1,4 @@
--From a5b4feebd008daab008f72567fe0001da619030e Mon Sep 17 00:00:00 2001
-+From 6f1973aa2aee35139ae041e59d37a45ff22dc5bf Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
- Date: Thu, 7 Sep 2017 00:38:09 +0200
- Subject: [PATCH] tools/winebuild: Add syscall thunks for 64 bit.
-@@ -7,18 +7,18 @@ Subject: [PATCH] tools/winebuild: Add syscall thunks for 64 bit.
- dlls/kernel32/tests/loader.c | 7 +-
- dlls/ntdll/unix/thread.c | 2 +-
- dlls/ntdll/unix/unix_private.h | 2 +-
-- dlls/ntdll/unix/virtual.c | 12 +-
-+ dlls/ntdll/unix/virtual.c | 11 +-
- libs/wine/loader.c | 4 +
- server/mapping.c | 6 +-
- tools/winebuild/parser.c | 2 +-
- tools/winebuild/spec32.c | 285 ++++++++++++++++++++++++++++++++-
-- 8 files changed, 306 insertions(+), 14 deletions(-)
-+ 8 files changed, 305 insertions(+), 14 deletions(-)
-
- diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
--index 95939ba6bde..ae5462f6e55 100644
-+index 1f525194ce73..21af7b4ce7a4 100644
- --- a/dlls/kernel32/tests/loader.c
- +++ b/dlls/kernel32/tests/loader.c
--@@ -1573,7 +1573,7 @@ static void test_filenames(void)
-+@@ -1574,7 +1574,7 @@ static void test_filenames(void)
-
- static void test_FakeDLL(void)
- {
-@@ -27,7 +27,7 @@ index 95939ba6bde..ae5462f6e55 100644
- NTSTATUS (WINAPI *pNtSetEvent)(HANDLE, ULONG *) = NULL;
- IMAGE_EXPORT_DIRECTORY *dir;
- HMODULE module = GetModuleHandleA("ntdll.dll");
--@@ -1615,8 +1615,13 @@ static void test_FakeDLL(void)
-+@@ -1616,8 +1616,13 @@ static void test_FakeDLL(void)
-
- dll_func = (BYTE *)GetProcAddress(module, func_name);
- ok(dll_func != NULL, "%s: GetProcAddress returned NULL\n", func_name);
-@@ -42,7 +42,7 @@ index 95939ba6bde..ae5462f6e55 100644
- todo_wine ok(0, "%s: Export is a stub-function, skipping\n", func_name);
- continue;
- diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c
--index 2dbaa43e731..e1da90222d3 100644
-+index 2dbaa43e731a..e1da90222d38 100644
- --- a/dlls/ntdll/unix/thread.c
- +++ b/dlls/ntdll/unix/thread.c
- @@ -110,7 +110,7 @@ TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZ
-@@ -55,10 +55,10 @@ index 2dbaa43e731..e1da90222d3 100644
-
- if (size) *size = info_size;
- diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
--index a1c48a52606..9c9e5b80b0c 100644
-+index 33a551e947c2..d06f366d3c6d 100644
- --- a/dlls/ntdll/unix/unix_private.h
- +++ b/dlls/ntdll/unix/unix_private.h
--@@ -152,7 +152,7 @@ extern void virtual_init(void) DECLSPEC_HIDDEN;
-+@@ -153,7 +153,7 @@ extern void virtual_init(void) DECLSPEC_HIDDEN;
- extern TEB *virtual_alloc_first_teb(void) DECLSPEC_HIDDEN;
- extern NTSTATUS virtual_alloc_teb( TEB **ret_teb ) DECLSPEC_HIDDEN;
- extern void virtual_free_teb( TEB *teb ) DECLSPEC_HIDDEN;
-@@ -68,10 +68,10 @@ index a1c48a52606..9c9e5b80b0c 100644
- extern BOOL virtual_is_valid_code_address( const void *addr, SIZE_T size ) DECLSPEC_HIDDEN;
- extern int virtual_handle_stack_fault( void *addr ) DECLSPEC_HIDDEN;
- diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
--index 660323d4dcc..a5e5cb8422d 100644
-+index 9fb2ecd38ca3..ad11485d1cea 100644
- --- a/dlls/ntdll/unix/virtual.c
- +++ b/dlls/ntdll/unix/virtual.c
--@@ -2588,14 +2588,14 @@ TEB *virtual_alloc_first_teb(void)
-+@@ -2772,14 +2772,14 @@ TEB *virtual_alloc_first_teb(void)
- TEB *teb;
- PEB *peb;
- NTSTATUS status;
-@@ -88,12 +88,7 @@ index 660323d4dcc..a5e5cb8422d 100644
- if (status)
- {
- ERR( "wine: failed to map the shared user data: %08x\n", status );
--@@ -2787,11 +2787,12 @@ void virtual_clear_thread_stack( void *stack_end )
-- if (force_exec_prot) mprotect( stack, size, PROT_READ | PROT_WRITE | PROT_EXEC );
-- }
--
--+extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
--
-+@@ -2977,7 +2977,7 @@ void virtual_clear_thread_stack( void *stack_end )
- /***********************************************************************
- * virtual_map_user_shared_data
- */
-@@ -102,7 +97,7 @@ index 660323d4dcc..a5e5cb8422d 100644
- {
- static const WCHAR wine_usdW[] = {'\\','K','e','r','n','e','l','O','b','j','e','c','t','s',
- '\\','_','_','w','i','n','e','_','u','s','e','r','_','s','h','a','r','e','d','_','d','a','t','a',0};
--@@ -2814,6 +2815,11 @@ void virtual_map_user_shared_data(void)
-+@@ -3000,6 +3000,11 @@ void virtual_map_user_shared_data(void)
- ERR( "failed to remap the process USD: %d\n", res );
- exit(1);
- }
-@@ -115,7 +110,7 @@ index 660323d4dcc..a5e5cb8422d 100644
- NtClose( section );
- }
- diff --git a/libs/wine/loader.c b/libs/wine/loader.c
--index 4597a6cb324..3d0d75e9c6d 100644
-+index 4597a6cb3243..3d0d75e9c6d3 100644
- --- a/libs/wine/loader.c
- +++ b/libs/wine/loader.c
- @@ -398,7 +398,11 @@ static void *map_dll( const IMAGE_NT_HEADERS *nt_descr )
-@@ -131,7 +126,7 @@ index 4597a6cb324..3d0d75e9c6d 100644
- sec++;
-
- diff --git a/server/mapping.c b/server/mapping.c
--index 0941dd87c05..002f3215af2 100644
-+index 0941dd87c05d..002f3215af2e 100644
- --- a/server/mapping.c
- +++ b/server/mapping.c
- @@ -964,7 +964,11 @@ struct object *create_user_data_mapping( struct object *root, const struct unico
-@@ -148,7 +143,7 @@ index 0941dd87c05..002f3215af2 100644
- }
-
- diff --git a/tools/winebuild/parser.c b/tools/winebuild/parser.c
--index 74216f8bb6e..820516329a4 100644
-+index 74216f8bb6e7..820516329a47 100644
- --- a/tools/winebuild/parser.c
- +++ b/tools/winebuild/parser.c
- @@ -545,7 +545,7 @@ static const char *parse_spec_flags( DLLSPEC *spec, ORDDEF *odp )
-@@ -161,7 +156,7 @@ index 74216f8bb6e..820516329a4 100644
- if (odp->flags & (FLAG_FORWARD | FLAG_REGISTER))
- return 0;
- diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
--index 07d6eed05fc..9cc4698d0d7 100644
-+index 07d6eed05fcc..9cc4698d0d7d 100644
- --- a/tools/winebuild/spec32.c
- +++ b/tools/winebuild/spec32.c
- @@ -375,11 +375,11 @@ static void output_relay_debug( DLLSPEC *spec )
-diff --git a/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch b/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch
-index 69ee26be8..c3e065b26 100644
---- a/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch
-+++ b/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch
-@@ -1,4 +1,4 @@
--From 659e192979eecfb59d1c1b26e8cea78c42300de5 Mon Sep 17 00:00:00 2001
-+From feb53ed39179603391eff600ea59edc41407b238 Mon Sep 17 00:00:00 2001
- From: Paul Gofman <gofmanp(a)gmail.com>
- Date: Fri, 3 Jan 2020 17:39:08 +0300
- Subject: [PATCH] ntdll: Call NtOpenFile through syscall thunk.
-@@ -15,10 +15,10 @@ Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48410
- 7 files changed, 16 insertions(+), 8 deletions(-)
-
- diff --git a/dlls/ntdll/actctx.c b/dlls/ntdll/actctx.c
--index 1ca794ae3e5..b3c13042adc 100644
-+index a25cefa555ac..34ba0dc813c6 100644
- --- a/dlls/ntdll/actctx.c
- +++ b/dlls/ntdll/actctx.c
--@@ -2892,7 +2892,7 @@ static NTSTATUS open_nt_file( HANDLE *handle, UNICODE_STRING *name )
-+@@ -2894,7 +2894,7 @@ static NTSTATUS open_nt_file( HANDLE *handle, UNICODE_STRING *name )
- attr.ObjectName = name;
- attr.SecurityDescriptor = NULL;
- attr.SecurityQualityOfService = NULL;
-@@ -27,7 +27,7 @@ index 1ca794ae3e5..b3c13042adc 100644
- }
-
- static NTSTATUS get_manifest_in_module( struct actctx_loader* acl, struct assembly_identity* ai,
--@@ -3209,7 +3209,7 @@ static NTSTATUS lookup_winsxs(struct actctx_loader* acl, struct assembly_identit
-+@@ -3211,7 +3211,7 @@ static NTSTATUS lookup_winsxs(struct actctx_loader* acl, struct assembly_identit
- attr.SecurityDescriptor = NULL;
- attr.SecurityQualityOfService = NULL;
-
-@@ -37,10 +37,10 @@ index 1ca794ae3e5..b3c13042adc 100644
- {
- sxs_ai = *ai;
- diff --git a/dlls/ntdll/directory.c b/dlls/ntdll/directory.c
--index d18df38f626..69607a4fed9 100644
-+index 18428658a5b5..7a9de26ccb0c 100644
- --- a/dlls/ntdll/directory.c
- +++ b/dlls/ntdll/directory.c
--@@ -2943,7 +2943,7 @@ NTSTATUS DIR_get_unix_cwd( char **cwd )
-+@@ -3071,7 +3071,7 @@ NTSTATUS DIR_get_unix_cwd( char **cwd )
- attr.SecurityDescriptor = NULL;
- attr.SecurityQualityOfService = NULL;
-
-@@ -50,10 +50,10 @@ index d18df38f626..69607a4fed9 100644
- RtlFreeUnicodeString( &dirW );
- if (status != STATUS_SUCCESS) goto done;
- diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
--index 0b8c28a0651..e48cd84cffd 100644
-+index 51d989f30b45..8f1653b0d626 100644
- --- a/dlls/ntdll/loader.c
- +++ b/dlls/ntdll/loader.c
--@@ -2469,7 +2469,7 @@ static NTSTATUS open_dll_file( UNICODE_STRING *nt_name, WINE_MODREF **pwm,
-+@@ -2521,7 +2521,7 @@ static NTSTATUS open_dll_file( UNICODE_STRING *nt_name, WINE_MODREF **pwm,
- attr.ObjectName = nt_name;
- attr.SecurityDescriptor = NULL;
- attr.SecurityQualityOfService = NULL;
-@@ -63,10 +63,10 @@ index 0b8c28a0651..e48cd84cffd 100644
- FILE_SYNCHRONOUS_IO_NONALERT | FILE_NON_DIRECTORY_FILE )))
- {
- diff --git a/dlls/ntdll/locale.c b/dlls/ntdll/locale.c
--index 0d0c1194d23..a1bf219ed0a 100644
-+index 15ccdeb2e637..928edcb04e2c 100644
- --- a/dlls/ntdll/locale.c
- +++ b/dlls/ntdll/locale.c
--@@ -661,7 +661,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file )
-+@@ -660,7 +660,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file )
- return STATUS_NO_MEMORY;
- valueW.Length = NTDLL_swprintf( valueW.Buffer, pathfmtW, dir, name ) * sizeof(WCHAR);
- InitializeObjectAttributes( &attr, &valueW, 0, 0, NULL );
-@@ -75,7 +75,7 @@ index 0d0c1194d23..a1bf219ed0a 100644
- if (!status) TRACE( "found %s\n", debugstr_w( valueW.Buffer ));
- RtlFreeUnicodeString( &valueW );
- if (status != STATUS_OBJECT_NAME_NOT_FOUND && status != STATUS_OBJECT_PATH_NOT_FOUND) return status;
--@@ -685,7 +685,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file )
-+@@ -684,7 +684,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file )
- wcscat( valueW.Buffer, name );
- valueW.Length = wcslen(valueW.Buffer) * sizeof(WCHAR);
- InitializeObjectAttributes( &attr, &valueW, 0, 0, NULL );
-@@ -85,10 +85,10 @@ index 0d0c1194d23..a1bf219ed0a 100644
- }
- RtlFreeUnicodeString( &valueW );
- diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
--index 2e791b92f73..f8170793185 100644
-+index 9091d1ae8c77..f8e81ae49eaf 100644
- --- a/dlls/ntdll/ntdll_misc.h
- +++ b/dlls/ntdll/ntdll_misc.h
--@@ -350,4 +350,12 @@ static inline void ascii_to_unicode( WCHAR *dst, const char *src, size_t len )
-+@@ -329,4 +329,12 @@ static inline void ascii_to_unicode( WCHAR *dst, const char *src, size_t len )
- while (len--) *dst++ = (unsigned char)*src++;
- }
-
-@@ -102,7 +102,7 @@ index 2e791b92f73..f8170793185 100644
- +
- #endif
- diff --git a/dlls/ntdll/path.c b/dlls/ntdll/path.c
--index 32e1f951af5..71ae44dd498 100644
-+index 32e1f951af5c..71ae44dd4988 100644
- --- a/dlls/ntdll/path.c
- +++ b/dlls/ntdll/path.c
- @@ -1020,7 +1020,7 @@ NTSTATUS WINAPI RtlSetCurrentDirectory_U(const UNICODE_STRING* dir)
-@@ -115,10 +115,10 @@ index 32e1f951af5..71ae44dd498 100644
- if (nts != STATUS_SUCCESS) goto out;
-
- diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c
--index 60ee39765bf..70dfe6f768a 100644
-+index 884141da060c..32a1f5107f06 100644
- --- a/dlls/ntdll/process.c
- +++ b/dlls/ntdll/process.c
--@@ -1281,7 +1281,7 @@ static NTSTATUS get_pe_file_info( UNICODE_STRING *path, ULONG attributes,
-+@@ -1357,7 +1357,7 @@ static NTSTATUS get_pe_file_info( UNICODE_STRING *path, ULONG attributes,
-
- memset( info, 0, sizeof(*info) );
- InitializeObjectAttributes( &attr, path, attributes, 0, 0 );
diff --git a/wine.spec b/wine.spec
index 4308871..cd74653 100644
--- a/wine.spec
+++ b/wine.spec
@@ -76,8 +76,6 @@ Source150: wine.appdata.xml
# wine bugs
Patch100: wine-staging-5.10-ntdll.patch
-Patch101: wine-staging-5.10-ntdll-arm0.patch
-Patch102: wine-staging-5.10-ntdll-arm1.patch
# desktop dir
Source200: wine.menu
@@ -696,10 +694,15 @@ This package adds the opencl driver for wine.
# setup and apply wine-staging patches
gzip -dc %{SOURCE900} | tar -xf - --strip-components=1
%patch100 -p1 -b.ntdll
-%patch101 -p1 -b.ntdll-arm0
-%patch102 -p1 -b.ntdll-arm1
+%ifarch %{arm} aarch64
+patches/patchinstall.sh DESTDIR="`pwd`" --all \
+ -W ntdll-NtContinue \
+ -W ntdll-Syscall_Emulation \
+ -W winebuild-Fake_Dlls
+%else
patches/patchinstall.sh DESTDIR="`pwd`" --all
+%endif
# fix parallelized build
sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in
commit e1141d482fdb1aaa711f637ee76b6ad58c996543
Author: Michael Cronenworth <mike(a)cchtml.com>
Date: Thu Jun 11 08:55:00 2020 -0500
ARM patchset requires a previous patch
I may back out this patchset if this fails again
diff --git a/wine-staging-5.10-ntdll-arm0.patch b/wine-staging-5.10-ntdll-arm0.patch
new file mode 100644
index 0000000..74f1f00
--- /dev/null
+++ b/wine-staging-5.10-ntdll-arm0.patch
@@ -0,0 +1,964 @@
+From 9a4c8c5631101f8571dbdce726ae864060e446c9 Mon Sep 17 00:00:00 2001
+From: Zebediah Figura <z.figura12(a)gmail.com>
+Date: Mon, 8 Jun 2020 15:59:31 -0500
+Subject: [PATCH] Rebase against 17529582402ebe27ef975fc7dcb8353f4f95e629.
+
+---
+ ...ase-Maintain-FLS-storage-list-in-PEB.patch | 44 ++--
+ .../0001-ntdll-Add-stub-for-NtContinue.patch | 63 ------
+ ...o-continue-execution-after-exception.patch | 82 --------
+ patches/ntdll-NtContinue/definition | 3 -
+ ...dll-Support-x86_64-syscall-emulation.patch | 14 +-
+ ...mporary-signal-handler-during-proces.patch | 32 +--
+ patches/patchinstall.sh | 198 ++++++++----------
+ ...ate-syscall-thunks-for-ntdll-exports.patch | 34 +--
+ ...e-client-side-file-descriptor-cache-.patch | 20 +-
+ staging/upstream-commit | 2 +-
+ 10 files changed, 156 insertions(+), 336 deletions(-)
+ delete mode 100644 patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch
+ delete mode 100644 patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch
+ delete mode 100644 patches/ntdll-NtContinue/definition
+
+diff --git a/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch b/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch
+index 1d5434bf6..40f2a0b86 100644
+--- a/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch
++++ b/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch
+@@ -1,4 +1,4 @@
+-From 5c370d9f0be803d89302da7471ef0b93b45a0d75 Mon Sep 17 00:00:00 2001
++From 3fe24d6e3b216c21b6a7b68766414213fdd2ff2d Mon Sep 17 00:00:00 2001
+ From: Paul Gofman <pgofman(a)codeweavers.com>
+ Date: Thu, 23 Apr 2020 14:32:23 +0300
+ Subject: [PATCH] kernelbase: Maintain FLS storage list in PEB.
+@@ -73,10 +73,10 @@ index 7501165dc87..2bcc3ee60c4 100644
+ * FlsFree should fail
+ * FlsGetValue and FlsSetValue should succeed
+ diff --git a/dlls/kernel32/tests/thread.c b/dlls/kernel32/tests/thread.c
+-index a454bf118cc..dac30959734 100644
++index a9869863b44..b24f9e98bc7 100644
+ --- a/dlls/kernel32/tests/thread.c
+ +++ b/dlls/kernel32/tests/thread.c
+-@@ -2435,7 +2435,6 @@ START_TEST(thread)
++@@ -2377,7 +2377,6 @@ START_TEST(thread)
+ }
+ return;
+ }
+@@ -84,7 +84,7 @@ index a454bf118cc..dac30959734 100644
+ test_thread_info();
+ test_reserved_tls();
+ test_CreateRemoteThread();
+-@@ -2463,6 +2462,5 @@ START_TEST(thread)
++@@ -2405,6 +2404,5 @@ START_TEST(thread)
+ test_thread_fpu_cw();
+ test_thread_actctx();
+ test_thread_description();
+@@ -92,7 +92,7 @@ index a454bf118cc..dac30959734 100644
+ test_threadpool();
+ }
+ diff --git a/dlls/kernelbase/thread.c b/dlls/kernelbase/thread.c
+-index 03b16da95bb..4409f120491 100644
++index f20d460d07d..3c77b6a42f4 100644
+ --- a/dlls/kernelbase/thread.c
+ +++ b/dlls/kernelbase/thread.c
+ @@ -38,6 +38,10 @@
+@@ -106,7 +106,7 @@ index 03b16da95bb..4409f120491 100644
+
+ /***********************************************************************
+ * Threads
+-@@ -916,6 +920,19 @@ static void init_fiber_context( struct fiber_data *fiber )
++@@ -915,6 +919,19 @@ static void init_fiber_context( struct fiber_data *fiber )
+ #endif
+ }
+
+@@ -126,7 +126,7 @@ index 03b16da95bb..4409f120491 100644
+
+ /***********************************************************************
+ * CreateFiber (kernelbase.@)
+-@@ -1023,7 +1040,16 @@ void WINAPI DECLSPEC_HOTPATCH DeleteFiber( LPVOID fiber_ptr )
++@@ -1022,7 +1039,16 @@ void WINAPI DECLSPEC_HOTPATCH DeleteFiber( LPVOID fiber_ptr )
+ RtlExitUserThread( 1 );
+ }
+ RtlFreeUserStack( fiber->stack_allocation );
+@@ -144,7 +144,7 @@ index 03b16da95bb..4409f120491 100644
+ HeapFree( GetProcessHeap(), 0, fiber );
+ }
+
+-@@ -1045,6 +1071,19 @@ void WINAPI DECLSPEC_HOTPATCH SwitchToFiber( LPVOID fiber )
++@@ -1044,6 +1070,19 @@ void WINAPI DECLSPEC_HOTPATCH SwitchToFiber( LPVOID fiber )
+ struct fiber_data *new_fiber = fiber;
+ struct fiber_data *current_fiber = NtCurrentTeb()->Tib.u.FiberData;
+
+@@ -164,7 +164,7 @@ index 03b16da95bb..4409f120491 100644
+ current_fiber->except = NtCurrentTeb()->Tib.ExceptionList;
+ current_fiber->stack_limit = NtCurrentTeb()->Tib.StackLimit;
+ current_fiber->fls_slots = NtCurrentTeb()->FlsSlots;
+-@@ -1070,9 +1109,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
++@@ -1069,9 +1108,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
+ PEB * const peb = NtCurrentTeb()->Peb;
+
+ RtlAcquirePebLock();
+@@ -175,7 +175,7 @@ index 03b16da95bb..4409f120491 100644
+ {
+ SetLastError( ERROR_NOT_ENOUGH_MEMORY );
+ index = FLS_OUT_OF_INDEXES;
+-@@ -1082,9 +1119,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
++@@ -1081,9 +1118,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
+ index = RtlFindClearBitsAndSet( peb->FlsBitmap, 1, 1 );
+ if (index != ~0U)
+ {
+@@ -186,7 +186,7 @@ index 03b16da95bb..4409f120491 100644
+ {
+ RtlClearBits( peb->FlsBitmap, index, 1 );
+ index = FLS_OUT_OF_INDEXES;
+-@@ -1092,8 +1127,8 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
++@@ -1091,8 +1126,8 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
+ }
+ else
+ {
+@@ -197,7 +197,7 @@ index 03b16da95bb..4409f120491 100644
+ }
+ }
+ else SetLastError( ERROR_NO_MORE_ITEMS );
+-@@ -1117,7 +1152,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsFree( DWORD index )
++@@ -1116,7 +1151,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsFree( DWORD index )
+ {
+ /* FIXME: call Fls callback */
+ /* FIXME: add equivalent of ThreadZeroTlsCell here */
+@@ -206,7 +206,7 @@ index 03b16da95bb..4409f120491 100644
+ }
+ else SetLastError( ERROR_INVALID_PARAMETER );
+ RtlReleasePebLock();
+-@@ -1136,7 +1171,7 @@ PVOID WINAPI DECLSPEC_HOTPATCH FlsGetValue( DWORD index )
++@@ -1135,7 +1170,7 @@ PVOID WINAPI DECLSPEC_HOTPATCH FlsGetValue( DWORD index )
+ return NULL;
+ }
+ SetLastError( ERROR_SUCCESS );
+@@ -215,7 +215,7 @@ index 03b16da95bb..4409f120491 100644
+ }
+
+
+-@@ -1150,14 +1185,12 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsSetValue( DWORD index, PVOID data )
++@@ -1149,14 +1184,12 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsSetValue( DWORD index, PVOID data )
+ SetLastError( ERROR_INVALID_PARAMETER );
+ return FALSE;
+ }
+@@ -233,10 +233,10 @@ index 03b16da95bb..4409f120491 100644
+ }
+
+ diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
+-index 5e8de8821dd..71ef1cfea0a 100644
++index ffbc9fabb23..be53d98e5b8 100644
+ --- a/dlls/ntdll/loader.c
+ +++ b/dlls/ntdll/loader.c
+-@@ -179,6 +179,15 @@ static CRITICAL_SECTION_DEBUG dlldir_critsect_debug =
++@@ -169,6 +169,15 @@ static CRITICAL_SECTION_DEBUG dlldir_critsect_debug =
+ };
+ static CRITICAL_SECTION dlldir_section = { &dlldir_critsect_debug, -1, 0, 0, 0, 0 };
+
+@@ -252,7 +252,7 @@ index 5e8de8821dd..71ef1cfea0a 100644
+ static WINE_MODREF *cached_modref;
+ static WINE_MODREF *current_modref;
+ static WINE_MODREF *last_failed_modref;
+-@@ -219,6 +228,16 @@ static RTL_UNLOAD_EVENT_TRACE unload_traces[RTL_UNLOAD_EVENT_TRACE_NUMBER];
++@@ -209,6 +218,16 @@ static RTL_UNLOAD_EVENT_TRACE unload_traces[RTL_UNLOAD_EVENT_TRACE_NUMBER];
+ static RTL_UNLOAD_EVENT_TRACE *unload_trace_ptr;
+ static unsigned int unload_trace_seq;
+
+@@ -269,7 +269,7 @@ index 5e8de8821dd..71ef1cfea0a 100644
+ static void module_push_unload_trace( const LDR_DATA_TABLE_ENTRY *ldr )
+ {
+ RTL_UNLOAD_EVENT_TRACE *ptr = &unload_traces[unload_trace_seq];
+-@@ -3913,6 +3932,13 @@ void WINAPI LdrShutdownThread(void)
++@@ -3610,6 +3629,13 @@ void WINAPI LdrShutdownThread(void)
+ /* don't do any detach calls if process is exiting */
+ if (process_detaching) return;
+
+@@ -283,15 +283,15 @@ index 5e8de8821dd..71ef1cfea0a 100644
+ RtlEnterCriticalSection( &loader_section );
+
+ mark = &NtCurrentTeb()->Peb->LdrData->InInitializationOrderModuleList;
+-@@ -4153,6 +4179,7 @@ static void user_shared_data_init(void)
++@@ -3819,6 +3845,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
+ */
+ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknown3, ULONG_PTR unknown4 )
+ {
+ + static const unsigned int fls_slot_count = 8 * sizeof(NtCurrentTeb()->Peb->FlsBitmapBits);
+- static const LARGE_INTEGER zero;
+ static int attach_done;
+ int i;
+-@@ -4191,6 +4218,25 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
++ NTSTATUS status;
++@@ -3856,6 +3883,25 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
+ InsertHeadList( &tls_links, &NtCurrentTeb()->TlsLinks );
+ RtlReleasePebLock();
+
+@@ -318,5 +318,5 @@ index 5e8de8821dd..71ef1cfea0a 100644
+ {
+ attach_done = 1;
+ --
+-2.25.3
++2.26.2
+
+diff --git a/patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch b/patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch
+deleted file mode 100644
+index 7145857bd..000000000
+--- a/patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch
++++ /dev/null
+@@ -1,63 +0,0 @@
+-From 9ea4f081689959bd393eab2caaa0ed8237846117 Mon Sep 17 00:00:00 2001
+-From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+-Date: Thu, 25 May 2017 05:04:26 +0200
+-Subject: [PATCH] ntdll: Add stub for NtContinue.
+-
+----
+- dlls/ntdll/exception.c | 10 +++++++++-
+- dlls/ntdll/ntdll.spec | 4 ++--
+- 2 files changed, 11 insertions(+), 3 deletions(-)
+-
+-diff --git a/dlls/ntdll/exception.c b/dlls/ntdll/exception.c
+-index c35312fd1d1..3b85f1efa04 100644
+---- a/dlls/ntdll/exception.c
+-+++ b/dlls/ntdll/exception.c
+-@@ -328,7 +328,6 @@ LONG WINAPI call_unhandled_exception_filter( PEXCEPTION_POINTERS eptr )
+- return unhandled_exception_filter( eptr );
+- }
+-
+--
+- #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__)
+-
+- struct dynamic_unwind_entry
+-@@ -667,6 +666,15 @@ PRUNTIME_FUNCTION WINAPI RtlLookupFunctionEntry( ULONG_PTR pc, ULONG_PTR *base,
+-
+- #endif /* __x86_64__ || __arm__ || __aarch64__ */
+-
+-+/*********************************************************************
+-+ * NtContinue (NTDLL.@)
+-+ */
+-+NTSTATUS WINAPI NtContinue( CONTEXT *context, BOOLEAN alert )
+-+{
+-+ FIXME( "(%p, %d) stub!\n", context, alert );
+-+ return STATUS_NOT_IMPLEMENTED;
+-+}
+-+
+- /*************************************************************
+- * __wine_spec_unimplemented_stub
+- *
+-diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
+-index 81faf7fc280..d21a6f08ac2 100644
+---- a/dlls/ntdll/ntdll.spec
+-+++ b/dlls/ntdll/ntdll.spec
+-@@ -150,7 +150,7 @@
+- @ stdcall NtCompleteConnectPort(ptr)
+- # @ stub NtCompressKey
+- @ stdcall NtConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr)
+--@ stub NtContinue
+-+@ stdcall NtContinue(ptr long)
+- # @ stub NtCreateDebugObject
+- @ stdcall NtCreateDirectoryObject(ptr long ptr)
+- @ stdcall NtCreateEvent(ptr long ptr long long)
+-@@ -1105,7 +1105,7 @@
+- @ stdcall -private ZwCompleteConnectPort(ptr) NtCompleteConnectPort
+- # @ stub ZwCompressKey
+- @ stdcall -private ZwConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr) NtConnectPort
+--@ stub ZwContinue
+-+@ stdcall -private ZwContinue(ptr long) NtContinue
+- # @ stub ZwCreateDebugObject
+- @ stdcall -private ZwCreateDirectoryObject(ptr long ptr) NtCreateDirectoryObject
+- @ stdcall -private ZwCreateEvent(ptr long ptr long long) NtCreateEvent
+---
+-2.17.1
+-
+diff --git a/patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch b/patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch
+deleted file mode 100644
+index 902940977..000000000
+--- a/patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch
++++ /dev/null
+@@ -1,82 +0,0 @@
+-From 812de54c6fc8f93e8fda01f0802397b183adab59 Mon Sep 17 00:00:00 2001
+-From: Andrew Wesie <awesie(a)gmail.com>
+-Date: Fri, 27 Jul 2018 01:26:56 -0500
+-Subject: [PATCH] ntdll: Use NtContinue to continue execution after exceptions.
+-
+-NtContinue is exported by ntdll and some programs expect it to be used to
+-restore the thread context after an exception handler returns
+-EXCEPTION_CONTINUE_EXECUTION. It must take a context as its first argument
+-and restore that context.
+-
+-Current implementation is a simple wrapper around NtSetContextThread. It is
+-unlikely that it has the correct behavior if called by an external caller.
+-
+-The __syscall_NtContinue wrapper is used so that it can be hooked by a
+-third-party.
+----
+- dlls/ntdll/exception.c | 5 +++--
+- dlls/ntdll/signal_i386.c | 3 ++-
+- dlls/ntdll/signal_x86_64.c | 3 ++-
+- 3 files changed, 7 insertions(+), 4 deletions(-)
+-
+-diff --git a/dlls/ntdll/exception.c b/dlls/ntdll/exception.c
+-index 3b85f1efa..bc972254f 100644
+---- a/dlls/ntdll/exception.c
+-+++ b/dlls/ntdll/exception.c
+-@@ -671,8 +671,9 @@ PRUNTIME_FUNCTION WINAPI RtlLookupFunctionEntry( ULONG_PTR pc, ULONG_PTR *base,
+- */
+- NTSTATUS WINAPI NtContinue( CONTEXT *context, BOOLEAN alert )
+- {
+-- FIXME( "(%p, %d) stub!\n", context, alert );
+-- return STATUS_NOT_IMPLEMENTED;
+-+ TRACE( "(%p, %d) stub!\n", context, alert );
+-+
+-+ return NtSetContextThread( GetCurrentThread(), context );
+- }
+-
+- /*************************************************************
+-diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
+-index e55164630..8fc885ed4 100644
+---- a/dlls/ntdll/signal_i386.c
+-+++ b/dlls/ntdll/signal_i386.c
+-@@ -730,6 +730,7 @@ static NTSTATUS call_stack_handlers( EXCEPTION_RECORD *rec, CONTEXT *context )
+- return STATUS_UNHANDLED_EXCEPTION;
+- }
+-
+-+NTSTATUS WINAPI __syscall_NtContinue( CONTEXT *context, BOOLEAN alert );
+-
+- /*******************************************************************
+- * raise_exception
+-@@ -794,7 +795,7 @@ static NTSTATUS raise_exception( EXCEPTION_RECORD *rec, CONTEXT *context, BOOL f
+- NtTerminateProcess( NtCurrentProcess(), rec->ExceptionCode );
+- }
+- done:
+-- return NtSetContextThread( GetCurrentThread(), context );
+-+ return __syscall_NtContinue( context, FALSE );
+- }
+-
+-
+-diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
+-index e48529d73..0e74fda43 100644
+---- a/dlls/ntdll/signal_x86_64.c
+-+++ b/dlls/ntdll/signal_x86_64.c
+-@@ -2520,6 +2520,7 @@ static NTSTATUS call_stack_handlers( EXCEPTION_RECORD *rec, CONTEXT *orig_contex
+- return STATUS_UNHANDLED_EXCEPTION;
+- }
+-
+-+NTSTATUS WINAPI __syscall_NtContinue( CONTEXT *context, BOOLEAN alert );
+-
+- static NTSTATUS raise_exception( EXCEPTION_RECORD *rec, CONTEXT *context, BOOL first_chance )
+- {
+-@@ -2582,7 +2583,7 @@ static NTSTATUS raise_exception( EXCEPTION_RECORD *rec, CONTEXT *context, BOOL f
+- }
+-
+- done:
+-- return NtSetContextThread( GetCurrentThread(), context );
+-+ return __syscall_NtContinue( context, FALSE );
+- }
+-
+-
+---
+-2.23.0
+-
+diff --git a/patches/ntdll-NtContinue/definition b/patches/ntdll-NtContinue/definition
+deleted file mode 100644
+index 06c2ebf9e..000000000
+--- a/patches/ntdll-NtContinue/definition
++++ /dev/null
+@@ -1,3 +0,0 @@
+-Fixes: [31910] Add stub for NtContinue
+-Fixes: [45572] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of NtContinue)
+-Depends: winebuild-Fake_Dlls
+\ No newline at end of file
+diff --git a/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch b/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch
+index 4ae5fcdfa..0a39d4355 100644
+--- a/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch
++++ b/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch
+@@ -1,4 +1,4 @@
+-From 20298be5a42af52be27c56f88ad6a8a0304b55b6 Mon Sep 17 00:00:00 2001
++From cd04d1910294b035bb3858b3ef1bb295aec3a732 Mon Sep 17 00:00:00 2001
+ From: Paul Gofman <pgofman(a)codeweavers.com>
+ Date: Mon, 30 Dec 2019 13:27:53 +0300
+ Subject: [PATCH] ntdll: Support x86_64 syscall emulation.
+@@ -15,7 +15,7 @@ is used for trapping syscalls.
+ 3 files changed, 119 insertions(+), 2 deletions(-)
+
+ diff --git a/configure.ac b/configure.ac
+-index e3d63ed7501..2fbec4129df 100644
++index e61a98455c3..4adeb52d225 100644
+ --- a/configure.ac
+ +++ b/configure.ac
+ @@ -464,6 +464,7 @@ AC_CHECK_HEADERS(\
+@@ -27,7 +27,7 @@ index e3d63ed7501..2fbec4129df 100644
+ linux/types.h \
+ linux/ucdrom.h \
+ diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
+-index 0ccc7cbceb6..149ad1bf5e7 100644
++index dd8b45fa907..a5612abf2b1 100644
+ --- a/dlls/ntdll/signal_x86_64.c
+ +++ b/dlls/ntdll/signal_x86_64.c
+ @@ -24,6 +24,7 @@
+@@ -61,8 +61,8 @@ index 0ccc7cbceb6..149ad1bf5e7 100644
+ typedef struct _SCOPE_TABLE
+ {
+ ULONG Count;
+-@@ -2797,6 +2807,104 @@ static void usr1_handler( int signal, siginfo_t *siginfo, void *ucontext )
+- restore_context( &context, ucontext );
++@@ -2480,6 +2490,104 @@ static inline DWORD is_privileged_instr( CONTEXT *context )
++ return 0;
+ }
+
+ +extern unsigned int __wine_nb_syscalls;
+@@ -165,8 +165,8 @@ index 0ccc7cbceb6..149ad1bf5e7 100644
+ +}
+
+ /***********************************************************************
+- * __wine_set_signal_handler (NTDLL.@)
+-@@ -2842,6 +2950,9 @@ void signal_init_process(void)
++ * handle_interrupt
++@@ -2793,6 +2901,9 @@ void signal_init_process(void)
+ sig_act.sa_sigaction = trap_handler;
+ if (sigaction( SIGTRAP, &sig_act, NULL ) == -1) goto error;
+ #endif
+diff --git a/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch b/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch
+index d6e9a6824..db0631234 100644
+--- a/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch
++++ b/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch
+@@ -1,4 +1,4 @@
+-From 46968c583a30476a86463530d0047699e64529b5 Mon Sep 17 00:00:00 2001
++From bd60a4308f3ec1df20328887335b4c95f9be215d Mon Sep 17 00:00:00 2001
+ From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+ Date: Sat, 4 Oct 2014 02:53:22 +0200
+ Subject: [PATCH] ntdll: Setup a temporary signal handler during process
+@@ -27,10 +27,10 @@ index 65c65cc02d8..63a4b597872 100644
+ extern void debug_init(void) DECLSPEC_HIDDEN;
+ extern TEB *thread_init( SIZE_T *info_size, BOOL *suspend ) DECLSPEC_HIDDEN;
+ diff --git a/dlls/ntdll/signal_arm.c b/dlls/ntdll/signal_arm.c
+-index 8ff9f66d3f0..44e3d2df523 100644
++index a09848449a6..c6f7231fec6 100644
+ --- a/dlls/ntdll/signal_arm.c
+ +++ b/dlls/ntdll/signal_arm.c
+-@@ -773,6 +773,12 @@ void signal_init_process(void)
++@@ -792,6 +792,12 @@ void signal_init_process(void)
+ exit(1);
+ }
+
+@@ -44,11 +44,11 @@ index 8ff9f66d3f0..44e3d2df523 100644
+ /***********************************************************************
+ * RtlUnwind (NTDLL.@)
+ diff --git a/dlls/ntdll/signal_arm64.c b/dlls/ntdll/signal_arm64.c
+-index 104ffbf6df9..e7c6abd0046 100644
++index a9a58a2e7ad..a9c6614794e 100644
+ --- a/dlls/ntdll/signal_arm64.c
+ +++ b/dlls/ntdll/signal_arm64.c
+-@@ -1100,6 +1100,12 @@ int CDECL __wine_set_signal_handler(unsigned int sig, wine_signal_handler wsh)
+- return 0;
++@@ -1047,6 +1047,12 @@ static void usr2_handler( int signal, siginfo_t *siginfo, void *sigcontext )
++ restore_context( context, sigcontext );
+ }
+
+ +/**********************************************************************
+@@ -61,10 +61,10 @@ index 104ffbf6df9..e7c6abd0046 100644
+ /**********************************************************************
+ * signal_init_process
+ diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
+-index 1b0b9352a87..0fe9f7a3c84 100644
++index 83868f25121..b048b2bc688 100644
+ --- a/dlls/ntdll/signal_i386.c
+ +++ b/dlls/ntdll/signal_i386.c
+-@@ -1621,6 +1621,31 @@ static BOOL handle_interrupt( unsigned int interrupt, ucontext_t *sigcontext, st
++@@ -1575,6 +1575,31 @@ static BOOL handle_interrupt( unsigned int interrupt, ucontext_t *sigcontext, st
+ }
+
+
+@@ -96,7 +96,7 @@ index 1b0b9352a87..0fe9f7a3c84 100644
+ /**********************************************************************
+ * segv_handler
+ *
+-@@ -1948,6 +1973,34 @@ void signal_init_process(void)
++@@ -1883,6 +1908,34 @@ void signal_init_process(void)
+ exit(1);
+ }
+
+@@ -132,11 +132,11 @@ index 1b0b9352a87..0fe9f7a3c84 100644
+ /*******************************************************************
+ * RtlUnwind (NTDLL.@)
+ diff --git a/dlls/ntdll/signal_powerpc.c b/dlls/ntdll/signal_powerpc.c
+-index 7e73322cbeb..07f0b89f30a 100644
++index 879b2b58c49..f17d6267102 100644
+ --- a/dlls/ntdll/signal_powerpc.c
+ +++ b/dlls/ntdll/signal_powerpc.c
+-@@ -637,6 +637,12 @@ int CDECL __wine_set_signal_handler(unsigned int sig, wine_signal_handler wsh)
+- return 0;
++@@ -634,6 +634,12 @@ static void quit_handler( int signal, siginfo_t *siginfo, void *sigcontext )
++ unix_funcs->abort_thread(0);
+ }
+
+ +/**********************************************************************
+@@ -147,12 +147,12 @@ index 7e73322cbeb..07f0b89f30a 100644
+ +}
+
+ /**********************************************************************
+- * signal_init_process
++ * usr1_handler
+ diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
+-index 0ccc7cbceb6..dc8a1a987c5 100644
++index c6b0fbf618d..bb481ba1b81 100644
+ --- a/dlls/ntdll/signal_x86_64.c
+ +++ b/dlls/ntdll/signal_x86_64.c
+-@@ -2849,6 +2849,12 @@ void signal_init_process(void)
++@@ -2777,6 +2777,12 @@ void signal_init_process(void)
+ exit(1);
+ }
+
+@@ -166,7 +166,7 @@ index 0ccc7cbceb6..dc8a1a987c5 100644
+ static ULONG64 get_int_reg( CONTEXT *context, int reg )
+ {
+ diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
+-index 8918b39a9c5..a2f5df1b1c2 100644
++index d045466f6d2..49daa33ca58 100644
+ --- a/dlls/ntdll/thread.c
+ +++ b/dlls/ntdll/thread.c
+ @@ -186,6 +186,7 @@ TEB *thread_init( SIZE_T *info_size, BOOL *suspend )
+diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh
+index c5ff8c0b3..9c2ce4ce0 100755
+--- a/patches/patchinstall.sh
++++ b/patches/patchinstall.sh
+@@ -52,7 +52,7 @@ usage()
+ # Get the upstream commit sha
+ upstream_commit()
+ {
+- echo "3cc3b445752902e07231900befc296f74ad6576e"
++ echo "17529582402ebe27ef975fc7dcb8353f4f95e629"
+ }
+
+ # Show version information
+@@ -183,7 +183,6 @@ patch_enable_all ()
+ enable_ntdll_Junction_Points="$1"
+ enable_ntdll_Manifest_Range="$1"
+ enable_ntdll_NtAccessCheck="$1"
+- enable_ntdll_NtContinue="$1"
+ enable_ntdll_NtDevicePath="$1"
+ enable_ntdll_NtQueryEaFile="$1"
+ enable_ntdll_NtQuerySection="$1"
+@@ -648,9 +647,6 @@ patch_enable ()
+ ntdll-NtAccessCheck)
+ enable_ntdll_NtAccessCheck="$2"
+ ;;
+- ntdll-NtContinue)
+- enable_ntdll_NtContinue="$2"
+- ;;
+ ntdll-NtDevicePath)
+ enable_ntdll_NtDevicePath="$2"
+ ;;
+@@ -1672,6 +1668,17 @@ if test "$enable_ntdll_Syscall_Emulation" -eq 1; then
+ enable_winebuild_Fake_Dlls=1
+ fi
+
++if test "$enable_winebuild_Fake_Dlls" -eq 1; then
++ if test "$enable_ntdll_WRITECOPY" -gt 1; then
++ abort "Patchset ntdll-WRITECOPY disabled, but winebuild-Fake_Dlls depends on that."
++ fi
++ if test "$enable_ws2_32_WSACleanup" -gt 1; then
++ abort "Patchset ws2_32-WSACleanup disabled, but winebuild-Fake_Dlls depends on that."
++ fi
++ enable_ntdll_WRITECOPY=1
++ enable_ws2_32_WSACleanup=1
++fi
++
+ if test "$enable_ntdll_NtQueryEaFile" -eq 1; then
+ if test "$enable_ntdll_Junction_Points" -gt 1; then
+ abort "Patchset ntdll-Junction_Points disabled, but ntdll-NtQueryEaFile depends on that."
+@@ -1686,24 +1693,6 @@ if test "$enable_ntdll_NtDevicePath" -eq 1; then
+ enable_ntdll_Pipe_SpecialCharacters=1
+ fi
+
+-if test "$enable_ntdll_NtContinue" -eq 1; then
+- if test "$enable_winebuild_Fake_Dlls" -gt 1; then
+- abort "Patchset winebuild-Fake_Dlls disabled, but ntdll-NtContinue depends on that."
+- fi
+- enable_winebuild_Fake_Dlls=1
+-fi
+-
+-if test "$enable_winebuild_Fake_Dlls" -eq 1; then
+- if test "$enable_ntdll_WRITECOPY" -gt 1; then
+- abort "Patchset ntdll-WRITECOPY disabled, but winebuild-Fake_Dlls depends on that."
+- fi
+- if test "$enable_ws2_32_WSACleanup" -gt 1; then
+- abort "Patchset ws2_32-WSACleanup disabled, but winebuild-Fake_Dlls depends on that."
+- fi
+- enable_ntdll_WRITECOPY=1
+- enable_ws2_32_WSACleanup=1
+-fi
+-
+ if test "$enable_ntdll_Hide_Wine_Exports" -eq 1; then
+ if test "$enable_advapi32_Token_Integrity_Level" -gt 1; then
+ abort "Patchset advapi32-Token_Integrity_Level disabled, but ntdll-Hide_Wine_Exports depends on that."
+@@ -3977,98 +3966,6 @@ if test "$enable_ntdll_NtAccessCheck" -eq 1; then
+ ) >> "$patchlist"
+ fi
+
+-# Patchset ws2_32-WSACleanup
+-# |
+-# | This patchset fixes the following Wine bugs:
+-# | * [#18670] Properly close sockets when WSACleanup is called
+-# |
+-# | Modified files:
+-# | * dlls/ntdll/ntdll.spec, dlls/ntdll/server.c, dlls/ntdll/unix/loader.c, dlls/ntdll/unix/server.c,
+-# | dlls/ntdll/unix/unix_private.h, dlls/ntdll/unixlib.h, dlls/ws2_32/socket.c, dlls/ws2_32/tests/sock.c,
+-# | include/wine/server.h, server/protocol.def, server/sock.c
+-# |
+-if test "$enable_ws2_32_WSACleanup" -eq 1; then
+- patch_apply ws2_32-WSACleanup/0001-ws2_32-Proper-WSACleanup-implementation-using-winese.patch
+- patch_apply ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch
+- (
+- printf '%s\n' '+ { "Matt Durgavich", "ws2_32: Proper WSACleanup implementation using wineserver function.", 2 },';
+- printf '%s\n' '+ { "Sebastian Lackner", "ws2_32: Invalidate client-side file descriptor cache in WSACleanup.", 1 },';
+- ) >> "$patchlist"
+-fi
+-
+-# Patchset winebuild-Fake_Dlls
+-# |
+-# | This patchset has the following (direct or indirect) dependencies:
+-# | * ntdll-WRITECOPY, ws2_32-WSACleanup
+-# |
+-# | This patchset fixes the following Wine bugs:
+-# | * [#21232] Chromium-based browser engines (Chrome, Opera, Comodo Dragon, SRWare Iron) crash on startup unless '--no-
+-# | sandbox' is used (native API sandboxing/hooking scheme incompatible with Wine)
+-# | * [#42741] StarCraft I: 1.18 PTR fails to initialize ClientSdk.dll
+-# | * [#45349] Multiple applications and games crash due to missing support for 64-bit syscall thunks (StreetFighter V)
+-# | * [#45573] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of syscall return instructions)
+-# | * [#45650] chromium 32-bit sandbox expects different syscall thunks depending on Windows version
+-# |
+-# | Modified files:
+-# | * dlls/dbghelp/cpu_i386.c, dlls/kernel32/tests/loader.c, dlls/krnl386.exe16/kernel.c,
+-# | dlls/krnl386.exe16/kernel16_private.h, dlls/krnl386.exe16/ne_module.c, dlls/krnl386.exe16/ne_segment.c,
+-# | dlls/krnl386.exe16/task.c, dlls/krnl386.exe16/thunk.c, dlls/krnl386.exe16/wowthunk.c, dlls/ntdll/actctx.c,
+-# | dlls/ntdll/directory.c, dlls/ntdll/loader.c, dlls/ntdll/locale.c, dlls/ntdll/ntdll_misc.h, dlls/ntdll/path.c,
+-# | dlls/ntdll/process.c, dlls/ntdll/signal_i386.c, dlls/ntdll/tests/exception.c, dlls/ntdll/thread.c,
+-# | dlls/ntdll/unix/thread.c, dlls/ntdll/unix/unix_private.h, dlls/ntdll/unix/virtual.c, dlls/ntdll/unixlib.h,
+-# | dlls/system.drv16/system.c, dlls/toolhelp.dll16/toolhelp.c, dlls/user.exe16/message.c, dlls/user.exe16/user.c,
+-# | dlls/user.exe16/window.c, include/winternl.h, libs/wine/loader.c, server/mapping.c, tools/winebuild/build.h,
+-# | tools/winebuild/import.c, tools/winebuild/parser.c, tools/winebuild/relay.c, tools/winebuild/res32.c,
+-# | tools/winebuild/spec16.c, tools/winebuild/spec32.c, tools/winebuild/utils.c
+-# |
+-if test "$enable_winebuild_Fake_Dlls" -eq 1; then
+- patch_apply winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch
+- patch_apply winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch
+- patch_apply winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
+- patch_apply winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch
+- patch_apply winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch
+- patch_apply winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch
+- patch_apply winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch
+- patch_apply winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch
+- patch_apply winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch
+- patch_apply winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch
+- patch_apply winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch
+- (
+- printf '%s\n' '+ { "Michael Müller", "kernel32/tests: Add basic tests for fake dlls.", 1 },';
+- printf '%s\n' '+ { "Sebastian Lackner", "krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit stack address.", 1 },';
+- printf '%s\n' '+ { "Michael Müller", "winebuild: Generate syscall thunks for ntdll exports.", 1 },';
+- printf '%s\n' '+ { "Michael Müller", "winebuild: Use multipass label system to generate fake dlls.", 1 },';
+- printf '%s\n' '+ { "Michael Müller", "winebuild: Add stub functions in fake dlls.", 1 },';
+- printf '%s\n' '+ { "Michael Müller", "winebuild: Add syscall thunks in fake dlls.", 1 },';
+- printf '%s\n' '+ { "Michael Müller", "winebuild: Fix size of relocation information in fake dlls.", 1 },';
+- printf '%s\n' '+ { "Michael Müller", "winebuild: Try to make sure RVA matches between fake and builtin DLLs.", 1 },';
+- printf '%s\n' '+ { "Michael Müller", "libs/wine: Use same file alignment for fake and builtin DLLs.", 1 },';
+- printf '%s\n' '+ { "Michael Müller", "tools/winebuild: Add syscall thunks for 64 bit.", 1 },';
+- printf '%s\n' '+ { "Paul Gofman", "ntdll: Call NtOpenFile through syscall thunk.", 1 },';
+- ) >> "$patchlist"
+-fi
+-
+-# Patchset ntdll-NtContinue
+-# |
+-# | This patchset has the following (direct or indirect) dependencies:
+-# | * ntdll-WRITECOPY, ws2_32-WSACleanup, winebuild-Fake_Dlls
+-# |
+-# | This patchset fixes the following Wine bugs:
+-# | * [#31910] Add stub for NtContinue
+-# | * [#45572] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of NtContinue)
+-# |
+-# | Modified files:
+-# | * dlls/ntdll/exception.c, dlls/ntdll/ntdll.spec, dlls/ntdll/signal_i386.c, dlls/ntdll/signal_x86_64.c
+-# |
+-if test "$enable_ntdll_NtContinue" -eq 1; then
+- patch_apply ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch
+- patch_apply ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch
+- (
+- printf '%s\n' '+ { "Michael Müller", "ntdll: Add stub for NtContinue.", 1 },';
+- printf '%s\n' '+ { "Andrew Wesie", "ntdll: Use NtContinue to continue execution after exceptions.", 1 },';
+- ) >> "$patchlist"
+-fi
+-
+ # Patchset ntdll-Pipe_SpecialCharacters
+ # |
+ # | This patchset fixes the following Wine bugs:
+@@ -4213,6 +4110,77 @@ if test "$enable_ntdll_Status_Mapping" -eq 1; then
+ ) >> "$patchlist"
+ fi
+
++# Patchset ws2_32-WSACleanup
++# |
++# | This patchset fixes the following Wine bugs:
++# | * [#18670] Properly close sockets when WSACleanup is called
++# |
++# | Modified files:
++# | * dlls/ntdll/ntdll.spec, dlls/ntdll/server.c, dlls/ntdll/unix/loader.c, dlls/ntdll/unix/server.c,
++# | dlls/ntdll/unix/unix_private.h, dlls/ntdll/unixlib.h, dlls/ws2_32/socket.c, dlls/ws2_32/tests/sock.c,
++# | include/wine/server.h, server/protocol.def, server/sock.c
++# |
++if test "$enable_ws2_32_WSACleanup" -eq 1; then
++ patch_apply ws2_32-WSACleanup/0001-ws2_32-Proper-WSACleanup-implementation-using-winese.patch
++ patch_apply ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch
++ (
++ printf '%s\n' '+ { "Matt Durgavich", "ws2_32: Proper WSACleanup implementation using wineserver function.", 2 },';
++ printf '%s\n' '+ { "Sebastian Lackner", "ws2_32: Invalidate client-side file descriptor cache in WSACleanup.", 1 },';
++ ) >> "$patchlist"
++fi
++
++# Patchset winebuild-Fake_Dlls
++# |
++# | This patchset has the following (direct or indirect) dependencies:
++# | * ntdll-WRITECOPY, ws2_32-WSACleanup
++# |
++# | This patchset fixes the following Wine bugs:
++# | * [#21232] Chromium-based browser engines (Chrome, Opera, Comodo Dragon, SRWare Iron) crash on startup unless '--no-
++# | sandbox' is used (native API sandboxing/hooking scheme incompatible with Wine)
++# | * [#42741] StarCraft I: 1.18 PTR fails to initialize ClientSdk.dll
++# | * [#45349] Multiple applications and games crash due to missing support for 64-bit syscall thunks (StreetFighter V)
++# | * [#45573] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of syscall return instructions)
++# | * [#45650] chromium 32-bit sandbox expects different syscall thunks depending on Windows version
++# |
++# | Modified files:
++# | * dlls/dbghelp/cpu_i386.c, dlls/kernel32/tests/loader.c, dlls/krnl386.exe16/kernel.c,
++# | dlls/krnl386.exe16/kernel16_private.h, dlls/krnl386.exe16/ne_module.c, dlls/krnl386.exe16/ne_segment.c,
++# | dlls/krnl386.exe16/task.c, dlls/krnl386.exe16/thunk.c, dlls/krnl386.exe16/wowthunk.c, dlls/ntdll/actctx.c,
++# | dlls/ntdll/directory.c, dlls/ntdll/loader.c, dlls/ntdll/locale.c, dlls/ntdll/ntdll_misc.h, dlls/ntdll/path.c,
++# | dlls/ntdll/process.c, dlls/ntdll/signal_i386.c, dlls/ntdll/tests/exception.c, dlls/ntdll/thread.c,
++# | dlls/ntdll/unix/thread.c, dlls/ntdll/unix/unix_private.h, dlls/ntdll/unix/virtual.c, dlls/ntdll/unixlib.h,
++# | dlls/system.drv16/system.c, dlls/toolhelp.dll16/toolhelp.c, dlls/user.exe16/message.c, dlls/user.exe16/user.c,
++# | dlls/user.exe16/window.c, include/winternl.h, libs/wine/loader.c, server/mapping.c, tools/winebuild/build.h,
++# | tools/winebuild/import.c, tools/winebuild/parser.c, tools/winebuild/relay.c, tools/winebuild/res32.c,
++# | tools/winebuild/spec16.c, tools/winebuild/spec32.c, tools/winebuild/utils.c
++# |
++if test "$enable_winebuild_Fake_Dlls" -eq 1; then
++ patch_apply winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch
++ patch_apply winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch
++ patch_apply winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
++ patch_apply winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch
++ patch_apply winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch
++ patch_apply winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch
++ patch_apply winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch
++ patch_apply winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch
++ patch_apply winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch
++ patch_apply winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch
++ patch_apply winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch
++ (
++ printf '%s\n' '+ { "Michael Müller", "kernel32/tests: Add basic tests for fake dlls.", 1 },';
++ printf '%s\n' '+ { "Sebastian Lackner", "krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit stack address.", 1 },';
++ printf '%s\n' '+ { "Michael Müller", "winebuild: Generate syscall thunks for ntdll exports.", 1 },';
++ printf '%s\n' '+ { "Michael Müller", "winebuild: Use multipass label system to generate fake dlls.", 1 },';
++ printf '%s\n' '+ { "Michael Müller", "winebuild: Add stub functions in fake dlls.", 1 },';
++ printf '%s\n' '+ { "Michael Müller", "winebuild: Add syscall thunks in fake dlls.", 1 },';
++ printf '%s\n' '+ { "Michael Müller", "winebuild: Fix size of relocation information in fake dlls.", 1 },';
++ printf '%s\n' '+ { "Michael Müller", "winebuild: Try to make sure RVA matches between fake and builtin DLLs.", 1 },';
++ printf '%s\n' '+ { "Michael Müller", "libs/wine: Use same file alignment for fake and builtin DLLs.", 1 },';
++ printf '%s\n' '+ { "Michael Müller", "tools/winebuild: Add syscall thunks for 64 bit.", 1 },';
++ printf '%s\n' '+ { "Paul Gofman", "ntdll: Call NtOpenFile through syscall thunk.", 1 },';
++ ) >> "$patchlist"
++fi
++
+ # Patchset ntdll-Syscall_Emulation
+ # |
+ # | This patchset has the following (direct or indirect) dependencies:
+diff --git a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
+index 751b497da..684c28e16 100644
+--- a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
++++ b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
+@@ -1,4 +1,4 @@
+-From 1fec139d96f32869fc0c8d15219fff493d9951d8 Mon Sep 17 00:00:00 2001
++From e60eb454ecfb4c043a585c1ecd2970c92be1c664 Mon Sep 17 00:00:00 2001
+ From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+ Date: Thu, 11 May 2017 05:32:55 +0200
+ Subject: [PATCH] winebuild: Generate syscall thunks for ntdll exports.
+@@ -22,7 +22,7 @@ Based on a patch by Erich E. Hoover.
+ 14 files changed, 214 insertions(+), 32 deletions(-)
+
+ diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
+-index 45d32399adf..b42cff8bcd4 100644
++index ffbc9fabb23..a633099877d 100644
+ --- a/dlls/ntdll/loader.c
+ +++ b/dlls/ntdll/loader.c
+ @@ -3810,6 +3810,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
+@@ -33,7 +33,7 @@ index 45d32399adf..b42cff8bcd4 100644
+
+ /******************************************************************
+ * LdrInitializeThunk (NTDLL.@)
+-@@ -3827,6 +3828,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
++@@ -3826,6 +3827,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
+ WINE_MODREF *wm;
+ LPCWSTR load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer;
+
+@@ -43,19 +43,19 @@ index 45d32399adf..b42cff8bcd4 100644
+
+ if (process_detaching) return;
+ diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
+-index be88d9bf3c7..84ab7991886 100644
++index 3be6342a945..85329be4f42 100644
+ --- a/dlls/ntdll/signal_i386.c
+ +++ b/dlls/ntdll/signal_i386.c
+-@@ -448,6 +448,8 @@ static ULONG first_ldt_entry = 32;
++@@ -444,6 +444,8 @@ struct stack_layout
+
+- static wine_signal_handler handlers[256];
++ static ULONG first_ldt_entry = 32;
+
+ +extern NTSTATUS WINAPI __syscall_NtGetContextThread( HANDLE handle, CONTEXT *context );
+ +
+ enum i386_trap_code
+ {
+ TRAP_x86_UNKNOWN = -1, /* Unknown fault (TRAP_sig not defined) */
+-@@ -1159,7 +1161,7 @@ NTSTATUS CDECL DECLSPEC_HIDDEN __regs_NtGetContextThread( DWORD edi, DWORD esi,
++@@ -1127,7 +1129,7 @@ NTSTATUS CDECL DECLSPEC_HIDDEN __regs_NtGetContextThread( DWORD edi, DWORD esi,
+ {
+ context->Ebp = ebp;
+ context->Esp = (DWORD)&retaddr;
+@@ -78,7 +78,7 @@ index a5e6faa461a..51938bf84cc 100644
+ ok( context.SegCs == LOWORD(expect.SegCs), "wrong SegCs %08x/%08x\n", context.SegCs, expect.SegCs );
+ ok( context.SegDs == LOWORD(expect.SegDs), "wrong SegDs %08x/%08x\n", context.SegDs, expect.SegDs );
+ diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
+-index 79d13a01a86..94eb6d1252d 100644
++index 49daa33ca58..17b5d40215a 100644
+ --- a/dlls/ntdll/thread.c
+ +++ b/dlls/ntdll/thread.c
+ @@ -173,6 +173,7 @@ int __cdecl __wine_dbg_output( const char *str )
+@@ -99,10 +99,10 @@ index 79d13a01a86..94eb6d1252d 100644
+ peb = teb->Peb;
+ peb->FastPebLock = &peb_lock;
+ diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c
+-index b6458da61ad..a158ec20a6a 100644
++index d4b7a51a627..bdc87e4b9cf 100644
+ --- a/dlls/ntdll/unix/thread.c
+ +++ b/dlls/ntdll/unix/thread.c
+-@@ -83,7 +83,7 @@ static void pthread_exit_wrapper( int status )
++@@ -85,7 +85,7 @@ static void pthread_exit_wrapper( int status )
+ * init_threading
+ */
+ TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size, BOOL *suspend,
+@@ -111,7 +111,7 @@ index b6458da61ad..a158ec20a6a 100644
+ {
+ TEB *teb;
+ SIZE_T info_size;
+-@@ -95,6 +95,7 @@ TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZ
++@@ -97,6 +97,7 @@ TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZ
+ nb_threads = nb_threads_ptr;
+
+ teb = virtual_alloc_first_teb();
+@@ -120,10 +120,10 @@ index b6458da61ad..a158ec20a6a 100644
+ thread_data->request_fd = -1;
+ thread_data->reply_fd = -1;
+ diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
+-index 880e3aacf33..6c7b961e95a 100644
++index 19104f0f5cc..bdf8bc99e3f 100644
+ --- a/dlls/ntdll/unix/unix_private.h
+ +++ b/dlls/ntdll/unix/unix_private.h
+-@@ -96,7 +96,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE
++@@ -101,7 +101,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE
+ extern void CDECL server_init_process_done(void) DECLSPEC_HIDDEN;
+ extern TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size,
+ BOOL *suspend, unsigned int *cpus, BOOL *wow64,
+@@ -133,19 +133,19 @@ index 880e3aacf33..6c7b961e95a 100644
+ extern void CDECL DECLSPEC_NORETURN abort_thread( int status ) DECLSPEC_HIDDEN;
+ extern void CDECL DECLSPEC_NORETURN exit_thread( int status ) DECLSPEC_HIDDEN;
+ diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
+-index 83c9f3a163b..63728b1c071 100644
++index 6a751993421..4e39ed53786 100644
+ --- a/dlls/ntdll/unixlib.h
+ +++ b/dlls/ntdll/unixlib.h
+ @@ -28,7 +28,7 @@ struct ldt_copy;
+ struct msghdr;
+
+ /* increment this when you change the function table */
+--#define NTDLL_UNIXLIB_VERSION 31
+-+#define NTDLL_UNIXLIB_VERSION 32
++-#define NTDLL_UNIXLIB_VERSION 33
+++#define NTDLL_UNIXLIB_VERSION 34
+
+ struct unix_funcs
+ {
+-@@ -172,7 +172,7 @@ struct unix_funcs
++@@ -174,7 +174,7 @@ struct unix_funcs
+
+ /* thread/process functions */
+ TEB * (CDECL *init_threading)( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size,
+diff --git a/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch b/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch
+index 25c315648..0861f99c0 100644
+--- a/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch
++++ b/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch
+@@ -1,4 +1,4 @@
+-From 1bb20ff5903d8d5e81e8a2b7b22bf67b189b16ec Mon Sep 17 00:00:00 2001
++From 20661308a50202350a3a2887cbd558b1e931aad1 Mon Sep 17 00:00:00 2001
+ From: Sebastian Lackner <sebastian(a)fds-team.de>
+ Date: Sun, 6 Sep 2015 12:41:17 +0200
+ Subject: [PATCH] ws2_32: Invalidate client-side file descriptor cache in
+@@ -17,7 +17,7 @@ Subject: [PATCH] ws2_32: Invalidate client-side file descriptor cache in
+ 9 files changed, 36 insertions(+), 5 deletions(-)
+
+ diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
+-index c4d78128758..3d6c8850086 100644
++index ce5c580bd54..279845ae830 100644
+ --- a/dlls/ntdll/ntdll.spec
+ +++ b/dlls/ntdll/ntdll.spec
+ @@ -1576,6 +1576,7 @@
+@@ -48,10 +48,10 @@ index 6fb86a68d6f..2f95e190963 100644
+ /***********************************************************************
+ * server_init_process
+ diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
+-index b5ee692024c..d8827b147df 100644
++index 618e3d6adb3..bdda739897b 100644
+ --- a/dlls/ntdll/unix/loader.c
+ +++ b/dlls/ntdll/unix/loader.c
+-@@ -1074,6 +1074,7 @@ static struct unix_funcs unix_funcs =
++@@ -1076,6 +1076,7 @@ static struct unix_funcs unix_funcs =
+ server_select,
+ server_wait,
+ server_send_fd,
+@@ -91,10 +91,10 @@ index fb3f98dd579..0754928cfe8 100644
+ /***********************************************************************
+ * server_get_unix_fd
+ diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
+-index a422fd825ed..880e3aacf33 100644
++index 03b92f9e912..19104f0f5cc 100644
+ --- a/dlls/ntdll/unix/unix_private.h
+ +++ b/dlls/ntdll/unix/unix_private.h
+-@@ -84,6 +84,7 @@ extern unsigned int CDECL server_select( const select_op_t *select_op, data_size
++@@ -89,6 +89,7 @@ extern unsigned int CDECL server_select( const select_op_t *select_op, data_size
+ extern unsigned int CDECL server_wait( const select_op_t *select_op, data_size_t size, UINT flags,
+ const LARGE_INTEGER *timeout ) DECLSPEC_HIDDEN;
+ extern void CDECL server_send_fd( int fd ) DECLSPEC_HIDDEN;
+@@ -103,19 +103,19 @@ index a422fd825ed..880e3aacf33 100644
+ int *needs_close, enum server_fd_type *type,
+ unsigned int *options ) DECLSPEC_HIDDEN;
+ diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
+-index 58bdad19397..83c9f3a163b 100644
++index 017a0a71b3f..6a751993421 100644
+ --- a/dlls/ntdll/unixlib.h
+ +++ b/dlls/ntdll/unixlib.h
+ @@ -28,7 +28,7 @@ struct ldt_copy;
+ struct msghdr;
+
+ /* increment this when you change the function table */
+--#define NTDLL_UNIXLIB_VERSION 30
+-+#define NTDLL_UNIXLIB_VERSION 31
++-#define NTDLL_UNIXLIB_VERSION 32
+++#define NTDLL_UNIXLIB_VERSION 33
+
+ struct unix_funcs
+ {
+-@@ -187,6 +187,7 @@ struct unix_funcs
++@@ -189,6 +189,7 @@ struct unix_funcs
+ unsigned int (CDECL *server_wait)( const select_op_t *select_op, data_size_t size, UINT flags,
+ const LARGE_INTEGER *timeout );
+ void (CDECL *server_send_fd)( int fd );
+diff --git a/staging/upstream-commit b/staging/upstream-commit
+index f51939b28..8b37e5310 100644
+--- a/staging/upstream-commit
++++ b/staging/upstream-commit
+@@ -1 +1 @@
+-3cc3b445752902e07231900befc296f74ad6576e
++17529582402ebe27ef975fc7dcb8353f4f95e629
diff --git a/wine-staging-5.10-ntdll-arm.patch b/wine-staging-5.10-ntdll-arm1.patch
similarity index 100%
rename from wine-staging-5.10-ntdll-arm.patch
rename to wine-staging-5.10-ntdll-arm1.patch
diff --git a/wine.spec b/wine.spec
index a2d6c1f..4308871 100644
--- a/wine.spec
+++ b/wine.spec
@@ -76,7 +76,8 @@ Source150: wine.appdata.xml
# wine bugs
Patch100: wine-staging-5.10-ntdll.patch
-Patch101: wine-staging-5.10-ntdll-arm.patch
+Patch101: wine-staging-5.10-ntdll-arm0.patch
+Patch102: wine-staging-5.10-ntdll-arm1.patch
# desktop dir
Source200: wine.menu
@@ -695,7 +696,8 @@ This package adds the opencl driver for wine.
# setup and apply wine-staging patches
gzip -dc %{SOURCE900} | tar -xf - --strip-components=1
%patch100 -p1 -b.ntdll
-%patch101 -p1 -b.ntdll-arm
+%patch101 -p1 -b.ntdll-arm0
+%patch102 -p1 -b.ntdll-arm1
patches/patchinstall.sh DESTDIR="`pwd`" --all
commit b6dc9f8efeed3ea5f12a5c992c7c2f08e1e2d9c2
Author: Michael Cronenworth <mike(a)cchtml.com>
Date: Thu Jun 11 08:47:39 2020 -0500
Wine-staging just fixed the ARM build failure so lets add the fix
diff --git a/wine-staging-5.10-ntdll-arm.patch b/wine-staging-5.10-ntdll-arm.patch
new file mode 100644
index 0000000..56a6f4f
--- /dev/null
+++ b/wine-staging-5.10-ntdll-arm.patch
@@ -0,0 +1,950 @@
+From 5306e1df11e772fe8125fcd5857e52cf1f83430b Mon Sep 17 00:00:00 2001
+From: Paul Gofman <gofmanp(a)gmail.com>
+Date: Thu, 11 Jun 2020 15:23:12 +0300
+Subject: [PATCH] Updated winebuild-Fake_Dlls patchset.
+
+Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49357
+---
+ ...-tests-Add-basic-tests-for-fake-dlls.patch | 8 +--
+ ...-not-abuse-WOW32Reserved-field-for-1.patch | 36 ++++++-------
+ ...ate-syscall-thunks-for-ntdll-exports.patch | 53 +++++++++++--------
+ ...ltipass-label-system-to-generate-fak.patch | 10 ++--
+ ...uild-Add-stub-functions-in-fake-dlls.patch | 36 ++++++-------
+ ...uild-Add-syscall-thunks-in-fake-dlls.patch | 8 +--
+ ...ze-of-relocation-information-in-fake.patch | 4 +-
+ ...-make-sure-RVA-matches-between-fake-.patch | 10 ++--
+ ...me-file-alignment-for-fake-and-built.patch | 8 +--
+ ...ebuild-Add-syscall-thunks-for-64-bit.patch | 39 ++++++--------
+ ...all-NtOpenFile-through-syscall-thunk.patch | 32 +++++------
+ 11 files changed, 123 insertions(+), 121 deletions(-)
+
+diff --git a/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch b/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch
+index ef056cfcf..21d69fd59 100644
+--- a/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch
++++ b/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch
+@@ -1,4 +1,4 @@
+-From de68d5c0e6bd728788bbec09100ea59802b8ff13 Mon Sep 17 00:00:00 2001
++From 8b88aa45856684e63786425f72886f2ac57b3630 Mon Sep 17 00:00:00 2001
+ From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+ Date: Thu, 25 May 2017 07:02:46 +0200
+ Subject: [PATCH] kernel32/tests: Add basic tests for fake dlls.
+@@ -8,10 +8,10 @@ Subject: [PATCH] kernel32/tests: Add basic tests for fake dlls.
+ 1 file changed, 91 insertions(+)
+
+ diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
+-index 5474d543248..4e7a15970cb 100644
++index ef8c47c04f1a..efd5a25a432d 100644
+ --- a/dlls/kernel32/tests/loader.c
+ +++ b/dlls/kernel32/tests/loader.c
+-@@ -1535,6 +1535,96 @@ static void test_filenames(void)
++@@ -1572,6 +1572,96 @@ static void test_filenames(void)
+ DeleteFileA( long_path );
+ }
+
+@@ -108,7 +108,7 @@ index 5474d543248..4e7a15970cb 100644
+ /* Verify linking style of import descriptors */
+ static void test_ImportDescriptors(void)
+ {
+-@@ -3997,6 +4087,7 @@ START_TEST(loader)
++@@ -4094,6 +4184,7 @@ START_TEST(loader)
+ return;
+ }
+
+diff --git a/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch b/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch
+index 15aaa85df..ae98c2798 100644
+--- a/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch
++++ b/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch
+@@ -1,4 +1,4 @@
+-From 25d08438aba3dee16c79ce3168a4f76f39816fad Mon Sep 17 00:00:00 2001
++From 7af81866f286e60f601d1c3f9bfe8592a794d21d Mon Sep 17 00:00:00 2001
+ From: Sebastian Lackner <sebastian(a)fds-team.de>
+ Date: Tue, 16 May 2017 04:37:52 +0200
+ Subject: [PATCH] krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit
+@@ -24,7 +24,7 @@ Subject: [PATCH] krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit
+ 16 files changed, 78 insertions(+), 77 deletions(-)
+
+ diff --git a/dlls/dbghelp/cpu_i386.c b/dlls/dbghelp/cpu_i386.c
+-index fd808a0d324..7d6723977a2 100644
++index fd808a0d3248..7d6723977a29 100644
+ --- a/dlls/dbghelp/cpu_i386.c
+ +++ b/dlls/dbghelp/cpu_i386.c
+ @@ -213,16 +213,16 @@ static BOOL i386_stack_walk(struct cpu_stack_walk *csw, STACKFRAME64 *frame,
+@@ -48,7 +48,7 @@ index fd808a0d324..7d6723977a2 100644
+ }
+ next_switch = p;
+ diff --git a/dlls/krnl386.exe16/kernel.c b/dlls/krnl386.exe16/kernel.c
+-index 07a57d0d937..89ea5c042e7 100644
++index 07a57d0d9372..89ea5c042e71 100644
+ --- a/dlls/krnl386.exe16/kernel.c
+ +++ b/dlls/krnl386.exe16/kernel.c
+ @@ -47,8 +47,8 @@ static void thread_attach(void)
+@@ -72,7 +72,7 @@ index 07a57d0d937..89ea5c042e7 100644
+ }
+
+ diff --git a/dlls/krnl386.exe16/kernel16_private.h b/dlls/krnl386.exe16/kernel16_private.h
+-index f15934daa0e..9f939a9d5ba 100644
++index f15934daa0e4..9f939a9d5bac 100644
+ --- a/dlls/krnl386.exe16/kernel16_private.h
+ +++ b/dlls/krnl386.exe16/kernel16_private.h
+ @@ -169,7 +169,7 @@ extern THHOOK *pThhook DECLSPEC_HIDDEN;
+@@ -119,7 +119,7 @@ index f15934daa0e..9f939a9d5ba 100644
+
+ static inline struct kernel_thread_data *kernel_get_thread_data(void)
+ diff --git a/dlls/krnl386.exe16/ne_module.c b/dlls/krnl386.exe16/ne_module.c
+-index f1e1a14dd67..c951a18f869 100644
++index f1e1a14dd679..c951a18f8699 100644
+ --- a/dlls/krnl386.exe16/ne_module.c
+ +++ b/dlls/krnl386.exe16/ne_module.c
+ @@ -1208,7 +1208,7 @@ DWORD NE_StartTask(void)
+@@ -143,7 +143,7 @@ index f1e1a14dd67..c951a18f869 100644
+ WOWCallback16Ex( 0, WCB16_REGS, 0, NULL, (DWORD *)&context );
+ ExitThread( LOWORD(context.Eax) );
+ diff --git a/dlls/krnl386.exe16/ne_segment.c b/dlls/krnl386.exe16/ne_segment.c
+-index aa886148029..70eb3360914 100644
++index aa8861480298..70eb33609144 100644
+ --- a/dlls/krnl386.exe16/ne_segment.c
+ +++ b/dlls/krnl386.exe16/ne_segment.c
+ @@ -370,9 +370,9 @@ BOOL NE_LoadSegment( NE_MODULE *pModule, WORD segnum )
+@@ -209,7 +209,7 @@ index aa886148029..70eb3360914 100644
+ args[7] = HIWORD(dwReason);
+ args[6] = LOWORD(dwReason);
+ diff --git a/dlls/krnl386.exe16/task.c b/dlls/krnl386.exe16/task.c
+-index 39a60cb97a9..21de62c5a01 100644
++index 39a60cb97a94..21de62c5a015 100644
+ --- a/dlls/krnl386.exe16/task.c
+ +++ b/dlls/krnl386.exe16/task.c
+ @@ -624,7 +624,7 @@ void WINAPI InitTask16( CONTEXT *context )
+@@ -267,7 +267,7 @@ index 39a60cb97a9..21de62c5a01 100644
+ context->Esp = OFFSETOF(pData->old_ss_sp) - sizeof(DWORD); /*ret addr*/
+ pData->old_ss_sp = 0;
+ diff --git a/dlls/krnl386.exe16/thunk.c b/dlls/krnl386.exe16/thunk.c
+-index e913a08f88c..ecc94371488 100644
++index e913a08f88cc..ecc94371488f 100644
+ --- a/dlls/krnl386.exe16/thunk.c
+ +++ b/dlls/krnl386.exe16/thunk.c
+ @@ -429,7 +429,7 @@ void WINAPI __regs_QT_Thunk( CONTEXT *context )
+@@ -413,7 +413,7 @@ index e913a08f88c..ecc94371488 100644
+ if (OFFSETOF(frame32->frame16) > lpbuf[2])
+ {
+ diff --git a/dlls/krnl386.exe16/wowthunk.c b/dlls/krnl386.exe16/wowthunk.c
+-index 2dddbf93289..3a4b104a673 100644
++index 2dddbf932898..3a4b104a673f 100644
+ --- a/dlls/krnl386.exe16/wowthunk.c
+ +++ b/dlls/krnl386.exe16/wowthunk.c
+ @@ -127,7 +127,7 @@ static DWORD call16_handler( EXCEPTION_RECORD *record, EXCEPTION_REGISTRATION_RE
+@@ -473,7 +473,7 @@ index 2dddbf93289..3a4b104a673 100644
+ }
+ }
+ diff --git a/dlls/ntdll/unix/signal_i386.c b/dlls/ntdll/unix/signal_i386.c
+-index 2928f314358..138f56b94eb 100644
++index ac34f86a5883..55f1e2ce4b23 100644
+ --- a/dlls/ntdll/unix/signal_i386.c
+ +++ b/dlls/ntdll/unix/signal_i386.c
+ @@ -645,7 +645,7 @@ static inline void *init_handler( const ucontext_t *sigcontext )
+@@ -486,7 +486,7 @@ index 2928f314358..138f56b94eb 100644
+ return (void *)(ESP_sig(sigcontext) & ~3);
+ }
+ diff --git a/dlls/system.drv16/system.c b/dlls/system.drv16/system.c
+-index b6fd51c05f0..695ad7b6003 100644
++index b6fd51c05f01..695ad7b60039 100644
+ --- a/dlls/system.drv16/system.c
+ +++ b/dlls/system.drv16/system.c
+ @@ -70,7 +70,7 @@ static void CALLBACK SYSTEM_TimerTick( LPVOID arg, DWORD low, DWORD high )
+@@ -499,7 +499,7 @@ index b6fd51c05f0..695ad7b6003 100644
+
+ WOWCallback16Ex( 0, WCB16_REGS, 0, NULL, (DWORD *)&context );
+ diff --git a/dlls/toolhelp.dll16/toolhelp.c b/dlls/toolhelp.dll16/toolhelp.c
+-index 578d1ae7fab..1077f0b0367 100644
++index 578d1ae7faba..1077f0b03672 100644
+ --- a/dlls/toolhelp.dll16/toolhelp.c
+ +++ b/dlls/toolhelp.dll16/toolhelp.c
+ @@ -491,8 +491,8 @@ BOOL16 WINAPI TaskNext16( TASKENTRY *lpte )
+@@ -523,7 +523,7 @@ index 578d1ae7fab..1077f0b0367 100644
+ WORD user = LoadLibrary16( "USER.EXE" );
+ WORD gdi = LoadLibrary16( "GDI.EXE" );
+ diff --git a/dlls/user.exe16/message.c b/dlls/user.exe16/message.c
+-index e3ca3fd779d..fa9388ceaa1 100644
++index e3ca3fd779d3..fa9388ceaa11 100644
+ --- a/dlls/user.exe16/message.c
+ +++ b/dlls/user.exe16/message.c
+ @@ -240,11 +240,11 @@ static LRESULT call_window_proc16( HWND16 hwnd, UINT16 msg, WPARAM16 wParam, LPA
+@@ -595,7 +595,7 @@ index e3ca3fd779d..fa9388ceaa1 100644
+
+ stack16->ds = GetWindowLongPtrW( hwnd, GWLP_HINSTANCE );
+ diff --git a/dlls/user.exe16/user.c b/dlls/user.exe16/user.c
+-index 27b92793836..deec596f766 100644
++index 27b92793836a..deec596f7660 100644
+ --- a/dlls/user.exe16/user.c
+ +++ b/dlls/user.exe16/user.c
+ @@ -1394,7 +1394,7 @@ DWORD WINAPI GetTabbedTextExtent16( HDC16 hdc, LPCSTR lpstr, INT16 count,
+@@ -617,7 +617,7 @@ index 27b92793836..deec596f766 100644
+ int userPercent, gdiPercent;
+
+ diff --git a/dlls/user.exe16/window.c b/dlls/user.exe16/window.c
+-index bf86719325b..1f53bdc9540 100644
++index bf86719325b8..1f53bdc95402 100644
+ --- a/dlls/user.exe16/window.c
+ +++ b/dlls/user.exe16/window.c
+ @@ -456,7 +456,7 @@ HWND16 WINAPI GetParent16( HWND16 hwnd )
+@@ -630,10 +630,10 @@ index bf86719325b..1f53bdc9540 100644
+ /* don't use WIN_Handle32 here, we don't care about the full handle */
+ return IsWindow( HWND_32(hwnd) );
+ diff --git a/include/winternl.h b/include/winternl.h
+-index acbce20c212..68c1ae3fd82 100644
++index 87eb0d32926b..2d9f54b89d8c 100644
+ --- a/include/winternl.h
+ +++ b/include/winternl.h
+-@@ -362,7 +362,7 @@ typedef struct _TEB
++@@ -363,7 +363,7 @@ typedef struct _TEB
+ PVOID WOW32Reserved; /* 0c0/0100 */
+ ULONG CurrentLocale; /* 0c4/0108 */
+ ULONG FpSoftwareStatusRegister; /* 0c8/010c */
+@@ -643,7 +643,7 @@ index acbce20c212..68c1ae3fd82 100644
+ ACTIVATION_CONTEXT_STACK ActivationContextStack; /* 1a8/02c8 */
+ BYTE SpareBytes1[24]; /* 1bc/02e8 */
+ diff --git a/tools/winebuild/relay.c b/tools/winebuild/relay.c
+-index 29d0a74c833..01bb97e02b4 100644
++index 29d0a74c833c..01bb97e02b4c 100644
+ --- a/tools/winebuild/relay.c
+ +++ b/tools/winebuild/relay.c
+ @@ -31,7 +31,7 @@
+diff --git a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
+index 547e27f8f..a0487f91b 100644
+--- a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
++++ b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
+@@ -1,4 +1,4 @@
+-From 0c4d2573b123f2198f74292133b7a6eefa472620 Mon Sep 17 00:00:00 2001
++From d8ff827f7a94aee2bed89c620120af0a148ca81c Mon Sep 17 00:00:00 2001
+ From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+ Date: Thu, 11 May 2017 05:32:55 +0200
+ Subject: [PATCH] winebuild: Generate syscall thunks for ntdll exports.
+@@ -8,7 +8,7 @@ Based on a patch by Erich E. Hoover.
+ dlls/ntdll/loader.c | 3 +
+ dlls/ntdll/signal_i386.c | 4 +-
+ dlls/ntdll/tests/exception.c | 2 +
+- dlls/ntdll/thread.c | 3 +-
++ dlls/ntdll/thread.c | 10 +++-
+ dlls/ntdll/unix/thread.c | 3 +-
+ dlls/ntdll/unix/unix_private.h | 2 +-
+ dlls/ntdll/unixlib.h | 4 +-
+@@ -19,13 +19,13 @@ Based on a patch by Erich E. Hoover.
+ tools/winebuild/spec16.c | 22 +------
+ tools/winebuild/spec32.c | 104 +++++++++++++++++++++++++++++++++
+ tools/winebuild/utils.c | 21 +++++++
+- 14 files changed, 214 insertions(+), 32 deletions(-)
++ 14 files changed, 221 insertions(+), 32 deletions(-)
+
+ diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
+-index 0c8f05285c4..26c540050dc 100644
++index 2553b0b9d397..cac6aae2f3dd 100644
+ --- a/dlls/ntdll/loader.c
+ +++ b/dlls/ntdll/loader.c
+-@@ -3810,6 +3810,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
++@@ -4021,6 +4021,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
+ return ret;
+ }
+
+@@ -33,7 +33,7 @@ index 0c8f05285c4..26c540050dc 100644
+
+ /******************************************************************
+ * LdrInitializeThunk (NTDLL.@)
+-@@ -3826,6 +3827,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
++@@ -4038,6 +4039,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
+ WINE_MODREF *wm;
+ LPCWSTR load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer;
+
+@@ -43,7 +43,7 @@ index 0c8f05285c4..26c540050dc 100644
+
+ RtlEnterCriticalSection( &loader_section );
+ diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
+-index 21cc1b3ead4..18be5693a7d 100644
++index 21cc1b3ead40..18be5693a7d2 100644
+ --- a/dlls/ntdll/signal_i386.c
+ +++ b/dlls/ntdll/signal_i386.c
+ @@ -346,6 +346,8 @@ __ASM_STDCALL_FUNC( RtlCaptureContext, 4,
+@@ -65,7 +65,7 @@ index 21cc1b3ead4..18be5693a7d 100644
+ }
+ return unix_funcs->NtGetContextThread( handle, context );
+ diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c
+-index a5e6faa461a..51938bf84cc 100644
++index 1389a542cdee..54796476e25b 100644
+ --- a/dlls/ntdll/tests/exception.c
+ +++ b/dlls/ntdll/tests/exception.c
+ @@ -1643,6 +1643,8 @@ static void test_thread_context(void)
+@@ -78,18 +78,25 @@ index a5e6faa461a..51938bf84cc 100644
+ ok( context.SegCs == LOWORD(expect.SegCs), "wrong SegCs %08x/%08x\n", context.SegCs, expect.SegCs );
+ ok( context.SegDs == LOWORD(expect.SegDs), "wrong SegDs %08x/%08x\n", context.SegDs, expect.SegDs );
+ diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
+-index 5a6809638ae..fa10cdf1062 100644
++index ff5fe9d6226a..e93498b27ea0 100644
+ --- a/dlls/ntdll/thread.c
+ +++ b/dlls/ntdll/thread.c
+-@@ -170,6 +170,7 @@ int __cdecl __wine_dbg_output( const char *str )
++@@ -220,6 +220,14 @@ int __cdecl __wine_dbg_output( const char *str )
+ return unix_funcs->dbg_output( str );
+ }
+
+++#if defined(__i386__) || defined(__x86_64__)
+ +extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
+++#else
+++void __wine_syscall_dispatcher( void )
+++{
+++ FIXME("Syscall dispatcher is not available for this architecture.\n");
+++}
+++#endif
+
+ /***********************************************************************
+ * thread_init
+-@@ -181,7 +182,7 @@ int __cdecl __wine_dbg_output( const char *str )
++@@ -231,7 +239,7 @@ int __cdecl __wine_dbg_output( const char *str )
+ TEB *thread_init( SIZE_T *info_size, BOOL *suspend )
+ {
+ TEB *teb = unix_funcs->init_threading( &nb_threads, &__wine_ldt_copy, info_size, suspend, &server_cpus,
+@@ -99,7 +106,7 @@ index 5a6809638ae..fa10cdf1062 100644
+ peb = teb->Peb;
+ peb->FastPebLock = &peb_lock;
+ diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c
+-index 97b191e1a5b..2dbaa43e731 100644
++index 97b191e1a5b3..2dbaa43e731a 100644
+ --- a/dlls/ntdll/unix/thread.c
+ +++ b/dlls/ntdll/unix/thread.c
+ @@ -85,7 +85,7 @@ static void pthread_exit_wrapper( int status )
+@@ -120,10 +127,10 @@ index 97b191e1a5b..2dbaa43e731 100644
+ thread_data->request_fd = -1;
+ thread_data->reply_fd = -1;
+ diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
+-index 19dd216fc35..a1c48a52606 100644
++index 92a58417827b..33a551e947c2 100644
+ --- a/dlls/ntdll/unix/unix_private.h
+ +++ b/dlls/ntdll/unix/unix_private.h
+-@@ -107,7 +107,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE
++@@ -108,7 +108,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE
+ extern void CDECL server_init_process_done( void *relay ) DECLSPEC_HIDDEN;
+ extern TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size,
+ BOOL *suspend, unsigned int *cpus, BOOL *wow64,
+@@ -133,7 +140,7 @@ index 19dd216fc35..a1c48a52606 100644
+ extern void CDECL DECLSPEC_NORETURN exit_process( int status ) DECLSPEC_HIDDEN;
+ extern NTSTATUS CDECL get_thread_ldt_entry( HANDLE handle, void *data, ULONG len, ULONG *ret_len ) DECLSPEC_HIDDEN;
+ diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
+-index 4c580c49d13..4f0080db03d 100644
++index 4c580c49d139..4f0080db03d9 100644
+ --- a/dlls/ntdll/unixlib.h
+ +++ b/dlls/ntdll/unixlib.h
+ @@ -28,7 +28,7 @@ struct ldt_copy;
+@@ -155,10 +162,10 @@ index 4c580c49d13..4f0080db03d 100644
+ void (CDECL *exit_process)( int status );
+ NTSTATUS (CDECL *get_thread_ldt_entry)( HANDLE handle, void *data, ULONG len, ULONG *ret_len );
+ diff --git a/include/winternl.h b/include/winternl.h
+-index 68c1ae3fd82..f2da9157aab 100644
++index 2d9f54b89d8c..0c15a0ee6c34 100644
+ --- a/include/winternl.h
+ +++ b/include/winternl.h
+-@@ -359,7 +359,7 @@ typedef struct _TEB
++@@ -360,7 +360,7 @@ typedef struct _TEB
+ PVOID CsrClientThread; /* 03c/0070 */
+ PVOID Win32ThreadInfo; /* 040/0078 */
+ ULONG Win32ClientInfo[31]; /* 044/0080 used for user32 private data in Wine */
+@@ -168,7 +175,7 @@ index 68c1ae3fd82..f2da9157aab 100644
+ ULONG FpSoftwareStatusRegister; /* 0c8/010c */
+ PVOID SystemReserved1[54]; /* 0cc/0110 used for krnl386.exe16 private data in Wine */
+ diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h
+-index c162888a035..55d5b0b9dc2 100644
++index c162888a0356..55d5b0b9dc28 100644
+ --- a/tools/winebuild/build.h
+ +++ b/tools/winebuild/build.h
+ @@ -105,6 +105,7 @@ typedef struct
+@@ -216,7 +223,7 @@ index c162888a035..55d5b0b9dc2 100644
+
+ extern int byte_swapped;
+ diff --git a/tools/winebuild/import.c b/tools/winebuild/import.c
+-index 04ab433dd65..0c6bafed8e5 100644
++index 04ab433dd65a..0c6bafed8e54 100644
+ --- a/tools/winebuild/import.c
+ +++ b/tools/winebuild/import.c
+ @@ -531,6 +531,7 @@ static void check_undefined_forwards( DLLSPEC *spec )
+@@ -256,7 +263,7 @@ index 04ab433dd65..0c6bafed8e5 100644
+ }
+ }
+ diff --git a/tools/winebuild/parser.c b/tools/winebuild/parser.c
+-index 0f2b9c1e10a..74216f8bb6e 100644
++index 0f2b9c1e10ad..74216f8bb6e7 100644
+ --- a/tools/winebuild/parser.c
+ +++ b/tools/winebuild/parser.c
+ @@ -543,6 +543,24 @@ static const char *parse_spec_flags( DLLSPEC *spec, ORDDEF *odp )
+@@ -347,7 +354,7 @@ index 0f2b9c1e10a..74216f8bb6e 100644
+ }
+
+ diff --git a/tools/winebuild/spec16.c b/tools/winebuild/spec16.c
+-index a52c03aaa6a..15ef9a3f893 100644
++index a52c03aaa6a7..15ef9a3f8930 100644
+ --- a/tools/winebuild/spec16.c
+ +++ b/tools/winebuild/spec16.c
+ @@ -495,27 +495,6 @@ static int relay_type_compare( const void *e1, const void *e2 )
+@@ -387,7 +394,7 @@ index a52c03aaa6a..15ef9a3f893 100644
+ entry_point->u.func.nb_args = 0;
+ assert( !spec->ordinals[0] );
+ diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
+-index b1e20e0484d..22dd399cb2b 100644
++index b1e20e0484dc..22dd399cb2b4 100644
+ --- a/tools/winebuild/spec32.c
+ +++ b/tools/winebuild/spec32.c
+ @@ -374,6 +374,109 @@ static void output_relay_debug( DLLSPEC *spec )
+@@ -509,7 +516,7 @@ index b1e20e0484d..22dd399cb2b 100644
+ output_exports( spec );
+ output_imports( spec );
+ diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c
+-index 2a1fc960926..07a579004ad 100644
++index 2a1fc960926b..07a579004adc 100644
+ --- a/tools/winebuild/utils.c
+ +++ b/tools/winebuild/utils.c
+ @@ -860,6 +860,7 @@ void free_dll_spec( DLLSPEC *spec )
+diff --git a/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch b/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch
+index 6c3984f8b..d4813799e 100644
+--- a/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch
++++ b/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch
+@@ -1,4 +1,4 @@
+-From 15182deeb13e26abdb3067a77353354726ac82aa Mon Sep 17 00:00:00 2001
++From 344eb39bdfee74d4d826fa2f61a95736f0ee9823 Mon Sep 17 00:00:00 2001
+ From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+ Date: Mon, 15 May 2017 02:05:49 +0200
+ Subject: [PATCH] winebuild: Use multipass label system to generate fake dlls.
+@@ -11,7 +11,7 @@ Subject: [PATCH] winebuild: Use multipass label system to generate fake dlls.
+ 4 files changed, 181 insertions(+), 63 deletions(-)
+
+ diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h
+-index 6ee847f908c..210324406a9 100644
++index 55d5b0b9dc28..8930df408d3b 100644
+ --- a/tools/winebuild/build.h
+ +++ b/tools/winebuild/build.h
+ @@ -343,6 +343,7 @@ extern size_t input_buffer_pos;
+@@ -35,7 +35,7 @@ index 6ee847f908c..210324406a9 100644
+ /* global variables */
+
+ diff --git a/tools/winebuild/res32.c b/tools/winebuild/res32.c
+-index bd55bb2fa5c..d9329019f8a 100644
++index bd55bb2fa5c4..d9329019f8a3 100644
+ --- a/tools/winebuild/res32.c
+ +++ b/tools/winebuild/res32.c
+ @@ -539,7 +539,6 @@ void output_bin_resources( DLLSPEC *spec, unsigned int start_rva )
+@@ -47,7 +47,7 @@ index bd55bb2fa5c..d9329019f8a 100644
+ /* output the resource directories */
+
+ diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
+-index 22dd399cb2b..c38f1fe663c 100644
++index 22dd399cb2b4..c38f1fe663c7 100644
+ --- a/tools/winebuild/spec32.c
+ +++ b/tools/winebuild/spec32.c
+ @@ -844,11 +844,11 @@ void output_spec32_file( DLLSPEC *spec )
+@@ -279,7 +279,7 @@ index 22dd399cb2b..c38f1fe663c 100644
+ }
+
+ diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c
+-index 7dc61a708db..64e1fa51455 100644
++index 07a579004adc..80dec6db29ea 100644
+ --- a/tools/winebuild/utils.c
+ +++ b/tools/winebuild/utils.c
+ @@ -34,6 +34,7 @@
+diff --git a/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch b/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch
+index f96d51aee..4ac05a314 100644
+--- a/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch
++++ b/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch
+@@ -1,4 +1,4 @@
+-From 167ad04157dd746ee9395afa9505fe00cc866f9b Mon Sep 17 00:00:00 2001
++From e5fc6ee60be5dd3b80af96dcbd81adb742ba7a5d Mon Sep 17 00:00:00 2001
+ From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+ Date: Mon, 15 May 2017 16:27:56 +0200
+ Subject: [PATCH] winebuild: Add stub functions in fake dlls.
+@@ -14,10 +14,10 @@ Subject: [PATCH] winebuild: Add stub functions in fake dlls.
+ 7 files changed, 251 insertions(+), 15 deletions(-)
+
+ diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
+-index 926fa913866..902907329c0 100644
++index efd5a25a432d..182b61b731a2 100644
+ --- a/dlls/kernel32/tests/loader.c
+ +++ b/dlls/kernel32/tests/loader.c
+-@@ -1596,9 +1596,7 @@ static void test_FakeDLL(void)
++@@ -1597,9 +1597,7 @@ static void test_FakeDLL(void)
+ ok(ptr != NULL, "MapViewOfFile failed with error %u\n", GetLastError());
+
+ dir = RtlImageDirectoryEntryToData(ptr, TRUE, IMAGE_DIRECTORY_ENTRY_EXPORT, &size);
+@@ -27,7 +27,7 @@ index 926fa913866..902907329c0 100644
+
+ names = RVAToAddr(dir->AddressOfNames, ptr);
+ ordinals = RVAToAddr(dir->AddressOfNameOrdinals, ptr);
+-@@ -1627,17 +1625,20 @@ todo_wine
++@@ -1628,17 +1626,20 @@ todo_wine
+ /* check position in memory */
+ dll_rva = (DWORD_PTR)dll_func - (DWORD_PTR)module;
+ map_rva = funcs[ordinals[i]];
+@@ -48,7 +48,7 @@ index 926fa913866..902907329c0 100644
+ ok(!memcmp(map_func, dll_func, 0x20), "%s: Function content does not match!\n", func_name);
+
+ if (!strcmp(func_name, "NtSetEvent"))
+-@@ -1651,10 +1652,11 @@ todo_wine
++@@ -1652,10 +1653,11 @@ todo_wine
+ ok(event != NULL, "CreateEvent failed with error %u\n", GetLastError());
+ pNtSetEvent(event, 0);
+ ok(WaitForSingleObject(event, 0) == WAIT_OBJECT_0, "Event was not signaled\n");
+@@ -62,10 +62,10 @@ index 926fa913866..902907329c0 100644
+ CloseHandle(map);
+ CloseHandle(file);
+ diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
+-index 26c540050dc..09d3870c31a 100644
++index cac6aae2f3dd..51d989f30b45 100644
+ --- a/dlls/ntdll/loader.c
+ +++ b/dlls/ntdll/loader.c
+-@@ -3811,6 +3811,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
++@@ -4022,6 +4022,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
+ }
+
+ extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
+@@ -73,7 +73,7 @@ index 26c540050dc..09d3870c31a 100644
+
+ /******************************************************************
+ * LdrInitializeThunk (NTDLL.@)
+-@@ -3828,6 +3829,7 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
++@@ -4040,6 +4041,7 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
+ LPCWSTR load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer;
+
+ NtCurrentTeb()->WOW32Reserved = __wine_syscall_dispatcher;
+@@ -82,12 +82,12 @@ index 26c540050dc..09d3870c31a 100644
+ if (process_detaching) return;
+
+ diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
+-index fa10cdf1062..4840f527e59 100644
++index e93498b27ea0..a14e3a12ae0c 100644
+ --- a/dlls/ntdll/thread.c
+ +++ b/dlls/ntdll/thread.c
+-@@ -172,6 +172,39 @@ int __cdecl __wine_dbg_output( const char *str )
+-
+- extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
++@@ -229,6 +229,39 @@ void __wine_syscall_dispatcher( void )
++ }
++ #endif
+
+ +void *WINAPI __wine_fakedll_dispatcher( const char *module, ULONG ord )
+ +{
+@@ -125,7 +125,7 @@ index fa10cdf1062..4840f527e59 100644
+ /***********************************************************************
+ * thread_init
+ *
+-@@ -183,6 +216,7 @@ TEB *thread_init( SIZE_T *info_size, BOOL *suspend )
++@@ -240,6 +273,7 @@ TEB *thread_init( SIZE_T *info_size, BOOL *suspend )
+ {
+ TEB *teb = unix_funcs->init_threading( &nb_threads, &__wine_ldt_copy, info_size, suspend, &server_cpus,
+ &is_wow64, &server_start_time, __wine_syscall_dispatcher );
+@@ -134,10 +134,10 @@ index fa10cdf1062..4840f527e59 100644
+ peb = teb->Peb;
+ peb->FastPebLock = &peb_lock;
+ diff --git a/include/winternl.h b/include/winternl.h
+-index f2da9157aab..ce8021af503 100644
++index 0c15a0ee6c34..6da672e979e5 100644
+ --- a/include/winternl.h
+ +++ b/include/winternl.h
+-@@ -398,7 +398,7 @@ typedef struct _TEB
++@@ -399,7 +399,7 @@ typedef struct _TEB
+ PVOID Instrumentation[16]; /* f2c/16b8 */
+ PVOID WinSockData; /* f6c/1738 */
+ ULONG GdiBatchCount; /* f70/1740 */
+@@ -147,7 +147,7 @@ index f2da9157aab..ce8021af503 100644
+ PVOID ReservedForPerf; /* f7c/1750 */
+ PVOID ReservedForOle; /* f80/1758 */
+ diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h
+-index 8930df408d3..44113bad28a 100644
++index 8930df408d3b..44113bad28af 100644
+ --- a/tools/winebuild/build.h
+ +++ b/tools/winebuild/build.h
+ @@ -358,6 +358,7 @@ extern void put_word( unsigned short val );
+@@ -159,7 +159,7 @@ index 8930df408d3..44113bad28a 100644
+ extern void align_output_rva( unsigned int file_align, unsigned int rva_align );
+ extern size_t label_pos( const char *name );
+ diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
+-index c38f1fe663c..bf82ca497c0 100644
++index c38f1fe663c7..bf82ca497c0d 100644
+ --- a/tools/winebuild/spec32.c
+ +++ b/tools/winebuild/spec32.c
+ @@ -843,6 +843,163 @@ void output_spec32_file( DLLSPEC *spec )
+@@ -415,7 +415,7 @@ index c38f1fe663c..bf82ca497c0 100644
+ /* .reloc contents */
+ align_output_rva( file_align, section_align );
+ diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c
+-index 80dec6db29e..d394a1382c6 100644
++index 80dec6db29ea..d394a1382c68 100644
+ --- a/tools/winebuild/utils.c
+ +++ b/tools/winebuild/utils.c
+ @@ -549,7 +549,7 @@ size_t output_buffer_size;
+diff --git a/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch b/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch
+index 5ae2b3deb..13f46d6b0 100644
+--- a/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch
++++ b/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch
+@@ -1,4 +1,4 @@
+-From 84a9f7b8192d7735108da2d7e81cf63faef97c13 Mon Sep 17 00:00:00 2001
++From fd72d405abba827ab5e2603551d48200aedad3ce Mon Sep 17 00:00:00 2001
+ From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+ Date: Mon, 15 May 2017 17:56:48 +0200
+ Subject: [PATCH] winebuild: Add syscall thunks in fake dlls.
+@@ -9,10 +9,10 @@ Subject: [PATCH] winebuild: Add syscall thunks in fake dlls.
+ 2 files changed, 25 insertions(+), 3 deletions(-)
+
+ diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
+-index ec173c94a8e..a3bed8b310b 100644
++index 182b61b731a2..98369c7d508c 100644
+ --- a/dlls/kernel32/tests/loader.c
+ +++ b/dlls/kernel32/tests/loader.c
+-@@ -1602,7 +1602,6 @@ static void test_FakeDLL(void)
++@@ -1639,7 +1639,6 @@ static void test_FakeDLL(void)
+
+ /* check function content */
+ map_func = RVAToAddr(map_rva, ptr);
+@@ -21,7 +21,7 @@ index ec173c94a8e..a3bed8b310b 100644
+
+ if (!strcmp(func_name, "NtSetEvent"))
+ diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
+-index bf82ca497c0..6968e41260f 100644
++index bf82ca497c0d..6968e41260f1 100644
+ --- a/tools/winebuild/spec32.c
+ +++ b/tools/winebuild/spec32.c
+ @@ -860,13 +860,36 @@ static void create_stub_exports_text( DLLSPEC *spec )
+diff --git a/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch b/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch
+index 92a7161de..3b3745ed6 100644
+--- a/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch
++++ b/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch
+@@ -1,4 +1,4 @@
+-From d77c31b1567bfbde1ce4ceb526ad596d0be3e788 Mon Sep 17 00:00:00 2001
++From f92fc0572be02ce2eee2a9cbf60724372678a5af Mon Sep 17 00:00:00 2001
+ From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+ Date: Thu, 25 May 2017 03:22:25 +0200
+ Subject: [PATCH] winebuild: Fix size of relocation information in fake dlls.
+@@ -8,7 +8,7 @@ Subject: [PATCH] winebuild: Fix size of relocation information in fake dlls.
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+ diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
+-index 6968e41260f..f95b45b9a0d 100644
++index 6968e41260f1..f95b45b9a0d5 100644
+ --- a/tools/winebuild/spec32.c
+ +++ b/tools/winebuild/spec32.c
+ @@ -1238,8 +1238,8 @@ static void output_fake_module_pass( DLLSPEC *spec )
+diff --git a/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch b/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch
+index c4f1fb004..2cb4b7cf1 100644
+--- a/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch
++++ b/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch
+@@ -1,4 +1,4 @@
+-From afa59bbabca36f306e9db4c1b080a250c4a919ea Mon Sep 17 00:00:00 2001
++From 59efee63a7442dfee4d9e76b11f651a11a4b523e Mon Sep 17 00:00:00 2001
+ From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+ Date: Thu, 25 May 2017 21:46:27 +0200
+ Subject: [PATCH] winebuild: Try to make sure RVA matches between fake and
+@@ -11,10 +11,10 @@ Subject: [PATCH] winebuild: Try to make sure RVA matches between fake and
+ 3 files changed, 26 insertions(+), 5 deletions(-)
+
+ diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
+-index a3bed8b310b..8b5a345b086 100644
++index 98369c7d508c..77e73b3ca37b 100644
+ --- a/dlls/kernel32/tests/loader.c
+ +++ b/dlls/kernel32/tests/loader.c
+-@@ -1589,7 +1589,6 @@ static void test_FakeDLL(void)
++@@ -1626,7 +1626,6 @@ static void test_FakeDLL(void)
+ /* check position in memory */
+ dll_rva = (DWORD_PTR)dll_func - (DWORD_PTR)module;
+ map_rva = funcs[ordinals[i]];
+@@ -23,7 +23,7 @@ index a3bed8b310b..8b5a345b086 100644
+ func_name, dll_rva, map_rva);
+
+ diff --git a/libs/wine/loader.c b/libs/wine/loader.c
+-index c3b59d90224..b6847ca77b3 100644
++index c3b59d902243..b6847ca77b31 100644
+ --- a/libs/wine/loader.c
+ +++ b/libs/wine/loader.c
+ @@ -335,8 +335,12 @@ static void *map_dll( const IMAGE_NT_HEADERS *nt_descr )
+@@ -54,7 +54,7 @@ index c3b59d90224..b6847ca77b3 100644
+
+ memcpy( sec->Name, ".text", sizeof(".text") );
+ diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
+-index f95b45b9a0d..07d6eed05fc 100644
++index f95b45b9a0d5..07d6eed05fcc 100644
+ --- a/tools/winebuild/spec32.c
+ +++ b/tools/winebuild/spec32.c
+ @@ -381,14 +381,25 @@ static void output_relay_debug( DLLSPEC *spec )
+diff --git a/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch b/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch
+index e0ae33a59..9113beb5f 100644
+--- a/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch
++++ b/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch
+@@ -1,4 +1,4 @@
+-From 29478273c4db90d209ac5afbdc1dd80add3d2c7e Mon Sep 17 00:00:00 2001
++From 370eccb19c65a8b02abfa31a76651ae533dda22f Mon Sep 17 00:00:00 2001
+ From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+ Date: Thu, 25 May 2017 21:56:06 +0200
+ Subject: [PATCH] libs/wine: Use same file alignment for fake and builtin DLLs.
+@@ -9,10 +9,10 @@ Subject: [PATCH] libs/wine: Use same file alignment for fake and builtin DLLs.
+ 2 files changed, 1 insertion(+), 2 deletions(-)
+
+ diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
+-index 8b5a345b086..5373dc4efe1 100644
++index 77e73b3ca37b..1f525194ce73 100644
+ --- a/dlls/kernel32/tests/loader.c
+ +++ b/dlls/kernel32/tests/loader.c
+-@@ -1595,7 +1595,6 @@ static void test_FakeDLL(void)
++@@ -1632,7 +1632,6 @@ static void test_FakeDLL(void)
+ /* check position in file */
+ map_offset = (DWORD_PTR)RtlImageRvaToVa(RtlImageNtHeader(ptr), ptr, map_rva, NULL) - (DWORD_PTR)ptr;
+ dll_offset = (DWORD_PTR)RtlImageRvaToVa(RtlImageNtHeader(module), module, dll_rva, NULL) - (DWORD_PTR)module;
+@@ -21,7 +21,7 @@ index 8b5a345b086..5373dc4efe1 100644
+ func_name, map_offset, dll_offset);
+
+ diff --git a/libs/wine/loader.c b/libs/wine/loader.c
+-index b6847ca77b3..4597a6cb324 100644
++index b6847ca77b31..4597a6cb3243 100644
+ --- a/libs/wine/loader.c
+ +++ b/libs/wine/loader.c
+ @@ -398,7 +398,7 @@ static void *map_dll( const IMAGE_NT_HEADERS *nt_descr )
+diff --git a/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch b/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch
+index 6024e5a2f..e40a80148 100644
+--- a/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch
++++ b/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch
+@@ -1,4 +1,4 @@
+-From a5b4feebd008daab008f72567fe0001da619030e Mon Sep 17 00:00:00 2001
++From 6f1973aa2aee35139ae041e59d37a45ff22dc5bf Mon Sep 17 00:00:00 2001
+ From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+ Date: Thu, 7 Sep 2017 00:38:09 +0200
+ Subject: [PATCH] tools/winebuild: Add syscall thunks for 64 bit.
+@@ -7,18 +7,18 @@ Subject: [PATCH] tools/winebuild: Add syscall thunks for 64 bit.
+ dlls/kernel32/tests/loader.c | 7 +-
+ dlls/ntdll/unix/thread.c | 2 +-
+ dlls/ntdll/unix/unix_private.h | 2 +-
+- dlls/ntdll/unix/virtual.c | 12 +-
++ dlls/ntdll/unix/virtual.c | 11 +-
+ libs/wine/loader.c | 4 +
+ server/mapping.c | 6 +-
+ tools/winebuild/parser.c | 2 +-
+ tools/winebuild/spec32.c | 285 ++++++++++++++++++++++++++++++++-
+- 8 files changed, 306 insertions(+), 14 deletions(-)
++ 8 files changed, 305 insertions(+), 14 deletions(-)
+
+ diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
+-index 95939ba6bde..ae5462f6e55 100644
++index 1f525194ce73..21af7b4ce7a4 100644
+ --- a/dlls/kernel32/tests/loader.c
+ +++ b/dlls/kernel32/tests/loader.c
+-@@ -1573,7 +1573,7 @@ static void test_filenames(void)
++@@ -1574,7 +1574,7 @@ static void test_filenames(void)
+
+ static void test_FakeDLL(void)
+ {
+@@ -27,7 +27,7 @@ index 95939ba6bde..ae5462f6e55 100644
+ NTSTATUS (WINAPI *pNtSetEvent)(HANDLE, ULONG *) = NULL;
+ IMAGE_EXPORT_DIRECTORY *dir;
+ HMODULE module = GetModuleHandleA("ntdll.dll");
+-@@ -1615,8 +1615,13 @@ static void test_FakeDLL(void)
++@@ -1616,8 +1616,13 @@ static void test_FakeDLL(void)
+
+ dll_func = (BYTE *)GetProcAddress(module, func_name);
+ ok(dll_func != NULL, "%s: GetProcAddress returned NULL\n", func_name);
+@@ -42,7 +42,7 @@ index 95939ba6bde..ae5462f6e55 100644
+ todo_wine ok(0, "%s: Export is a stub-function, skipping\n", func_name);
+ continue;
+ diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c
+-index 2dbaa43e731..e1da90222d3 100644
++index 2dbaa43e731a..e1da90222d38 100644
+ --- a/dlls/ntdll/unix/thread.c
+ +++ b/dlls/ntdll/unix/thread.c
+ @@ -110,7 +110,7 @@ TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZ
+@@ -55,10 +55,10 @@ index 2dbaa43e731..e1da90222d3 100644
+
+ if (size) *size = info_size;
+ diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
+-index a1c48a52606..9c9e5b80b0c 100644
++index 33a551e947c2..d06f366d3c6d 100644
+ --- a/dlls/ntdll/unix/unix_private.h
+ +++ b/dlls/ntdll/unix/unix_private.h
+-@@ -152,7 +152,7 @@ extern void virtual_init(void) DECLSPEC_HIDDEN;
++@@ -153,7 +153,7 @@ extern void virtual_init(void) DECLSPEC_HIDDEN;
+ extern TEB *virtual_alloc_first_teb(void) DECLSPEC_HIDDEN;
+ extern NTSTATUS virtual_alloc_teb( TEB **ret_teb ) DECLSPEC_HIDDEN;
+ extern void virtual_free_teb( TEB *teb ) DECLSPEC_HIDDEN;
+@@ -68,10 +68,10 @@ index a1c48a52606..9c9e5b80b0c 100644
+ extern BOOL virtual_is_valid_code_address( const void *addr, SIZE_T size ) DECLSPEC_HIDDEN;
+ extern int virtual_handle_stack_fault( void *addr ) DECLSPEC_HIDDEN;
+ diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
+-index 660323d4dcc..a5e5cb8422d 100644
++index 9fb2ecd38ca3..ad11485d1cea 100644
+ --- a/dlls/ntdll/unix/virtual.c
+ +++ b/dlls/ntdll/unix/virtual.c
+-@@ -2588,14 +2588,14 @@ TEB *virtual_alloc_first_teb(void)
++@@ -2772,14 +2772,14 @@ TEB *virtual_alloc_first_teb(void)
+ TEB *teb;
+ PEB *peb;
+ NTSTATUS status;
+@@ -88,12 +88,7 @@ index 660323d4dcc..a5e5cb8422d 100644
+ if (status)
+ {
+ ERR( "wine: failed to map the shared user data: %08x\n", status );
+-@@ -2787,11 +2787,12 @@ void virtual_clear_thread_stack( void *stack_end )
+- if (force_exec_prot) mprotect( stack, size, PROT_READ | PROT_WRITE | PROT_EXEC );
+- }
+-
+-+extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
+-
++@@ -2977,7 +2977,7 @@ void virtual_clear_thread_stack( void *stack_end )
+ /***********************************************************************
+ * virtual_map_user_shared_data
+ */
+@@ -102,7 +97,7 @@ index 660323d4dcc..a5e5cb8422d 100644
+ {
+ static const WCHAR wine_usdW[] = {'\\','K','e','r','n','e','l','O','b','j','e','c','t','s',
+ '\\','_','_','w','i','n','e','_','u','s','e','r','_','s','h','a','r','e','d','_','d','a','t','a',0};
+-@@ -2814,6 +2815,11 @@ void virtual_map_user_shared_data(void)
++@@ -3000,6 +3000,11 @@ void virtual_map_user_shared_data(void)
+ ERR( "failed to remap the process USD: %d\n", res );
+ exit(1);
+ }
+@@ -115,7 +110,7 @@ index 660323d4dcc..a5e5cb8422d 100644
+ NtClose( section );
+ }
+ diff --git a/libs/wine/loader.c b/libs/wine/loader.c
+-index 4597a6cb324..3d0d75e9c6d 100644
++index 4597a6cb3243..3d0d75e9c6d3 100644
+ --- a/libs/wine/loader.c
+ +++ b/libs/wine/loader.c
+ @@ -398,7 +398,11 @@ static void *map_dll( const IMAGE_NT_HEADERS *nt_descr )
+@@ -131,7 +126,7 @@ index 4597a6cb324..3d0d75e9c6d 100644
+ sec++;
+
+ diff --git a/server/mapping.c b/server/mapping.c
+-index 0941dd87c05..002f3215af2 100644
++index 0941dd87c05d..002f3215af2e 100644
+ --- a/server/mapping.c
+ +++ b/server/mapping.c
+ @@ -964,7 +964,11 @@ struct object *create_user_data_mapping( struct object *root, const struct unico
+@@ -148,7 +143,7 @@ index 0941dd87c05..002f3215af2 100644
+ }
+
+ diff --git a/tools/winebuild/parser.c b/tools/winebuild/parser.c
+-index 74216f8bb6e..820516329a4 100644
++index 74216f8bb6e7..820516329a47 100644
+ --- a/tools/winebuild/parser.c
+ +++ b/tools/winebuild/parser.c
+ @@ -545,7 +545,7 @@ static const char *parse_spec_flags( DLLSPEC *spec, ORDDEF *odp )
+@@ -161,7 +156,7 @@ index 74216f8bb6e..820516329a4 100644
+ if (odp->flags & (FLAG_FORWARD | FLAG_REGISTER))
+ return 0;
+ diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
+-index 07d6eed05fc..9cc4698d0d7 100644
++index 07d6eed05fcc..9cc4698d0d7d 100644
+ --- a/tools/winebuild/spec32.c
+ +++ b/tools/winebuild/spec32.c
+ @@ -375,11 +375,11 @@ static void output_relay_debug( DLLSPEC *spec )
+diff --git a/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch b/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch
+index 69ee26be8..c3e065b26 100644
+--- a/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch
++++ b/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch
+@@ -1,4 +1,4 @@
+-From 659e192979eecfb59d1c1b26e8cea78c42300de5 Mon Sep 17 00:00:00 2001
++From feb53ed39179603391eff600ea59edc41407b238 Mon Sep 17 00:00:00 2001
+ From: Paul Gofman <gofmanp(a)gmail.com>
+ Date: Fri, 3 Jan 2020 17:39:08 +0300
+ Subject: [PATCH] ntdll: Call NtOpenFile through syscall thunk.
+@@ -15,10 +15,10 @@ Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48410
+ 7 files changed, 16 insertions(+), 8 deletions(-)
+
+ diff --git a/dlls/ntdll/actctx.c b/dlls/ntdll/actctx.c
+-index 1ca794ae3e5..b3c13042adc 100644
++index a25cefa555ac..34ba0dc813c6 100644
+ --- a/dlls/ntdll/actctx.c
+ +++ b/dlls/ntdll/actctx.c
+-@@ -2892,7 +2892,7 @@ static NTSTATUS open_nt_file( HANDLE *handle, UNICODE_STRING *name )
++@@ -2894,7 +2894,7 @@ static NTSTATUS open_nt_file( HANDLE *handle, UNICODE_STRING *name )
+ attr.ObjectName = name;
+ attr.SecurityDescriptor = NULL;
+ attr.SecurityQualityOfService = NULL;
+@@ -27,7 +27,7 @@ index 1ca794ae3e5..b3c13042adc 100644
+ }
+
+ static NTSTATUS get_manifest_in_module( struct actctx_loader* acl, struct assembly_identity* ai,
+-@@ -3209,7 +3209,7 @@ static NTSTATUS lookup_winsxs(struct actctx_loader* acl, struct assembly_identit
++@@ -3211,7 +3211,7 @@ static NTSTATUS lookup_winsxs(struct actctx_loader* acl, struct assembly_identit
+ attr.SecurityDescriptor = NULL;
+ attr.SecurityQualityOfService = NULL;
+
+@@ -37,10 +37,10 @@ index 1ca794ae3e5..b3c13042adc 100644
+ {
+ sxs_ai = *ai;
+ diff --git a/dlls/ntdll/directory.c b/dlls/ntdll/directory.c
+-index d18df38f626..69607a4fed9 100644
++index 18428658a5b5..7a9de26ccb0c 100644
+ --- a/dlls/ntdll/directory.c
+ +++ b/dlls/ntdll/directory.c
+-@@ -2943,7 +2943,7 @@ NTSTATUS DIR_get_unix_cwd( char **cwd )
++@@ -3071,7 +3071,7 @@ NTSTATUS DIR_get_unix_cwd( char **cwd )
+ attr.SecurityDescriptor = NULL;
+ attr.SecurityQualityOfService = NULL;
+
+@@ -50,10 +50,10 @@ index d18df38f626..69607a4fed9 100644
+ RtlFreeUnicodeString( &dirW );
+ if (status != STATUS_SUCCESS) goto done;
+ diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
+-index 0b8c28a0651..e48cd84cffd 100644
++index 51d989f30b45..8f1653b0d626 100644
+ --- a/dlls/ntdll/loader.c
+ +++ b/dlls/ntdll/loader.c
+-@@ -2469,7 +2469,7 @@ static NTSTATUS open_dll_file( UNICODE_STRING *nt_name, WINE_MODREF **pwm,
++@@ -2521,7 +2521,7 @@ static NTSTATUS open_dll_file( UNICODE_STRING *nt_name, WINE_MODREF **pwm,
+ attr.ObjectName = nt_name;
+ attr.SecurityDescriptor = NULL;
+ attr.SecurityQualityOfService = NULL;
+@@ -63,10 +63,10 @@ index 0b8c28a0651..e48cd84cffd 100644
+ FILE_SYNCHRONOUS_IO_NONALERT | FILE_NON_DIRECTORY_FILE )))
+ {
+ diff --git a/dlls/ntdll/locale.c b/dlls/ntdll/locale.c
+-index 0d0c1194d23..a1bf219ed0a 100644
++index 15ccdeb2e637..928edcb04e2c 100644
+ --- a/dlls/ntdll/locale.c
+ +++ b/dlls/ntdll/locale.c
+-@@ -661,7 +661,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file )
++@@ -660,7 +660,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file )
+ return STATUS_NO_MEMORY;
+ valueW.Length = NTDLL_swprintf( valueW.Buffer, pathfmtW, dir, name ) * sizeof(WCHAR);
+ InitializeObjectAttributes( &attr, &valueW, 0, 0, NULL );
+@@ -75,7 +75,7 @@ index 0d0c1194d23..a1bf219ed0a 100644
+ if (!status) TRACE( "found %s\n", debugstr_w( valueW.Buffer ));
+ RtlFreeUnicodeString( &valueW );
+ if (status != STATUS_OBJECT_NAME_NOT_FOUND && status != STATUS_OBJECT_PATH_NOT_FOUND) return status;
+-@@ -685,7 +685,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file )
++@@ -684,7 +684,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file )
+ wcscat( valueW.Buffer, name );
+ valueW.Length = wcslen(valueW.Buffer) * sizeof(WCHAR);
+ InitializeObjectAttributes( &attr, &valueW, 0, 0, NULL );
+@@ -85,10 +85,10 @@ index 0d0c1194d23..a1bf219ed0a 100644
+ }
+ RtlFreeUnicodeString( &valueW );
+ diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
+-index 2e791b92f73..f8170793185 100644
++index 9091d1ae8c77..f8e81ae49eaf 100644
+ --- a/dlls/ntdll/ntdll_misc.h
+ +++ b/dlls/ntdll/ntdll_misc.h
+-@@ -350,4 +350,12 @@ static inline void ascii_to_unicode( WCHAR *dst, const char *src, size_t len )
++@@ -329,4 +329,12 @@ static inline void ascii_to_unicode( WCHAR *dst, const char *src, size_t len )
+ while (len--) *dst++ = (unsigned char)*src++;
+ }
+
+@@ -102,7 +102,7 @@ index 2e791b92f73..f8170793185 100644
+ +
+ #endif
+ diff --git a/dlls/ntdll/path.c b/dlls/ntdll/path.c
+-index 32e1f951af5..71ae44dd498 100644
++index 32e1f951af5c..71ae44dd4988 100644
+ --- a/dlls/ntdll/path.c
+ +++ b/dlls/ntdll/path.c
+ @@ -1020,7 +1020,7 @@ NTSTATUS WINAPI RtlSetCurrentDirectory_U(const UNICODE_STRING* dir)
+@@ -115,10 +115,10 @@ index 32e1f951af5..71ae44dd498 100644
+ if (nts != STATUS_SUCCESS) goto out;
+
+ diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c
+-index 60ee39765bf..70dfe6f768a 100644
++index 884141da060c..32a1f5107f06 100644
+ --- a/dlls/ntdll/process.c
+ +++ b/dlls/ntdll/process.c
+-@@ -1281,7 +1281,7 @@ static NTSTATUS get_pe_file_info( UNICODE_STRING *path, ULONG attributes,
++@@ -1357,7 +1357,7 @@ static NTSTATUS get_pe_file_info( UNICODE_STRING *path, ULONG attributes,
+
+ memset( info, 0, sizeof(*info) );
+ InitializeObjectAttributes( &attr, path, attributes, 0, 0 );
diff --git a/wine.spec b/wine.spec
index cd74653..a2d6c1f 100644
--- a/wine.spec
+++ b/wine.spec
@@ -76,6 +76,7 @@ Source150: wine.appdata.xml
# wine bugs
Patch100: wine-staging-5.10-ntdll.patch
+Patch101: wine-staging-5.10-ntdll-arm.patch
# desktop dir
Source200: wine.menu
@@ -694,15 +695,9 @@ This package adds the opencl driver for wine.
# setup and apply wine-staging patches
gzip -dc %{SOURCE900} | tar -xf - --strip-components=1
%patch100 -p1 -b.ntdll
+%patch101 -p1 -b.ntdll-arm
-%ifarch %{arm} aarch64
-patches/patchinstall.sh DESTDIR="`pwd`" --all \
- -W ntdll-NtContinue \
- -W ntdll-Syscall_Emulation \
- -W winebuild-Fake_Dlls
-%else
patches/patchinstall.sh DESTDIR="`pwd`" --all
-%endif
# fix parallelized build
sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in
commit ed2472170e1a0d58cf40488140572c6a8b013023
Author: Michael Cronenworth <mike(a)cchtml.com>
Date: Thu Jun 11 08:30:55 2020 -0500
Apply wine-staging patch and disable a few patchsets on arm due to compile issues
diff --git a/wine-staging-5.10-ntdll.patch b/wine-staging-5.10-ntdll.patch
new file mode 100644
index 0000000..0ac49d8
--- /dev/null
+++ b/wine-staging-5.10-ntdll.patch
@@ -0,0 +1,497 @@
+From 044cb930662d61f401a5d1bdd7b8e75d59cea5ea Mon Sep 17 00:00:00 2001
+From: Paul Gofman <gofmanp(a)gmail.com>
+Date: Mon, 8 Jun 2020 15:33:10 +0300
+Subject: [PATCH] Updated ntdll-ForceBottomUpAlloc patchset.
+
+Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49326
+---
+ ...h-on-mmap-error-in-try_map_free_area.patch | 9 +-
+ ...XED_NOREPLACE-flag-in-try_map_free_a.patch | 10 +-
+ ...om-up-allocation-order-for-64-bit-ar.patch | 12 +-
+ ...tep-after-failed-map-attempt-in-try_.patch | 8 +-
+ ...rea-list-for-virtual-memory-allocati.patch | 163 +++++++++++-------
+ ...y-exclude-natively-mapped-areas-from.patch | 14 +-
+ 6 files changed, 126 insertions(+), 90 deletions(-)
+
+diff --git a/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch b/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch
+index 7aa2337e8..ecf750c59 100644
+--- a/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch
++++ b/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch
+@@ -1,7 +1,8 @@
+-From ca116113c19ee17d2e8283abe4edf27f76df2148 Mon Sep 17 00:00:00 2001
++From c0a24a86c70b3cf2bfe118cff4d9ab03efaa9689 Mon Sep 17 00:00:00 2001
+ From: Paul Gofman <gofmanp(a)gmail.com>
+ Date: Thu, 9 Jan 2020 15:05:09 +0300
+-Subject: [PATCH] ntdll: Stop search on mmap() error in try_map_free_area().
++Subject: [PATCH 1/6] ntdll: Stop search on mmap() error in
++ try_map_free_area().
+
+ The anon mmap errors do not depend on start address hint. Ignoring them
+ makes the search take incredible time until it fails.
+@@ -10,10 +11,10 @@ makes the search take incredible time until it fails.
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+ diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
+-index 0346d0d9753..c29f695d694 100644
++index b2725e3ae9a..5c2ecfab398 100644
+ --- a/dlls/ntdll/unix/virtual.c
+ +++ b/dlls/ntdll/unix/virtual.c
+-@@ -1016,8 +1016,14 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
++@@ -1063,8 +1063,14 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
+ return start;
+ TRACE( "Found free area is already mapped, start %p.\n", start );
+
+diff --git a/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch b/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch
+index 6672d646f..81bdde5a0 100644
+--- a/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch
++++ b/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch
+@@ -1,8 +1,8 @@
+-From b2c9894cd6a81eaa9f7dd4bce3f9cbfbec17d021 Mon Sep 17 00:00:00 2001
++From 68e035e381f5d53980a8bcd7c0798dfd4b4fbe95 Mon Sep 17 00:00:00 2001
+ From: Paul Gofman <gofmanp(a)gmail.com>
+ Date: Thu, 16 Jan 2020 16:09:24 +0300
+-Subject: [PATCH] ntdll: Use MAP_FIXED_NOREPLACE flag in try_map_free_area() if
+- available.
++Subject: [PATCH 2/6] ntdll: Use MAP_FIXED_NOREPLACE flag in
++ try_map_free_area() if available.
+
+ Avoids actual mapping followed by unmapping back if the memory range is
+ already mapped.
+@@ -11,10 +11,10 @@ already mapped.
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+ diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
+-index c29f695d694..8d3e25481ec 100644
++index 5c2ecfab398..93b5d99dadd 100644
+ --- a/dlls/ntdll/unix/virtual.c
+ +++ b/dlls/ntdll/unix/virtual.c
+-@@ -1008,22 +1008,28 @@ static struct wine_rb_entry *find_view_inside_range( void **base_ptr, void **end
++@@ -1055,22 +1055,28 @@ static struct wine_rb_entry *find_view_inside_range( void **base_ptr, void **end
+ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
+ void *start, size_t size, int unix_prot )
+ {
+diff --git a/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch b/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch
+index 44980f11a..279c8e3c2 100644
+--- a/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch
++++ b/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch
+@@ -1,7 +1,7 @@
+-From 9f7320fe58c85f1b53301c2c9a2a80fa8d4ed228 Mon Sep 17 00:00:00 2001
++From 25be7201abeb509db4b28b81914036bc0c00c2f9 Mon Sep 17 00:00:00 2001
+ From: Paul Gofman <gofmanp(a)gmail.com>
+ Date: Mon, 25 Nov 2019 12:19:20 +0300
+-Subject: [PATCH] ntdll: Force bottom up allocation order for 64 bit arch
++Subject: [PATCH 3/6] ntdll: Force bottom up allocation order for 64 bit arch
+ unless top down is requested.
+
+ Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48175
+@@ -11,10 +11,10 @@ Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46568
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+ diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
+-index 8d3e25481ec..dc20e827141 100644
++index 93b5d99dadd..87b33016b72 100644
+ --- a/dlls/ntdll/unix/virtual.c
+ +++ b/dlls/ntdll/unix/virtual.c
+-@@ -1715,13 +1715,19 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
++@@ -1775,13 +1775,19 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
+ }
+ else
+ {
+@@ -35,7 +35,7 @@ index 8d3e25481ec..dc20e827141 100644
+ if (mmap_enum_reserved_areas( alloc_reserved_area_callback, &alloc, top_down ))
+ {
+ ptr = alloc.result;
+-@@ -1731,7 +1737,7 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
++@@ -1791,7 +1797,7 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
+ goto done;
+ }
+
+@@ -44,7 +44,7 @@ index 8d3e25481ec..dc20e827141 100644
+ {
+ if (!(ptr = map_free_area( address_space_start, alloc.limit, size,
+ top_down, get_unix_prot(vprot) )))
+-@@ -1740,6 +1746,8 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
++@@ -1800,6 +1806,8 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
+ goto done;
+ }
+
+diff --git a/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch b/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch
+index 9361f0938..0b5c7618a 100644
+--- a/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch
++++ b/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch
+@@ -1,7 +1,7 @@
+-From e521333684d1286fff7b6625515d13ad6f3fcba3 Mon Sep 17 00:00:00 2001
++From d74a5c586c00a879fa1182af72c15c154e5dd096 Mon Sep 17 00:00:00 2001
+ From: Paul Gofman <gofmanp(a)gmail.com>
+ Date: Tue, 14 Jan 2020 21:39:23 +0300
+-Subject: [PATCH] ntdll: Increase step after failed map attempt in
++Subject: [PATCH 4/6] ntdll: Increase step after failed map attempt in
+ try_map_free_area().
+
+ ---
+@@ -9,10 +9,10 @@ Subject: [PATCH] ntdll: Increase step after failed map attempt in
+ 1 file changed, 1 insertion(+)
+
+ diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
+-index dc20e827141..720d45ecb9f 100644
++index 87b33016b72..5e79faaf6fc 100644
+ --- a/dlls/ntdll/unix/virtual.c
+ +++ b/dlls/ntdll/unix/virtual.c
+-@@ -1036,6 +1036,7 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
++@@ -1083,6 +1083,7 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
+ step == 0)
+ break;
+ start = (char *)start + step;
+diff --git a/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch b/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch
+index 569bf3e62..1f712ba10 100644
+--- a/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch
++++ b/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch
+@@ -1,17 +1,17 @@
+-From df7b650d5e17afa411024b88d1920d0910947a6b Mon Sep 17 00:00:00 2001
++From f14407ee5755b6482714a6232a4313bcd1531781 Mon Sep 17 00:00:00 2001
+ From: Paul Gofman <pgofman(a)codeweavers.com>
+ Date: Tue, 14 Jan 2020 21:42:21 +0300
+-Subject: [PATCH] ntdll: Use free area list for virtual memory allocation.
++Subject: [PATCH 5/6] ntdll: Use free area list for virtual memory allocation.
+
+ ---
+- dlls/ntdll/unix/virtual.c | 318 ++++++++++++++++++++++++--------------
+- 1 file changed, 204 insertions(+), 114 deletions(-)
++ dlls/ntdll/unix/virtual.c | 348 +++++++++++++++++++++++++-------------
++ 1 file changed, 234 insertions(+), 114 deletions(-)
+
+ diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
+-index 720d45ecb9f..e323f4290bf 100644
++index 5e79faaf6fc..7f194effcaa 100644
+ --- a/dlls/ntdll/unix/virtual.c
+ +++ b/dlls/ntdll/unix/virtual.c
+-@@ -192,7 +192,11 @@ static BYTE *pages_vprot;
++@@ -195,7 +195,11 @@ static BYTE *pages_vprot;
+ #endif
+
+ static struct file_view *view_block_start, *view_block_end, *next_free_view;
+@@ -23,7 +23,7 @@ index 720d45ecb9f..e323f4290bf 100644
+ static void *preload_reserve_start;
+ static void *preload_reserve_end;
+ static BOOL use_locks;
+-@@ -528,13 +532,13 @@ static struct range_entry *free_ranges_lower_bound( void *addr )
++@@ -546,13 +550,13 @@ static struct range_entry *free_ranges_lower_bound( void *addr )
+ *
+ * Updates the free_ranges after a new view has been created.
+ */
+@@ -40,7 +40,7 @@ index 720d45ecb9f..e323f4290bf 100644
+ /* free_ranges initial value is such that the view is either inside range or before another one. */
+ assert( range != free_ranges_end );
+ assert( range->end > view_base || next != free_ranges_end );
+-@@ -545,7 +549,7 @@ static void free_ranges_insert_view( struct file_view *view )
++@@ -563,7 +567,7 @@ static void free_ranges_insert_view( struct file_view *view )
+ (range->end == view_base && next->base >= view_end))
+ {
+ /* on Win64, assert that it's correctly aligned so we're not going to be in trouble later */
+@@ -49,7 +49,7 @@ index 720d45ecb9f..e323f4290bf 100644
+ WARN( "range %p - %p is already mapped\n", view_base, view_end );
+ return;
+ }
+-@@ -585,6 +589,12 @@ static void free_ranges_insert_view( struct file_view *view )
++@@ -603,6 +607,12 @@ static void free_ranges_insert_view( struct file_view *view )
+ }
+ }
+
+@@ -62,7 +62,7 @@ index 720d45ecb9f..e323f4290bf 100644
+
+ /***********************************************************************
+ * free_ranges_remove_view
+-@@ -615,6 +625,7 @@ static void free_ranges_remove_view( struct file_view *view )
++@@ -633,6 +643,7 @@ static void free_ranges_remove_view( struct file_view *view )
+ return;
+ }
+ #endif
+@@ -70,7 +70,7 @@ index 720d45ecb9f..e323f4290bf 100644
+
+ /* free_ranges initial value is such that the view is either inside range or before another one. */
+ assert( range != free_ranges_end );
+-@@ -961,44 +972,6 @@ static struct file_view *find_view_range( const void *addr, size_t size )
++@@ -1008,44 +1019,6 @@ static struct file_view *find_view_range( const void *addr, size_t size )
+ }
+
+
+@@ -115,7 +115,7 @@ index 720d45ecb9f..e323f4290bf 100644
+ /***********************************************************************
+ * try_map_free_area
+ *
+-@@ -1042,65 +1015,11 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
++@@ -1089,65 +1062,11 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
+ return NULL;
+ }
+
+@@ -181,7 +181,7 @@ index 720d45ecb9f..e323f4290bf 100644
+ */
+ static void *find_reserved_free_area( void *base, void *end, size_t size, int top_down )
+ {
+-@@ -1314,8 +1233,7 @@ static void delete_view( struct file_view *view ) /* [in] View */
++@@ -1361,8 +1280,7 @@ static void delete_view( struct file_view *view ) /* [in] View */
+ {
+ if (!(view->protect & VPROT_SYSTEM)) unmap_area( view->base, view->size );
+ set_page_vprot( view->base, view->size, 0 );
+@@ -191,7 +191,7 @@ index 720d45ecb9f..e323f4290bf 100644
+ wine_rb_remove( &views_tree, &view->entry );
+ *(struct file_view **)view = next_free_view;
+ next_free_view = view;
+-@@ -1363,8 +1281,7 @@ static NTSTATUS create_view( struct file_view **view_ret, void *base, size_t siz
++@@ -1410,8 +1328,7 @@ static NTSTATUS create_view( struct file_view **view_ret, void *base, size_t siz
+ set_page_vprot( base, size, vprot );
+
+ wine_rb_put( &views_tree, view->base, &view->entry );
+@@ -201,7 +201,7 @@ index 720d45ecb9f..e323f4290bf 100644
+
+ *view_ret = view;
+
+-@@ -1596,6 +1513,7 @@ struct alloc_area
++@@ -1656,6 +1573,7 @@ struct alloc_area
+ int top_down;
+ void *limit;
+ void *result;
+@@ -209,7 +209,7 @@ index 720d45ecb9f..e323f4290bf 100644
+ };
+
+ /***********************************************************************
+-@@ -1637,6 +1555,179 @@ static int CDECL alloc_reserved_area_callback( void *start, SIZE_T size, void *a
++@@ -1697,6 +1615,212 @@ static int CDECL alloc_reserved_area_callback( void *start, SIZE_T size, void *a
+ return 0;
+ }
+
+@@ -303,11 +303,62 @@ index 720d45ecb9f..e323f4290bf 100644
+ + return 0;
+ +}
+ +
+++static void *alloc_free_area_in_range(struct area_alloc_reserved *area, char *base, char *end,
+++ size_t size, int top_down, int unix_prot)
+++{
+++ char *start;
+++
+++ TRACE("range %p-%p.\n", base, end);
+++
+++ if (base >= end) return NULL;
+++
+++ area->map_area_start = base;
+++ area->map_area_end = end;
+++
+++ if (top_down)
+++ {
+++ start = ROUND_ADDR( end - size, granularity_mask );
+++ if (start >= end || start < base)
+++ return NULL;
+++ }
+++ else
+++ {
+++ start = ROUND_ADDR( base + granularity_mask, granularity_mask );
+++ if (!start || start >= end || (char *)end - (char *)start < size)
+++ return NULL;
+++ }
+++
+++ mmap_enum_reserved_areas( alloc_area_in_reserved_or_between_callback, area, top_down );
+++ if (area->result)
+++ return area->result;
+++
+++ if (top_down)
+++ {
+++ start = ROUND_ADDR( area->map_area_end - size, granularity_mask );
+++ if (start >= area->map_area_end || start < area->map_area_start)
+++ return NULL;
+++
+++ return try_map_free_area( area->map_area_start, start + size, area->step,
+++ start, size, unix_prot );
+++ }
+++ else
+++ {
+++ start = ROUND_ADDR( area->map_area_start + granularity_mask, granularity_mask );
+++ if (!start || start >= area->map_area_end
+++ || area->map_area_end - start < size)
+++ return NULL;
+++
+++ return try_map_free_area( start, area->map_area_end, area->step,
+++ start, size, unix_prot );
+++ }
+++}
+++
+ +static void *alloc_free_area(void *limit, size_t size, BOOL top_down, int unix_prot)
+ +{
+ + struct range_entry *range, *ranges_start, *ranges_end;
+++ char *reserve_start, *reserve_end;
+ + struct area_alloc_reserved area;
+-+ char *start, *base, *end;
+++ char *base, *end;
+ + int ranges_inc;
+ +
+ + TRACE("limit %p, size %p, top_down %#x.\n", limit, (void *)size, top_down);
+@@ -331,6 +382,9 @@ index 720d45ecb9f..e323f4290bf 100644
+ + area.top_down = top_down;
+ + area.unix_prot = unix_prot;
+ +
+++ reserve_start = ROUND_ADDR((char *)preload_reserve_start, granularity_mask);
+++ reserve_end = ROUND_ADDR((char *)preload_reserve_end + granularity_mask, granularity_mask);
+++
+ + for (range = ranges_start; range != ranges_end; range += ranges_inc)
+ + {
+ + base = range->base;
+@@ -340,48 +394,27 @@ index 720d45ecb9f..e323f4290bf 100644
+ +
+ + if (base < (char *)address_space_start) base = (char *)address_space_start;
+ + if (end > (char *)limit + granularity_mask + 1) end = (char *)limit + granularity_mask + 1;
+-+ if (base >= end) continue;
+ +
+-+ area.map_area_start = base;
+-+ area.map_area_end = end;
+-+
+-+ if (top_down)
+-+ {
+-+ start = ROUND_ADDR( (char *)end - size, granularity_mask );
+-+ if (start >= end || start < base)
+-+ continue;
+-+ }
+-+ else
+++ if (reserve_end >= base)
+ + {
+-+ start = ROUND_ADDR( (char *)base + granularity_mask, granularity_mask );
+-+ if (!start || start >= end || (char *)end - (char *)start < size)
+-+ continue;
+++ if (reserve_end >= end)
+++ {
+++ if (reserve_start <= base) continue; /* no space in that area */
+++ if (reserve_start < end) end = reserve_start;
+++ }
+++ else if (reserve_start <= base) base = reserve_end;
+++ else
+++ {
+++ /* range is split in two by the preloader reservation, try first part */
+++ if ((area.result = alloc_free_area_in_range(&area, base, reserve_start, size, top_down, unix_prot)))
+++ return area.result;
+++ /* then fall through to try second part */
+++ base = reserve_end;
+++ }
+ + }
+-+ mmap_enum_reserved_areas( alloc_area_in_reserved_or_between_callback, &area, top_down );
+-+ if (area.result)
+-+ return area.result;
+ +
+-+ if (top_down)
+-+ {
+-+ start = ROUND_ADDR( area.map_area_end - size, granularity_mask );
+-+ if (start >= area.map_area_end || start < area.map_area_start)
+-+ continue;
+-+
+-+ if ((area.result = try_map_free_area( area.map_area_start, start + size, area.step,
+-+ start, size, unix_prot )))
+-+ return area.result;
+-+ }
+-+ else
+-+ {
+-+ start = ROUND_ADDR( area.map_area_start + granularity_mask, granularity_mask );
+-+ if (!start || start >= area.map_area_end
+-+ || area.map_area_end - start < size)
+-+ continue;
+-+
+-+ if ((area.result = try_map_free_area( start, area.map_area_end, area.step,
+-+ start, size, unix_prot )))
+-+ return area.result;
+-+ }
+++ if ((area.result = alloc_free_area_in_range(&area, base, end, size, top_down, unix_prot)))
+++ return area.result;
+ + }
+ + return NULL;
+ +}
+@@ -389,7 +422,7 @@ index 720d45ecb9f..e323f4290bf 100644
+ /***********************************************************************
+ * map_fixed_area
+ *
+-@@ -1722,11 +1813,15 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
++@@ -1782,11 +1906,15 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
+ alloc.size = size;
+ alloc.top_down = top_down;
+ alloc.limit = (void*)(get_zero_bits_64_mask( zero_bits_64 ) & (UINT_PTR)user_space_limit);
+@@ -408,7 +441,7 @@ index 720d45ecb9f..e323f4290bf 100644
+ }
+
+ if (mmap_enum_reserved_areas( alloc_reserved_area_callback, &alloc, top_down ))
+-@@ -1738,15 +1833,6 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
++@@ -1798,15 +1926,6 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
+ goto done;
+ }
+
+@@ -424,7 +457,15 @@ index 720d45ecb9f..e323f4290bf 100644
+ view_size = size + granularity_mask + 1;
+
+ for (;;)
+-@@ -2466,10 +2552,14 @@ void virtual_init(void)
++@@ -2500,6 +2619,7 @@ void virtual_init(void)
++ if (preload_reserve_start)
++ address_space_start = min( address_space_start, preload_reserve_start );
++ }
+++ TRACE("preload reserve %p-%p.\n", preload_reserve_start, preload_reserve_end);
++ }
++
++ size = ROUND_SIZE( 0, sizeof(TEB) ) + max( MINSIGSTKSZ, 8192 );
++@@ -2528,8 +2648,8 @@ void virtual_init(void)
+ pages_vprot = (void *)((char *)alloc_views.base + 2 * view_block_size);
+ wine_rb_init( &views_tree, compare_view );
+
+@@ -434,13 +475,7 @@ index 720d45ecb9f..e323f4290bf 100644
+ + free_ranges[0].end = address_space_limit;
+ free_ranges_end = free_ranges + 1;
+
+-+ free_ranges_remove_range(ROUND_ADDR(preload_reserve_start, granularity_mask),
+-+ ROUND_ADDR((char *)preload_reserve_end + granularity_mask,
+-+ granularity_mask), preload_reserve_start);
+-+
+ /* make the DOS area accessible (except the low 64K) to hide bugs in broken apps like Excel 2003 */
+- size = (char *)address_space_start - (char *)0x10000;
+- if (size && mmap_is_in_reserved_area( (void*)0x10000, size ) == 1)
+ --
+ 2.26.2
+
+diff --git a/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch b/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch
+index 8cf896f8a..9bb16bdfc 100644
+--- a/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch
++++ b/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch
+@@ -1,18 +1,18 @@
+-From 81a8c626f834f3b2195980e84e2f5fc0a5b1e0e6 Mon Sep 17 00:00:00 2001
++From ac8fd6b34fa269ce840566055cc1c0b6c023516e Mon Sep 17 00:00:00 2001
+ From: Paul Gofman <pgofman(a)codeweavers.com>
+ Date: Tue, 2 Jun 2020 21:06:33 +0300
+-Subject: [PATCH] ntdll: Permanently exclude natively mapped areas from free
+- areas list.
++Subject: [PATCH 6/6] ntdll: Permanently exclude natively mapped areas from
++ free areas list.
+
+ ---
+ dlls/ntdll/unix/virtual.c | 25 +++++++++++++++++++++++++
+ 1 file changed, 25 insertions(+)
+
+ diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
+-index e323f4290bf..778f5d8c3b8 100644
++index 7f194effcaa..0e2e20396f3 100644
+ --- a/dlls/ntdll/unix/virtual.c
+ +++ b/dlls/ntdll/unix/virtual.c
+-@@ -123,6 +123,9 @@ static const BYTE VIRTUAL_Win32Flags[16] =
++@@ -124,6 +124,9 @@ static const BYTE VIRTUAL_Win32Flags[16] =
+
+ static struct wine_rb_tree views_tree;
+
+@@ -22,7 +22,7 @@ index e323f4290bf..778f5d8c3b8 100644
+ static RTL_CRITICAL_SECTION csVirtual;
+ static RTL_CRITICAL_SECTION_DEBUG critsect_debug =
+ {
+-@@ -1004,6 +1007,13 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
++@@ -1051,6 +1054,13 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
+ if (ptr != (void *)-1)
+ munmap( ptr, size );
+
+@@ -36,7 +36,7 @@ index e323f4290bf..778f5d8c3b8 100644
+ if ((step > 0 && (char *)end - (char *)start < step) ||
+ (step < 0 && (char *)start - (char *)base < -step) ||
+ step == 0)
+-@@ -1817,9 +1827,24 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
++@@ -1910,9 +1920,24 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
+
+ if (is_win64 || zero_bits_64)
+ {
diff --git a/wine.spec b/wine.spec
index 5d030b2..cd74653 100644
--- a/wine.spec
+++ b/wine.spec
@@ -75,6 +75,7 @@ Source109: wine-oleview.desktop
Source150: wine.appdata.xml
# wine bugs
+Patch100: wine-staging-5.10-ntdll.patch
# desktop dir
Source200: wine.menu
@@ -692,8 +693,16 @@ This package adds the opencl driver for wine.
%if 0%{?wine_staging}
# setup and apply wine-staging patches
gzip -dc %{SOURCE900} | tar -xf - --strip-components=1
+%patch100 -p1 -b.ntdll
+%ifarch %{arm} aarch64
+patches/patchinstall.sh DESTDIR="`pwd`" --all \
+ -W ntdll-NtContinue \
+ -W ntdll-Syscall_Emulation \
+ -W winebuild-Fake_Dlls
+%else
patches/patchinstall.sh DESTDIR="`pwd`" --all
+%endif
# fix parallelized build
sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in
commit 72dcd1b7ad63b94a947ae3d1d341ef752cf59dbf
Author: Michael Cronenworth <mike(a)cchtml.com>
Date: Wed Jun 10 16:29:09 2020 -0500
Fix broken macro
diff --git a/wine.spec b/wine.spec
index 9464feb..5d030b2 100644
--- a/wine.spec
+++ b/wine.spec
@@ -719,6 +719,7 @@ export CC="/usr/bin/clang"
# https://bugzilla.redhat.com/show_bug.cgi?id=1658311
export CFLAGS="`echo $CFLAGS | sed -e 's/-fstack-clash-protection//'`"
%endif
+%endif
%configure \
--sysconfdir=%{_sysconfdir}/wine \
commit 6a3375aed7da5016389cab93d28717377e09d9f0
Author: Michael Cronenworth <mike(a)cchtml.com>
Date: Wed Jun 10 16:27:36 2020 -0500
Re order macro to work with older aarch64 rules
diff --git a/wine.spec b/wine.spec
index b8c8f1b..9464feb 100644
--- a/wine.spec
+++ b/wine.spec
@@ -702,11 +702,6 @@ sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in
# 0%%{?wine_staging}
%build
-%if 0%{?fedora} >= 33
-%ifarch aarch64
-%global toolchain clang
-%endif
-%endif
# disable fortify as it breaks wine
# http://bugs.winehq.org/show_bug.cgi?id=24606
@@ -714,6 +709,9 @@ sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in
export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error"
%ifarch aarch64
+%if 0%{?fedora} >= 33
+%global toolchain clang
+%else
# ARM64 now requires clang
# https://source.winehq.org/git/wine.git/commit/8fb8cc03c3edb599dd98f369e14...
export CC="/usr/bin/clang"
commit 41fb9606e6f1c66e8ee0bab57dcadd9251b8a4a6
Author: Michael Cronenworth <mike(a)cchtml.com>
Date: Wed Jun 10 16:20:00 2020 -0500
Add new macro for toolchain based on comments from RHBZ#1844893
diff --git a/wine.spec b/wine.spec
index bb89e53..b8c8f1b 100644
--- a/wine.spec
+++ b/wine.spec
@@ -702,6 +702,11 @@ sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in
# 0%%{?wine_staging}
%build
+%if 0%{?fedora} >= 33
+%ifarch aarch64
+%global toolchain clang
+%endif
+%endif
# disable fortify as it breaks wine
# http://bugs.winehq.org/show_bug.cgi?id=24606
commit 4a5b3c288356f8f5c567ddd533aa2aac7f7a6c26
Author: Michael Cronenworth <mike(a)cchtml.com>
Date: Sun Jun 7 15:39:15 2020 -0500
Update to 5.10
diff --git a/.gitignore b/.gitignore
index 967baf9..1b3c9bc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
-/wine-5.9.tar.xz
-/wine-5.9.tar.xz.sign
-/wine-staging-5.9.tar.gz
+/wine-5.10.tar.xz
+/wine-5.10.tar.xz.sign
+/wine-staging-5.10.tar.gz
diff --git a/sources b/sources
index 7f5d1eb..71a95ad 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (wine-5.9.tar.xz) = edc6d55a275cf37430a62dc6d6d86bff6d5a434e708dbd99d245018db7f6a0abe39581a1d91eb947f204a45ac94cc5c931745169a3b63a2aecf8db277553b74b
-SHA512 (wine-5.9.tar.xz.sign) = 1a048d9e4229eb6391a8a48027af8c2511b5c921c70fb1c6a398570d5656c0747746d34d7d3458a7be68220d00130676ad97ddeaaee94023a63f9afeba833357
-SHA512 (wine-staging-5.9.tar.gz) = 8fcf448be21edc0ccf8afef75013298c8f1634b51cd4d927ee5a1d039552d7c29609f65f283519b6561d09eb6eeae91fa6db70b9e78e4fd8bb5318408b39fb33
+SHA512 (wine-5.10.tar.xz) = 669d6861525cd4ab000113e8d9c5e10822b62b293914542ee34a826696df66e1d2f09b09f576f714e4117e79e25d1fd0b2a06c57d29da0efa0bdfcb9fee59c60
+SHA512 (wine-5.10.tar.xz.sign) = 809c9d4d37440bc6beac0b6da9c69e81c055f3ea606261c21dd2e1ce02e71976f3fc3433e0bd87cc8431b5cd49cab9db01d4bf62bd23fe294ca7a5180adab7ee
+SHA512 (wine-staging-5.10.tar.gz) = fca5ddb648ac45c242b9bd7ccb0980161bff1e3539aa1a116f1cceece9d3b4a3188c82bd93624f561653dda793ad16dc00a87c7ed0c38f19a93b538519ef806c
diff --git a/wine-5.8-kernel32.patch b/wine-5.8-kernel32.patch
deleted file mode 100644
index 4345b38..0000000
--- a/wine-5.8-kernel32.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 613389059006270fc89abdfb984c43e6fa742a9a Mon Sep 17 00:00:00 2001
-From: Alexandre Julliard <julliard(a)winehq.org>
-Date: Tue, 26 May 2020 12:26:31 +0200
-Subject: [PATCH] kernel32: Leave some more space for kernelbase.
-
-Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49208
-Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
----
- dlls/kernel32/Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/dlls/kernel32/Makefile.in b/dlls/kernel32/Makefile.in
-index b3877fe13b..d9b1ca575c 100644
---- a/dlls/kernel32/Makefile.in
-+++ b/dlls/kernel32/Makefile.in
-@@ -3,7 +3,7 @@ MODULE = kernel32.dll
- IMPORTLIB = kernel32
- IMPORTS = winecrt0 kernelbase ntdll
- EXTRALIBS = $(COREFOUNDATION_LIBS) $(POLL_LIBS) $(RT_LIBS)
--EXTRADLLFLAGS = -nodefaultlibs -Wb,-F,KERNEL32.dll -Wl,--image-base,0x7b400000
-+EXTRADLLFLAGS = -nodefaultlibs -Wb,-F,KERNEL32.dll -Wl,--image-base,0x7b600000
-
- C_SRCS = \
- actctx.c \
---
-2.20.1
-
diff --git a/wine.spec b/wine.spec
index ffb9fc9..bb89e53 100644
--- a/wine.spec
+++ b/wine.spec
@@ -32,7 +32,8 @@
# build with wine-staging patches, see: https://github.com/wine-staging/wine-staging
%if 0%{?fedora}
%global wine_staging 1
-%endif # 0%{?fedora}
+%endif
+# 0%%{?fedora}
# binfmt macros for RHEL
%if 0%{?rhel} == 7
@@ -43,8 +44,8 @@
%endif
Name: wine
-Version: 5.9
-Release: 2%{?dist}
+Version: 5.10
+Release: 1%{?dist}
Summary: A compatibility layer for windows applications
License: LGPLv2+
@@ -74,8 +75,6 @@ Source109: wine-oleview.desktop
Source150: wine.appdata.xml
# wine bugs
-# https://source.winehq.org/git/wine.git/commit/613389059006270fc89abdfb984...
-Patch100: wine-5.8-kernel32.patch
# desktop dir
Source200: wine.menu
@@ -185,7 +184,8 @@ BuildRequires: libappstream-glib
BuildRequires: gtk3-devel
BuildRequires: libattr-devel
BuildRequires: libva-devel
-%endif # 0%{?wine_staging}
+%endif
+# 0%%{?wine_staging}
%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6
BuildRequires: openal-soft-devel
@@ -432,9 +432,11 @@ BuildArch: noarch
# arial-fonts are available with wine-staging patchset, only.
%if 0%{?wine_staging}
Requires: wine-arial-fonts = %{version}-%{release}
-%else # 0%{?wine_staging}
+%else
+# 0%%{?wine_staging}
Obsoletes: wine-arial-fonts <= %{version}-%{release}
-%endif # 0%{?wine_staging}
+%endif
+# 0%%{?wine_staging}
Requires: wine-courier-fonts = %{version}-%{release}
Requires: wine-fixedsys-fonts = %{version}-%{release}
Requires: wine-small-fonts = %{version}-%{release}
@@ -445,10 +447,12 @@ Requires: wine-tahoma-fonts = %{version}-%{release}
# times-new-roman-fonts are available with wine_staging-patchset, only.
%if 0%{?wine_staging}
Requires: wine-times-new-roman-fonts = %{version}-%{release}
-%else # 0%{?wine_staging}
+%else
+# 0%%{?wine_staging}
Obsoletes: wine-times-new-roman-fonts <= %{version}-%{release}
Obsoletes: wine-times-new-roman-fonts-system <= %{version}-%{release}
-%endif # 0%{?wine_staging}
+%endif
+# 0%%{?wine_staging}
Requires: wine-symbol-fonts = %{version}-%{release}
Requires: wine-wingdings-fonts = %{version}-%{release}
# intermediate fix for #593140
@@ -468,7 +472,8 @@ Requires: fontpackages-filesystem
%description arial-fonts
%{summary}
-%endif # 0%{?wine_staging}
+%endif
+# 0%%{?wine_staging}
%package courier-fonts
Summary: Wine Courier font family
@@ -683,7 +688,6 @@ This package adds the opencl driver for wine.
%prep
%setup -q -n wine-%{version}
%patch511 -p1 -b.cjk
-%patch100 -p1 -b.kernel32
%if 0%{?wine_staging}
# setup and apply wine-staging patches
@@ -694,7 +698,8 @@ patches/patchinstall.sh DESTDIR="`pwd`" --all
# fix parallelized build
sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in
-%endif # 0%{?wine_staging}
+%endif
+# 0%%{?wine_staging}
%build
@@ -1273,9 +1278,11 @@ fi
%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-1.%{winedll}
%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-2.%{winedll}
+%{_libdir}/wine/api-ms-win-core-libraryloader-l2-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-localization-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-localization-l1-2-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-localization-l1-2-1.%{winedll}
+%{_libdir}/wine/api-ms-win-core-localization-l1-2-2.%{winedll}
%{_libdir}/wine/api-ms-win-core-localization-l2-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-2-0.%{winedll}
@@ -1285,6 +1292,7 @@ fi
%{_libdir}/wine/api-ms-win-core-memory-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-memory-l1-1-1.%{winedll}
%{_libdir}/wine/api-ms-win-core-memory-l1-1-2.%{winedll}
+%{_libdir}/wine/api-ms-win-core-memory-l1-1-4.%{winedll}
%{_libdir}/wine/api-ms-win-core-misc-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-namedpipe-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-namedpipe-l1-2-0.%{winedll}
@@ -1373,6 +1381,7 @@ fi
%{_libdir}/wine/api-ms-win-devices-query-l1-1-1.%{winedll}
%{_libdir}/wine/api-ms-win-downlevel-advapi32-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-downlevel-advapi32-l2-1-0.%{winedll}
+%{_libdir}/wine/api-ms-win-downlevel-kernel32-l2-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-downlevel-normaliz-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-downlevel-ole32-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-downlevel-shell32-l1-1-0.%{winedll}
@@ -1766,6 +1775,7 @@ fi
%{_libdir}/wine/ndis.%{winesys}
%{_libdir}/wine/netapi32.dll.so
%{_libdir}/wine/netcfgx.%{winedll}
+%{_libdir}/wine/netio.%{winesys}
%{_libdir}/wine/netprofm.%{winedll}
%{_libdir}/wine/netsh.%{wineexe}
%{_libdir}/wine/newdev.%{winedll}
@@ -2147,7 +2157,8 @@ fi
%files arial-fonts
%doc COPYING.LIB
%{_datadir}/wine/fonts/arial*
-%endif #0%{?wine_staging}
+%endif
+#0%%{?wine_staging}
%files courier-fonts
%doc COPYING.LIB
@@ -2312,6 +2323,9 @@ fi
%endif
%changelog
+* Sun Jun 07 2020 Michael Cronenworth <mike(a)cchtml.com> 5.10-1
+- version update
+
* Tue Jun 02 2020 Michael Cronenworth <mike(a)cchtml.com> 5.9-2
- drop typelibs from 32-bit devel package
- add patch for wine bug 49208
3 years, 10 months
Architecture specific change in rpms/wine.git
by githook-noreply@fedoraproject.org
The package rpms/wine.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/wine.git/commit/?id=faadc28cc0665...
https://src.fedoraproject.org/cgit/rpms/wine.git/commit/?id=b6dc9f8efeed3...
https://src.fedoraproject.org/cgit/rpms/wine.git/commit/?id=ed2472170e1a0...
https://src.fedoraproject.org/cgit/rpms/wine.git/commit/?id=6a3375aed7da5...
https://src.fedoraproject.org/cgit/rpms/wine.git/commit/?id=41fb9606e6f1c....
Change:
+%ifarch %{arm} aarch64
-%ifarch %{arm} aarch64
+%ifarch %{arm} aarch64
-%ifarch aarch64
+%ifarch aarch64
Thanks.
Full change:
============
commit faadc28cc066527eeae214364effc049183878d9
Author: Michael Cronenworth <mike(a)cchtml.com>
Date: Thu Jun 11 08:59:39 2020 -0500
Backout arm patches due to code rebase by upstream, this will be included in 5.11
diff --git a/wine-staging-5.10-ntdll-arm0.patch b/wine-staging-5.10-ntdll-arm0.patch
deleted file mode 100644
index 74f1f00..0000000
--- a/wine-staging-5.10-ntdll-arm0.patch
+++ /dev/null
@@ -1,964 +0,0 @@
-From 9a4c8c5631101f8571dbdce726ae864060e446c9 Mon Sep 17 00:00:00 2001
-From: Zebediah Figura <z.figura12(a)gmail.com>
-Date: Mon, 8 Jun 2020 15:59:31 -0500
-Subject: [PATCH] Rebase against 17529582402ebe27ef975fc7dcb8353f4f95e629.
-
----
- ...ase-Maintain-FLS-storage-list-in-PEB.patch | 44 ++--
- .../0001-ntdll-Add-stub-for-NtContinue.patch | 63 ------
- ...o-continue-execution-after-exception.patch | 82 --------
- patches/ntdll-NtContinue/definition | 3 -
- ...dll-Support-x86_64-syscall-emulation.patch | 14 +-
- ...mporary-signal-handler-during-proces.patch | 32 +--
- patches/patchinstall.sh | 198 ++++++++----------
- ...ate-syscall-thunks-for-ntdll-exports.patch | 34 +--
- ...e-client-side-file-descriptor-cache-.patch | 20 +-
- staging/upstream-commit | 2 +-
- 10 files changed, 156 insertions(+), 336 deletions(-)
- delete mode 100644 patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch
- delete mode 100644 patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch
- delete mode 100644 patches/ntdll-NtContinue/definition
-
-diff --git a/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch b/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch
-index 1d5434bf6..40f2a0b86 100644
---- a/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch
-+++ b/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch
-@@ -1,4 +1,4 @@
--From 5c370d9f0be803d89302da7471ef0b93b45a0d75 Mon Sep 17 00:00:00 2001
-+From 3fe24d6e3b216c21b6a7b68766414213fdd2ff2d Mon Sep 17 00:00:00 2001
- From: Paul Gofman <pgofman(a)codeweavers.com>
- Date: Thu, 23 Apr 2020 14:32:23 +0300
- Subject: [PATCH] kernelbase: Maintain FLS storage list in PEB.
-@@ -73,10 +73,10 @@ index 7501165dc87..2bcc3ee60c4 100644
- * FlsFree should fail
- * FlsGetValue and FlsSetValue should succeed
- diff --git a/dlls/kernel32/tests/thread.c b/dlls/kernel32/tests/thread.c
--index a454bf118cc..dac30959734 100644
-+index a9869863b44..b24f9e98bc7 100644
- --- a/dlls/kernel32/tests/thread.c
- +++ b/dlls/kernel32/tests/thread.c
--@@ -2435,7 +2435,6 @@ START_TEST(thread)
-+@@ -2377,7 +2377,6 @@ START_TEST(thread)
- }
- return;
- }
-@@ -84,7 +84,7 @@ index a454bf118cc..dac30959734 100644
- test_thread_info();
- test_reserved_tls();
- test_CreateRemoteThread();
--@@ -2463,6 +2462,5 @@ START_TEST(thread)
-+@@ -2405,6 +2404,5 @@ START_TEST(thread)
- test_thread_fpu_cw();
- test_thread_actctx();
- test_thread_description();
-@@ -92,7 +92,7 @@ index a454bf118cc..dac30959734 100644
- test_threadpool();
- }
- diff --git a/dlls/kernelbase/thread.c b/dlls/kernelbase/thread.c
--index 03b16da95bb..4409f120491 100644
-+index f20d460d07d..3c77b6a42f4 100644
- --- a/dlls/kernelbase/thread.c
- +++ b/dlls/kernelbase/thread.c
- @@ -38,6 +38,10 @@
-@@ -106,7 +106,7 @@ index 03b16da95bb..4409f120491 100644
-
- /***********************************************************************
- * Threads
--@@ -916,6 +920,19 @@ static void init_fiber_context( struct fiber_data *fiber )
-+@@ -915,6 +919,19 @@ static void init_fiber_context( struct fiber_data *fiber )
- #endif
- }
-
-@@ -126,7 +126,7 @@ index 03b16da95bb..4409f120491 100644
-
- /***********************************************************************
- * CreateFiber (kernelbase.@)
--@@ -1023,7 +1040,16 @@ void WINAPI DECLSPEC_HOTPATCH DeleteFiber( LPVOID fiber_ptr )
-+@@ -1022,7 +1039,16 @@ void WINAPI DECLSPEC_HOTPATCH DeleteFiber( LPVOID fiber_ptr )
- RtlExitUserThread( 1 );
- }
- RtlFreeUserStack( fiber->stack_allocation );
-@@ -144,7 +144,7 @@ index 03b16da95bb..4409f120491 100644
- HeapFree( GetProcessHeap(), 0, fiber );
- }
-
--@@ -1045,6 +1071,19 @@ void WINAPI DECLSPEC_HOTPATCH SwitchToFiber( LPVOID fiber )
-+@@ -1044,6 +1070,19 @@ void WINAPI DECLSPEC_HOTPATCH SwitchToFiber( LPVOID fiber )
- struct fiber_data *new_fiber = fiber;
- struct fiber_data *current_fiber = NtCurrentTeb()->Tib.u.FiberData;
-
-@@ -164,7 +164,7 @@ index 03b16da95bb..4409f120491 100644
- current_fiber->except = NtCurrentTeb()->Tib.ExceptionList;
- current_fiber->stack_limit = NtCurrentTeb()->Tib.StackLimit;
- current_fiber->fls_slots = NtCurrentTeb()->FlsSlots;
--@@ -1070,9 +1109,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
-+@@ -1069,9 +1108,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
- PEB * const peb = NtCurrentTeb()->Peb;
-
- RtlAcquirePebLock();
-@@ -175,7 +175,7 @@ index 03b16da95bb..4409f120491 100644
- {
- SetLastError( ERROR_NOT_ENOUGH_MEMORY );
- index = FLS_OUT_OF_INDEXES;
--@@ -1082,9 +1119,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
-+@@ -1081,9 +1118,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
- index = RtlFindClearBitsAndSet( peb->FlsBitmap, 1, 1 );
- if (index != ~0U)
- {
-@@ -186,7 +186,7 @@ index 03b16da95bb..4409f120491 100644
- {
- RtlClearBits( peb->FlsBitmap, index, 1 );
- index = FLS_OUT_OF_INDEXES;
--@@ -1092,8 +1127,8 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
-+@@ -1091,8 +1126,8 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
- }
- else
- {
-@@ -197,7 +197,7 @@ index 03b16da95bb..4409f120491 100644
- }
- }
- else SetLastError( ERROR_NO_MORE_ITEMS );
--@@ -1117,7 +1152,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsFree( DWORD index )
-+@@ -1116,7 +1151,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsFree( DWORD index )
- {
- /* FIXME: call Fls callback */
- /* FIXME: add equivalent of ThreadZeroTlsCell here */
-@@ -206,7 +206,7 @@ index 03b16da95bb..4409f120491 100644
- }
- else SetLastError( ERROR_INVALID_PARAMETER );
- RtlReleasePebLock();
--@@ -1136,7 +1171,7 @@ PVOID WINAPI DECLSPEC_HOTPATCH FlsGetValue( DWORD index )
-+@@ -1135,7 +1170,7 @@ PVOID WINAPI DECLSPEC_HOTPATCH FlsGetValue( DWORD index )
- return NULL;
- }
- SetLastError( ERROR_SUCCESS );
-@@ -215,7 +215,7 @@ index 03b16da95bb..4409f120491 100644
- }
-
-
--@@ -1150,14 +1185,12 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsSetValue( DWORD index, PVOID data )
-+@@ -1149,14 +1184,12 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsSetValue( DWORD index, PVOID data )
- SetLastError( ERROR_INVALID_PARAMETER );
- return FALSE;
- }
-@@ -233,10 +233,10 @@ index 03b16da95bb..4409f120491 100644
- }
-
- diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
--index 5e8de8821dd..71ef1cfea0a 100644
-+index ffbc9fabb23..be53d98e5b8 100644
- --- a/dlls/ntdll/loader.c
- +++ b/dlls/ntdll/loader.c
--@@ -179,6 +179,15 @@ static CRITICAL_SECTION_DEBUG dlldir_critsect_debug =
-+@@ -169,6 +169,15 @@ static CRITICAL_SECTION_DEBUG dlldir_critsect_debug =
- };
- static CRITICAL_SECTION dlldir_section = { &dlldir_critsect_debug, -1, 0, 0, 0, 0 };
-
-@@ -252,7 +252,7 @@ index 5e8de8821dd..71ef1cfea0a 100644
- static WINE_MODREF *cached_modref;
- static WINE_MODREF *current_modref;
- static WINE_MODREF *last_failed_modref;
--@@ -219,6 +228,16 @@ static RTL_UNLOAD_EVENT_TRACE unload_traces[RTL_UNLOAD_EVENT_TRACE_NUMBER];
-+@@ -209,6 +218,16 @@ static RTL_UNLOAD_EVENT_TRACE unload_traces[RTL_UNLOAD_EVENT_TRACE_NUMBER];
- static RTL_UNLOAD_EVENT_TRACE *unload_trace_ptr;
- static unsigned int unload_trace_seq;
-
-@@ -269,7 +269,7 @@ index 5e8de8821dd..71ef1cfea0a 100644
- static void module_push_unload_trace( const LDR_DATA_TABLE_ENTRY *ldr )
- {
- RTL_UNLOAD_EVENT_TRACE *ptr = &unload_traces[unload_trace_seq];
--@@ -3913,6 +3932,13 @@ void WINAPI LdrShutdownThread(void)
-+@@ -3610,6 +3629,13 @@ void WINAPI LdrShutdownThread(void)
- /* don't do any detach calls if process is exiting */
- if (process_detaching) return;
-
-@@ -283,15 +283,15 @@ index 5e8de8821dd..71ef1cfea0a 100644
- RtlEnterCriticalSection( &loader_section );
-
- mark = &NtCurrentTeb()->Peb->LdrData->InInitializationOrderModuleList;
--@@ -4153,6 +4179,7 @@ static void user_shared_data_init(void)
-+@@ -3819,6 +3845,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
- */
- void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknown3, ULONG_PTR unknown4 )
- {
- + static const unsigned int fls_slot_count = 8 * sizeof(NtCurrentTeb()->Peb->FlsBitmapBits);
-- static const LARGE_INTEGER zero;
- static int attach_done;
- int i;
--@@ -4191,6 +4218,25 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
-+ NTSTATUS status;
-+@@ -3856,6 +3883,25 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
- InsertHeadList( &tls_links, &NtCurrentTeb()->TlsLinks );
- RtlReleasePebLock();
-
-@@ -318,5 +318,5 @@ index 5e8de8821dd..71ef1cfea0a 100644
- {
- attach_done = 1;
- --
--2.25.3
-+2.26.2
-
-diff --git a/patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch b/patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch
-deleted file mode 100644
-index 7145857bd..000000000
---- a/patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch
-+++ /dev/null
-@@ -1,63 +0,0 @@
--From 9ea4f081689959bd393eab2caaa0ed8237846117 Mon Sep 17 00:00:00 2001
--From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
--Date: Thu, 25 May 2017 05:04:26 +0200
--Subject: [PATCH] ntdll: Add stub for NtContinue.
--
-----
-- dlls/ntdll/exception.c | 10 +++++++++-
-- dlls/ntdll/ntdll.spec | 4 ++--
-- 2 files changed, 11 insertions(+), 3 deletions(-)
--
--diff --git a/dlls/ntdll/exception.c b/dlls/ntdll/exception.c
--index c35312fd1d1..3b85f1efa04 100644
----- a/dlls/ntdll/exception.c
--+++ b/dlls/ntdll/exception.c
--@@ -328,7 +328,6 @@ LONG WINAPI call_unhandled_exception_filter( PEXCEPTION_POINTERS eptr )
-- return unhandled_exception_filter( eptr );
-- }
--
---
-- #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__)
--
-- struct dynamic_unwind_entry
--@@ -667,6 +666,15 @@ PRUNTIME_FUNCTION WINAPI RtlLookupFunctionEntry( ULONG_PTR pc, ULONG_PTR *base,
--
-- #endif /* __x86_64__ || __arm__ || __aarch64__ */
--
--+/*********************************************************************
--+ * NtContinue (NTDLL.@)
--+ */
--+NTSTATUS WINAPI NtContinue( CONTEXT *context, BOOLEAN alert )
--+{
--+ FIXME( "(%p, %d) stub!\n", context, alert );
--+ return STATUS_NOT_IMPLEMENTED;
--+}
--+
-- /*************************************************************
-- * __wine_spec_unimplemented_stub
-- *
--diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
--index 81faf7fc280..d21a6f08ac2 100644
----- a/dlls/ntdll/ntdll.spec
--+++ b/dlls/ntdll/ntdll.spec
--@@ -150,7 +150,7 @@
-- @ stdcall NtCompleteConnectPort(ptr)
-- # @ stub NtCompressKey
-- @ stdcall NtConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr)
---@ stub NtContinue
--+@ stdcall NtContinue(ptr long)
-- # @ stub NtCreateDebugObject
-- @ stdcall NtCreateDirectoryObject(ptr long ptr)
-- @ stdcall NtCreateEvent(ptr long ptr long long)
--@@ -1105,7 +1105,7 @@
-- @ stdcall -private ZwCompleteConnectPort(ptr) NtCompleteConnectPort
-- # @ stub ZwCompressKey
-- @ stdcall -private ZwConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr) NtConnectPort
---@ stub ZwContinue
--+@ stdcall -private ZwContinue(ptr long) NtContinue
-- # @ stub ZwCreateDebugObject
-- @ stdcall -private ZwCreateDirectoryObject(ptr long ptr) NtCreateDirectoryObject
-- @ stdcall -private ZwCreateEvent(ptr long ptr long long) NtCreateEvent
----
--2.17.1
--
-diff --git a/patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch b/patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch
-deleted file mode 100644
-index 902940977..000000000
---- a/patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch
-+++ /dev/null
-@@ -1,82 +0,0 @@
--From 812de54c6fc8f93e8fda01f0802397b183adab59 Mon Sep 17 00:00:00 2001
--From: Andrew Wesie <awesie(a)gmail.com>
--Date: Fri, 27 Jul 2018 01:26:56 -0500
--Subject: [PATCH] ntdll: Use NtContinue to continue execution after exceptions.
--
--NtContinue is exported by ntdll and some programs expect it to be used to
--restore the thread context after an exception handler returns
--EXCEPTION_CONTINUE_EXECUTION. It must take a context as its first argument
--and restore that context.
--
--Current implementation is a simple wrapper around NtSetContextThread. It is
--unlikely that it has the correct behavior if called by an external caller.
--
--The __syscall_NtContinue wrapper is used so that it can be hooked by a
--third-party.
-----
-- dlls/ntdll/exception.c | 5 +++--
-- dlls/ntdll/signal_i386.c | 3 ++-
-- dlls/ntdll/signal_x86_64.c | 3 ++-
-- 3 files changed, 7 insertions(+), 4 deletions(-)
--
--diff --git a/dlls/ntdll/exception.c b/dlls/ntdll/exception.c
--index 3b85f1efa..bc972254f 100644
----- a/dlls/ntdll/exception.c
--+++ b/dlls/ntdll/exception.c
--@@ -671,8 +671,9 @@ PRUNTIME_FUNCTION WINAPI RtlLookupFunctionEntry( ULONG_PTR pc, ULONG_PTR *base,
-- */
-- NTSTATUS WINAPI NtContinue( CONTEXT *context, BOOLEAN alert )
-- {
--- FIXME( "(%p, %d) stub!\n", context, alert );
--- return STATUS_NOT_IMPLEMENTED;
--+ TRACE( "(%p, %d) stub!\n", context, alert );
--+
--+ return NtSetContextThread( GetCurrentThread(), context );
-- }
--
-- /*************************************************************
--diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
--index e55164630..8fc885ed4 100644
----- a/dlls/ntdll/signal_i386.c
--+++ b/dlls/ntdll/signal_i386.c
--@@ -730,6 +730,7 @@ static NTSTATUS call_stack_handlers( EXCEPTION_RECORD *rec, CONTEXT *context )
-- return STATUS_UNHANDLED_EXCEPTION;
-- }
--
--+NTSTATUS WINAPI __syscall_NtContinue( CONTEXT *context, BOOLEAN alert );
--
-- /*******************************************************************
-- * raise_exception
--@@ -794,7 +795,7 @@ static NTSTATUS raise_exception( EXCEPTION_RECORD *rec, CONTEXT *context, BOOL f
-- NtTerminateProcess( NtCurrentProcess(), rec->ExceptionCode );
-- }
-- done:
--- return NtSetContextThread( GetCurrentThread(), context );
--+ return __syscall_NtContinue( context, FALSE );
-- }
--
--
--diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
--index e48529d73..0e74fda43 100644
----- a/dlls/ntdll/signal_x86_64.c
--+++ b/dlls/ntdll/signal_x86_64.c
--@@ -2520,6 +2520,7 @@ static NTSTATUS call_stack_handlers( EXCEPTION_RECORD *rec, CONTEXT *orig_contex
-- return STATUS_UNHANDLED_EXCEPTION;
-- }
--
--+NTSTATUS WINAPI __syscall_NtContinue( CONTEXT *context, BOOLEAN alert );
--
-- static NTSTATUS raise_exception( EXCEPTION_RECORD *rec, CONTEXT *context, BOOL first_chance )
-- {
--@@ -2582,7 +2583,7 @@ static NTSTATUS raise_exception( EXCEPTION_RECORD *rec, CONTEXT *context, BOOL f
-- }
--
-- done:
--- return NtSetContextThread( GetCurrentThread(), context );
--+ return __syscall_NtContinue( context, FALSE );
-- }
--
--
----
--2.23.0
--
-diff --git a/patches/ntdll-NtContinue/definition b/patches/ntdll-NtContinue/definition
-deleted file mode 100644
-index 06c2ebf9e..000000000
---- a/patches/ntdll-NtContinue/definition
-+++ /dev/null
-@@ -1,3 +0,0 @@
--Fixes: [31910] Add stub for NtContinue
--Fixes: [45572] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of NtContinue)
--Depends: winebuild-Fake_Dlls
-\ No newline at end of file
-diff --git a/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch b/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch
-index 4ae5fcdfa..0a39d4355 100644
---- a/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch
-+++ b/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch
-@@ -1,4 +1,4 @@
--From 20298be5a42af52be27c56f88ad6a8a0304b55b6 Mon Sep 17 00:00:00 2001
-+From cd04d1910294b035bb3858b3ef1bb295aec3a732 Mon Sep 17 00:00:00 2001
- From: Paul Gofman <pgofman(a)codeweavers.com>
- Date: Mon, 30 Dec 2019 13:27:53 +0300
- Subject: [PATCH] ntdll: Support x86_64 syscall emulation.
-@@ -15,7 +15,7 @@ is used for trapping syscalls.
- 3 files changed, 119 insertions(+), 2 deletions(-)
-
- diff --git a/configure.ac b/configure.ac
--index e3d63ed7501..2fbec4129df 100644
-+index e61a98455c3..4adeb52d225 100644
- --- a/configure.ac
- +++ b/configure.ac
- @@ -464,6 +464,7 @@ AC_CHECK_HEADERS(\
-@@ -27,7 +27,7 @@ index e3d63ed7501..2fbec4129df 100644
- linux/types.h \
- linux/ucdrom.h \
- diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
--index 0ccc7cbceb6..149ad1bf5e7 100644
-+index dd8b45fa907..a5612abf2b1 100644
- --- a/dlls/ntdll/signal_x86_64.c
- +++ b/dlls/ntdll/signal_x86_64.c
- @@ -24,6 +24,7 @@
-@@ -61,8 +61,8 @@ index 0ccc7cbceb6..149ad1bf5e7 100644
- typedef struct _SCOPE_TABLE
- {
- ULONG Count;
--@@ -2797,6 +2807,104 @@ static void usr1_handler( int signal, siginfo_t *siginfo, void *ucontext )
-- restore_context( &context, ucontext );
-+@@ -2480,6 +2490,104 @@ static inline DWORD is_privileged_instr( CONTEXT *context )
-+ return 0;
- }
-
- +extern unsigned int __wine_nb_syscalls;
-@@ -165,8 +165,8 @@ index 0ccc7cbceb6..149ad1bf5e7 100644
- +}
-
- /***********************************************************************
-- * __wine_set_signal_handler (NTDLL.@)
--@@ -2842,6 +2950,9 @@ void signal_init_process(void)
-+ * handle_interrupt
-+@@ -2793,6 +2901,9 @@ void signal_init_process(void)
- sig_act.sa_sigaction = trap_handler;
- if (sigaction( SIGTRAP, &sig_act, NULL ) == -1) goto error;
- #endif
-diff --git a/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch b/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch
-index d6e9a6824..db0631234 100644
---- a/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch
-+++ b/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch
-@@ -1,4 +1,4 @@
--From 46968c583a30476a86463530d0047699e64529b5 Mon Sep 17 00:00:00 2001
-+From bd60a4308f3ec1df20328887335b4c95f9be215d Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
- Date: Sat, 4 Oct 2014 02:53:22 +0200
- Subject: [PATCH] ntdll: Setup a temporary signal handler during process
-@@ -27,10 +27,10 @@ index 65c65cc02d8..63a4b597872 100644
- extern void debug_init(void) DECLSPEC_HIDDEN;
- extern TEB *thread_init( SIZE_T *info_size, BOOL *suspend ) DECLSPEC_HIDDEN;
- diff --git a/dlls/ntdll/signal_arm.c b/dlls/ntdll/signal_arm.c
--index 8ff9f66d3f0..44e3d2df523 100644
-+index a09848449a6..c6f7231fec6 100644
- --- a/dlls/ntdll/signal_arm.c
- +++ b/dlls/ntdll/signal_arm.c
--@@ -773,6 +773,12 @@ void signal_init_process(void)
-+@@ -792,6 +792,12 @@ void signal_init_process(void)
- exit(1);
- }
-
-@@ -44,11 +44,11 @@ index 8ff9f66d3f0..44e3d2df523 100644
- /***********************************************************************
- * RtlUnwind (NTDLL.@)
- diff --git a/dlls/ntdll/signal_arm64.c b/dlls/ntdll/signal_arm64.c
--index 104ffbf6df9..e7c6abd0046 100644
-+index a9a58a2e7ad..a9c6614794e 100644
- --- a/dlls/ntdll/signal_arm64.c
- +++ b/dlls/ntdll/signal_arm64.c
--@@ -1100,6 +1100,12 @@ int CDECL __wine_set_signal_handler(unsigned int sig, wine_signal_handler wsh)
-- return 0;
-+@@ -1047,6 +1047,12 @@ static void usr2_handler( int signal, siginfo_t *siginfo, void *sigcontext )
-+ restore_context( context, sigcontext );
- }
-
- +/**********************************************************************
-@@ -61,10 +61,10 @@ index 104ffbf6df9..e7c6abd0046 100644
- /**********************************************************************
- * signal_init_process
- diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
--index 1b0b9352a87..0fe9f7a3c84 100644
-+index 83868f25121..b048b2bc688 100644
- --- a/dlls/ntdll/signal_i386.c
- +++ b/dlls/ntdll/signal_i386.c
--@@ -1621,6 +1621,31 @@ static BOOL handle_interrupt( unsigned int interrupt, ucontext_t *sigcontext, st
-+@@ -1575,6 +1575,31 @@ static BOOL handle_interrupt( unsigned int interrupt, ucontext_t *sigcontext, st
- }
-
-
-@@ -96,7 +96,7 @@ index 1b0b9352a87..0fe9f7a3c84 100644
- /**********************************************************************
- * segv_handler
- *
--@@ -1948,6 +1973,34 @@ void signal_init_process(void)
-+@@ -1883,6 +1908,34 @@ void signal_init_process(void)
- exit(1);
- }
-
-@@ -132,11 +132,11 @@ index 1b0b9352a87..0fe9f7a3c84 100644
- /*******************************************************************
- * RtlUnwind (NTDLL.@)
- diff --git a/dlls/ntdll/signal_powerpc.c b/dlls/ntdll/signal_powerpc.c
--index 7e73322cbeb..07f0b89f30a 100644
-+index 879b2b58c49..f17d6267102 100644
- --- a/dlls/ntdll/signal_powerpc.c
- +++ b/dlls/ntdll/signal_powerpc.c
--@@ -637,6 +637,12 @@ int CDECL __wine_set_signal_handler(unsigned int sig, wine_signal_handler wsh)
-- return 0;
-+@@ -634,6 +634,12 @@ static void quit_handler( int signal, siginfo_t *siginfo, void *sigcontext )
-+ unix_funcs->abort_thread(0);
- }
-
- +/**********************************************************************
-@@ -147,12 +147,12 @@ index 7e73322cbeb..07f0b89f30a 100644
- +}
-
- /**********************************************************************
-- * signal_init_process
-+ * usr1_handler
- diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
--index 0ccc7cbceb6..dc8a1a987c5 100644
-+index c6b0fbf618d..bb481ba1b81 100644
- --- a/dlls/ntdll/signal_x86_64.c
- +++ b/dlls/ntdll/signal_x86_64.c
--@@ -2849,6 +2849,12 @@ void signal_init_process(void)
-+@@ -2777,6 +2777,12 @@ void signal_init_process(void)
- exit(1);
- }
-
-@@ -166,7 +166,7 @@ index 0ccc7cbceb6..dc8a1a987c5 100644
- static ULONG64 get_int_reg( CONTEXT *context, int reg )
- {
- diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
--index 8918b39a9c5..a2f5df1b1c2 100644
-+index d045466f6d2..49daa33ca58 100644
- --- a/dlls/ntdll/thread.c
- +++ b/dlls/ntdll/thread.c
- @@ -186,6 +186,7 @@ TEB *thread_init( SIZE_T *info_size, BOOL *suspend )
-diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh
-index c5ff8c0b3..9c2ce4ce0 100755
---- a/patches/patchinstall.sh
-+++ b/patches/patchinstall.sh
-@@ -52,7 +52,7 @@ usage()
- # Get the upstream commit sha
- upstream_commit()
- {
-- echo "3cc3b445752902e07231900befc296f74ad6576e"
-+ echo "17529582402ebe27ef975fc7dcb8353f4f95e629"
- }
-
- # Show version information
-@@ -183,7 +183,6 @@ patch_enable_all ()
- enable_ntdll_Junction_Points="$1"
- enable_ntdll_Manifest_Range="$1"
- enable_ntdll_NtAccessCheck="$1"
-- enable_ntdll_NtContinue="$1"
- enable_ntdll_NtDevicePath="$1"
- enable_ntdll_NtQueryEaFile="$1"
- enable_ntdll_NtQuerySection="$1"
-@@ -648,9 +647,6 @@ patch_enable ()
- ntdll-NtAccessCheck)
- enable_ntdll_NtAccessCheck="$2"
- ;;
-- ntdll-NtContinue)
-- enable_ntdll_NtContinue="$2"
-- ;;
- ntdll-NtDevicePath)
- enable_ntdll_NtDevicePath="$2"
- ;;
-@@ -1672,6 +1668,17 @@ if test "$enable_ntdll_Syscall_Emulation" -eq 1; then
- enable_winebuild_Fake_Dlls=1
- fi
-
-+if test "$enable_winebuild_Fake_Dlls" -eq 1; then
-+ if test "$enable_ntdll_WRITECOPY" -gt 1; then
-+ abort "Patchset ntdll-WRITECOPY disabled, but winebuild-Fake_Dlls depends on that."
-+ fi
-+ if test "$enable_ws2_32_WSACleanup" -gt 1; then
-+ abort "Patchset ws2_32-WSACleanup disabled, but winebuild-Fake_Dlls depends on that."
-+ fi
-+ enable_ntdll_WRITECOPY=1
-+ enable_ws2_32_WSACleanup=1
-+fi
-+
- if test "$enable_ntdll_NtQueryEaFile" -eq 1; then
- if test "$enable_ntdll_Junction_Points" -gt 1; then
- abort "Patchset ntdll-Junction_Points disabled, but ntdll-NtQueryEaFile depends on that."
-@@ -1686,24 +1693,6 @@ if test "$enable_ntdll_NtDevicePath" -eq 1; then
- enable_ntdll_Pipe_SpecialCharacters=1
- fi
-
--if test "$enable_ntdll_NtContinue" -eq 1; then
-- if test "$enable_winebuild_Fake_Dlls" -gt 1; then
-- abort "Patchset winebuild-Fake_Dlls disabled, but ntdll-NtContinue depends on that."
-- fi
-- enable_winebuild_Fake_Dlls=1
--fi
--
--if test "$enable_winebuild_Fake_Dlls" -eq 1; then
-- if test "$enable_ntdll_WRITECOPY" -gt 1; then
-- abort "Patchset ntdll-WRITECOPY disabled, but winebuild-Fake_Dlls depends on that."
-- fi
-- if test "$enable_ws2_32_WSACleanup" -gt 1; then
-- abort "Patchset ws2_32-WSACleanup disabled, but winebuild-Fake_Dlls depends on that."
-- fi
-- enable_ntdll_WRITECOPY=1
-- enable_ws2_32_WSACleanup=1
--fi
--
- if test "$enable_ntdll_Hide_Wine_Exports" -eq 1; then
- if test "$enable_advapi32_Token_Integrity_Level" -gt 1; then
- abort "Patchset advapi32-Token_Integrity_Level disabled, but ntdll-Hide_Wine_Exports depends on that."
-@@ -3977,98 +3966,6 @@ if test "$enable_ntdll_NtAccessCheck" -eq 1; then
- ) >> "$patchlist"
- fi
-
--# Patchset ws2_32-WSACleanup
--# |
--# | This patchset fixes the following Wine bugs:
--# | * [#18670] Properly close sockets when WSACleanup is called
--# |
--# | Modified files:
--# | * dlls/ntdll/ntdll.spec, dlls/ntdll/server.c, dlls/ntdll/unix/loader.c, dlls/ntdll/unix/server.c,
--# | dlls/ntdll/unix/unix_private.h, dlls/ntdll/unixlib.h, dlls/ws2_32/socket.c, dlls/ws2_32/tests/sock.c,
--# | include/wine/server.h, server/protocol.def, server/sock.c
--# |
--if test "$enable_ws2_32_WSACleanup" -eq 1; then
-- patch_apply ws2_32-WSACleanup/0001-ws2_32-Proper-WSACleanup-implementation-using-winese.patch
-- patch_apply ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch
-- (
-- printf '%s\n' '+ { "Matt Durgavich", "ws2_32: Proper WSACleanup implementation using wineserver function.", 2 },';
-- printf '%s\n' '+ { "Sebastian Lackner", "ws2_32: Invalidate client-side file descriptor cache in WSACleanup.", 1 },';
-- ) >> "$patchlist"
--fi
--
--# Patchset winebuild-Fake_Dlls
--# |
--# | This patchset has the following (direct or indirect) dependencies:
--# | * ntdll-WRITECOPY, ws2_32-WSACleanup
--# |
--# | This patchset fixes the following Wine bugs:
--# | * [#21232] Chromium-based browser engines (Chrome, Opera, Comodo Dragon, SRWare Iron) crash on startup unless '--no-
--# | sandbox' is used (native API sandboxing/hooking scheme incompatible with Wine)
--# | * [#42741] StarCraft I: 1.18 PTR fails to initialize ClientSdk.dll
--# | * [#45349] Multiple applications and games crash due to missing support for 64-bit syscall thunks (StreetFighter V)
--# | * [#45573] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of syscall return instructions)
--# | * [#45650] chromium 32-bit sandbox expects different syscall thunks depending on Windows version
--# |
--# | Modified files:
--# | * dlls/dbghelp/cpu_i386.c, dlls/kernel32/tests/loader.c, dlls/krnl386.exe16/kernel.c,
--# | dlls/krnl386.exe16/kernel16_private.h, dlls/krnl386.exe16/ne_module.c, dlls/krnl386.exe16/ne_segment.c,
--# | dlls/krnl386.exe16/task.c, dlls/krnl386.exe16/thunk.c, dlls/krnl386.exe16/wowthunk.c, dlls/ntdll/actctx.c,
--# | dlls/ntdll/directory.c, dlls/ntdll/loader.c, dlls/ntdll/locale.c, dlls/ntdll/ntdll_misc.h, dlls/ntdll/path.c,
--# | dlls/ntdll/process.c, dlls/ntdll/signal_i386.c, dlls/ntdll/tests/exception.c, dlls/ntdll/thread.c,
--# | dlls/ntdll/unix/thread.c, dlls/ntdll/unix/unix_private.h, dlls/ntdll/unix/virtual.c, dlls/ntdll/unixlib.h,
--# | dlls/system.drv16/system.c, dlls/toolhelp.dll16/toolhelp.c, dlls/user.exe16/message.c, dlls/user.exe16/user.c,
--# | dlls/user.exe16/window.c, include/winternl.h, libs/wine/loader.c, server/mapping.c, tools/winebuild/build.h,
--# | tools/winebuild/import.c, tools/winebuild/parser.c, tools/winebuild/relay.c, tools/winebuild/res32.c,
--# | tools/winebuild/spec16.c, tools/winebuild/spec32.c, tools/winebuild/utils.c
--# |
--if test "$enable_winebuild_Fake_Dlls" -eq 1; then
-- patch_apply winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch
-- patch_apply winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch
-- patch_apply winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
-- patch_apply winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch
-- patch_apply winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch
-- patch_apply winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch
-- patch_apply winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch
-- patch_apply winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch
-- patch_apply winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch
-- patch_apply winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch
-- patch_apply winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch
-- (
-- printf '%s\n' '+ { "Michael Müller", "kernel32/tests: Add basic tests for fake dlls.", 1 },';
-- printf '%s\n' '+ { "Sebastian Lackner", "krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit stack address.", 1 },';
-- printf '%s\n' '+ { "Michael Müller", "winebuild: Generate syscall thunks for ntdll exports.", 1 },';
-- printf '%s\n' '+ { "Michael Müller", "winebuild: Use multipass label system to generate fake dlls.", 1 },';
-- printf '%s\n' '+ { "Michael Müller", "winebuild: Add stub functions in fake dlls.", 1 },';
-- printf '%s\n' '+ { "Michael Müller", "winebuild: Add syscall thunks in fake dlls.", 1 },';
-- printf '%s\n' '+ { "Michael Müller", "winebuild: Fix size of relocation information in fake dlls.", 1 },';
-- printf '%s\n' '+ { "Michael Müller", "winebuild: Try to make sure RVA matches between fake and builtin DLLs.", 1 },';
-- printf '%s\n' '+ { "Michael Müller", "libs/wine: Use same file alignment for fake and builtin DLLs.", 1 },';
-- printf '%s\n' '+ { "Michael Müller", "tools/winebuild: Add syscall thunks for 64 bit.", 1 },';
-- printf '%s\n' '+ { "Paul Gofman", "ntdll: Call NtOpenFile through syscall thunk.", 1 },';
-- ) >> "$patchlist"
--fi
--
--# Patchset ntdll-NtContinue
--# |
--# | This patchset has the following (direct or indirect) dependencies:
--# | * ntdll-WRITECOPY, ws2_32-WSACleanup, winebuild-Fake_Dlls
--# |
--# | This patchset fixes the following Wine bugs:
--# | * [#31910] Add stub for NtContinue
--# | * [#45572] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of NtContinue)
--# |
--# | Modified files:
--# | * dlls/ntdll/exception.c, dlls/ntdll/ntdll.spec, dlls/ntdll/signal_i386.c, dlls/ntdll/signal_x86_64.c
--# |
--if test "$enable_ntdll_NtContinue" -eq 1; then
-- patch_apply ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch
-- patch_apply ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch
-- (
-- printf '%s\n' '+ { "Michael Müller", "ntdll: Add stub for NtContinue.", 1 },';
-- printf '%s\n' '+ { "Andrew Wesie", "ntdll: Use NtContinue to continue execution after exceptions.", 1 },';
-- ) >> "$patchlist"
--fi
--
- # Patchset ntdll-Pipe_SpecialCharacters
- # |
- # | This patchset fixes the following Wine bugs:
-@@ -4213,6 +4110,77 @@ if test "$enable_ntdll_Status_Mapping" -eq 1; then
- ) >> "$patchlist"
- fi
-
-+# Patchset ws2_32-WSACleanup
-+# |
-+# | This patchset fixes the following Wine bugs:
-+# | * [#18670] Properly close sockets when WSACleanup is called
-+# |
-+# | Modified files:
-+# | * dlls/ntdll/ntdll.spec, dlls/ntdll/server.c, dlls/ntdll/unix/loader.c, dlls/ntdll/unix/server.c,
-+# | dlls/ntdll/unix/unix_private.h, dlls/ntdll/unixlib.h, dlls/ws2_32/socket.c, dlls/ws2_32/tests/sock.c,
-+# | include/wine/server.h, server/protocol.def, server/sock.c
-+# |
-+if test "$enable_ws2_32_WSACleanup" -eq 1; then
-+ patch_apply ws2_32-WSACleanup/0001-ws2_32-Proper-WSACleanup-implementation-using-winese.patch
-+ patch_apply ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch
-+ (
-+ printf '%s\n' '+ { "Matt Durgavich", "ws2_32: Proper WSACleanup implementation using wineserver function.", 2 },';
-+ printf '%s\n' '+ { "Sebastian Lackner", "ws2_32: Invalidate client-side file descriptor cache in WSACleanup.", 1 },';
-+ ) >> "$patchlist"
-+fi
-+
-+# Patchset winebuild-Fake_Dlls
-+# |
-+# | This patchset has the following (direct or indirect) dependencies:
-+# | * ntdll-WRITECOPY, ws2_32-WSACleanup
-+# |
-+# | This patchset fixes the following Wine bugs:
-+# | * [#21232] Chromium-based browser engines (Chrome, Opera, Comodo Dragon, SRWare Iron) crash on startup unless '--no-
-+# | sandbox' is used (native API sandboxing/hooking scheme incompatible with Wine)
-+# | * [#42741] StarCraft I: 1.18 PTR fails to initialize ClientSdk.dll
-+# | * [#45349] Multiple applications and games crash due to missing support for 64-bit syscall thunks (StreetFighter V)
-+# | * [#45573] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of syscall return instructions)
-+# | * [#45650] chromium 32-bit sandbox expects different syscall thunks depending on Windows version
-+# |
-+# | Modified files:
-+# | * dlls/dbghelp/cpu_i386.c, dlls/kernel32/tests/loader.c, dlls/krnl386.exe16/kernel.c,
-+# | dlls/krnl386.exe16/kernel16_private.h, dlls/krnl386.exe16/ne_module.c, dlls/krnl386.exe16/ne_segment.c,
-+# | dlls/krnl386.exe16/task.c, dlls/krnl386.exe16/thunk.c, dlls/krnl386.exe16/wowthunk.c, dlls/ntdll/actctx.c,
-+# | dlls/ntdll/directory.c, dlls/ntdll/loader.c, dlls/ntdll/locale.c, dlls/ntdll/ntdll_misc.h, dlls/ntdll/path.c,
-+# | dlls/ntdll/process.c, dlls/ntdll/signal_i386.c, dlls/ntdll/tests/exception.c, dlls/ntdll/thread.c,
-+# | dlls/ntdll/unix/thread.c, dlls/ntdll/unix/unix_private.h, dlls/ntdll/unix/virtual.c, dlls/ntdll/unixlib.h,
-+# | dlls/system.drv16/system.c, dlls/toolhelp.dll16/toolhelp.c, dlls/user.exe16/message.c, dlls/user.exe16/user.c,
-+# | dlls/user.exe16/window.c, include/winternl.h, libs/wine/loader.c, server/mapping.c, tools/winebuild/build.h,
-+# | tools/winebuild/import.c, tools/winebuild/parser.c, tools/winebuild/relay.c, tools/winebuild/res32.c,
-+# | tools/winebuild/spec16.c, tools/winebuild/spec32.c, tools/winebuild/utils.c
-+# |
-+if test "$enable_winebuild_Fake_Dlls" -eq 1; then
-+ patch_apply winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch
-+ patch_apply winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch
-+ patch_apply winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
-+ patch_apply winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch
-+ patch_apply winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch
-+ patch_apply winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch
-+ patch_apply winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch
-+ patch_apply winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch
-+ patch_apply winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch
-+ patch_apply winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch
-+ patch_apply winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch
-+ (
-+ printf '%s\n' '+ { "Michael Müller", "kernel32/tests: Add basic tests for fake dlls.", 1 },';
-+ printf '%s\n' '+ { "Sebastian Lackner", "krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit stack address.", 1 },';
-+ printf '%s\n' '+ { "Michael Müller", "winebuild: Generate syscall thunks for ntdll exports.", 1 },';
-+ printf '%s\n' '+ { "Michael Müller", "winebuild: Use multipass label system to generate fake dlls.", 1 },';
-+ printf '%s\n' '+ { "Michael Müller", "winebuild: Add stub functions in fake dlls.", 1 },';
-+ printf '%s\n' '+ { "Michael Müller", "winebuild: Add syscall thunks in fake dlls.", 1 },';
-+ printf '%s\n' '+ { "Michael Müller", "winebuild: Fix size of relocation information in fake dlls.", 1 },';
-+ printf '%s\n' '+ { "Michael Müller", "winebuild: Try to make sure RVA matches between fake and builtin DLLs.", 1 },';
-+ printf '%s\n' '+ { "Michael Müller", "libs/wine: Use same file alignment for fake and builtin DLLs.", 1 },';
-+ printf '%s\n' '+ { "Michael Müller", "tools/winebuild: Add syscall thunks for 64 bit.", 1 },';
-+ printf '%s\n' '+ { "Paul Gofman", "ntdll: Call NtOpenFile through syscall thunk.", 1 },';
-+ ) >> "$patchlist"
-+fi
-+
- # Patchset ntdll-Syscall_Emulation
- # |
- # | This patchset has the following (direct or indirect) dependencies:
-diff --git a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
-index 751b497da..684c28e16 100644
---- a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
-+++ b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
-@@ -1,4 +1,4 @@
--From 1fec139d96f32869fc0c8d15219fff493d9951d8 Mon Sep 17 00:00:00 2001
-+From e60eb454ecfb4c043a585c1ecd2970c92be1c664 Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
- Date: Thu, 11 May 2017 05:32:55 +0200
- Subject: [PATCH] winebuild: Generate syscall thunks for ntdll exports.
-@@ -22,7 +22,7 @@ Based on a patch by Erich E. Hoover.
- 14 files changed, 214 insertions(+), 32 deletions(-)
-
- diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
--index 45d32399adf..b42cff8bcd4 100644
-+index ffbc9fabb23..a633099877d 100644
- --- a/dlls/ntdll/loader.c
- +++ b/dlls/ntdll/loader.c
- @@ -3810,6 +3810,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
-@@ -33,7 +33,7 @@ index 45d32399adf..b42cff8bcd4 100644
-
- /******************************************************************
- * LdrInitializeThunk (NTDLL.@)
--@@ -3827,6 +3828,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
-+@@ -3826,6 +3827,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
- WINE_MODREF *wm;
- LPCWSTR load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer;
-
-@@ -43,19 +43,19 @@ index 45d32399adf..b42cff8bcd4 100644
-
- if (process_detaching) return;
- diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
--index be88d9bf3c7..84ab7991886 100644
-+index 3be6342a945..85329be4f42 100644
- --- a/dlls/ntdll/signal_i386.c
- +++ b/dlls/ntdll/signal_i386.c
--@@ -448,6 +448,8 @@ static ULONG first_ldt_entry = 32;
-+@@ -444,6 +444,8 @@ struct stack_layout
-
-- static wine_signal_handler handlers[256];
-+ static ULONG first_ldt_entry = 32;
-
- +extern NTSTATUS WINAPI __syscall_NtGetContextThread( HANDLE handle, CONTEXT *context );
- +
- enum i386_trap_code
- {
- TRAP_x86_UNKNOWN = -1, /* Unknown fault (TRAP_sig not defined) */
--@@ -1159,7 +1161,7 @@ NTSTATUS CDECL DECLSPEC_HIDDEN __regs_NtGetContextThread( DWORD edi, DWORD esi,
-+@@ -1127,7 +1129,7 @@ NTSTATUS CDECL DECLSPEC_HIDDEN __regs_NtGetContextThread( DWORD edi, DWORD esi,
- {
- context->Ebp = ebp;
- context->Esp = (DWORD)&retaddr;
-@@ -78,7 +78,7 @@ index a5e6faa461a..51938bf84cc 100644
- ok( context.SegCs == LOWORD(expect.SegCs), "wrong SegCs %08x/%08x\n", context.SegCs, expect.SegCs );
- ok( context.SegDs == LOWORD(expect.SegDs), "wrong SegDs %08x/%08x\n", context.SegDs, expect.SegDs );
- diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
--index 79d13a01a86..94eb6d1252d 100644
-+index 49daa33ca58..17b5d40215a 100644
- --- a/dlls/ntdll/thread.c
- +++ b/dlls/ntdll/thread.c
- @@ -173,6 +173,7 @@ int __cdecl __wine_dbg_output( const char *str )
-@@ -99,10 +99,10 @@ index 79d13a01a86..94eb6d1252d 100644
- peb = teb->Peb;
- peb->FastPebLock = &peb_lock;
- diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c
--index b6458da61ad..a158ec20a6a 100644
-+index d4b7a51a627..bdc87e4b9cf 100644
- --- a/dlls/ntdll/unix/thread.c
- +++ b/dlls/ntdll/unix/thread.c
--@@ -83,7 +83,7 @@ static void pthread_exit_wrapper( int status )
-+@@ -85,7 +85,7 @@ static void pthread_exit_wrapper( int status )
- * init_threading
- */
- TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size, BOOL *suspend,
-@@ -111,7 +111,7 @@ index b6458da61ad..a158ec20a6a 100644
- {
- TEB *teb;
- SIZE_T info_size;
--@@ -95,6 +95,7 @@ TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZ
-+@@ -97,6 +97,7 @@ TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZ
- nb_threads = nb_threads_ptr;
-
- teb = virtual_alloc_first_teb();
-@@ -120,10 +120,10 @@ index b6458da61ad..a158ec20a6a 100644
- thread_data->request_fd = -1;
- thread_data->reply_fd = -1;
- diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
--index 880e3aacf33..6c7b961e95a 100644
-+index 19104f0f5cc..bdf8bc99e3f 100644
- --- a/dlls/ntdll/unix/unix_private.h
- +++ b/dlls/ntdll/unix/unix_private.h
--@@ -96,7 +96,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE
-+@@ -101,7 +101,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE
- extern void CDECL server_init_process_done(void) DECLSPEC_HIDDEN;
- extern TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size,
- BOOL *suspend, unsigned int *cpus, BOOL *wow64,
-@@ -133,19 +133,19 @@ index 880e3aacf33..6c7b961e95a 100644
- extern void CDECL DECLSPEC_NORETURN abort_thread( int status ) DECLSPEC_HIDDEN;
- extern void CDECL DECLSPEC_NORETURN exit_thread( int status ) DECLSPEC_HIDDEN;
- diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
--index 83c9f3a163b..63728b1c071 100644
-+index 6a751993421..4e39ed53786 100644
- --- a/dlls/ntdll/unixlib.h
- +++ b/dlls/ntdll/unixlib.h
- @@ -28,7 +28,7 @@ struct ldt_copy;
- struct msghdr;
-
- /* increment this when you change the function table */
---#define NTDLL_UNIXLIB_VERSION 31
--+#define NTDLL_UNIXLIB_VERSION 32
-+-#define NTDLL_UNIXLIB_VERSION 33
-++#define NTDLL_UNIXLIB_VERSION 34
-
- struct unix_funcs
- {
--@@ -172,7 +172,7 @@ struct unix_funcs
-+@@ -174,7 +174,7 @@ struct unix_funcs
-
- /* thread/process functions */
- TEB * (CDECL *init_threading)( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size,
-diff --git a/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch b/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch
-index 25c315648..0861f99c0 100644
---- a/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch
-+++ b/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch
-@@ -1,4 +1,4 @@
--From 1bb20ff5903d8d5e81e8a2b7b22bf67b189b16ec Mon Sep 17 00:00:00 2001
-+From 20661308a50202350a3a2887cbd558b1e931aad1 Mon Sep 17 00:00:00 2001
- From: Sebastian Lackner <sebastian(a)fds-team.de>
- Date: Sun, 6 Sep 2015 12:41:17 +0200
- Subject: [PATCH] ws2_32: Invalidate client-side file descriptor cache in
-@@ -17,7 +17,7 @@ Subject: [PATCH] ws2_32: Invalidate client-side file descriptor cache in
- 9 files changed, 36 insertions(+), 5 deletions(-)
-
- diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
--index c4d78128758..3d6c8850086 100644
-+index ce5c580bd54..279845ae830 100644
- --- a/dlls/ntdll/ntdll.spec
- +++ b/dlls/ntdll/ntdll.spec
- @@ -1576,6 +1576,7 @@
-@@ -48,10 +48,10 @@ index 6fb86a68d6f..2f95e190963 100644
- /***********************************************************************
- * server_init_process
- diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
--index b5ee692024c..d8827b147df 100644
-+index 618e3d6adb3..bdda739897b 100644
- --- a/dlls/ntdll/unix/loader.c
- +++ b/dlls/ntdll/unix/loader.c
--@@ -1074,6 +1074,7 @@ static struct unix_funcs unix_funcs =
-+@@ -1076,6 +1076,7 @@ static struct unix_funcs unix_funcs =
- server_select,
- server_wait,
- server_send_fd,
-@@ -91,10 +91,10 @@ index fb3f98dd579..0754928cfe8 100644
- /***********************************************************************
- * server_get_unix_fd
- diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
--index a422fd825ed..880e3aacf33 100644
-+index 03b92f9e912..19104f0f5cc 100644
- --- a/dlls/ntdll/unix/unix_private.h
- +++ b/dlls/ntdll/unix/unix_private.h
--@@ -84,6 +84,7 @@ extern unsigned int CDECL server_select( const select_op_t *select_op, data_size
-+@@ -89,6 +89,7 @@ extern unsigned int CDECL server_select( const select_op_t *select_op, data_size
- extern unsigned int CDECL server_wait( const select_op_t *select_op, data_size_t size, UINT flags,
- const LARGE_INTEGER *timeout ) DECLSPEC_HIDDEN;
- extern void CDECL server_send_fd( int fd ) DECLSPEC_HIDDEN;
-@@ -103,19 +103,19 @@ index a422fd825ed..880e3aacf33 100644
- int *needs_close, enum server_fd_type *type,
- unsigned int *options ) DECLSPEC_HIDDEN;
- diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
--index 58bdad19397..83c9f3a163b 100644
-+index 017a0a71b3f..6a751993421 100644
- --- a/dlls/ntdll/unixlib.h
- +++ b/dlls/ntdll/unixlib.h
- @@ -28,7 +28,7 @@ struct ldt_copy;
- struct msghdr;
-
- /* increment this when you change the function table */
---#define NTDLL_UNIXLIB_VERSION 30
--+#define NTDLL_UNIXLIB_VERSION 31
-+-#define NTDLL_UNIXLIB_VERSION 32
-++#define NTDLL_UNIXLIB_VERSION 33
-
- struct unix_funcs
- {
--@@ -187,6 +187,7 @@ struct unix_funcs
-+@@ -189,6 +189,7 @@ struct unix_funcs
- unsigned int (CDECL *server_wait)( const select_op_t *select_op, data_size_t size, UINT flags,
- const LARGE_INTEGER *timeout );
- void (CDECL *server_send_fd)( int fd );
-diff --git a/staging/upstream-commit b/staging/upstream-commit
-index f51939b28..8b37e5310 100644
---- a/staging/upstream-commit
-+++ b/staging/upstream-commit
-@@ -1 +1 @@
--3cc3b445752902e07231900befc296f74ad6576e
-+17529582402ebe27ef975fc7dcb8353f4f95e629
diff --git a/wine-staging-5.10-ntdll-arm1.patch b/wine-staging-5.10-ntdll-arm1.patch
deleted file mode 100644
index 56a6f4f..0000000
--- a/wine-staging-5.10-ntdll-arm1.patch
+++ /dev/null
@@ -1,950 +0,0 @@
-From 5306e1df11e772fe8125fcd5857e52cf1f83430b Mon Sep 17 00:00:00 2001
-From: Paul Gofman <gofmanp(a)gmail.com>
-Date: Thu, 11 Jun 2020 15:23:12 +0300
-Subject: [PATCH] Updated winebuild-Fake_Dlls patchset.
-
-Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49357
----
- ...-tests-Add-basic-tests-for-fake-dlls.patch | 8 +--
- ...-not-abuse-WOW32Reserved-field-for-1.patch | 36 ++++++-------
- ...ate-syscall-thunks-for-ntdll-exports.patch | 53 +++++++++++--------
- ...ltipass-label-system-to-generate-fak.patch | 10 ++--
- ...uild-Add-stub-functions-in-fake-dlls.patch | 36 ++++++-------
- ...uild-Add-syscall-thunks-in-fake-dlls.patch | 8 +--
- ...ze-of-relocation-information-in-fake.patch | 4 +-
- ...-make-sure-RVA-matches-between-fake-.patch | 10 ++--
- ...me-file-alignment-for-fake-and-built.patch | 8 +--
- ...ebuild-Add-syscall-thunks-for-64-bit.patch | 39 ++++++--------
- ...all-NtOpenFile-through-syscall-thunk.patch | 32 +++++------
- 11 files changed, 123 insertions(+), 121 deletions(-)
-
-diff --git a/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch b/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch
-index ef056cfcf..21d69fd59 100644
---- a/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch
-+++ b/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch
-@@ -1,4 +1,4 @@
--From de68d5c0e6bd728788bbec09100ea59802b8ff13 Mon Sep 17 00:00:00 2001
-+From 8b88aa45856684e63786425f72886f2ac57b3630 Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
- Date: Thu, 25 May 2017 07:02:46 +0200
- Subject: [PATCH] kernel32/tests: Add basic tests for fake dlls.
-@@ -8,10 +8,10 @@ Subject: [PATCH] kernel32/tests: Add basic tests for fake dlls.
- 1 file changed, 91 insertions(+)
-
- diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
--index 5474d543248..4e7a15970cb 100644
-+index ef8c47c04f1a..efd5a25a432d 100644
- --- a/dlls/kernel32/tests/loader.c
- +++ b/dlls/kernel32/tests/loader.c
--@@ -1535,6 +1535,96 @@ static void test_filenames(void)
-+@@ -1572,6 +1572,96 @@ static void test_filenames(void)
- DeleteFileA( long_path );
- }
-
-@@ -108,7 +108,7 @@ index 5474d543248..4e7a15970cb 100644
- /* Verify linking style of import descriptors */
- static void test_ImportDescriptors(void)
- {
--@@ -3997,6 +4087,7 @@ START_TEST(loader)
-+@@ -4094,6 +4184,7 @@ START_TEST(loader)
- return;
- }
-
-diff --git a/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch b/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch
-index 15aaa85df..ae98c2798 100644
---- a/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch
-+++ b/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch
-@@ -1,4 +1,4 @@
--From 25d08438aba3dee16c79ce3168a4f76f39816fad Mon Sep 17 00:00:00 2001
-+From 7af81866f286e60f601d1c3f9bfe8592a794d21d Mon Sep 17 00:00:00 2001
- From: Sebastian Lackner <sebastian(a)fds-team.de>
- Date: Tue, 16 May 2017 04:37:52 +0200
- Subject: [PATCH] krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit
-@@ -24,7 +24,7 @@ Subject: [PATCH] krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit
- 16 files changed, 78 insertions(+), 77 deletions(-)
-
- diff --git a/dlls/dbghelp/cpu_i386.c b/dlls/dbghelp/cpu_i386.c
--index fd808a0d324..7d6723977a2 100644
-+index fd808a0d3248..7d6723977a29 100644
- --- a/dlls/dbghelp/cpu_i386.c
- +++ b/dlls/dbghelp/cpu_i386.c
- @@ -213,16 +213,16 @@ static BOOL i386_stack_walk(struct cpu_stack_walk *csw, STACKFRAME64 *frame,
-@@ -48,7 +48,7 @@ index fd808a0d324..7d6723977a2 100644
- }
- next_switch = p;
- diff --git a/dlls/krnl386.exe16/kernel.c b/dlls/krnl386.exe16/kernel.c
--index 07a57d0d937..89ea5c042e7 100644
-+index 07a57d0d9372..89ea5c042e71 100644
- --- a/dlls/krnl386.exe16/kernel.c
- +++ b/dlls/krnl386.exe16/kernel.c
- @@ -47,8 +47,8 @@ static void thread_attach(void)
-@@ -72,7 +72,7 @@ index 07a57d0d937..89ea5c042e7 100644
- }
-
- diff --git a/dlls/krnl386.exe16/kernel16_private.h b/dlls/krnl386.exe16/kernel16_private.h
--index f15934daa0e..9f939a9d5ba 100644
-+index f15934daa0e4..9f939a9d5bac 100644
- --- a/dlls/krnl386.exe16/kernel16_private.h
- +++ b/dlls/krnl386.exe16/kernel16_private.h
- @@ -169,7 +169,7 @@ extern THHOOK *pThhook DECLSPEC_HIDDEN;
-@@ -119,7 +119,7 @@ index f15934daa0e..9f939a9d5ba 100644
-
- static inline struct kernel_thread_data *kernel_get_thread_data(void)
- diff --git a/dlls/krnl386.exe16/ne_module.c b/dlls/krnl386.exe16/ne_module.c
--index f1e1a14dd67..c951a18f869 100644
-+index f1e1a14dd679..c951a18f8699 100644
- --- a/dlls/krnl386.exe16/ne_module.c
- +++ b/dlls/krnl386.exe16/ne_module.c
- @@ -1208,7 +1208,7 @@ DWORD NE_StartTask(void)
-@@ -143,7 +143,7 @@ index f1e1a14dd67..c951a18f869 100644
- WOWCallback16Ex( 0, WCB16_REGS, 0, NULL, (DWORD *)&context );
- ExitThread( LOWORD(context.Eax) );
- diff --git a/dlls/krnl386.exe16/ne_segment.c b/dlls/krnl386.exe16/ne_segment.c
--index aa886148029..70eb3360914 100644
-+index aa8861480298..70eb33609144 100644
- --- a/dlls/krnl386.exe16/ne_segment.c
- +++ b/dlls/krnl386.exe16/ne_segment.c
- @@ -370,9 +370,9 @@ BOOL NE_LoadSegment( NE_MODULE *pModule, WORD segnum )
-@@ -209,7 +209,7 @@ index aa886148029..70eb3360914 100644
- args[7] = HIWORD(dwReason);
- args[6] = LOWORD(dwReason);
- diff --git a/dlls/krnl386.exe16/task.c b/dlls/krnl386.exe16/task.c
--index 39a60cb97a9..21de62c5a01 100644
-+index 39a60cb97a94..21de62c5a015 100644
- --- a/dlls/krnl386.exe16/task.c
- +++ b/dlls/krnl386.exe16/task.c
- @@ -624,7 +624,7 @@ void WINAPI InitTask16( CONTEXT *context )
-@@ -267,7 +267,7 @@ index 39a60cb97a9..21de62c5a01 100644
- context->Esp = OFFSETOF(pData->old_ss_sp) - sizeof(DWORD); /*ret addr*/
- pData->old_ss_sp = 0;
- diff --git a/dlls/krnl386.exe16/thunk.c b/dlls/krnl386.exe16/thunk.c
--index e913a08f88c..ecc94371488 100644
-+index e913a08f88cc..ecc94371488f 100644
- --- a/dlls/krnl386.exe16/thunk.c
- +++ b/dlls/krnl386.exe16/thunk.c
- @@ -429,7 +429,7 @@ void WINAPI __regs_QT_Thunk( CONTEXT *context )
-@@ -413,7 +413,7 @@ index e913a08f88c..ecc94371488 100644
- if (OFFSETOF(frame32->frame16) > lpbuf[2])
- {
- diff --git a/dlls/krnl386.exe16/wowthunk.c b/dlls/krnl386.exe16/wowthunk.c
--index 2dddbf93289..3a4b104a673 100644
-+index 2dddbf932898..3a4b104a673f 100644
- --- a/dlls/krnl386.exe16/wowthunk.c
- +++ b/dlls/krnl386.exe16/wowthunk.c
- @@ -127,7 +127,7 @@ static DWORD call16_handler( EXCEPTION_RECORD *record, EXCEPTION_REGISTRATION_RE
-@@ -473,7 +473,7 @@ index 2dddbf93289..3a4b104a673 100644
- }
- }
- diff --git a/dlls/ntdll/unix/signal_i386.c b/dlls/ntdll/unix/signal_i386.c
--index 2928f314358..138f56b94eb 100644
-+index ac34f86a5883..55f1e2ce4b23 100644
- --- a/dlls/ntdll/unix/signal_i386.c
- +++ b/dlls/ntdll/unix/signal_i386.c
- @@ -645,7 +645,7 @@ static inline void *init_handler( const ucontext_t *sigcontext )
-@@ -486,7 +486,7 @@ index 2928f314358..138f56b94eb 100644
- return (void *)(ESP_sig(sigcontext) & ~3);
- }
- diff --git a/dlls/system.drv16/system.c b/dlls/system.drv16/system.c
--index b6fd51c05f0..695ad7b6003 100644
-+index b6fd51c05f01..695ad7b60039 100644
- --- a/dlls/system.drv16/system.c
- +++ b/dlls/system.drv16/system.c
- @@ -70,7 +70,7 @@ static void CALLBACK SYSTEM_TimerTick( LPVOID arg, DWORD low, DWORD high )
-@@ -499,7 +499,7 @@ index b6fd51c05f0..695ad7b6003 100644
-
- WOWCallback16Ex( 0, WCB16_REGS, 0, NULL, (DWORD *)&context );
- diff --git a/dlls/toolhelp.dll16/toolhelp.c b/dlls/toolhelp.dll16/toolhelp.c
--index 578d1ae7fab..1077f0b0367 100644
-+index 578d1ae7faba..1077f0b03672 100644
- --- a/dlls/toolhelp.dll16/toolhelp.c
- +++ b/dlls/toolhelp.dll16/toolhelp.c
- @@ -491,8 +491,8 @@ BOOL16 WINAPI TaskNext16( TASKENTRY *lpte )
-@@ -523,7 +523,7 @@ index 578d1ae7fab..1077f0b0367 100644
- WORD user = LoadLibrary16( "USER.EXE" );
- WORD gdi = LoadLibrary16( "GDI.EXE" );
- diff --git a/dlls/user.exe16/message.c b/dlls/user.exe16/message.c
--index e3ca3fd779d..fa9388ceaa1 100644
-+index e3ca3fd779d3..fa9388ceaa11 100644
- --- a/dlls/user.exe16/message.c
- +++ b/dlls/user.exe16/message.c
- @@ -240,11 +240,11 @@ static LRESULT call_window_proc16( HWND16 hwnd, UINT16 msg, WPARAM16 wParam, LPA
-@@ -595,7 +595,7 @@ index e3ca3fd779d..fa9388ceaa1 100644
-
- stack16->ds = GetWindowLongPtrW( hwnd, GWLP_HINSTANCE );
- diff --git a/dlls/user.exe16/user.c b/dlls/user.exe16/user.c
--index 27b92793836..deec596f766 100644
-+index 27b92793836a..deec596f7660 100644
- --- a/dlls/user.exe16/user.c
- +++ b/dlls/user.exe16/user.c
- @@ -1394,7 +1394,7 @@ DWORD WINAPI GetTabbedTextExtent16( HDC16 hdc, LPCSTR lpstr, INT16 count,
-@@ -617,7 +617,7 @@ index 27b92793836..deec596f766 100644
- int userPercent, gdiPercent;
-
- diff --git a/dlls/user.exe16/window.c b/dlls/user.exe16/window.c
--index bf86719325b..1f53bdc9540 100644
-+index bf86719325b8..1f53bdc95402 100644
- --- a/dlls/user.exe16/window.c
- +++ b/dlls/user.exe16/window.c
- @@ -456,7 +456,7 @@ HWND16 WINAPI GetParent16( HWND16 hwnd )
-@@ -630,10 +630,10 @@ index bf86719325b..1f53bdc9540 100644
- /* don't use WIN_Handle32 here, we don't care about the full handle */
- return IsWindow( HWND_32(hwnd) );
- diff --git a/include/winternl.h b/include/winternl.h
--index acbce20c212..68c1ae3fd82 100644
-+index 87eb0d32926b..2d9f54b89d8c 100644
- --- a/include/winternl.h
- +++ b/include/winternl.h
--@@ -362,7 +362,7 @@ typedef struct _TEB
-+@@ -363,7 +363,7 @@ typedef struct _TEB
- PVOID WOW32Reserved; /* 0c0/0100 */
- ULONG CurrentLocale; /* 0c4/0108 */
- ULONG FpSoftwareStatusRegister; /* 0c8/010c */
-@@ -643,7 +643,7 @@ index acbce20c212..68c1ae3fd82 100644
- ACTIVATION_CONTEXT_STACK ActivationContextStack; /* 1a8/02c8 */
- BYTE SpareBytes1[24]; /* 1bc/02e8 */
- diff --git a/tools/winebuild/relay.c b/tools/winebuild/relay.c
--index 29d0a74c833..01bb97e02b4 100644
-+index 29d0a74c833c..01bb97e02b4c 100644
- --- a/tools/winebuild/relay.c
- +++ b/tools/winebuild/relay.c
- @@ -31,7 +31,7 @@
-diff --git a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
-index 547e27f8f..a0487f91b 100644
---- a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
-+++ b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
-@@ -1,4 +1,4 @@
--From 0c4d2573b123f2198f74292133b7a6eefa472620 Mon Sep 17 00:00:00 2001
-+From d8ff827f7a94aee2bed89c620120af0a148ca81c Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
- Date: Thu, 11 May 2017 05:32:55 +0200
- Subject: [PATCH] winebuild: Generate syscall thunks for ntdll exports.
-@@ -8,7 +8,7 @@ Based on a patch by Erich E. Hoover.
- dlls/ntdll/loader.c | 3 +
- dlls/ntdll/signal_i386.c | 4 +-
- dlls/ntdll/tests/exception.c | 2 +
-- dlls/ntdll/thread.c | 3 +-
-+ dlls/ntdll/thread.c | 10 +++-
- dlls/ntdll/unix/thread.c | 3 +-
- dlls/ntdll/unix/unix_private.h | 2 +-
- dlls/ntdll/unixlib.h | 4 +-
-@@ -19,13 +19,13 @@ Based on a patch by Erich E. Hoover.
- tools/winebuild/spec16.c | 22 +------
- tools/winebuild/spec32.c | 104 +++++++++++++++++++++++++++++++++
- tools/winebuild/utils.c | 21 +++++++
-- 14 files changed, 214 insertions(+), 32 deletions(-)
-+ 14 files changed, 221 insertions(+), 32 deletions(-)
-
- diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
--index 0c8f05285c4..26c540050dc 100644
-+index 2553b0b9d397..cac6aae2f3dd 100644
- --- a/dlls/ntdll/loader.c
- +++ b/dlls/ntdll/loader.c
--@@ -3810,6 +3810,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
-+@@ -4021,6 +4021,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
- return ret;
- }
-
-@@ -33,7 +33,7 @@ index 0c8f05285c4..26c540050dc 100644
-
- /******************************************************************
- * LdrInitializeThunk (NTDLL.@)
--@@ -3826,6 +3827,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
-+@@ -4038,6 +4039,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
- WINE_MODREF *wm;
- LPCWSTR load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer;
-
-@@ -43,7 +43,7 @@ index 0c8f05285c4..26c540050dc 100644
-
- RtlEnterCriticalSection( &loader_section );
- diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
--index 21cc1b3ead4..18be5693a7d 100644
-+index 21cc1b3ead40..18be5693a7d2 100644
- --- a/dlls/ntdll/signal_i386.c
- +++ b/dlls/ntdll/signal_i386.c
- @@ -346,6 +346,8 @@ __ASM_STDCALL_FUNC( RtlCaptureContext, 4,
-@@ -65,7 +65,7 @@ index 21cc1b3ead4..18be5693a7d 100644
- }
- return unix_funcs->NtGetContextThread( handle, context );
- diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c
--index a5e6faa461a..51938bf84cc 100644
-+index 1389a542cdee..54796476e25b 100644
- --- a/dlls/ntdll/tests/exception.c
- +++ b/dlls/ntdll/tests/exception.c
- @@ -1643,6 +1643,8 @@ static void test_thread_context(void)
-@@ -78,18 +78,25 @@ index a5e6faa461a..51938bf84cc 100644
- ok( context.SegCs == LOWORD(expect.SegCs), "wrong SegCs %08x/%08x\n", context.SegCs, expect.SegCs );
- ok( context.SegDs == LOWORD(expect.SegDs), "wrong SegDs %08x/%08x\n", context.SegDs, expect.SegDs );
- diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
--index 5a6809638ae..fa10cdf1062 100644
-+index ff5fe9d6226a..e93498b27ea0 100644
- --- a/dlls/ntdll/thread.c
- +++ b/dlls/ntdll/thread.c
--@@ -170,6 +170,7 @@ int __cdecl __wine_dbg_output( const char *str )
-+@@ -220,6 +220,14 @@ int __cdecl __wine_dbg_output( const char *str )
- return unix_funcs->dbg_output( str );
- }
-
-++#if defined(__i386__) || defined(__x86_64__)
- +extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
-++#else
-++void __wine_syscall_dispatcher( void )
-++{
-++ FIXME("Syscall dispatcher is not available for this architecture.\n");
-++}
-++#endif
-
- /***********************************************************************
- * thread_init
--@@ -181,7 +182,7 @@ int __cdecl __wine_dbg_output( const char *str )
-+@@ -231,7 +239,7 @@ int __cdecl __wine_dbg_output( const char *str )
- TEB *thread_init( SIZE_T *info_size, BOOL *suspend )
- {
- TEB *teb = unix_funcs->init_threading( &nb_threads, &__wine_ldt_copy, info_size, suspend, &server_cpus,
-@@ -99,7 +106,7 @@ index 5a6809638ae..fa10cdf1062 100644
- peb = teb->Peb;
- peb->FastPebLock = &peb_lock;
- diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c
--index 97b191e1a5b..2dbaa43e731 100644
-+index 97b191e1a5b3..2dbaa43e731a 100644
- --- a/dlls/ntdll/unix/thread.c
- +++ b/dlls/ntdll/unix/thread.c
- @@ -85,7 +85,7 @@ static void pthread_exit_wrapper( int status )
-@@ -120,10 +127,10 @@ index 97b191e1a5b..2dbaa43e731 100644
- thread_data->request_fd = -1;
- thread_data->reply_fd = -1;
- diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
--index 19dd216fc35..a1c48a52606 100644
-+index 92a58417827b..33a551e947c2 100644
- --- a/dlls/ntdll/unix/unix_private.h
- +++ b/dlls/ntdll/unix/unix_private.h
--@@ -107,7 +107,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE
-+@@ -108,7 +108,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE
- extern void CDECL server_init_process_done( void *relay ) DECLSPEC_HIDDEN;
- extern TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size,
- BOOL *suspend, unsigned int *cpus, BOOL *wow64,
-@@ -133,7 +140,7 @@ index 19dd216fc35..a1c48a52606 100644
- extern void CDECL DECLSPEC_NORETURN exit_process( int status ) DECLSPEC_HIDDEN;
- extern NTSTATUS CDECL get_thread_ldt_entry( HANDLE handle, void *data, ULONG len, ULONG *ret_len ) DECLSPEC_HIDDEN;
- diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
--index 4c580c49d13..4f0080db03d 100644
-+index 4c580c49d139..4f0080db03d9 100644
- --- a/dlls/ntdll/unixlib.h
- +++ b/dlls/ntdll/unixlib.h
- @@ -28,7 +28,7 @@ struct ldt_copy;
-@@ -155,10 +162,10 @@ index 4c580c49d13..4f0080db03d 100644
- void (CDECL *exit_process)( int status );
- NTSTATUS (CDECL *get_thread_ldt_entry)( HANDLE handle, void *data, ULONG len, ULONG *ret_len );
- diff --git a/include/winternl.h b/include/winternl.h
--index 68c1ae3fd82..f2da9157aab 100644
-+index 2d9f54b89d8c..0c15a0ee6c34 100644
- --- a/include/winternl.h
- +++ b/include/winternl.h
--@@ -359,7 +359,7 @@ typedef struct _TEB
-+@@ -360,7 +360,7 @@ typedef struct _TEB
- PVOID CsrClientThread; /* 03c/0070 */
- PVOID Win32ThreadInfo; /* 040/0078 */
- ULONG Win32ClientInfo[31]; /* 044/0080 used for user32 private data in Wine */
-@@ -168,7 +175,7 @@ index 68c1ae3fd82..f2da9157aab 100644
- ULONG FpSoftwareStatusRegister; /* 0c8/010c */
- PVOID SystemReserved1[54]; /* 0cc/0110 used for krnl386.exe16 private data in Wine */
- diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h
--index c162888a035..55d5b0b9dc2 100644
-+index c162888a0356..55d5b0b9dc28 100644
- --- a/tools/winebuild/build.h
- +++ b/tools/winebuild/build.h
- @@ -105,6 +105,7 @@ typedef struct
-@@ -216,7 +223,7 @@ index c162888a035..55d5b0b9dc2 100644
-
- extern int byte_swapped;
- diff --git a/tools/winebuild/import.c b/tools/winebuild/import.c
--index 04ab433dd65..0c6bafed8e5 100644
-+index 04ab433dd65a..0c6bafed8e54 100644
- --- a/tools/winebuild/import.c
- +++ b/tools/winebuild/import.c
- @@ -531,6 +531,7 @@ static void check_undefined_forwards( DLLSPEC *spec )
-@@ -256,7 +263,7 @@ index 04ab433dd65..0c6bafed8e5 100644
- }
- }
- diff --git a/tools/winebuild/parser.c b/tools/winebuild/parser.c
--index 0f2b9c1e10a..74216f8bb6e 100644
-+index 0f2b9c1e10ad..74216f8bb6e7 100644
- --- a/tools/winebuild/parser.c
- +++ b/tools/winebuild/parser.c
- @@ -543,6 +543,24 @@ static const char *parse_spec_flags( DLLSPEC *spec, ORDDEF *odp )
-@@ -347,7 +354,7 @@ index 0f2b9c1e10a..74216f8bb6e 100644
- }
-
- diff --git a/tools/winebuild/spec16.c b/tools/winebuild/spec16.c
--index a52c03aaa6a..15ef9a3f893 100644
-+index a52c03aaa6a7..15ef9a3f8930 100644
- --- a/tools/winebuild/spec16.c
- +++ b/tools/winebuild/spec16.c
- @@ -495,27 +495,6 @@ static int relay_type_compare( const void *e1, const void *e2 )
-@@ -387,7 +394,7 @@ index a52c03aaa6a..15ef9a3f893 100644
- entry_point->u.func.nb_args = 0;
- assert( !spec->ordinals[0] );
- diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
--index b1e20e0484d..22dd399cb2b 100644
-+index b1e20e0484dc..22dd399cb2b4 100644
- --- a/tools/winebuild/spec32.c
- +++ b/tools/winebuild/spec32.c
- @@ -374,6 +374,109 @@ static void output_relay_debug( DLLSPEC *spec )
-@@ -509,7 +516,7 @@ index b1e20e0484d..22dd399cb2b 100644
- output_exports( spec );
- output_imports( spec );
- diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c
--index 2a1fc960926..07a579004ad 100644
-+index 2a1fc960926b..07a579004adc 100644
- --- a/tools/winebuild/utils.c
- +++ b/tools/winebuild/utils.c
- @@ -860,6 +860,7 @@ void free_dll_spec( DLLSPEC *spec )
-diff --git a/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch b/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch
-index 6c3984f8b..d4813799e 100644
---- a/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch
-+++ b/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch
-@@ -1,4 +1,4 @@
--From 15182deeb13e26abdb3067a77353354726ac82aa Mon Sep 17 00:00:00 2001
-+From 344eb39bdfee74d4d826fa2f61a95736f0ee9823 Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
- Date: Mon, 15 May 2017 02:05:49 +0200
- Subject: [PATCH] winebuild: Use multipass label system to generate fake dlls.
-@@ -11,7 +11,7 @@ Subject: [PATCH] winebuild: Use multipass label system to generate fake dlls.
- 4 files changed, 181 insertions(+), 63 deletions(-)
-
- diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h
--index 6ee847f908c..210324406a9 100644
-+index 55d5b0b9dc28..8930df408d3b 100644
- --- a/tools/winebuild/build.h
- +++ b/tools/winebuild/build.h
- @@ -343,6 +343,7 @@ extern size_t input_buffer_pos;
-@@ -35,7 +35,7 @@ index 6ee847f908c..210324406a9 100644
- /* global variables */
-
- diff --git a/tools/winebuild/res32.c b/tools/winebuild/res32.c
--index bd55bb2fa5c..d9329019f8a 100644
-+index bd55bb2fa5c4..d9329019f8a3 100644
- --- a/tools/winebuild/res32.c
- +++ b/tools/winebuild/res32.c
- @@ -539,7 +539,6 @@ void output_bin_resources( DLLSPEC *spec, unsigned int start_rva )
-@@ -47,7 +47,7 @@ index bd55bb2fa5c..d9329019f8a 100644
- /* output the resource directories */
-
- diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
--index 22dd399cb2b..c38f1fe663c 100644
-+index 22dd399cb2b4..c38f1fe663c7 100644
- --- a/tools/winebuild/spec32.c
- +++ b/tools/winebuild/spec32.c
- @@ -844,11 +844,11 @@ void output_spec32_file( DLLSPEC *spec )
-@@ -279,7 +279,7 @@ index 22dd399cb2b..c38f1fe663c 100644
- }
-
- diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c
--index 7dc61a708db..64e1fa51455 100644
-+index 07a579004adc..80dec6db29ea 100644
- --- a/tools/winebuild/utils.c
- +++ b/tools/winebuild/utils.c
- @@ -34,6 +34,7 @@
-diff --git a/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch b/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch
-index f96d51aee..4ac05a314 100644
---- a/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch
-+++ b/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch
-@@ -1,4 +1,4 @@
--From 167ad04157dd746ee9395afa9505fe00cc866f9b Mon Sep 17 00:00:00 2001
-+From e5fc6ee60be5dd3b80af96dcbd81adb742ba7a5d Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
- Date: Mon, 15 May 2017 16:27:56 +0200
- Subject: [PATCH] winebuild: Add stub functions in fake dlls.
-@@ -14,10 +14,10 @@ Subject: [PATCH] winebuild: Add stub functions in fake dlls.
- 7 files changed, 251 insertions(+), 15 deletions(-)
-
- diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
--index 926fa913866..902907329c0 100644
-+index efd5a25a432d..182b61b731a2 100644
- --- a/dlls/kernel32/tests/loader.c
- +++ b/dlls/kernel32/tests/loader.c
--@@ -1596,9 +1596,7 @@ static void test_FakeDLL(void)
-+@@ -1597,9 +1597,7 @@ static void test_FakeDLL(void)
- ok(ptr != NULL, "MapViewOfFile failed with error %u\n", GetLastError());
-
- dir = RtlImageDirectoryEntryToData(ptr, TRUE, IMAGE_DIRECTORY_ENTRY_EXPORT, &size);
-@@ -27,7 +27,7 @@ index 926fa913866..902907329c0 100644
-
- names = RVAToAddr(dir->AddressOfNames, ptr);
- ordinals = RVAToAddr(dir->AddressOfNameOrdinals, ptr);
--@@ -1627,17 +1625,20 @@ todo_wine
-+@@ -1628,17 +1626,20 @@ todo_wine
- /* check position in memory */
- dll_rva = (DWORD_PTR)dll_func - (DWORD_PTR)module;
- map_rva = funcs[ordinals[i]];
-@@ -48,7 +48,7 @@ index 926fa913866..902907329c0 100644
- ok(!memcmp(map_func, dll_func, 0x20), "%s: Function content does not match!\n", func_name);
-
- if (!strcmp(func_name, "NtSetEvent"))
--@@ -1651,10 +1652,11 @@ todo_wine
-+@@ -1652,10 +1653,11 @@ todo_wine
- ok(event != NULL, "CreateEvent failed with error %u\n", GetLastError());
- pNtSetEvent(event, 0);
- ok(WaitForSingleObject(event, 0) == WAIT_OBJECT_0, "Event was not signaled\n");
-@@ -62,10 +62,10 @@ index 926fa913866..902907329c0 100644
- CloseHandle(map);
- CloseHandle(file);
- diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
--index 26c540050dc..09d3870c31a 100644
-+index cac6aae2f3dd..51d989f30b45 100644
- --- a/dlls/ntdll/loader.c
- +++ b/dlls/ntdll/loader.c
--@@ -3811,6 +3811,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
-+@@ -4022,6 +4022,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
- }
-
- extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
-@@ -73,7 +73,7 @@ index 26c540050dc..09d3870c31a 100644
-
- /******************************************************************
- * LdrInitializeThunk (NTDLL.@)
--@@ -3828,6 +3829,7 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
-+@@ -4040,6 +4041,7 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
- LPCWSTR load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer;
-
- NtCurrentTeb()->WOW32Reserved = __wine_syscall_dispatcher;
-@@ -82,12 +82,12 @@ index 26c540050dc..09d3870c31a 100644
- if (process_detaching) return;
-
- diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
--index fa10cdf1062..4840f527e59 100644
-+index e93498b27ea0..a14e3a12ae0c 100644
- --- a/dlls/ntdll/thread.c
- +++ b/dlls/ntdll/thread.c
--@@ -172,6 +172,39 @@ int __cdecl __wine_dbg_output( const char *str )
--
-- extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
-+@@ -229,6 +229,39 @@ void __wine_syscall_dispatcher( void )
-+ }
-+ #endif
-
- +void *WINAPI __wine_fakedll_dispatcher( const char *module, ULONG ord )
- +{
-@@ -125,7 +125,7 @@ index fa10cdf1062..4840f527e59 100644
- /***********************************************************************
- * thread_init
- *
--@@ -183,6 +216,7 @@ TEB *thread_init( SIZE_T *info_size, BOOL *suspend )
-+@@ -240,6 +273,7 @@ TEB *thread_init( SIZE_T *info_size, BOOL *suspend )
- {
- TEB *teb = unix_funcs->init_threading( &nb_threads, &__wine_ldt_copy, info_size, suspend, &server_cpus,
- &is_wow64, &server_start_time, __wine_syscall_dispatcher );
-@@ -134,10 +134,10 @@ index fa10cdf1062..4840f527e59 100644
- peb = teb->Peb;
- peb->FastPebLock = &peb_lock;
- diff --git a/include/winternl.h b/include/winternl.h
--index f2da9157aab..ce8021af503 100644
-+index 0c15a0ee6c34..6da672e979e5 100644
- --- a/include/winternl.h
- +++ b/include/winternl.h
--@@ -398,7 +398,7 @@ typedef struct _TEB
-+@@ -399,7 +399,7 @@ typedef struct _TEB
- PVOID Instrumentation[16]; /* f2c/16b8 */
- PVOID WinSockData; /* f6c/1738 */
- ULONG GdiBatchCount; /* f70/1740 */
-@@ -147,7 +147,7 @@ index f2da9157aab..ce8021af503 100644
- PVOID ReservedForPerf; /* f7c/1750 */
- PVOID ReservedForOle; /* f80/1758 */
- diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h
--index 8930df408d3..44113bad28a 100644
-+index 8930df408d3b..44113bad28af 100644
- --- a/tools/winebuild/build.h
- +++ b/tools/winebuild/build.h
- @@ -358,6 +358,7 @@ extern void put_word( unsigned short val );
-@@ -159,7 +159,7 @@ index 8930df408d3..44113bad28a 100644
- extern void align_output_rva( unsigned int file_align, unsigned int rva_align );
- extern size_t label_pos( const char *name );
- diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
--index c38f1fe663c..bf82ca497c0 100644
-+index c38f1fe663c7..bf82ca497c0d 100644
- --- a/tools/winebuild/spec32.c
- +++ b/tools/winebuild/spec32.c
- @@ -843,6 +843,163 @@ void output_spec32_file( DLLSPEC *spec )
-@@ -415,7 +415,7 @@ index c38f1fe663c..bf82ca497c0 100644
- /* .reloc contents */
- align_output_rva( file_align, section_align );
- diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c
--index 80dec6db29e..d394a1382c6 100644
-+index 80dec6db29ea..d394a1382c68 100644
- --- a/tools/winebuild/utils.c
- +++ b/tools/winebuild/utils.c
- @@ -549,7 +549,7 @@ size_t output_buffer_size;
-diff --git a/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch b/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch
-index 5ae2b3deb..13f46d6b0 100644
---- a/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch
-+++ b/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch
-@@ -1,4 +1,4 @@
--From 84a9f7b8192d7735108da2d7e81cf63faef97c13 Mon Sep 17 00:00:00 2001
-+From fd72d405abba827ab5e2603551d48200aedad3ce Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
- Date: Mon, 15 May 2017 17:56:48 +0200
- Subject: [PATCH] winebuild: Add syscall thunks in fake dlls.
-@@ -9,10 +9,10 @@ Subject: [PATCH] winebuild: Add syscall thunks in fake dlls.
- 2 files changed, 25 insertions(+), 3 deletions(-)
-
- diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
--index ec173c94a8e..a3bed8b310b 100644
-+index 182b61b731a2..98369c7d508c 100644
- --- a/dlls/kernel32/tests/loader.c
- +++ b/dlls/kernel32/tests/loader.c
--@@ -1602,7 +1602,6 @@ static void test_FakeDLL(void)
-+@@ -1639,7 +1639,6 @@ static void test_FakeDLL(void)
-
- /* check function content */
- map_func = RVAToAddr(map_rva, ptr);
-@@ -21,7 +21,7 @@ index ec173c94a8e..a3bed8b310b 100644
-
- if (!strcmp(func_name, "NtSetEvent"))
- diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
--index bf82ca497c0..6968e41260f 100644
-+index bf82ca497c0d..6968e41260f1 100644
- --- a/tools/winebuild/spec32.c
- +++ b/tools/winebuild/spec32.c
- @@ -860,13 +860,36 @@ static void create_stub_exports_text( DLLSPEC *spec )
-diff --git a/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch b/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch
-index 92a7161de..3b3745ed6 100644
---- a/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch
-+++ b/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch
-@@ -1,4 +1,4 @@
--From d77c31b1567bfbde1ce4ceb526ad596d0be3e788 Mon Sep 17 00:00:00 2001
-+From f92fc0572be02ce2eee2a9cbf60724372678a5af Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
- Date: Thu, 25 May 2017 03:22:25 +0200
- Subject: [PATCH] winebuild: Fix size of relocation information in fake dlls.
-@@ -8,7 +8,7 @@ Subject: [PATCH] winebuild: Fix size of relocation information in fake dlls.
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
- diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
--index 6968e41260f..f95b45b9a0d 100644
-+index 6968e41260f1..f95b45b9a0d5 100644
- --- a/tools/winebuild/spec32.c
- +++ b/tools/winebuild/spec32.c
- @@ -1238,8 +1238,8 @@ static void output_fake_module_pass( DLLSPEC *spec )
-diff --git a/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch b/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch
-index c4f1fb004..2cb4b7cf1 100644
---- a/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch
-+++ b/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch
-@@ -1,4 +1,4 @@
--From afa59bbabca36f306e9db4c1b080a250c4a919ea Mon Sep 17 00:00:00 2001
-+From 59efee63a7442dfee4d9e76b11f651a11a4b523e Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
- Date: Thu, 25 May 2017 21:46:27 +0200
- Subject: [PATCH] winebuild: Try to make sure RVA matches between fake and
-@@ -11,10 +11,10 @@ Subject: [PATCH] winebuild: Try to make sure RVA matches between fake and
- 3 files changed, 26 insertions(+), 5 deletions(-)
-
- diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
--index a3bed8b310b..8b5a345b086 100644
-+index 98369c7d508c..77e73b3ca37b 100644
- --- a/dlls/kernel32/tests/loader.c
- +++ b/dlls/kernel32/tests/loader.c
--@@ -1589,7 +1589,6 @@ static void test_FakeDLL(void)
-+@@ -1626,7 +1626,6 @@ static void test_FakeDLL(void)
- /* check position in memory */
- dll_rva = (DWORD_PTR)dll_func - (DWORD_PTR)module;
- map_rva = funcs[ordinals[i]];
-@@ -23,7 +23,7 @@ index a3bed8b310b..8b5a345b086 100644
- func_name, dll_rva, map_rva);
-
- diff --git a/libs/wine/loader.c b/libs/wine/loader.c
--index c3b59d90224..b6847ca77b3 100644
-+index c3b59d902243..b6847ca77b31 100644
- --- a/libs/wine/loader.c
- +++ b/libs/wine/loader.c
- @@ -335,8 +335,12 @@ static void *map_dll( const IMAGE_NT_HEADERS *nt_descr )
-@@ -54,7 +54,7 @@ index c3b59d90224..b6847ca77b3 100644
-
- memcpy( sec->Name, ".text", sizeof(".text") );
- diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
--index f95b45b9a0d..07d6eed05fc 100644
-+index f95b45b9a0d5..07d6eed05fcc 100644
- --- a/tools/winebuild/spec32.c
- +++ b/tools/winebuild/spec32.c
- @@ -381,14 +381,25 @@ static void output_relay_debug( DLLSPEC *spec )
-diff --git a/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch b/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch
-index e0ae33a59..9113beb5f 100644
---- a/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch
-+++ b/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch
-@@ -1,4 +1,4 @@
--From 29478273c4db90d209ac5afbdc1dd80add3d2c7e Mon Sep 17 00:00:00 2001
-+From 370eccb19c65a8b02abfa31a76651ae533dda22f Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
- Date: Thu, 25 May 2017 21:56:06 +0200
- Subject: [PATCH] libs/wine: Use same file alignment for fake and builtin DLLs.
-@@ -9,10 +9,10 @@ Subject: [PATCH] libs/wine: Use same file alignment for fake and builtin DLLs.
- 2 files changed, 1 insertion(+), 2 deletions(-)
-
- diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
--index 8b5a345b086..5373dc4efe1 100644
-+index 77e73b3ca37b..1f525194ce73 100644
- --- a/dlls/kernel32/tests/loader.c
- +++ b/dlls/kernel32/tests/loader.c
--@@ -1595,7 +1595,6 @@ static void test_FakeDLL(void)
-+@@ -1632,7 +1632,6 @@ static void test_FakeDLL(void)
- /* check position in file */
- map_offset = (DWORD_PTR)RtlImageRvaToVa(RtlImageNtHeader(ptr), ptr, map_rva, NULL) - (DWORD_PTR)ptr;
- dll_offset = (DWORD_PTR)RtlImageRvaToVa(RtlImageNtHeader(module), module, dll_rva, NULL) - (DWORD_PTR)module;
-@@ -21,7 +21,7 @@ index 8b5a345b086..5373dc4efe1 100644
- func_name, map_offset, dll_offset);
-
- diff --git a/libs/wine/loader.c b/libs/wine/loader.c
--index b6847ca77b3..4597a6cb324 100644
-+index b6847ca77b31..4597a6cb3243 100644
- --- a/libs/wine/loader.c
- +++ b/libs/wine/loader.c
- @@ -398,7 +398,7 @@ static void *map_dll( const IMAGE_NT_HEADERS *nt_descr )
-diff --git a/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch b/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch
-index 6024e5a2f..e40a80148 100644
---- a/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch
-+++ b/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch
-@@ -1,4 +1,4 @@
--From a5b4feebd008daab008f72567fe0001da619030e Mon Sep 17 00:00:00 2001
-+From 6f1973aa2aee35139ae041e59d37a45ff22dc5bf Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
- Date: Thu, 7 Sep 2017 00:38:09 +0200
- Subject: [PATCH] tools/winebuild: Add syscall thunks for 64 bit.
-@@ -7,18 +7,18 @@ Subject: [PATCH] tools/winebuild: Add syscall thunks for 64 bit.
- dlls/kernel32/tests/loader.c | 7 +-
- dlls/ntdll/unix/thread.c | 2 +-
- dlls/ntdll/unix/unix_private.h | 2 +-
-- dlls/ntdll/unix/virtual.c | 12 +-
-+ dlls/ntdll/unix/virtual.c | 11 +-
- libs/wine/loader.c | 4 +
- server/mapping.c | 6 +-
- tools/winebuild/parser.c | 2 +-
- tools/winebuild/spec32.c | 285 ++++++++++++++++++++++++++++++++-
-- 8 files changed, 306 insertions(+), 14 deletions(-)
-+ 8 files changed, 305 insertions(+), 14 deletions(-)
-
- diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
--index 95939ba6bde..ae5462f6e55 100644
-+index 1f525194ce73..21af7b4ce7a4 100644
- --- a/dlls/kernel32/tests/loader.c
- +++ b/dlls/kernel32/tests/loader.c
--@@ -1573,7 +1573,7 @@ static void test_filenames(void)
-+@@ -1574,7 +1574,7 @@ static void test_filenames(void)
-
- static void test_FakeDLL(void)
- {
-@@ -27,7 +27,7 @@ index 95939ba6bde..ae5462f6e55 100644
- NTSTATUS (WINAPI *pNtSetEvent)(HANDLE, ULONG *) = NULL;
- IMAGE_EXPORT_DIRECTORY *dir;
- HMODULE module = GetModuleHandleA("ntdll.dll");
--@@ -1615,8 +1615,13 @@ static void test_FakeDLL(void)
-+@@ -1616,8 +1616,13 @@ static void test_FakeDLL(void)
-
- dll_func = (BYTE *)GetProcAddress(module, func_name);
- ok(dll_func != NULL, "%s: GetProcAddress returned NULL\n", func_name);
-@@ -42,7 +42,7 @@ index 95939ba6bde..ae5462f6e55 100644
- todo_wine ok(0, "%s: Export is a stub-function, skipping\n", func_name);
- continue;
- diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c
--index 2dbaa43e731..e1da90222d3 100644
-+index 2dbaa43e731a..e1da90222d38 100644
- --- a/dlls/ntdll/unix/thread.c
- +++ b/dlls/ntdll/unix/thread.c
- @@ -110,7 +110,7 @@ TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZ
-@@ -55,10 +55,10 @@ index 2dbaa43e731..e1da90222d3 100644
-
- if (size) *size = info_size;
- diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
--index a1c48a52606..9c9e5b80b0c 100644
-+index 33a551e947c2..d06f366d3c6d 100644
- --- a/dlls/ntdll/unix/unix_private.h
- +++ b/dlls/ntdll/unix/unix_private.h
--@@ -152,7 +152,7 @@ extern void virtual_init(void) DECLSPEC_HIDDEN;
-+@@ -153,7 +153,7 @@ extern void virtual_init(void) DECLSPEC_HIDDEN;
- extern TEB *virtual_alloc_first_teb(void) DECLSPEC_HIDDEN;
- extern NTSTATUS virtual_alloc_teb( TEB **ret_teb ) DECLSPEC_HIDDEN;
- extern void virtual_free_teb( TEB *teb ) DECLSPEC_HIDDEN;
-@@ -68,10 +68,10 @@ index a1c48a52606..9c9e5b80b0c 100644
- extern BOOL virtual_is_valid_code_address( const void *addr, SIZE_T size ) DECLSPEC_HIDDEN;
- extern int virtual_handle_stack_fault( void *addr ) DECLSPEC_HIDDEN;
- diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
--index 660323d4dcc..a5e5cb8422d 100644
-+index 9fb2ecd38ca3..ad11485d1cea 100644
- --- a/dlls/ntdll/unix/virtual.c
- +++ b/dlls/ntdll/unix/virtual.c
--@@ -2588,14 +2588,14 @@ TEB *virtual_alloc_first_teb(void)
-+@@ -2772,14 +2772,14 @@ TEB *virtual_alloc_first_teb(void)
- TEB *teb;
- PEB *peb;
- NTSTATUS status;
-@@ -88,12 +88,7 @@ index 660323d4dcc..a5e5cb8422d 100644
- if (status)
- {
- ERR( "wine: failed to map the shared user data: %08x\n", status );
--@@ -2787,11 +2787,12 @@ void virtual_clear_thread_stack( void *stack_end )
-- if (force_exec_prot) mprotect( stack, size, PROT_READ | PROT_WRITE | PROT_EXEC );
-- }
--
--+extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
--
-+@@ -2977,7 +2977,7 @@ void virtual_clear_thread_stack( void *stack_end )
- /***********************************************************************
- * virtual_map_user_shared_data
- */
-@@ -102,7 +97,7 @@ index 660323d4dcc..a5e5cb8422d 100644
- {
- static const WCHAR wine_usdW[] = {'\\','K','e','r','n','e','l','O','b','j','e','c','t','s',
- '\\','_','_','w','i','n','e','_','u','s','e','r','_','s','h','a','r','e','d','_','d','a','t','a',0};
--@@ -2814,6 +2815,11 @@ void virtual_map_user_shared_data(void)
-+@@ -3000,6 +3000,11 @@ void virtual_map_user_shared_data(void)
- ERR( "failed to remap the process USD: %d\n", res );
- exit(1);
- }
-@@ -115,7 +110,7 @@ index 660323d4dcc..a5e5cb8422d 100644
- NtClose( section );
- }
- diff --git a/libs/wine/loader.c b/libs/wine/loader.c
--index 4597a6cb324..3d0d75e9c6d 100644
-+index 4597a6cb3243..3d0d75e9c6d3 100644
- --- a/libs/wine/loader.c
- +++ b/libs/wine/loader.c
- @@ -398,7 +398,11 @@ static void *map_dll( const IMAGE_NT_HEADERS *nt_descr )
-@@ -131,7 +126,7 @@ index 4597a6cb324..3d0d75e9c6d 100644
- sec++;
-
- diff --git a/server/mapping.c b/server/mapping.c
--index 0941dd87c05..002f3215af2 100644
-+index 0941dd87c05d..002f3215af2e 100644
- --- a/server/mapping.c
- +++ b/server/mapping.c
- @@ -964,7 +964,11 @@ struct object *create_user_data_mapping( struct object *root, const struct unico
-@@ -148,7 +143,7 @@ index 0941dd87c05..002f3215af2 100644
- }
-
- diff --git a/tools/winebuild/parser.c b/tools/winebuild/parser.c
--index 74216f8bb6e..820516329a4 100644
-+index 74216f8bb6e7..820516329a47 100644
- --- a/tools/winebuild/parser.c
- +++ b/tools/winebuild/parser.c
- @@ -545,7 +545,7 @@ static const char *parse_spec_flags( DLLSPEC *spec, ORDDEF *odp )
-@@ -161,7 +156,7 @@ index 74216f8bb6e..820516329a4 100644
- if (odp->flags & (FLAG_FORWARD | FLAG_REGISTER))
- return 0;
- diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
--index 07d6eed05fc..9cc4698d0d7 100644
-+index 07d6eed05fcc..9cc4698d0d7d 100644
- --- a/tools/winebuild/spec32.c
- +++ b/tools/winebuild/spec32.c
- @@ -375,11 +375,11 @@ static void output_relay_debug( DLLSPEC *spec )
-diff --git a/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch b/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch
-index 69ee26be8..c3e065b26 100644
---- a/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch
-+++ b/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch
-@@ -1,4 +1,4 @@
--From 659e192979eecfb59d1c1b26e8cea78c42300de5 Mon Sep 17 00:00:00 2001
-+From feb53ed39179603391eff600ea59edc41407b238 Mon Sep 17 00:00:00 2001
- From: Paul Gofman <gofmanp(a)gmail.com>
- Date: Fri, 3 Jan 2020 17:39:08 +0300
- Subject: [PATCH] ntdll: Call NtOpenFile through syscall thunk.
-@@ -15,10 +15,10 @@ Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48410
- 7 files changed, 16 insertions(+), 8 deletions(-)
-
- diff --git a/dlls/ntdll/actctx.c b/dlls/ntdll/actctx.c
--index 1ca794ae3e5..b3c13042adc 100644
-+index a25cefa555ac..34ba0dc813c6 100644
- --- a/dlls/ntdll/actctx.c
- +++ b/dlls/ntdll/actctx.c
--@@ -2892,7 +2892,7 @@ static NTSTATUS open_nt_file( HANDLE *handle, UNICODE_STRING *name )
-+@@ -2894,7 +2894,7 @@ static NTSTATUS open_nt_file( HANDLE *handle, UNICODE_STRING *name )
- attr.ObjectName = name;
- attr.SecurityDescriptor = NULL;
- attr.SecurityQualityOfService = NULL;
-@@ -27,7 +27,7 @@ index 1ca794ae3e5..b3c13042adc 100644
- }
-
- static NTSTATUS get_manifest_in_module( struct actctx_loader* acl, struct assembly_identity* ai,
--@@ -3209,7 +3209,7 @@ static NTSTATUS lookup_winsxs(struct actctx_loader* acl, struct assembly_identit
-+@@ -3211,7 +3211,7 @@ static NTSTATUS lookup_winsxs(struct actctx_loader* acl, struct assembly_identit
- attr.SecurityDescriptor = NULL;
- attr.SecurityQualityOfService = NULL;
-
-@@ -37,10 +37,10 @@ index 1ca794ae3e5..b3c13042adc 100644
- {
- sxs_ai = *ai;
- diff --git a/dlls/ntdll/directory.c b/dlls/ntdll/directory.c
--index d18df38f626..69607a4fed9 100644
-+index 18428658a5b5..7a9de26ccb0c 100644
- --- a/dlls/ntdll/directory.c
- +++ b/dlls/ntdll/directory.c
--@@ -2943,7 +2943,7 @@ NTSTATUS DIR_get_unix_cwd( char **cwd )
-+@@ -3071,7 +3071,7 @@ NTSTATUS DIR_get_unix_cwd( char **cwd )
- attr.SecurityDescriptor = NULL;
- attr.SecurityQualityOfService = NULL;
-
-@@ -50,10 +50,10 @@ index d18df38f626..69607a4fed9 100644
- RtlFreeUnicodeString( &dirW );
- if (status != STATUS_SUCCESS) goto done;
- diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
--index 0b8c28a0651..e48cd84cffd 100644
-+index 51d989f30b45..8f1653b0d626 100644
- --- a/dlls/ntdll/loader.c
- +++ b/dlls/ntdll/loader.c
--@@ -2469,7 +2469,7 @@ static NTSTATUS open_dll_file( UNICODE_STRING *nt_name, WINE_MODREF **pwm,
-+@@ -2521,7 +2521,7 @@ static NTSTATUS open_dll_file( UNICODE_STRING *nt_name, WINE_MODREF **pwm,
- attr.ObjectName = nt_name;
- attr.SecurityDescriptor = NULL;
- attr.SecurityQualityOfService = NULL;
-@@ -63,10 +63,10 @@ index 0b8c28a0651..e48cd84cffd 100644
- FILE_SYNCHRONOUS_IO_NONALERT | FILE_NON_DIRECTORY_FILE )))
- {
- diff --git a/dlls/ntdll/locale.c b/dlls/ntdll/locale.c
--index 0d0c1194d23..a1bf219ed0a 100644
-+index 15ccdeb2e637..928edcb04e2c 100644
- --- a/dlls/ntdll/locale.c
- +++ b/dlls/ntdll/locale.c
--@@ -661,7 +661,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file )
-+@@ -660,7 +660,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file )
- return STATUS_NO_MEMORY;
- valueW.Length = NTDLL_swprintf( valueW.Buffer, pathfmtW, dir, name ) * sizeof(WCHAR);
- InitializeObjectAttributes( &attr, &valueW, 0, 0, NULL );
-@@ -75,7 +75,7 @@ index 0d0c1194d23..a1bf219ed0a 100644
- if (!status) TRACE( "found %s\n", debugstr_w( valueW.Buffer ));
- RtlFreeUnicodeString( &valueW );
- if (status != STATUS_OBJECT_NAME_NOT_FOUND && status != STATUS_OBJECT_PATH_NOT_FOUND) return status;
--@@ -685,7 +685,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file )
-+@@ -684,7 +684,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file )
- wcscat( valueW.Buffer, name );
- valueW.Length = wcslen(valueW.Buffer) * sizeof(WCHAR);
- InitializeObjectAttributes( &attr, &valueW, 0, 0, NULL );
-@@ -85,10 +85,10 @@ index 0d0c1194d23..a1bf219ed0a 100644
- }
- RtlFreeUnicodeString( &valueW );
- diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
--index 2e791b92f73..f8170793185 100644
-+index 9091d1ae8c77..f8e81ae49eaf 100644
- --- a/dlls/ntdll/ntdll_misc.h
- +++ b/dlls/ntdll/ntdll_misc.h
--@@ -350,4 +350,12 @@ static inline void ascii_to_unicode( WCHAR *dst, const char *src, size_t len )
-+@@ -329,4 +329,12 @@ static inline void ascii_to_unicode( WCHAR *dst, const char *src, size_t len )
- while (len--) *dst++ = (unsigned char)*src++;
- }
-
-@@ -102,7 +102,7 @@ index 2e791b92f73..f8170793185 100644
- +
- #endif
- diff --git a/dlls/ntdll/path.c b/dlls/ntdll/path.c
--index 32e1f951af5..71ae44dd498 100644
-+index 32e1f951af5c..71ae44dd4988 100644
- --- a/dlls/ntdll/path.c
- +++ b/dlls/ntdll/path.c
- @@ -1020,7 +1020,7 @@ NTSTATUS WINAPI RtlSetCurrentDirectory_U(const UNICODE_STRING* dir)
-@@ -115,10 +115,10 @@ index 32e1f951af5..71ae44dd498 100644
- if (nts != STATUS_SUCCESS) goto out;
-
- diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c
--index 60ee39765bf..70dfe6f768a 100644
-+index 884141da060c..32a1f5107f06 100644
- --- a/dlls/ntdll/process.c
- +++ b/dlls/ntdll/process.c
--@@ -1281,7 +1281,7 @@ static NTSTATUS get_pe_file_info( UNICODE_STRING *path, ULONG attributes,
-+@@ -1357,7 +1357,7 @@ static NTSTATUS get_pe_file_info( UNICODE_STRING *path, ULONG attributes,
-
- memset( info, 0, sizeof(*info) );
- InitializeObjectAttributes( &attr, path, attributes, 0, 0 );
diff --git a/wine.spec b/wine.spec
index 4308871..cd74653 100644
--- a/wine.spec
+++ b/wine.spec
@@ -76,8 +76,6 @@ Source150: wine.appdata.xml
# wine bugs
Patch100: wine-staging-5.10-ntdll.patch
-Patch101: wine-staging-5.10-ntdll-arm0.patch
-Patch102: wine-staging-5.10-ntdll-arm1.patch
# desktop dir
Source200: wine.menu
@@ -696,10 +694,15 @@ This package adds the opencl driver for wine.
# setup and apply wine-staging patches
gzip -dc %{SOURCE900} | tar -xf - --strip-components=1
%patch100 -p1 -b.ntdll
-%patch101 -p1 -b.ntdll-arm0
-%patch102 -p1 -b.ntdll-arm1
+%ifarch %{arm} aarch64
+patches/patchinstall.sh DESTDIR="`pwd`" --all \
+ -W ntdll-NtContinue \
+ -W ntdll-Syscall_Emulation \
+ -W winebuild-Fake_Dlls
+%else
patches/patchinstall.sh DESTDIR="`pwd`" --all
+%endif
# fix parallelized build
sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in
commit e1141d482fdb1aaa711f637ee76b6ad58c996543
Author: Michael Cronenworth <mike(a)cchtml.com>
Date: Thu Jun 11 08:55:00 2020 -0500
ARM patchset requires a previous patch
I may back out this patchset if this fails again
diff --git a/wine-staging-5.10-ntdll-arm0.patch b/wine-staging-5.10-ntdll-arm0.patch
new file mode 100644
index 0000000..74f1f00
--- /dev/null
+++ b/wine-staging-5.10-ntdll-arm0.patch
@@ -0,0 +1,964 @@
+From 9a4c8c5631101f8571dbdce726ae864060e446c9 Mon Sep 17 00:00:00 2001
+From: Zebediah Figura <z.figura12(a)gmail.com>
+Date: Mon, 8 Jun 2020 15:59:31 -0500
+Subject: [PATCH] Rebase against 17529582402ebe27ef975fc7dcb8353f4f95e629.
+
+---
+ ...ase-Maintain-FLS-storage-list-in-PEB.patch | 44 ++--
+ .../0001-ntdll-Add-stub-for-NtContinue.patch | 63 ------
+ ...o-continue-execution-after-exception.patch | 82 --------
+ patches/ntdll-NtContinue/definition | 3 -
+ ...dll-Support-x86_64-syscall-emulation.patch | 14 +-
+ ...mporary-signal-handler-during-proces.patch | 32 +--
+ patches/patchinstall.sh | 198 ++++++++----------
+ ...ate-syscall-thunks-for-ntdll-exports.patch | 34 +--
+ ...e-client-side-file-descriptor-cache-.patch | 20 +-
+ staging/upstream-commit | 2 +-
+ 10 files changed, 156 insertions(+), 336 deletions(-)
+ delete mode 100644 patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch
+ delete mode 100644 patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch
+ delete mode 100644 patches/ntdll-NtContinue/definition
+
+diff --git a/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch b/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch
+index 1d5434bf6..40f2a0b86 100644
+--- a/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch
++++ b/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch
+@@ -1,4 +1,4 @@
+-From 5c370d9f0be803d89302da7471ef0b93b45a0d75 Mon Sep 17 00:00:00 2001
++From 3fe24d6e3b216c21b6a7b68766414213fdd2ff2d Mon Sep 17 00:00:00 2001
+ From: Paul Gofman <pgofman(a)codeweavers.com>
+ Date: Thu, 23 Apr 2020 14:32:23 +0300
+ Subject: [PATCH] kernelbase: Maintain FLS storage list in PEB.
+@@ -73,10 +73,10 @@ index 7501165dc87..2bcc3ee60c4 100644
+ * FlsFree should fail
+ * FlsGetValue and FlsSetValue should succeed
+ diff --git a/dlls/kernel32/tests/thread.c b/dlls/kernel32/tests/thread.c
+-index a454bf118cc..dac30959734 100644
++index a9869863b44..b24f9e98bc7 100644
+ --- a/dlls/kernel32/tests/thread.c
+ +++ b/dlls/kernel32/tests/thread.c
+-@@ -2435,7 +2435,6 @@ START_TEST(thread)
++@@ -2377,7 +2377,6 @@ START_TEST(thread)
+ }
+ return;
+ }
+@@ -84,7 +84,7 @@ index a454bf118cc..dac30959734 100644
+ test_thread_info();
+ test_reserved_tls();
+ test_CreateRemoteThread();
+-@@ -2463,6 +2462,5 @@ START_TEST(thread)
++@@ -2405,6 +2404,5 @@ START_TEST(thread)
+ test_thread_fpu_cw();
+ test_thread_actctx();
+ test_thread_description();
+@@ -92,7 +92,7 @@ index a454bf118cc..dac30959734 100644
+ test_threadpool();
+ }
+ diff --git a/dlls/kernelbase/thread.c b/dlls/kernelbase/thread.c
+-index 03b16da95bb..4409f120491 100644
++index f20d460d07d..3c77b6a42f4 100644
+ --- a/dlls/kernelbase/thread.c
+ +++ b/dlls/kernelbase/thread.c
+ @@ -38,6 +38,10 @@
+@@ -106,7 +106,7 @@ index 03b16da95bb..4409f120491 100644
+
+ /***********************************************************************
+ * Threads
+-@@ -916,6 +920,19 @@ static void init_fiber_context( struct fiber_data *fiber )
++@@ -915,6 +919,19 @@ static void init_fiber_context( struct fiber_data *fiber )
+ #endif
+ }
+
+@@ -126,7 +126,7 @@ index 03b16da95bb..4409f120491 100644
+
+ /***********************************************************************
+ * CreateFiber (kernelbase.@)
+-@@ -1023,7 +1040,16 @@ void WINAPI DECLSPEC_HOTPATCH DeleteFiber( LPVOID fiber_ptr )
++@@ -1022,7 +1039,16 @@ void WINAPI DECLSPEC_HOTPATCH DeleteFiber( LPVOID fiber_ptr )
+ RtlExitUserThread( 1 );
+ }
+ RtlFreeUserStack( fiber->stack_allocation );
+@@ -144,7 +144,7 @@ index 03b16da95bb..4409f120491 100644
+ HeapFree( GetProcessHeap(), 0, fiber );
+ }
+
+-@@ -1045,6 +1071,19 @@ void WINAPI DECLSPEC_HOTPATCH SwitchToFiber( LPVOID fiber )
++@@ -1044,6 +1070,19 @@ void WINAPI DECLSPEC_HOTPATCH SwitchToFiber( LPVOID fiber )
+ struct fiber_data *new_fiber = fiber;
+ struct fiber_data *current_fiber = NtCurrentTeb()->Tib.u.FiberData;
+
+@@ -164,7 +164,7 @@ index 03b16da95bb..4409f120491 100644
+ current_fiber->except = NtCurrentTeb()->Tib.ExceptionList;
+ current_fiber->stack_limit = NtCurrentTeb()->Tib.StackLimit;
+ current_fiber->fls_slots = NtCurrentTeb()->FlsSlots;
+-@@ -1070,9 +1109,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
++@@ -1069,9 +1108,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
+ PEB * const peb = NtCurrentTeb()->Peb;
+
+ RtlAcquirePebLock();
+@@ -175,7 +175,7 @@ index 03b16da95bb..4409f120491 100644
+ {
+ SetLastError( ERROR_NOT_ENOUGH_MEMORY );
+ index = FLS_OUT_OF_INDEXES;
+-@@ -1082,9 +1119,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
++@@ -1081,9 +1118,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
+ index = RtlFindClearBitsAndSet( peb->FlsBitmap, 1, 1 );
+ if (index != ~0U)
+ {
+@@ -186,7 +186,7 @@ index 03b16da95bb..4409f120491 100644
+ {
+ RtlClearBits( peb->FlsBitmap, index, 1 );
+ index = FLS_OUT_OF_INDEXES;
+-@@ -1092,8 +1127,8 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
++@@ -1091,8 +1126,8 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
+ }
+ else
+ {
+@@ -197,7 +197,7 @@ index 03b16da95bb..4409f120491 100644
+ }
+ }
+ else SetLastError( ERROR_NO_MORE_ITEMS );
+-@@ -1117,7 +1152,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsFree( DWORD index )
++@@ -1116,7 +1151,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsFree( DWORD index )
+ {
+ /* FIXME: call Fls callback */
+ /* FIXME: add equivalent of ThreadZeroTlsCell here */
+@@ -206,7 +206,7 @@ index 03b16da95bb..4409f120491 100644
+ }
+ else SetLastError( ERROR_INVALID_PARAMETER );
+ RtlReleasePebLock();
+-@@ -1136,7 +1171,7 @@ PVOID WINAPI DECLSPEC_HOTPATCH FlsGetValue( DWORD index )
++@@ -1135,7 +1170,7 @@ PVOID WINAPI DECLSPEC_HOTPATCH FlsGetValue( DWORD index )
+ return NULL;
+ }
+ SetLastError( ERROR_SUCCESS );
+@@ -215,7 +215,7 @@ index 03b16da95bb..4409f120491 100644
+ }
+
+
+-@@ -1150,14 +1185,12 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsSetValue( DWORD index, PVOID data )
++@@ -1149,14 +1184,12 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsSetValue( DWORD index, PVOID data )
+ SetLastError( ERROR_INVALID_PARAMETER );
+ return FALSE;
+ }
+@@ -233,10 +233,10 @@ index 03b16da95bb..4409f120491 100644
+ }
+
+ diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
+-index 5e8de8821dd..71ef1cfea0a 100644
++index ffbc9fabb23..be53d98e5b8 100644
+ --- a/dlls/ntdll/loader.c
+ +++ b/dlls/ntdll/loader.c
+-@@ -179,6 +179,15 @@ static CRITICAL_SECTION_DEBUG dlldir_critsect_debug =
++@@ -169,6 +169,15 @@ static CRITICAL_SECTION_DEBUG dlldir_critsect_debug =
+ };
+ static CRITICAL_SECTION dlldir_section = { &dlldir_critsect_debug, -1, 0, 0, 0, 0 };
+
+@@ -252,7 +252,7 @@ index 5e8de8821dd..71ef1cfea0a 100644
+ static WINE_MODREF *cached_modref;
+ static WINE_MODREF *current_modref;
+ static WINE_MODREF *last_failed_modref;
+-@@ -219,6 +228,16 @@ static RTL_UNLOAD_EVENT_TRACE unload_traces[RTL_UNLOAD_EVENT_TRACE_NUMBER];
++@@ -209,6 +218,16 @@ static RTL_UNLOAD_EVENT_TRACE unload_traces[RTL_UNLOAD_EVENT_TRACE_NUMBER];
+ static RTL_UNLOAD_EVENT_TRACE *unload_trace_ptr;
+ static unsigned int unload_trace_seq;
+
+@@ -269,7 +269,7 @@ index 5e8de8821dd..71ef1cfea0a 100644
+ static void module_push_unload_trace( const LDR_DATA_TABLE_ENTRY *ldr )
+ {
+ RTL_UNLOAD_EVENT_TRACE *ptr = &unload_traces[unload_trace_seq];
+-@@ -3913,6 +3932,13 @@ void WINAPI LdrShutdownThread(void)
++@@ -3610,6 +3629,13 @@ void WINAPI LdrShutdownThread(void)
+ /* don't do any detach calls if process is exiting */
+ if (process_detaching) return;
+
+@@ -283,15 +283,15 @@ index 5e8de8821dd..71ef1cfea0a 100644
+ RtlEnterCriticalSection( &loader_section );
+
+ mark = &NtCurrentTeb()->Peb->LdrData->InInitializationOrderModuleList;
+-@@ -4153,6 +4179,7 @@ static void user_shared_data_init(void)
++@@ -3819,6 +3845,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
+ */
+ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknown3, ULONG_PTR unknown4 )
+ {
+ + static const unsigned int fls_slot_count = 8 * sizeof(NtCurrentTeb()->Peb->FlsBitmapBits);
+- static const LARGE_INTEGER zero;
+ static int attach_done;
+ int i;
+-@@ -4191,6 +4218,25 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
++ NTSTATUS status;
++@@ -3856,6 +3883,25 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
+ InsertHeadList( &tls_links, &NtCurrentTeb()->TlsLinks );
+ RtlReleasePebLock();
+
+@@ -318,5 +318,5 @@ index 5e8de8821dd..71ef1cfea0a 100644
+ {
+ attach_done = 1;
+ --
+-2.25.3
++2.26.2
+
+diff --git a/patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch b/patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch
+deleted file mode 100644
+index 7145857bd..000000000
+--- a/patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch
++++ /dev/null
+@@ -1,63 +0,0 @@
+-From 9ea4f081689959bd393eab2caaa0ed8237846117 Mon Sep 17 00:00:00 2001
+-From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+-Date: Thu, 25 May 2017 05:04:26 +0200
+-Subject: [PATCH] ntdll: Add stub for NtContinue.
+-
+----
+- dlls/ntdll/exception.c | 10 +++++++++-
+- dlls/ntdll/ntdll.spec | 4 ++--
+- 2 files changed, 11 insertions(+), 3 deletions(-)
+-
+-diff --git a/dlls/ntdll/exception.c b/dlls/ntdll/exception.c
+-index c35312fd1d1..3b85f1efa04 100644
+---- a/dlls/ntdll/exception.c
+-+++ b/dlls/ntdll/exception.c
+-@@ -328,7 +328,6 @@ LONG WINAPI call_unhandled_exception_filter( PEXCEPTION_POINTERS eptr )
+- return unhandled_exception_filter( eptr );
+- }
+-
+--
+- #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__)
+-
+- struct dynamic_unwind_entry
+-@@ -667,6 +666,15 @@ PRUNTIME_FUNCTION WINAPI RtlLookupFunctionEntry( ULONG_PTR pc, ULONG_PTR *base,
+-
+- #endif /* __x86_64__ || __arm__ || __aarch64__ */
+-
+-+/*********************************************************************
+-+ * NtContinue (NTDLL.@)
+-+ */
+-+NTSTATUS WINAPI NtContinue( CONTEXT *context, BOOLEAN alert )
+-+{
+-+ FIXME( "(%p, %d) stub!\n", context, alert );
+-+ return STATUS_NOT_IMPLEMENTED;
+-+}
+-+
+- /*************************************************************
+- * __wine_spec_unimplemented_stub
+- *
+-diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
+-index 81faf7fc280..d21a6f08ac2 100644
+---- a/dlls/ntdll/ntdll.spec
+-+++ b/dlls/ntdll/ntdll.spec
+-@@ -150,7 +150,7 @@
+- @ stdcall NtCompleteConnectPort(ptr)
+- # @ stub NtCompressKey
+- @ stdcall NtConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr)
+--@ stub NtContinue
+-+@ stdcall NtContinue(ptr long)
+- # @ stub NtCreateDebugObject
+- @ stdcall NtCreateDirectoryObject(ptr long ptr)
+- @ stdcall NtCreateEvent(ptr long ptr long long)
+-@@ -1105,7 +1105,7 @@
+- @ stdcall -private ZwCompleteConnectPort(ptr) NtCompleteConnectPort
+- # @ stub ZwCompressKey
+- @ stdcall -private ZwConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr) NtConnectPort
+--@ stub ZwContinue
+-+@ stdcall -private ZwContinue(ptr long) NtContinue
+- # @ stub ZwCreateDebugObject
+- @ stdcall -private ZwCreateDirectoryObject(ptr long ptr) NtCreateDirectoryObject
+- @ stdcall -private ZwCreateEvent(ptr long ptr long long) NtCreateEvent
+---
+-2.17.1
+-
+diff --git a/patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch b/patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch
+deleted file mode 100644
+index 902940977..000000000
+--- a/patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch
++++ /dev/null
+@@ -1,82 +0,0 @@
+-From 812de54c6fc8f93e8fda01f0802397b183adab59 Mon Sep 17 00:00:00 2001
+-From: Andrew Wesie <awesie(a)gmail.com>
+-Date: Fri, 27 Jul 2018 01:26:56 -0500
+-Subject: [PATCH] ntdll: Use NtContinue to continue execution after exceptions.
+-
+-NtContinue is exported by ntdll and some programs expect it to be used to
+-restore the thread context after an exception handler returns
+-EXCEPTION_CONTINUE_EXECUTION. It must take a context as its first argument
+-and restore that context.
+-
+-Current implementation is a simple wrapper around NtSetContextThread. It is
+-unlikely that it has the correct behavior if called by an external caller.
+-
+-The __syscall_NtContinue wrapper is used so that it can be hooked by a
+-third-party.
+----
+- dlls/ntdll/exception.c | 5 +++--
+- dlls/ntdll/signal_i386.c | 3 ++-
+- dlls/ntdll/signal_x86_64.c | 3 ++-
+- 3 files changed, 7 insertions(+), 4 deletions(-)
+-
+-diff --git a/dlls/ntdll/exception.c b/dlls/ntdll/exception.c
+-index 3b85f1efa..bc972254f 100644
+---- a/dlls/ntdll/exception.c
+-+++ b/dlls/ntdll/exception.c
+-@@ -671,8 +671,9 @@ PRUNTIME_FUNCTION WINAPI RtlLookupFunctionEntry( ULONG_PTR pc, ULONG_PTR *base,
+- */
+- NTSTATUS WINAPI NtContinue( CONTEXT *context, BOOLEAN alert )
+- {
+-- FIXME( "(%p, %d) stub!\n", context, alert );
+-- return STATUS_NOT_IMPLEMENTED;
+-+ TRACE( "(%p, %d) stub!\n", context, alert );
+-+
+-+ return NtSetContextThread( GetCurrentThread(), context );
+- }
+-
+- /*************************************************************
+-diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
+-index e55164630..8fc885ed4 100644
+---- a/dlls/ntdll/signal_i386.c
+-+++ b/dlls/ntdll/signal_i386.c
+-@@ -730,6 +730,7 @@ static NTSTATUS call_stack_handlers( EXCEPTION_RECORD *rec, CONTEXT *context )
+- return STATUS_UNHANDLED_EXCEPTION;
+- }
+-
+-+NTSTATUS WINAPI __syscall_NtContinue( CONTEXT *context, BOOLEAN alert );
+-
+- /*******************************************************************
+- * raise_exception
+-@@ -794,7 +795,7 @@ static NTSTATUS raise_exception( EXCEPTION_RECORD *rec, CONTEXT *context, BOOL f
+- NtTerminateProcess( NtCurrentProcess(), rec->ExceptionCode );
+- }
+- done:
+-- return NtSetContextThread( GetCurrentThread(), context );
+-+ return __syscall_NtContinue( context, FALSE );
+- }
+-
+-
+-diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
+-index e48529d73..0e74fda43 100644
+---- a/dlls/ntdll/signal_x86_64.c
+-+++ b/dlls/ntdll/signal_x86_64.c
+-@@ -2520,6 +2520,7 @@ static NTSTATUS call_stack_handlers( EXCEPTION_RECORD *rec, CONTEXT *orig_contex
+- return STATUS_UNHANDLED_EXCEPTION;
+- }
+-
+-+NTSTATUS WINAPI __syscall_NtContinue( CONTEXT *context, BOOLEAN alert );
+-
+- static NTSTATUS raise_exception( EXCEPTION_RECORD *rec, CONTEXT *context, BOOL first_chance )
+- {
+-@@ -2582,7 +2583,7 @@ static NTSTATUS raise_exception( EXCEPTION_RECORD *rec, CONTEXT *context, BOOL f
+- }
+-
+- done:
+-- return NtSetContextThread( GetCurrentThread(), context );
+-+ return __syscall_NtContinue( context, FALSE );
+- }
+-
+-
+---
+-2.23.0
+-
+diff --git a/patches/ntdll-NtContinue/definition b/patches/ntdll-NtContinue/definition
+deleted file mode 100644
+index 06c2ebf9e..000000000
+--- a/patches/ntdll-NtContinue/definition
++++ /dev/null
+@@ -1,3 +0,0 @@
+-Fixes: [31910] Add stub for NtContinue
+-Fixes: [45572] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of NtContinue)
+-Depends: winebuild-Fake_Dlls
+\ No newline at end of file
+diff --git a/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch b/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch
+index 4ae5fcdfa..0a39d4355 100644
+--- a/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch
++++ b/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch
+@@ -1,4 +1,4 @@
+-From 20298be5a42af52be27c56f88ad6a8a0304b55b6 Mon Sep 17 00:00:00 2001
++From cd04d1910294b035bb3858b3ef1bb295aec3a732 Mon Sep 17 00:00:00 2001
+ From: Paul Gofman <pgofman(a)codeweavers.com>
+ Date: Mon, 30 Dec 2019 13:27:53 +0300
+ Subject: [PATCH] ntdll: Support x86_64 syscall emulation.
+@@ -15,7 +15,7 @@ is used for trapping syscalls.
+ 3 files changed, 119 insertions(+), 2 deletions(-)
+
+ diff --git a/configure.ac b/configure.ac
+-index e3d63ed7501..2fbec4129df 100644
++index e61a98455c3..4adeb52d225 100644
+ --- a/configure.ac
+ +++ b/configure.ac
+ @@ -464,6 +464,7 @@ AC_CHECK_HEADERS(\
+@@ -27,7 +27,7 @@ index e3d63ed7501..2fbec4129df 100644
+ linux/types.h \
+ linux/ucdrom.h \
+ diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
+-index 0ccc7cbceb6..149ad1bf5e7 100644
++index dd8b45fa907..a5612abf2b1 100644
+ --- a/dlls/ntdll/signal_x86_64.c
+ +++ b/dlls/ntdll/signal_x86_64.c
+ @@ -24,6 +24,7 @@
+@@ -61,8 +61,8 @@ index 0ccc7cbceb6..149ad1bf5e7 100644
+ typedef struct _SCOPE_TABLE
+ {
+ ULONG Count;
+-@@ -2797,6 +2807,104 @@ static void usr1_handler( int signal, siginfo_t *siginfo, void *ucontext )
+- restore_context( &context, ucontext );
++@@ -2480,6 +2490,104 @@ static inline DWORD is_privileged_instr( CONTEXT *context )
++ return 0;
+ }
+
+ +extern unsigned int __wine_nb_syscalls;
+@@ -165,8 +165,8 @@ index 0ccc7cbceb6..149ad1bf5e7 100644
+ +}
+
+ /***********************************************************************
+- * __wine_set_signal_handler (NTDLL.@)
+-@@ -2842,6 +2950,9 @@ void signal_init_process(void)
++ * handle_interrupt
++@@ -2793,6 +2901,9 @@ void signal_init_process(void)
+ sig_act.sa_sigaction = trap_handler;
+ if (sigaction( SIGTRAP, &sig_act, NULL ) == -1) goto error;
+ #endif
+diff --git a/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch b/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch
+index d6e9a6824..db0631234 100644
+--- a/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch
++++ b/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch
+@@ -1,4 +1,4 @@
+-From 46968c583a30476a86463530d0047699e64529b5 Mon Sep 17 00:00:00 2001
++From bd60a4308f3ec1df20328887335b4c95f9be215d Mon Sep 17 00:00:00 2001
+ From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+ Date: Sat, 4 Oct 2014 02:53:22 +0200
+ Subject: [PATCH] ntdll: Setup a temporary signal handler during process
+@@ -27,10 +27,10 @@ index 65c65cc02d8..63a4b597872 100644
+ extern void debug_init(void) DECLSPEC_HIDDEN;
+ extern TEB *thread_init( SIZE_T *info_size, BOOL *suspend ) DECLSPEC_HIDDEN;
+ diff --git a/dlls/ntdll/signal_arm.c b/dlls/ntdll/signal_arm.c
+-index 8ff9f66d3f0..44e3d2df523 100644
++index a09848449a6..c6f7231fec6 100644
+ --- a/dlls/ntdll/signal_arm.c
+ +++ b/dlls/ntdll/signal_arm.c
+-@@ -773,6 +773,12 @@ void signal_init_process(void)
++@@ -792,6 +792,12 @@ void signal_init_process(void)
+ exit(1);
+ }
+
+@@ -44,11 +44,11 @@ index 8ff9f66d3f0..44e3d2df523 100644
+ /***********************************************************************
+ * RtlUnwind (NTDLL.@)
+ diff --git a/dlls/ntdll/signal_arm64.c b/dlls/ntdll/signal_arm64.c
+-index 104ffbf6df9..e7c6abd0046 100644
++index a9a58a2e7ad..a9c6614794e 100644
+ --- a/dlls/ntdll/signal_arm64.c
+ +++ b/dlls/ntdll/signal_arm64.c
+-@@ -1100,6 +1100,12 @@ int CDECL __wine_set_signal_handler(unsigned int sig, wine_signal_handler wsh)
+- return 0;
++@@ -1047,6 +1047,12 @@ static void usr2_handler( int signal, siginfo_t *siginfo, void *sigcontext )
++ restore_context( context, sigcontext );
+ }
+
+ +/**********************************************************************
+@@ -61,10 +61,10 @@ index 104ffbf6df9..e7c6abd0046 100644
+ /**********************************************************************
+ * signal_init_process
+ diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
+-index 1b0b9352a87..0fe9f7a3c84 100644
++index 83868f25121..b048b2bc688 100644
+ --- a/dlls/ntdll/signal_i386.c
+ +++ b/dlls/ntdll/signal_i386.c
+-@@ -1621,6 +1621,31 @@ static BOOL handle_interrupt( unsigned int interrupt, ucontext_t *sigcontext, st
++@@ -1575,6 +1575,31 @@ static BOOL handle_interrupt( unsigned int interrupt, ucontext_t *sigcontext, st
+ }
+
+
+@@ -96,7 +96,7 @@ index 1b0b9352a87..0fe9f7a3c84 100644
+ /**********************************************************************
+ * segv_handler
+ *
+-@@ -1948,6 +1973,34 @@ void signal_init_process(void)
++@@ -1883,6 +1908,34 @@ void signal_init_process(void)
+ exit(1);
+ }
+
+@@ -132,11 +132,11 @@ index 1b0b9352a87..0fe9f7a3c84 100644
+ /*******************************************************************
+ * RtlUnwind (NTDLL.@)
+ diff --git a/dlls/ntdll/signal_powerpc.c b/dlls/ntdll/signal_powerpc.c
+-index 7e73322cbeb..07f0b89f30a 100644
++index 879b2b58c49..f17d6267102 100644
+ --- a/dlls/ntdll/signal_powerpc.c
+ +++ b/dlls/ntdll/signal_powerpc.c
+-@@ -637,6 +637,12 @@ int CDECL __wine_set_signal_handler(unsigned int sig, wine_signal_handler wsh)
+- return 0;
++@@ -634,6 +634,12 @@ static void quit_handler( int signal, siginfo_t *siginfo, void *sigcontext )
++ unix_funcs->abort_thread(0);
+ }
+
+ +/**********************************************************************
+@@ -147,12 +147,12 @@ index 7e73322cbeb..07f0b89f30a 100644
+ +}
+
+ /**********************************************************************
+- * signal_init_process
++ * usr1_handler
+ diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
+-index 0ccc7cbceb6..dc8a1a987c5 100644
++index c6b0fbf618d..bb481ba1b81 100644
+ --- a/dlls/ntdll/signal_x86_64.c
+ +++ b/dlls/ntdll/signal_x86_64.c
+-@@ -2849,6 +2849,12 @@ void signal_init_process(void)
++@@ -2777,6 +2777,12 @@ void signal_init_process(void)
+ exit(1);
+ }
+
+@@ -166,7 +166,7 @@ index 0ccc7cbceb6..dc8a1a987c5 100644
+ static ULONG64 get_int_reg( CONTEXT *context, int reg )
+ {
+ diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
+-index 8918b39a9c5..a2f5df1b1c2 100644
++index d045466f6d2..49daa33ca58 100644
+ --- a/dlls/ntdll/thread.c
+ +++ b/dlls/ntdll/thread.c
+ @@ -186,6 +186,7 @@ TEB *thread_init( SIZE_T *info_size, BOOL *suspend )
+diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh
+index c5ff8c0b3..9c2ce4ce0 100755
+--- a/patches/patchinstall.sh
++++ b/patches/patchinstall.sh
+@@ -52,7 +52,7 @@ usage()
+ # Get the upstream commit sha
+ upstream_commit()
+ {
+- echo "3cc3b445752902e07231900befc296f74ad6576e"
++ echo "17529582402ebe27ef975fc7dcb8353f4f95e629"
+ }
+
+ # Show version information
+@@ -183,7 +183,6 @@ patch_enable_all ()
+ enable_ntdll_Junction_Points="$1"
+ enable_ntdll_Manifest_Range="$1"
+ enable_ntdll_NtAccessCheck="$1"
+- enable_ntdll_NtContinue="$1"
+ enable_ntdll_NtDevicePath="$1"
+ enable_ntdll_NtQueryEaFile="$1"
+ enable_ntdll_NtQuerySection="$1"
+@@ -648,9 +647,6 @@ patch_enable ()
+ ntdll-NtAccessCheck)
+ enable_ntdll_NtAccessCheck="$2"
+ ;;
+- ntdll-NtContinue)
+- enable_ntdll_NtContinue="$2"
+- ;;
+ ntdll-NtDevicePath)
+ enable_ntdll_NtDevicePath="$2"
+ ;;
+@@ -1672,6 +1668,17 @@ if test "$enable_ntdll_Syscall_Emulation" -eq 1; then
+ enable_winebuild_Fake_Dlls=1
+ fi
+
++if test "$enable_winebuild_Fake_Dlls" -eq 1; then
++ if test "$enable_ntdll_WRITECOPY" -gt 1; then
++ abort "Patchset ntdll-WRITECOPY disabled, but winebuild-Fake_Dlls depends on that."
++ fi
++ if test "$enable_ws2_32_WSACleanup" -gt 1; then
++ abort "Patchset ws2_32-WSACleanup disabled, but winebuild-Fake_Dlls depends on that."
++ fi
++ enable_ntdll_WRITECOPY=1
++ enable_ws2_32_WSACleanup=1
++fi
++
+ if test "$enable_ntdll_NtQueryEaFile" -eq 1; then
+ if test "$enable_ntdll_Junction_Points" -gt 1; then
+ abort "Patchset ntdll-Junction_Points disabled, but ntdll-NtQueryEaFile depends on that."
+@@ -1686,24 +1693,6 @@ if test "$enable_ntdll_NtDevicePath" -eq 1; then
+ enable_ntdll_Pipe_SpecialCharacters=1
+ fi
+
+-if test "$enable_ntdll_NtContinue" -eq 1; then
+- if test "$enable_winebuild_Fake_Dlls" -gt 1; then
+- abort "Patchset winebuild-Fake_Dlls disabled, but ntdll-NtContinue depends on that."
+- fi
+- enable_winebuild_Fake_Dlls=1
+-fi
+-
+-if test "$enable_winebuild_Fake_Dlls" -eq 1; then
+- if test "$enable_ntdll_WRITECOPY" -gt 1; then
+- abort "Patchset ntdll-WRITECOPY disabled, but winebuild-Fake_Dlls depends on that."
+- fi
+- if test "$enable_ws2_32_WSACleanup" -gt 1; then
+- abort "Patchset ws2_32-WSACleanup disabled, but winebuild-Fake_Dlls depends on that."
+- fi
+- enable_ntdll_WRITECOPY=1
+- enable_ws2_32_WSACleanup=1
+-fi
+-
+ if test "$enable_ntdll_Hide_Wine_Exports" -eq 1; then
+ if test "$enable_advapi32_Token_Integrity_Level" -gt 1; then
+ abort "Patchset advapi32-Token_Integrity_Level disabled, but ntdll-Hide_Wine_Exports depends on that."
+@@ -3977,98 +3966,6 @@ if test "$enable_ntdll_NtAccessCheck" -eq 1; then
+ ) >> "$patchlist"
+ fi
+
+-# Patchset ws2_32-WSACleanup
+-# |
+-# | This patchset fixes the following Wine bugs:
+-# | * [#18670] Properly close sockets when WSACleanup is called
+-# |
+-# | Modified files:
+-# | * dlls/ntdll/ntdll.spec, dlls/ntdll/server.c, dlls/ntdll/unix/loader.c, dlls/ntdll/unix/server.c,
+-# | dlls/ntdll/unix/unix_private.h, dlls/ntdll/unixlib.h, dlls/ws2_32/socket.c, dlls/ws2_32/tests/sock.c,
+-# | include/wine/server.h, server/protocol.def, server/sock.c
+-# |
+-if test "$enable_ws2_32_WSACleanup" -eq 1; then
+- patch_apply ws2_32-WSACleanup/0001-ws2_32-Proper-WSACleanup-implementation-using-winese.patch
+- patch_apply ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch
+- (
+- printf '%s\n' '+ { "Matt Durgavich", "ws2_32: Proper WSACleanup implementation using wineserver function.", 2 },';
+- printf '%s\n' '+ { "Sebastian Lackner", "ws2_32: Invalidate client-side file descriptor cache in WSACleanup.", 1 },';
+- ) >> "$patchlist"
+-fi
+-
+-# Patchset winebuild-Fake_Dlls
+-# |
+-# | This patchset has the following (direct or indirect) dependencies:
+-# | * ntdll-WRITECOPY, ws2_32-WSACleanup
+-# |
+-# | This patchset fixes the following Wine bugs:
+-# | * [#21232] Chromium-based browser engines (Chrome, Opera, Comodo Dragon, SRWare Iron) crash on startup unless '--no-
+-# | sandbox' is used (native API sandboxing/hooking scheme incompatible with Wine)
+-# | * [#42741] StarCraft I: 1.18 PTR fails to initialize ClientSdk.dll
+-# | * [#45349] Multiple applications and games crash due to missing support for 64-bit syscall thunks (StreetFighter V)
+-# | * [#45573] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of syscall return instructions)
+-# | * [#45650] chromium 32-bit sandbox expects different syscall thunks depending on Windows version
+-# |
+-# | Modified files:
+-# | * dlls/dbghelp/cpu_i386.c, dlls/kernel32/tests/loader.c, dlls/krnl386.exe16/kernel.c,
+-# | dlls/krnl386.exe16/kernel16_private.h, dlls/krnl386.exe16/ne_module.c, dlls/krnl386.exe16/ne_segment.c,
+-# | dlls/krnl386.exe16/task.c, dlls/krnl386.exe16/thunk.c, dlls/krnl386.exe16/wowthunk.c, dlls/ntdll/actctx.c,
+-# | dlls/ntdll/directory.c, dlls/ntdll/loader.c, dlls/ntdll/locale.c, dlls/ntdll/ntdll_misc.h, dlls/ntdll/path.c,
+-# | dlls/ntdll/process.c, dlls/ntdll/signal_i386.c, dlls/ntdll/tests/exception.c, dlls/ntdll/thread.c,
+-# | dlls/ntdll/unix/thread.c, dlls/ntdll/unix/unix_private.h, dlls/ntdll/unix/virtual.c, dlls/ntdll/unixlib.h,
+-# | dlls/system.drv16/system.c, dlls/toolhelp.dll16/toolhelp.c, dlls/user.exe16/message.c, dlls/user.exe16/user.c,
+-# | dlls/user.exe16/window.c, include/winternl.h, libs/wine/loader.c, server/mapping.c, tools/winebuild/build.h,
+-# | tools/winebuild/import.c, tools/winebuild/parser.c, tools/winebuild/relay.c, tools/winebuild/res32.c,
+-# | tools/winebuild/spec16.c, tools/winebuild/spec32.c, tools/winebuild/utils.c
+-# |
+-if test "$enable_winebuild_Fake_Dlls" -eq 1; then
+- patch_apply winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch
+- patch_apply winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch
+- patch_apply winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
+- patch_apply winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch
+- patch_apply winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch
+- patch_apply winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch
+- patch_apply winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch
+- patch_apply winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch
+- patch_apply winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch
+- patch_apply winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch
+- patch_apply winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch
+- (
+- printf '%s\n' '+ { "Michael Müller", "kernel32/tests: Add basic tests for fake dlls.", 1 },';
+- printf '%s\n' '+ { "Sebastian Lackner", "krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit stack address.", 1 },';
+- printf '%s\n' '+ { "Michael Müller", "winebuild: Generate syscall thunks for ntdll exports.", 1 },';
+- printf '%s\n' '+ { "Michael Müller", "winebuild: Use multipass label system to generate fake dlls.", 1 },';
+- printf '%s\n' '+ { "Michael Müller", "winebuild: Add stub functions in fake dlls.", 1 },';
+- printf '%s\n' '+ { "Michael Müller", "winebuild: Add syscall thunks in fake dlls.", 1 },';
+- printf '%s\n' '+ { "Michael Müller", "winebuild: Fix size of relocation information in fake dlls.", 1 },';
+- printf '%s\n' '+ { "Michael Müller", "winebuild: Try to make sure RVA matches between fake and builtin DLLs.", 1 },';
+- printf '%s\n' '+ { "Michael Müller", "libs/wine: Use same file alignment for fake and builtin DLLs.", 1 },';
+- printf '%s\n' '+ { "Michael Müller", "tools/winebuild: Add syscall thunks for 64 bit.", 1 },';
+- printf '%s\n' '+ { "Paul Gofman", "ntdll: Call NtOpenFile through syscall thunk.", 1 },';
+- ) >> "$patchlist"
+-fi
+-
+-# Patchset ntdll-NtContinue
+-# |
+-# | This patchset has the following (direct or indirect) dependencies:
+-# | * ntdll-WRITECOPY, ws2_32-WSACleanup, winebuild-Fake_Dlls
+-# |
+-# | This patchset fixes the following Wine bugs:
+-# | * [#31910] Add stub for NtContinue
+-# | * [#45572] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of NtContinue)
+-# |
+-# | Modified files:
+-# | * dlls/ntdll/exception.c, dlls/ntdll/ntdll.spec, dlls/ntdll/signal_i386.c, dlls/ntdll/signal_x86_64.c
+-# |
+-if test "$enable_ntdll_NtContinue" -eq 1; then
+- patch_apply ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch
+- patch_apply ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch
+- (
+- printf '%s\n' '+ { "Michael Müller", "ntdll: Add stub for NtContinue.", 1 },';
+- printf '%s\n' '+ { "Andrew Wesie", "ntdll: Use NtContinue to continue execution after exceptions.", 1 },';
+- ) >> "$patchlist"
+-fi
+-
+ # Patchset ntdll-Pipe_SpecialCharacters
+ # |
+ # | This patchset fixes the following Wine bugs:
+@@ -4213,6 +4110,77 @@ if test "$enable_ntdll_Status_Mapping" -eq 1; then
+ ) >> "$patchlist"
+ fi
+
++# Patchset ws2_32-WSACleanup
++# |
++# | This patchset fixes the following Wine bugs:
++# | * [#18670] Properly close sockets when WSACleanup is called
++# |
++# | Modified files:
++# | * dlls/ntdll/ntdll.spec, dlls/ntdll/server.c, dlls/ntdll/unix/loader.c, dlls/ntdll/unix/server.c,
++# | dlls/ntdll/unix/unix_private.h, dlls/ntdll/unixlib.h, dlls/ws2_32/socket.c, dlls/ws2_32/tests/sock.c,
++# | include/wine/server.h, server/protocol.def, server/sock.c
++# |
++if test "$enable_ws2_32_WSACleanup" -eq 1; then
++ patch_apply ws2_32-WSACleanup/0001-ws2_32-Proper-WSACleanup-implementation-using-winese.patch
++ patch_apply ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch
++ (
++ printf '%s\n' '+ { "Matt Durgavich", "ws2_32: Proper WSACleanup implementation using wineserver function.", 2 },';
++ printf '%s\n' '+ { "Sebastian Lackner", "ws2_32: Invalidate client-side file descriptor cache in WSACleanup.", 1 },';
++ ) >> "$patchlist"
++fi
++
++# Patchset winebuild-Fake_Dlls
++# |
++# | This patchset has the following (direct or indirect) dependencies:
++# | * ntdll-WRITECOPY, ws2_32-WSACleanup
++# |
++# | This patchset fixes the following Wine bugs:
++# | * [#21232] Chromium-based browser engines (Chrome, Opera, Comodo Dragon, SRWare Iron) crash on startup unless '--no-
++# | sandbox' is used (native API sandboxing/hooking scheme incompatible with Wine)
++# | * [#42741] StarCraft I: 1.18 PTR fails to initialize ClientSdk.dll
++# | * [#45349] Multiple applications and games crash due to missing support for 64-bit syscall thunks (StreetFighter V)
++# | * [#45573] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of syscall return instructions)
++# | * [#45650] chromium 32-bit sandbox expects different syscall thunks depending on Windows version
++# |
++# | Modified files:
++# | * dlls/dbghelp/cpu_i386.c, dlls/kernel32/tests/loader.c, dlls/krnl386.exe16/kernel.c,
++# | dlls/krnl386.exe16/kernel16_private.h, dlls/krnl386.exe16/ne_module.c, dlls/krnl386.exe16/ne_segment.c,
++# | dlls/krnl386.exe16/task.c, dlls/krnl386.exe16/thunk.c, dlls/krnl386.exe16/wowthunk.c, dlls/ntdll/actctx.c,
++# | dlls/ntdll/directory.c, dlls/ntdll/loader.c, dlls/ntdll/locale.c, dlls/ntdll/ntdll_misc.h, dlls/ntdll/path.c,
++# | dlls/ntdll/process.c, dlls/ntdll/signal_i386.c, dlls/ntdll/tests/exception.c, dlls/ntdll/thread.c,
++# | dlls/ntdll/unix/thread.c, dlls/ntdll/unix/unix_private.h, dlls/ntdll/unix/virtual.c, dlls/ntdll/unixlib.h,
++# | dlls/system.drv16/system.c, dlls/toolhelp.dll16/toolhelp.c, dlls/user.exe16/message.c, dlls/user.exe16/user.c,
++# | dlls/user.exe16/window.c, include/winternl.h, libs/wine/loader.c, server/mapping.c, tools/winebuild/build.h,
++# | tools/winebuild/import.c, tools/winebuild/parser.c, tools/winebuild/relay.c, tools/winebuild/res32.c,
++# | tools/winebuild/spec16.c, tools/winebuild/spec32.c, tools/winebuild/utils.c
++# |
++if test "$enable_winebuild_Fake_Dlls" -eq 1; then
++ patch_apply winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch
++ patch_apply winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch
++ patch_apply winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
++ patch_apply winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch
++ patch_apply winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch
++ patch_apply winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch
++ patch_apply winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch
++ patch_apply winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch
++ patch_apply winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch
++ patch_apply winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch
++ patch_apply winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch
++ (
++ printf '%s\n' '+ { "Michael Müller", "kernel32/tests: Add basic tests for fake dlls.", 1 },';
++ printf '%s\n' '+ { "Sebastian Lackner", "krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit stack address.", 1 },';
++ printf '%s\n' '+ { "Michael Müller", "winebuild: Generate syscall thunks for ntdll exports.", 1 },';
++ printf '%s\n' '+ { "Michael Müller", "winebuild: Use multipass label system to generate fake dlls.", 1 },';
++ printf '%s\n' '+ { "Michael Müller", "winebuild: Add stub functions in fake dlls.", 1 },';
++ printf '%s\n' '+ { "Michael Müller", "winebuild: Add syscall thunks in fake dlls.", 1 },';
++ printf '%s\n' '+ { "Michael Müller", "winebuild: Fix size of relocation information in fake dlls.", 1 },';
++ printf '%s\n' '+ { "Michael Müller", "winebuild: Try to make sure RVA matches between fake and builtin DLLs.", 1 },';
++ printf '%s\n' '+ { "Michael Müller", "libs/wine: Use same file alignment for fake and builtin DLLs.", 1 },';
++ printf '%s\n' '+ { "Michael Müller", "tools/winebuild: Add syscall thunks for 64 bit.", 1 },';
++ printf '%s\n' '+ { "Paul Gofman", "ntdll: Call NtOpenFile through syscall thunk.", 1 },';
++ ) >> "$patchlist"
++fi
++
+ # Patchset ntdll-Syscall_Emulation
+ # |
+ # | This patchset has the following (direct or indirect) dependencies:
+diff --git a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
+index 751b497da..684c28e16 100644
+--- a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
++++ b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
+@@ -1,4 +1,4 @@
+-From 1fec139d96f32869fc0c8d15219fff493d9951d8 Mon Sep 17 00:00:00 2001
++From e60eb454ecfb4c043a585c1ecd2970c92be1c664 Mon Sep 17 00:00:00 2001
+ From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+ Date: Thu, 11 May 2017 05:32:55 +0200
+ Subject: [PATCH] winebuild: Generate syscall thunks for ntdll exports.
+@@ -22,7 +22,7 @@ Based on a patch by Erich E. Hoover.
+ 14 files changed, 214 insertions(+), 32 deletions(-)
+
+ diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
+-index 45d32399adf..b42cff8bcd4 100644
++index ffbc9fabb23..a633099877d 100644
+ --- a/dlls/ntdll/loader.c
+ +++ b/dlls/ntdll/loader.c
+ @@ -3810,6 +3810,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
+@@ -33,7 +33,7 @@ index 45d32399adf..b42cff8bcd4 100644
+
+ /******************************************************************
+ * LdrInitializeThunk (NTDLL.@)
+-@@ -3827,6 +3828,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
++@@ -3826,6 +3827,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
+ WINE_MODREF *wm;
+ LPCWSTR load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer;
+
+@@ -43,19 +43,19 @@ index 45d32399adf..b42cff8bcd4 100644
+
+ if (process_detaching) return;
+ diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
+-index be88d9bf3c7..84ab7991886 100644
++index 3be6342a945..85329be4f42 100644
+ --- a/dlls/ntdll/signal_i386.c
+ +++ b/dlls/ntdll/signal_i386.c
+-@@ -448,6 +448,8 @@ static ULONG first_ldt_entry = 32;
++@@ -444,6 +444,8 @@ struct stack_layout
+
+- static wine_signal_handler handlers[256];
++ static ULONG first_ldt_entry = 32;
+
+ +extern NTSTATUS WINAPI __syscall_NtGetContextThread( HANDLE handle, CONTEXT *context );
+ +
+ enum i386_trap_code
+ {
+ TRAP_x86_UNKNOWN = -1, /* Unknown fault (TRAP_sig not defined) */
+-@@ -1159,7 +1161,7 @@ NTSTATUS CDECL DECLSPEC_HIDDEN __regs_NtGetContextThread( DWORD edi, DWORD esi,
++@@ -1127,7 +1129,7 @@ NTSTATUS CDECL DECLSPEC_HIDDEN __regs_NtGetContextThread( DWORD edi, DWORD esi,
+ {
+ context->Ebp = ebp;
+ context->Esp = (DWORD)&retaddr;
+@@ -78,7 +78,7 @@ index a5e6faa461a..51938bf84cc 100644
+ ok( context.SegCs == LOWORD(expect.SegCs), "wrong SegCs %08x/%08x\n", context.SegCs, expect.SegCs );
+ ok( context.SegDs == LOWORD(expect.SegDs), "wrong SegDs %08x/%08x\n", context.SegDs, expect.SegDs );
+ diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
+-index 79d13a01a86..94eb6d1252d 100644
++index 49daa33ca58..17b5d40215a 100644
+ --- a/dlls/ntdll/thread.c
+ +++ b/dlls/ntdll/thread.c
+ @@ -173,6 +173,7 @@ int __cdecl __wine_dbg_output( const char *str )
+@@ -99,10 +99,10 @@ index 79d13a01a86..94eb6d1252d 100644
+ peb = teb->Peb;
+ peb->FastPebLock = &peb_lock;
+ diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c
+-index b6458da61ad..a158ec20a6a 100644
++index d4b7a51a627..bdc87e4b9cf 100644
+ --- a/dlls/ntdll/unix/thread.c
+ +++ b/dlls/ntdll/unix/thread.c
+-@@ -83,7 +83,7 @@ static void pthread_exit_wrapper( int status )
++@@ -85,7 +85,7 @@ static void pthread_exit_wrapper( int status )
+ * init_threading
+ */
+ TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size, BOOL *suspend,
+@@ -111,7 +111,7 @@ index b6458da61ad..a158ec20a6a 100644
+ {
+ TEB *teb;
+ SIZE_T info_size;
+-@@ -95,6 +95,7 @@ TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZ
++@@ -97,6 +97,7 @@ TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZ
+ nb_threads = nb_threads_ptr;
+
+ teb = virtual_alloc_first_teb();
+@@ -120,10 +120,10 @@ index b6458da61ad..a158ec20a6a 100644
+ thread_data->request_fd = -1;
+ thread_data->reply_fd = -1;
+ diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
+-index 880e3aacf33..6c7b961e95a 100644
++index 19104f0f5cc..bdf8bc99e3f 100644
+ --- a/dlls/ntdll/unix/unix_private.h
+ +++ b/dlls/ntdll/unix/unix_private.h
+-@@ -96,7 +96,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE
++@@ -101,7 +101,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE
+ extern void CDECL server_init_process_done(void) DECLSPEC_HIDDEN;
+ extern TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size,
+ BOOL *suspend, unsigned int *cpus, BOOL *wow64,
+@@ -133,19 +133,19 @@ index 880e3aacf33..6c7b961e95a 100644
+ extern void CDECL DECLSPEC_NORETURN abort_thread( int status ) DECLSPEC_HIDDEN;
+ extern void CDECL DECLSPEC_NORETURN exit_thread( int status ) DECLSPEC_HIDDEN;
+ diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
+-index 83c9f3a163b..63728b1c071 100644
++index 6a751993421..4e39ed53786 100644
+ --- a/dlls/ntdll/unixlib.h
+ +++ b/dlls/ntdll/unixlib.h
+ @@ -28,7 +28,7 @@ struct ldt_copy;
+ struct msghdr;
+
+ /* increment this when you change the function table */
+--#define NTDLL_UNIXLIB_VERSION 31
+-+#define NTDLL_UNIXLIB_VERSION 32
++-#define NTDLL_UNIXLIB_VERSION 33
+++#define NTDLL_UNIXLIB_VERSION 34
+
+ struct unix_funcs
+ {
+-@@ -172,7 +172,7 @@ struct unix_funcs
++@@ -174,7 +174,7 @@ struct unix_funcs
+
+ /* thread/process functions */
+ TEB * (CDECL *init_threading)( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size,
+diff --git a/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch b/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch
+index 25c315648..0861f99c0 100644
+--- a/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch
++++ b/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch
+@@ -1,4 +1,4 @@
+-From 1bb20ff5903d8d5e81e8a2b7b22bf67b189b16ec Mon Sep 17 00:00:00 2001
++From 20661308a50202350a3a2887cbd558b1e931aad1 Mon Sep 17 00:00:00 2001
+ From: Sebastian Lackner <sebastian(a)fds-team.de>
+ Date: Sun, 6 Sep 2015 12:41:17 +0200
+ Subject: [PATCH] ws2_32: Invalidate client-side file descriptor cache in
+@@ -17,7 +17,7 @@ Subject: [PATCH] ws2_32: Invalidate client-side file descriptor cache in
+ 9 files changed, 36 insertions(+), 5 deletions(-)
+
+ diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
+-index c4d78128758..3d6c8850086 100644
++index ce5c580bd54..279845ae830 100644
+ --- a/dlls/ntdll/ntdll.spec
+ +++ b/dlls/ntdll/ntdll.spec
+ @@ -1576,6 +1576,7 @@
+@@ -48,10 +48,10 @@ index 6fb86a68d6f..2f95e190963 100644
+ /***********************************************************************
+ * server_init_process
+ diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
+-index b5ee692024c..d8827b147df 100644
++index 618e3d6adb3..bdda739897b 100644
+ --- a/dlls/ntdll/unix/loader.c
+ +++ b/dlls/ntdll/unix/loader.c
+-@@ -1074,6 +1074,7 @@ static struct unix_funcs unix_funcs =
++@@ -1076,6 +1076,7 @@ static struct unix_funcs unix_funcs =
+ server_select,
+ server_wait,
+ server_send_fd,
+@@ -91,10 +91,10 @@ index fb3f98dd579..0754928cfe8 100644
+ /***********************************************************************
+ * server_get_unix_fd
+ diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
+-index a422fd825ed..880e3aacf33 100644
++index 03b92f9e912..19104f0f5cc 100644
+ --- a/dlls/ntdll/unix/unix_private.h
+ +++ b/dlls/ntdll/unix/unix_private.h
+-@@ -84,6 +84,7 @@ extern unsigned int CDECL server_select( const select_op_t *select_op, data_size
++@@ -89,6 +89,7 @@ extern unsigned int CDECL server_select( const select_op_t *select_op, data_size
+ extern unsigned int CDECL server_wait( const select_op_t *select_op, data_size_t size, UINT flags,
+ const LARGE_INTEGER *timeout ) DECLSPEC_HIDDEN;
+ extern void CDECL server_send_fd( int fd ) DECLSPEC_HIDDEN;
+@@ -103,19 +103,19 @@ index a422fd825ed..880e3aacf33 100644
+ int *needs_close, enum server_fd_type *type,
+ unsigned int *options ) DECLSPEC_HIDDEN;
+ diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
+-index 58bdad19397..83c9f3a163b 100644
++index 017a0a71b3f..6a751993421 100644
+ --- a/dlls/ntdll/unixlib.h
+ +++ b/dlls/ntdll/unixlib.h
+ @@ -28,7 +28,7 @@ struct ldt_copy;
+ struct msghdr;
+
+ /* increment this when you change the function table */
+--#define NTDLL_UNIXLIB_VERSION 30
+-+#define NTDLL_UNIXLIB_VERSION 31
++-#define NTDLL_UNIXLIB_VERSION 32
+++#define NTDLL_UNIXLIB_VERSION 33
+
+ struct unix_funcs
+ {
+-@@ -187,6 +187,7 @@ struct unix_funcs
++@@ -189,6 +189,7 @@ struct unix_funcs
+ unsigned int (CDECL *server_wait)( const select_op_t *select_op, data_size_t size, UINT flags,
+ const LARGE_INTEGER *timeout );
+ void (CDECL *server_send_fd)( int fd );
+diff --git a/staging/upstream-commit b/staging/upstream-commit
+index f51939b28..8b37e5310 100644
+--- a/staging/upstream-commit
++++ b/staging/upstream-commit
+@@ -1 +1 @@
+-3cc3b445752902e07231900befc296f74ad6576e
++17529582402ebe27ef975fc7dcb8353f4f95e629
diff --git a/wine-staging-5.10-ntdll-arm.patch b/wine-staging-5.10-ntdll-arm1.patch
similarity index 100%
rename from wine-staging-5.10-ntdll-arm.patch
rename to wine-staging-5.10-ntdll-arm1.patch
diff --git a/wine.spec b/wine.spec
index a2d6c1f..4308871 100644
--- a/wine.spec
+++ b/wine.spec
@@ -76,7 +76,8 @@ Source150: wine.appdata.xml
# wine bugs
Patch100: wine-staging-5.10-ntdll.patch
-Patch101: wine-staging-5.10-ntdll-arm.patch
+Patch101: wine-staging-5.10-ntdll-arm0.patch
+Patch102: wine-staging-5.10-ntdll-arm1.patch
# desktop dir
Source200: wine.menu
@@ -695,7 +696,8 @@ This package adds the opencl driver for wine.
# setup and apply wine-staging patches
gzip -dc %{SOURCE900} | tar -xf - --strip-components=1
%patch100 -p1 -b.ntdll
-%patch101 -p1 -b.ntdll-arm
+%patch101 -p1 -b.ntdll-arm0
+%patch102 -p1 -b.ntdll-arm1
patches/patchinstall.sh DESTDIR="`pwd`" --all
commit b6dc9f8efeed3ea5f12a5c992c7c2f08e1e2d9c2
Author: Michael Cronenworth <mike(a)cchtml.com>
Date: Thu Jun 11 08:47:39 2020 -0500
Wine-staging just fixed the ARM build failure so lets add the fix
diff --git a/wine-staging-5.10-ntdll-arm.patch b/wine-staging-5.10-ntdll-arm.patch
new file mode 100644
index 0000000..56a6f4f
--- /dev/null
+++ b/wine-staging-5.10-ntdll-arm.patch
@@ -0,0 +1,950 @@
+From 5306e1df11e772fe8125fcd5857e52cf1f83430b Mon Sep 17 00:00:00 2001
+From: Paul Gofman <gofmanp(a)gmail.com>
+Date: Thu, 11 Jun 2020 15:23:12 +0300
+Subject: [PATCH] Updated winebuild-Fake_Dlls patchset.
+
+Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49357
+---
+ ...-tests-Add-basic-tests-for-fake-dlls.patch | 8 +--
+ ...-not-abuse-WOW32Reserved-field-for-1.patch | 36 ++++++-------
+ ...ate-syscall-thunks-for-ntdll-exports.patch | 53 +++++++++++--------
+ ...ltipass-label-system-to-generate-fak.patch | 10 ++--
+ ...uild-Add-stub-functions-in-fake-dlls.patch | 36 ++++++-------
+ ...uild-Add-syscall-thunks-in-fake-dlls.patch | 8 +--
+ ...ze-of-relocation-information-in-fake.patch | 4 +-
+ ...-make-sure-RVA-matches-between-fake-.patch | 10 ++--
+ ...me-file-alignment-for-fake-and-built.patch | 8 +--
+ ...ebuild-Add-syscall-thunks-for-64-bit.patch | 39 ++++++--------
+ ...all-NtOpenFile-through-syscall-thunk.patch | 32 +++++------
+ 11 files changed, 123 insertions(+), 121 deletions(-)
+
+diff --git a/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch b/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch
+index ef056cfcf..21d69fd59 100644
+--- a/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch
++++ b/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch
+@@ -1,4 +1,4 @@
+-From de68d5c0e6bd728788bbec09100ea59802b8ff13 Mon Sep 17 00:00:00 2001
++From 8b88aa45856684e63786425f72886f2ac57b3630 Mon Sep 17 00:00:00 2001
+ From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+ Date: Thu, 25 May 2017 07:02:46 +0200
+ Subject: [PATCH] kernel32/tests: Add basic tests for fake dlls.
+@@ -8,10 +8,10 @@ Subject: [PATCH] kernel32/tests: Add basic tests for fake dlls.
+ 1 file changed, 91 insertions(+)
+
+ diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
+-index 5474d543248..4e7a15970cb 100644
++index ef8c47c04f1a..efd5a25a432d 100644
+ --- a/dlls/kernel32/tests/loader.c
+ +++ b/dlls/kernel32/tests/loader.c
+-@@ -1535,6 +1535,96 @@ static void test_filenames(void)
++@@ -1572,6 +1572,96 @@ static void test_filenames(void)
+ DeleteFileA( long_path );
+ }
+
+@@ -108,7 +108,7 @@ index 5474d543248..4e7a15970cb 100644
+ /* Verify linking style of import descriptors */
+ static void test_ImportDescriptors(void)
+ {
+-@@ -3997,6 +4087,7 @@ START_TEST(loader)
++@@ -4094,6 +4184,7 @@ START_TEST(loader)
+ return;
+ }
+
+diff --git a/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch b/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch
+index 15aaa85df..ae98c2798 100644
+--- a/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch
++++ b/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch
+@@ -1,4 +1,4 @@
+-From 25d08438aba3dee16c79ce3168a4f76f39816fad Mon Sep 17 00:00:00 2001
++From 7af81866f286e60f601d1c3f9bfe8592a794d21d Mon Sep 17 00:00:00 2001
+ From: Sebastian Lackner <sebastian(a)fds-team.de>
+ Date: Tue, 16 May 2017 04:37:52 +0200
+ Subject: [PATCH] krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit
+@@ -24,7 +24,7 @@ Subject: [PATCH] krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit
+ 16 files changed, 78 insertions(+), 77 deletions(-)
+
+ diff --git a/dlls/dbghelp/cpu_i386.c b/dlls/dbghelp/cpu_i386.c
+-index fd808a0d324..7d6723977a2 100644
++index fd808a0d3248..7d6723977a29 100644
+ --- a/dlls/dbghelp/cpu_i386.c
+ +++ b/dlls/dbghelp/cpu_i386.c
+ @@ -213,16 +213,16 @@ static BOOL i386_stack_walk(struct cpu_stack_walk *csw, STACKFRAME64 *frame,
+@@ -48,7 +48,7 @@ index fd808a0d324..7d6723977a2 100644
+ }
+ next_switch = p;
+ diff --git a/dlls/krnl386.exe16/kernel.c b/dlls/krnl386.exe16/kernel.c
+-index 07a57d0d937..89ea5c042e7 100644
++index 07a57d0d9372..89ea5c042e71 100644
+ --- a/dlls/krnl386.exe16/kernel.c
+ +++ b/dlls/krnl386.exe16/kernel.c
+ @@ -47,8 +47,8 @@ static void thread_attach(void)
+@@ -72,7 +72,7 @@ index 07a57d0d937..89ea5c042e7 100644
+ }
+
+ diff --git a/dlls/krnl386.exe16/kernel16_private.h b/dlls/krnl386.exe16/kernel16_private.h
+-index f15934daa0e..9f939a9d5ba 100644
++index f15934daa0e4..9f939a9d5bac 100644
+ --- a/dlls/krnl386.exe16/kernel16_private.h
+ +++ b/dlls/krnl386.exe16/kernel16_private.h
+ @@ -169,7 +169,7 @@ extern THHOOK *pThhook DECLSPEC_HIDDEN;
+@@ -119,7 +119,7 @@ index f15934daa0e..9f939a9d5ba 100644
+
+ static inline struct kernel_thread_data *kernel_get_thread_data(void)
+ diff --git a/dlls/krnl386.exe16/ne_module.c b/dlls/krnl386.exe16/ne_module.c
+-index f1e1a14dd67..c951a18f869 100644
++index f1e1a14dd679..c951a18f8699 100644
+ --- a/dlls/krnl386.exe16/ne_module.c
+ +++ b/dlls/krnl386.exe16/ne_module.c
+ @@ -1208,7 +1208,7 @@ DWORD NE_StartTask(void)
+@@ -143,7 +143,7 @@ index f1e1a14dd67..c951a18f869 100644
+ WOWCallback16Ex( 0, WCB16_REGS, 0, NULL, (DWORD *)&context );
+ ExitThread( LOWORD(context.Eax) );
+ diff --git a/dlls/krnl386.exe16/ne_segment.c b/dlls/krnl386.exe16/ne_segment.c
+-index aa886148029..70eb3360914 100644
++index aa8861480298..70eb33609144 100644
+ --- a/dlls/krnl386.exe16/ne_segment.c
+ +++ b/dlls/krnl386.exe16/ne_segment.c
+ @@ -370,9 +370,9 @@ BOOL NE_LoadSegment( NE_MODULE *pModule, WORD segnum )
+@@ -209,7 +209,7 @@ index aa886148029..70eb3360914 100644
+ args[7] = HIWORD(dwReason);
+ args[6] = LOWORD(dwReason);
+ diff --git a/dlls/krnl386.exe16/task.c b/dlls/krnl386.exe16/task.c
+-index 39a60cb97a9..21de62c5a01 100644
++index 39a60cb97a94..21de62c5a015 100644
+ --- a/dlls/krnl386.exe16/task.c
+ +++ b/dlls/krnl386.exe16/task.c
+ @@ -624,7 +624,7 @@ void WINAPI InitTask16( CONTEXT *context )
+@@ -267,7 +267,7 @@ index 39a60cb97a9..21de62c5a01 100644
+ context->Esp = OFFSETOF(pData->old_ss_sp) - sizeof(DWORD); /*ret addr*/
+ pData->old_ss_sp = 0;
+ diff --git a/dlls/krnl386.exe16/thunk.c b/dlls/krnl386.exe16/thunk.c
+-index e913a08f88c..ecc94371488 100644
++index e913a08f88cc..ecc94371488f 100644
+ --- a/dlls/krnl386.exe16/thunk.c
+ +++ b/dlls/krnl386.exe16/thunk.c
+ @@ -429,7 +429,7 @@ void WINAPI __regs_QT_Thunk( CONTEXT *context )
+@@ -413,7 +413,7 @@ index e913a08f88c..ecc94371488 100644
+ if (OFFSETOF(frame32->frame16) > lpbuf[2])
+ {
+ diff --git a/dlls/krnl386.exe16/wowthunk.c b/dlls/krnl386.exe16/wowthunk.c
+-index 2dddbf93289..3a4b104a673 100644
++index 2dddbf932898..3a4b104a673f 100644
+ --- a/dlls/krnl386.exe16/wowthunk.c
+ +++ b/dlls/krnl386.exe16/wowthunk.c
+ @@ -127,7 +127,7 @@ static DWORD call16_handler( EXCEPTION_RECORD *record, EXCEPTION_REGISTRATION_RE
+@@ -473,7 +473,7 @@ index 2dddbf93289..3a4b104a673 100644
+ }
+ }
+ diff --git a/dlls/ntdll/unix/signal_i386.c b/dlls/ntdll/unix/signal_i386.c
+-index 2928f314358..138f56b94eb 100644
++index ac34f86a5883..55f1e2ce4b23 100644
+ --- a/dlls/ntdll/unix/signal_i386.c
+ +++ b/dlls/ntdll/unix/signal_i386.c
+ @@ -645,7 +645,7 @@ static inline void *init_handler( const ucontext_t *sigcontext )
+@@ -486,7 +486,7 @@ index 2928f314358..138f56b94eb 100644
+ return (void *)(ESP_sig(sigcontext) & ~3);
+ }
+ diff --git a/dlls/system.drv16/system.c b/dlls/system.drv16/system.c
+-index b6fd51c05f0..695ad7b6003 100644
++index b6fd51c05f01..695ad7b60039 100644
+ --- a/dlls/system.drv16/system.c
+ +++ b/dlls/system.drv16/system.c
+ @@ -70,7 +70,7 @@ static void CALLBACK SYSTEM_TimerTick( LPVOID arg, DWORD low, DWORD high )
+@@ -499,7 +499,7 @@ index b6fd51c05f0..695ad7b6003 100644
+
+ WOWCallback16Ex( 0, WCB16_REGS, 0, NULL, (DWORD *)&context );
+ diff --git a/dlls/toolhelp.dll16/toolhelp.c b/dlls/toolhelp.dll16/toolhelp.c
+-index 578d1ae7fab..1077f0b0367 100644
++index 578d1ae7faba..1077f0b03672 100644
+ --- a/dlls/toolhelp.dll16/toolhelp.c
+ +++ b/dlls/toolhelp.dll16/toolhelp.c
+ @@ -491,8 +491,8 @@ BOOL16 WINAPI TaskNext16( TASKENTRY *lpte )
+@@ -523,7 +523,7 @@ index 578d1ae7fab..1077f0b0367 100644
+ WORD user = LoadLibrary16( "USER.EXE" );
+ WORD gdi = LoadLibrary16( "GDI.EXE" );
+ diff --git a/dlls/user.exe16/message.c b/dlls/user.exe16/message.c
+-index e3ca3fd779d..fa9388ceaa1 100644
++index e3ca3fd779d3..fa9388ceaa11 100644
+ --- a/dlls/user.exe16/message.c
+ +++ b/dlls/user.exe16/message.c
+ @@ -240,11 +240,11 @@ static LRESULT call_window_proc16( HWND16 hwnd, UINT16 msg, WPARAM16 wParam, LPA
+@@ -595,7 +595,7 @@ index e3ca3fd779d..fa9388ceaa1 100644
+
+ stack16->ds = GetWindowLongPtrW( hwnd, GWLP_HINSTANCE );
+ diff --git a/dlls/user.exe16/user.c b/dlls/user.exe16/user.c
+-index 27b92793836..deec596f766 100644
++index 27b92793836a..deec596f7660 100644
+ --- a/dlls/user.exe16/user.c
+ +++ b/dlls/user.exe16/user.c
+ @@ -1394,7 +1394,7 @@ DWORD WINAPI GetTabbedTextExtent16( HDC16 hdc, LPCSTR lpstr, INT16 count,
+@@ -617,7 +617,7 @@ index 27b92793836..deec596f766 100644
+ int userPercent, gdiPercent;
+
+ diff --git a/dlls/user.exe16/window.c b/dlls/user.exe16/window.c
+-index bf86719325b..1f53bdc9540 100644
++index bf86719325b8..1f53bdc95402 100644
+ --- a/dlls/user.exe16/window.c
+ +++ b/dlls/user.exe16/window.c
+ @@ -456,7 +456,7 @@ HWND16 WINAPI GetParent16( HWND16 hwnd )
+@@ -630,10 +630,10 @@ index bf86719325b..1f53bdc9540 100644
+ /* don't use WIN_Handle32 here, we don't care about the full handle */
+ return IsWindow( HWND_32(hwnd) );
+ diff --git a/include/winternl.h b/include/winternl.h
+-index acbce20c212..68c1ae3fd82 100644
++index 87eb0d32926b..2d9f54b89d8c 100644
+ --- a/include/winternl.h
+ +++ b/include/winternl.h
+-@@ -362,7 +362,7 @@ typedef struct _TEB
++@@ -363,7 +363,7 @@ typedef struct _TEB
+ PVOID WOW32Reserved; /* 0c0/0100 */
+ ULONG CurrentLocale; /* 0c4/0108 */
+ ULONG FpSoftwareStatusRegister; /* 0c8/010c */
+@@ -643,7 +643,7 @@ index acbce20c212..68c1ae3fd82 100644
+ ACTIVATION_CONTEXT_STACK ActivationContextStack; /* 1a8/02c8 */
+ BYTE SpareBytes1[24]; /* 1bc/02e8 */
+ diff --git a/tools/winebuild/relay.c b/tools/winebuild/relay.c
+-index 29d0a74c833..01bb97e02b4 100644
++index 29d0a74c833c..01bb97e02b4c 100644
+ --- a/tools/winebuild/relay.c
+ +++ b/tools/winebuild/relay.c
+ @@ -31,7 +31,7 @@
+diff --git a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
+index 547e27f8f..a0487f91b 100644
+--- a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
++++ b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
+@@ -1,4 +1,4 @@
+-From 0c4d2573b123f2198f74292133b7a6eefa472620 Mon Sep 17 00:00:00 2001
++From d8ff827f7a94aee2bed89c620120af0a148ca81c Mon Sep 17 00:00:00 2001
+ From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+ Date: Thu, 11 May 2017 05:32:55 +0200
+ Subject: [PATCH] winebuild: Generate syscall thunks for ntdll exports.
+@@ -8,7 +8,7 @@ Based on a patch by Erich E. Hoover.
+ dlls/ntdll/loader.c | 3 +
+ dlls/ntdll/signal_i386.c | 4 +-
+ dlls/ntdll/tests/exception.c | 2 +
+- dlls/ntdll/thread.c | 3 +-
++ dlls/ntdll/thread.c | 10 +++-
+ dlls/ntdll/unix/thread.c | 3 +-
+ dlls/ntdll/unix/unix_private.h | 2 +-
+ dlls/ntdll/unixlib.h | 4 +-
+@@ -19,13 +19,13 @@ Based on a patch by Erich E. Hoover.
+ tools/winebuild/spec16.c | 22 +------
+ tools/winebuild/spec32.c | 104 +++++++++++++++++++++++++++++++++
+ tools/winebuild/utils.c | 21 +++++++
+- 14 files changed, 214 insertions(+), 32 deletions(-)
++ 14 files changed, 221 insertions(+), 32 deletions(-)
+
+ diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
+-index 0c8f05285c4..26c540050dc 100644
++index 2553b0b9d397..cac6aae2f3dd 100644
+ --- a/dlls/ntdll/loader.c
+ +++ b/dlls/ntdll/loader.c
+-@@ -3810,6 +3810,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
++@@ -4021,6 +4021,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
+ return ret;
+ }
+
+@@ -33,7 +33,7 @@ index 0c8f05285c4..26c540050dc 100644
+
+ /******************************************************************
+ * LdrInitializeThunk (NTDLL.@)
+-@@ -3826,6 +3827,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
++@@ -4038,6 +4039,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
+ WINE_MODREF *wm;
+ LPCWSTR load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer;
+
+@@ -43,7 +43,7 @@ index 0c8f05285c4..26c540050dc 100644
+
+ RtlEnterCriticalSection( &loader_section );
+ diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
+-index 21cc1b3ead4..18be5693a7d 100644
++index 21cc1b3ead40..18be5693a7d2 100644
+ --- a/dlls/ntdll/signal_i386.c
+ +++ b/dlls/ntdll/signal_i386.c
+ @@ -346,6 +346,8 @@ __ASM_STDCALL_FUNC( RtlCaptureContext, 4,
+@@ -65,7 +65,7 @@ index 21cc1b3ead4..18be5693a7d 100644
+ }
+ return unix_funcs->NtGetContextThread( handle, context );
+ diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c
+-index a5e6faa461a..51938bf84cc 100644
++index 1389a542cdee..54796476e25b 100644
+ --- a/dlls/ntdll/tests/exception.c
+ +++ b/dlls/ntdll/tests/exception.c
+ @@ -1643,6 +1643,8 @@ static void test_thread_context(void)
+@@ -78,18 +78,25 @@ index a5e6faa461a..51938bf84cc 100644
+ ok( context.SegCs == LOWORD(expect.SegCs), "wrong SegCs %08x/%08x\n", context.SegCs, expect.SegCs );
+ ok( context.SegDs == LOWORD(expect.SegDs), "wrong SegDs %08x/%08x\n", context.SegDs, expect.SegDs );
+ diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
+-index 5a6809638ae..fa10cdf1062 100644
++index ff5fe9d6226a..e93498b27ea0 100644
+ --- a/dlls/ntdll/thread.c
+ +++ b/dlls/ntdll/thread.c
+-@@ -170,6 +170,7 @@ int __cdecl __wine_dbg_output( const char *str )
++@@ -220,6 +220,14 @@ int __cdecl __wine_dbg_output( const char *str )
+ return unix_funcs->dbg_output( str );
+ }
+
+++#if defined(__i386__) || defined(__x86_64__)
+ +extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
+++#else
+++void __wine_syscall_dispatcher( void )
+++{
+++ FIXME("Syscall dispatcher is not available for this architecture.\n");
+++}
+++#endif
+
+ /***********************************************************************
+ * thread_init
+-@@ -181,7 +182,7 @@ int __cdecl __wine_dbg_output( const char *str )
++@@ -231,7 +239,7 @@ int __cdecl __wine_dbg_output( const char *str )
+ TEB *thread_init( SIZE_T *info_size, BOOL *suspend )
+ {
+ TEB *teb = unix_funcs->init_threading( &nb_threads, &__wine_ldt_copy, info_size, suspend, &server_cpus,
+@@ -99,7 +106,7 @@ index 5a6809638ae..fa10cdf1062 100644
+ peb = teb->Peb;
+ peb->FastPebLock = &peb_lock;
+ diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c
+-index 97b191e1a5b..2dbaa43e731 100644
++index 97b191e1a5b3..2dbaa43e731a 100644
+ --- a/dlls/ntdll/unix/thread.c
+ +++ b/dlls/ntdll/unix/thread.c
+ @@ -85,7 +85,7 @@ static void pthread_exit_wrapper( int status )
+@@ -120,10 +127,10 @@ index 97b191e1a5b..2dbaa43e731 100644
+ thread_data->request_fd = -1;
+ thread_data->reply_fd = -1;
+ diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
+-index 19dd216fc35..a1c48a52606 100644
++index 92a58417827b..33a551e947c2 100644
+ --- a/dlls/ntdll/unix/unix_private.h
+ +++ b/dlls/ntdll/unix/unix_private.h
+-@@ -107,7 +107,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE
++@@ -108,7 +108,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE
+ extern void CDECL server_init_process_done( void *relay ) DECLSPEC_HIDDEN;
+ extern TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size,
+ BOOL *suspend, unsigned int *cpus, BOOL *wow64,
+@@ -133,7 +140,7 @@ index 19dd216fc35..a1c48a52606 100644
+ extern void CDECL DECLSPEC_NORETURN exit_process( int status ) DECLSPEC_HIDDEN;
+ extern NTSTATUS CDECL get_thread_ldt_entry( HANDLE handle, void *data, ULONG len, ULONG *ret_len ) DECLSPEC_HIDDEN;
+ diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
+-index 4c580c49d13..4f0080db03d 100644
++index 4c580c49d139..4f0080db03d9 100644
+ --- a/dlls/ntdll/unixlib.h
+ +++ b/dlls/ntdll/unixlib.h
+ @@ -28,7 +28,7 @@ struct ldt_copy;
+@@ -155,10 +162,10 @@ index 4c580c49d13..4f0080db03d 100644
+ void (CDECL *exit_process)( int status );
+ NTSTATUS (CDECL *get_thread_ldt_entry)( HANDLE handle, void *data, ULONG len, ULONG *ret_len );
+ diff --git a/include/winternl.h b/include/winternl.h
+-index 68c1ae3fd82..f2da9157aab 100644
++index 2d9f54b89d8c..0c15a0ee6c34 100644
+ --- a/include/winternl.h
+ +++ b/include/winternl.h
+-@@ -359,7 +359,7 @@ typedef struct _TEB
++@@ -360,7 +360,7 @@ typedef struct _TEB
+ PVOID CsrClientThread; /* 03c/0070 */
+ PVOID Win32ThreadInfo; /* 040/0078 */
+ ULONG Win32ClientInfo[31]; /* 044/0080 used for user32 private data in Wine */
+@@ -168,7 +175,7 @@ index 68c1ae3fd82..f2da9157aab 100644
+ ULONG FpSoftwareStatusRegister; /* 0c8/010c */
+ PVOID SystemReserved1[54]; /* 0cc/0110 used for krnl386.exe16 private data in Wine */
+ diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h
+-index c162888a035..55d5b0b9dc2 100644
++index c162888a0356..55d5b0b9dc28 100644
+ --- a/tools/winebuild/build.h
+ +++ b/tools/winebuild/build.h
+ @@ -105,6 +105,7 @@ typedef struct
+@@ -216,7 +223,7 @@ index c162888a035..55d5b0b9dc2 100644
+
+ extern int byte_swapped;
+ diff --git a/tools/winebuild/import.c b/tools/winebuild/import.c
+-index 04ab433dd65..0c6bafed8e5 100644
++index 04ab433dd65a..0c6bafed8e54 100644
+ --- a/tools/winebuild/import.c
+ +++ b/tools/winebuild/import.c
+ @@ -531,6 +531,7 @@ static void check_undefined_forwards( DLLSPEC *spec )
+@@ -256,7 +263,7 @@ index 04ab433dd65..0c6bafed8e5 100644
+ }
+ }
+ diff --git a/tools/winebuild/parser.c b/tools/winebuild/parser.c
+-index 0f2b9c1e10a..74216f8bb6e 100644
++index 0f2b9c1e10ad..74216f8bb6e7 100644
+ --- a/tools/winebuild/parser.c
+ +++ b/tools/winebuild/parser.c
+ @@ -543,6 +543,24 @@ static const char *parse_spec_flags( DLLSPEC *spec, ORDDEF *odp )
+@@ -347,7 +354,7 @@ index 0f2b9c1e10a..74216f8bb6e 100644
+ }
+
+ diff --git a/tools/winebuild/spec16.c b/tools/winebuild/spec16.c
+-index a52c03aaa6a..15ef9a3f893 100644
++index a52c03aaa6a7..15ef9a3f8930 100644
+ --- a/tools/winebuild/spec16.c
+ +++ b/tools/winebuild/spec16.c
+ @@ -495,27 +495,6 @@ static int relay_type_compare( const void *e1, const void *e2 )
+@@ -387,7 +394,7 @@ index a52c03aaa6a..15ef9a3f893 100644
+ entry_point->u.func.nb_args = 0;
+ assert( !spec->ordinals[0] );
+ diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
+-index b1e20e0484d..22dd399cb2b 100644
++index b1e20e0484dc..22dd399cb2b4 100644
+ --- a/tools/winebuild/spec32.c
+ +++ b/tools/winebuild/spec32.c
+ @@ -374,6 +374,109 @@ static void output_relay_debug( DLLSPEC *spec )
+@@ -509,7 +516,7 @@ index b1e20e0484d..22dd399cb2b 100644
+ output_exports( spec );
+ output_imports( spec );
+ diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c
+-index 2a1fc960926..07a579004ad 100644
++index 2a1fc960926b..07a579004adc 100644
+ --- a/tools/winebuild/utils.c
+ +++ b/tools/winebuild/utils.c
+ @@ -860,6 +860,7 @@ void free_dll_spec( DLLSPEC *spec )
+diff --git a/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch b/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch
+index 6c3984f8b..d4813799e 100644
+--- a/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch
++++ b/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch
+@@ -1,4 +1,4 @@
+-From 15182deeb13e26abdb3067a77353354726ac82aa Mon Sep 17 00:00:00 2001
++From 344eb39bdfee74d4d826fa2f61a95736f0ee9823 Mon Sep 17 00:00:00 2001
+ From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+ Date: Mon, 15 May 2017 02:05:49 +0200
+ Subject: [PATCH] winebuild: Use multipass label system to generate fake dlls.
+@@ -11,7 +11,7 @@ Subject: [PATCH] winebuild: Use multipass label system to generate fake dlls.
+ 4 files changed, 181 insertions(+), 63 deletions(-)
+
+ diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h
+-index 6ee847f908c..210324406a9 100644
++index 55d5b0b9dc28..8930df408d3b 100644
+ --- a/tools/winebuild/build.h
+ +++ b/tools/winebuild/build.h
+ @@ -343,6 +343,7 @@ extern size_t input_buffer_pos;
+@@ -35,7 +35,7 @@ index 6ee847f908c..210324406a9 100644
+ /* global variables */
+
+ diff --git a/tools/winebuild/res32.c b/tools/winebuild/res32.c
+-index bd55bb2fa5c..d9329019f8a 100644
++index bd55bb2fa5c4..d9329019f8a3 100644
+ --- a/tools/winebuild/res32.c
+ +++ b/tools/winebuild/res32.c
+ @@ -539,7 +539,6 @@ void output_bin_resources( DLLSPEC *spec, unsigned int start_rva )
+@@ -47,7 +47,7 @@ index bd55bb2fa5c..d9329019f8a 100644
+ /* output the resource directories */
+
+ diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
+-index 22dd399cb2b..c38f1fe663c 100644
++index 22dd399cb2b4..c38f1fe663c7 100644
+ --- a/tools/winebuild/spec32.c
+ +++ b/tools/winebuild/spec32.c
+ @@ -844,11 +844,11 @@ void output_spec32_file( DLLSPEC *spec )
+@@ -279,7 +279,7 @@ index 22dd399cb2b..c38f1fe663c 100644
+ }
+
+ diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c
+-index 7dc61a708db..64e1fa51455 100644
++index 07a579004adc..80dec6db29ea 100644
+ --- a/tools/winebuild/utils.c
+ +++ b/tools/winebuild/utils.c
+ @@ -34,6 +34,7 @@
+diff --git a/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch b/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch
+index f96d51aee..4ac05a314 100644
+--- a/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch
++++ b/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch
+@@ -1,4 +1,4 @@
+-From 167ad04157dd746ee9395afa9505fe00cc866f9b Mon Sep 17 00:00:00 2001
++From e5fc6ee60be5dd3b80af96dcbd81adb742ba7a5d Mon Sep 17 00:00:00 2001
+ From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+ Date: Mon, 15 May 2017 16:27:56 +0200
+ Subject: [PATCH] winebuild: Add stub functions in fake dlls.
+@@ -14,10 +14,10 @@ Subject: [PATCH] winebuild: Add stub functions in fake dlls.
+ 7 files changed, 251 insertions(+), 15 deletions(-)
+
+ diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
+-index 926fa913866..902907329c0 100644
++index efd5a25a432d..182b61b731a2 100644
+ --- a/dlls/kernel32/tests/loader.c
+ +++ b/dlls/kernel32/tests/loader.c
+-@@ -1596,9 +1596,7 @@ static void test_FakeDLL(void)
++@@ -1597,9 +1597,7 @@ static void test_FakeDLL(void)
+ ok(ptr != NULL, "MapViewOfFile failed with error %u\n", GetLastError());
+
+ dir = RtlImageDirectoryEntryToData(ptr, TRUE, IMAGE_DIRECTORY_ENTRY_EXPORT, &size);
+@@ -27,7 +27,7 @@ index 926fa913866..902907329c0 100644
+
+ names = RVAToAddr(dir->AddressOfNames, ptr);
+ ordinals = RVAToAddr(dir->AddressOfNameOrdinals, ptr);
+-@@ -1627,17 +1625,20 @@ todo_wine
++@@ -1628,17 +1626,20 @@ todo_wine
+ /* check position in memory */
+ dll_rva = (DWORD_PTR)dll_func - (DWORD_PTR)module;
+ map_rva = funcs[ordinals[i]];
+@@ -48,7 +48,7 @@ index 926fa913866..902907329c0 100644
+ ok(!memcmp(map_func, dll_func, 0x20), "%s: Function content does not match!\n", func_name);
+
+ if (!strcmp(func_name, "NtSetEvent"))
+-@@ -1651,10 +1652,11 @@ todo_wine
++@@ -1652,10 +1653,11 @@ todo_wine
+ ok(event != NULL, "CreateEvent failed with error %u\n", GetLastError());
+ pNtSetEvent(event, 0);
+ ok(WaitForSingleObject(event, 0) == WAIT_OBJECT_0, "Event was not signaled\n");
+@@ -62,10 +62,10 @@ index 926fa913866..902907329c0 100644
+ CloseHandle(map);
+ CloseHandle(file);
+ diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
+-index 26c540050dc..09d3870c31a 100644
++index cac6aae2f3dd..51d989f30b45 100644
+ --- a/dlls/ntdll/loader.c
+ +++ b/dlls/ntdll/loader.c
+-@@ -3811,6 +3811,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
++@@ -4022,6 +4022,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
+ }
+
+ extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
+@@ -73,7 +73,7 @@ index 26c540050dc..09d3870c31a 100644
+
+ /******************************************************************
+ * LdrInitializeThunk (NTDLL.@)
+-@@ -3828,6 +3829,7 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
++@@ -4040,6 +4041,7 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
+ LPCWSTR load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer;
+
+ NtCurrentTeb()->WOW32Reserved = __wine_syscall_dispatcher;
+@@ -82,12 +82,12 @@ index 26c540050dc..09d3870c31a 100644
+ if (process_detaching) return;
+
+ diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
+-index fa10cdf1062..4840f527e59 100644
++index e93498b27ea0..a14e3a12ae0c 100644
+ --- a/dlls/ntdll/thread.c
+ +++ b/dlls/ntdll/thread.c
+-@@ -172,6 +172,39 @@ int __cdecl __wine_dbg_output( const char *str )
+-
+- extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
++@@ -229,6 +229,39 @@ void __wine_syscall_dispatcher( void )
++ }
++ #endif
+
+ +void *WINAPI __wine_fakedll_dispatcher( const char *module, ULONG ord )
+ +{
+@@ -125,7 +125,7 @@ index fa10cdf1062..4840f527e59 100644
+ /***********************************************************************
+ * thread_init
+ *
+-@@ -183,6 +216,7 @@ TEB *thread_init( SIZE_T *info_size, BOOL *suspend )
++@@ -240,6 +273,7 @@ TEB *thread_init( SIZE_T *info_size, BOOL *suspend )
+ {
+ TEB *teb = unix_funcs->init_threading( &nb_threads, &__wine_ldt_copy, info_size, suspend, &server_cpus,
+ &is_wow64, &server_start_time, __wine_syscall_dispatcher );
+@@ -134,10 +134,10 @@ index fa10cdf1062..4840f527e59 100644
+ peb = teb->Peb;
+ peb->FastPebLock = &peb_lock;
+ diff --git a/include/winternl.h b/include/winternl.h
+-index f2da9157aab..ce8021af503 100644
++index 0c15a0ee6c34..6da672e979e5 100644
+ --- a/include/winternl.h
+ +++ b/include/winternl.h
+-@@ -398,7 +398,7 @@ typedef struct _TEB
++@@ -399,7 +399,7 @@ typedef struct _TEB
+ PVOID Instrumentation[16]; /* f2c/16b8 */
+ PVOID WinSockData; /* f6c/1738 */
+ ULONG GdiBatchCount; /* f70/1740 */
+@@ -147,7 +147,7 @@ index f2da9157aab..ce8021af503 100644
+ PVOID ReservedForPerf; /* f7c/1750 */
+ PVOID ReservedForOle; /* f80/1758 */
+ diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h
+-index 8930df408d3..44113bad28a 100644
++index 8930df408d3b..44113bad28af 100644
+ --- a/tools/winebuild/build.h
+ +++ b/tools/winebuild/build.h
+ @@ -358,6 +358,7 @@ extern void put_word( unsigned short val );
+@@ -159,7 +159,7 @@ index 8930df408d3..44113bad28a 100644
+ extern void align_output_rva( unsigned int file_align, unsigned int rva_align );
+ extern size_t label_pos( const char *name );
+ diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
+-index c38f1fe663c..bf82ca497c0 100644
++index c38f1fe663c7..bf82ca497c0d 100644
+ --- a/tools/winebuild/spec32.c
+ +++ b/tools/winebuild/spec32.c
+ @@ -843,6 +843,163 @@ void output_spec32_file( DLLSPEC *spec )
+@@ -415,7 +415,7 @@ index c38f1fe663c..bf82ca497c0 100644
+ /* .reloc contents */
+ align_output_rva( file_align, section_align );
+ diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c
+-index 80dec6db29e..d394a1382c6 100644
++index 80dec6db29ea..d394a1382c68 100644
+ --- a/tools/winebuild/utils.c
+ +++ b/tools/winebuild/utils.c
+ @@ -549,7 +549,7 @@ size_t output_buffer_size;
+diff --git a/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch b/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch
+index 5ae2b3deb..13f46d6b0 100644
+--- a/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch
++++ b/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch
+@@ -1,4 +1,4 @@
+-From 84a9f7b8192d7735108da2d7e81cf63faef97c13 Mon Sep 17 00:00:00 2001
++From fd72d405abba827ab5e2603551d48200aedad3ce Mon Sep 17 00:00:00 2001
+ From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+ Date: Mon, 15 May 2017 17:56:48 +0200
+ Subject: [PATCH] winebuild: Add syscall thunks in fake dlls.
+@@ -9,10 +9,10 @@ Subject: [PATCH] winebuild: Add syscall thunks in fake dlls.
+ 2 files changed, 25 insertions(+), 3 deletions(-)
+
+ diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
+-index ec173c94a8e..a3bed8b310b 100644
++index 182b61b731a2..98369c7d508c 100644
+ --- a/dlls/kernel32/tests/loader.c
+ +++ b/dlls/kernel32/tests/loader.c
+-@@ -1602,7 +1602,6 @@ static void test_FakeDLL(void)
++@@ -1639,7 +1639,6 @@ static void test_FakeDLL(void)
+
+ /* check function content */
+ map_func = RVAToAddr(map_rva, ptr);
+@@ -21,7 +21,7 @@ index ec173c94a8e..a3bed8b310b 100644
+
+ if (!strcmp(func_name, "NtSetEvent"))
+ diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
+-index bf82ca497c0..6968e41260f 100644
++index bf82ca497c0d..6968e41260f1 100644
+ --- a/tools/winebuild/spec32.c
+ +++ b/tools/winebuild/spec32.c
+ @@ -860,13 +860,36 @@ static void create_stub_exports_text( DLLSPEC *spec )
+diff --git a/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch b/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch
+index 92a7161de..3b3745ed6 100644
+--- a/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch
++++ b/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch
+@@ -1,4 +1,4 @@
+-From d77c31b1567bfbde1ce4ceb526ad596d0be3e788 Mon Sep 17 00:00:00 2001
++From f92fc0572be02ce2eee2a9cbf60724372678a5af Mon Sep 17 00:00:00 2001
+ From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+ Date: Thu, 25 May 2017 03:22:25 +0200
+ Subject: [PATCH] winebuild: Fix size of relocation information in fake dlls.
+@@ -8,7 +8,7 @@ Subject: [PATCH] winebuild: Fix size of relocation information in fake dlls.
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+ diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
+-index 6968e41260f..f95b45b9a0d 100644
++index 6968e41260f1..f95b45b9a0d5 100644
+ --- a/tools/winebuild/spec32.c
+ +++ b/tools/winebuild/spec32.c
+ @@ -1238,8 +1238,8 @@ static void output_fake_module_pass( DLLSPEC *spec )
+diff --git a/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch b/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch
+index c4f1fb004..2cb4b7cf1 100644
+--- a/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch
++++ b/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch
+@@ -1,4 +1,4 @@
+-From afa59bbabca36f306e9db4c1b080a250c4a919ea Mon Sep 17 00:00:00 2001
++From 59efee63a7442dfee4d9e76b11f651a11a4b523e Mon Sep 17 00:00:00 2001
+ From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+ Date: Thu, 25 May 2017 21:46:27 +0200
+ Subject: [PATCH] winebuild: Try to make sure RVA matches between fake and
+@@ -11,10 +11,10 @@ Subject: [PATCH] winebuild: Try to make sure RVA matches between fake and
+ 3 files changed, 26 insertions(+), 5 deletions(-)
+
+ diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
+-index a3bed8b310b..8b5a345b086 100644
++index 98369c7d508c..77e73b3ca37b 100644
+ --- a/dlls/kernel32/tests/loader.c
+ +++ b/dlls/kernel32/tests/loader.c
+-@@ -1589,7 +1589,6 @@ static void test_FakeDLL(void)
++@@ -1626,7 +1626,6 @@ static void test_FakeDLL(void)
+ /* check position in memory */
+ dll_rva = (DWORD_PTR)dll_func - (DWORD_PTR)module;
+ map_rva = funcs[ordinals[i]];
+@@ -23,7 +23,7 @@ index a3bed8b310b..8b5a345b086 100644
+ func_name, dll_rva, map_rva);
+
+ diff --git a/libs/wine/loader.c b/libs/wine/loader.c
+-index c3b59d90224..b6847ca77b3 100644
++index c3b59d902243..b6847ca77b31 100644
+ --- a/libs/wine/loader.c
+ +++ b/libs/wine/loader.c
+ @@ -335,8 +335,12 @@ static void *map_dll( const IMAGE_NT_HEADERS *nt_descr )
+@@ -54,7 +54,7 @@ index c3b59d90224..b6847ca77b3 100644
+
+ memcpy( sec->Name, ".text", sizeof(".text") );
+ diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
+-index f95b45b9a0d..07d6eed05fc 100644
++index f95b45b9a0d5..07d6eed05fcc 100644
+ --- a/tools/winebuild/spec32.c
+ +++ b/tools/winebuild/spec32.c
+ @@ -381,14 +381,25 @@ static void output_relay_debug( DLLSPEC *spec )
+diff --git a/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch b/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch
+index e0ae33a59..9113beb5f 100644
+--- a/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch
++++ b/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch
+@@ -1,4 +1,4 @@
+-From 29478273c4db90d209ac5afbdc1dd80add3d2c7e Mon Sep 17 00:00:00 2001
++From 370eccb19c65a8b02abfa31a76651ae533dda22f Mon Sep 17 00:00:00 2001
+ From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+ Date: Thu, 25 May 2017 21:56:06 +0200
+ Subject: [PATCH] libs/wine: Use same file alignment for fake and builtin DLLs.
+@@ -9,10 +9,10 @@ Subject: [PATCH] libs/wine: Use same file alignment for fake and builtin DLLs.
+ 2 files changed, 1 insertion(+), 2 deletions(-)
+
+ diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
+-index 8b5a345b086..5373dc4efe1 100644
++index 77e73b3ca37b..1f525194ce73 100644
+ --- a/dlls/kernel32/tests/loader.c
+ +++ b/dlls/kernel32/tests/loader.c
+-@@ -1595,7 +1595,6 @@ static void test_FakeDLL(void)
++@@ -1632,7 +1632,6 @@ static void test_FakeDLL(void)
+ /* check position in file */
+ map_offset = (DWORD_PTR)RtlImageRvaToVa(RtlImageNtHeader(ptr), ptr, map_rva, NULL) - (DWORD_PTR)ptr;
+ dll_offset = (DWORD_PTR)RtlImageRvaToVa(RtlImageNtHeader(module), module, dll_rva, NULL) - (DWORD_PTR)module;
+@@ -21,7 +21,7 @@ index 8b5a345b086..5373dc4efe1 100644
+ func_name, map_offset, dll_offset);
+
+ diff --git a/libs/wine/loader.c b/libs/wine/loader.c
+-index b6847ca77b3..4597a6cb324 100644
++index b6847ca77b31..4597a6cb3243 100644
+ --- a/libs/wine/loader.c
+ +++ b/libs/wine/loader.c
+ @@ -398,7 +398,7 @@ static void *map_dll( const IMAGE_NT_HEADERS *nt_descr )
+diff --git a/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch b/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch
+index 6024e5a2f..e40a80148 100644
+--- a/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch
++++ b/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch
+@@ -1,4 +1,4 @@
+-From a5b4feebd008daab008f72567fe0001da619030e Mon Sep 17 00:00:00 2001
++From 6f1973aa2aee35139ae041e59d37a45ff22dc5bf Mon Sep 17 00:00:00 2001
+ From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael(a)fds-team.de>
+ Date: Thu, 7 Sep 2017 00:38:09 +0200
+ Subject: [PATCH] tools/winebuild: Add syscall thunks for 64 bit.
+@@ -7,18 +7,18 @@ Subject: [PATCH] tools/winebuild: Add syscall thunks for 64 bit.
+ dlls/kernel32/tests/loader.c | 7 +-
+ dlls/ntdll/unix/thread.c | 2 +-
+ dlls/ntdll/unix/unix_private.h | 2 +-
+- dlls/ntdll/unix/virtual.c | 12 +-
++ dlls/ntdll/unix/virtual.c | 11 +-
+ libs/wine/loader.c | 4 +
+ server/mapping.c | 6 +-
+ tools/winebuild/parser.c | 2 +-
+ tools/winebuild/spec32.c | 285 ++++++++++++++++++++++++++++++++-
+- 8 files changed, 306 insertions(+), 14 deletions(-)
++ 8 files changed, 305 insertions(+), 14 deletions(-)
+
+ diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
+-index 95939ba6bde..ae5462f6e55 100644
++index 1f525194ce73..21af7b4ce7a4 100644
+ --- a/dlls/kernel32/tests/loader.c
+ +++ b/dlls/kernel32/tests/loader.c
+-@@ -1573,7 +1573,7 @@ static void test_filenames(void)
++@@ -1574,7 +1574,7 @@ static void test_filenames(void)
+
+ static void test_FakeDLL(void)
+ {
+@@ -27,7 +27,7 @@ index 95939ba6bde..ae5462f6e55 100644
+ NTSTATUS (WINAPI *pNtSetEvent)(HANDLE, ULONG *) = NULL;
+ IMAGE_EXPORT_DIRECTORY *dir;
+ HMODULE module = GetModuleHandleA("ntdll.dll");
+-@@ -1615,8 +1615,13 @@ static void test_FakeDLL(void)
++@@ -1616,8 +1616,13 @@ static void test_FakeDLL(void)
+
+ dll_func = (BYTE *)GetProcAddress(module, func_name);
+ ok(dll_func != NULL, "%s: GetProcAddress returned NULL\n", func_name);
+@@ -42,7 +42,7 @@ index 95939ba6bde..ae5462f6e55 100644
+ todo_wine ok(0, "%s: Export is a stub-function, skipping\n", func_name);
+ continue;
+ diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c
+-index 2dbaa43e731..e1da90222d3 100644
++index 2dbaa43e731a..e1da90222d38 100644
+ --- a/dlls/ntdll/unix/thread.c
+ +++ b/dlls/ntdll/unix/thread.c
+ @@ -110,7 +110,7 @@ TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZ
+@@ -55,10 +55,10 @@ index 2dbaa43e731..e1da90222d3 100644
+
+ if (size) *size = info_size;
+ diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
+-index a1c48a52606..9c9e5b80b0c 100644
++index 33a551e947c2..d06f366d3c6d 100644
+ --- a/dlls/ntdll/unix/unix_private.h
+ +++ b/dlls/ntdll/unix/unix_private.h
+-@@ -152,7 +152,7 @@ extern void virtual_init(void) DECLSPEC_HIDDEN;
++@@ -153,7 +153,7 @@ extern void virtual_init(void) DECLSPEC_HIDDEN;
+ extern TEB *virtual_alloc_first_teb(void) DECLSPEC_HIDDEN;
+ extern NTSTATUS virtual_alloc_teb( TEB **ret_teb ) DECLSPEC_HIDDEN;
+ extern void virtual_free_teb( TEB *teb ) DECLSPEC_HIDDEN;
+@@ -68,10 +68,10 @@ index a1c48a52606..9c9e5b80b0c 100644
+ extern BOOL virtual_is_valid_code_address( const void *addr, SIZE_T size ) DECLSPEC_HIDDEN;
+ extern int virtual_handle_stack_fault( void *addr ) DECLSPEC_HIDDEN;
+ diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
+-index 660323d4dcc..a5e5cb8422d 100644
++index 9fb2ecd38ca3..ad11485d1cea 100644
+ --- a/dlls/ntdll/unix/virtual.c
+ +++ b/dlls/ntdll/unix/virtual.c
+-@@ -2588,14 +2588,14 @@ TEB *virtual_alloc_first_teb(void)
++@@ -2772,14 +2772,14 @@ TEB *virtual_alloc_first_teb(void)
+ TEB *teb;
+ PEB *peb;
+ NTSTATUS status;
+@@ -88,12 +88,7 @@ index 660323d4dcc..a5e5cb8422d 100644
+ if (status)
+ {
+ ERR( "wine: failed to map the shared user data: %08x\n", status );
+-@@ -2787,11 +2787,12 @@ void virtual_clear_thread_stack( void *stack_end )
+- if (force_exec_prot) mprotect( stack, size, PROT_READ | PROT_WRITE | PROT_EXEC );
+- }
+-
+-+extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
+-
++@@ -2977,7 +2977,7 @@ void virtual_clear_thread_stack( void *stack_end )
+ /***********************************************************************
+ * virtual_map_user_shared_data
+ */
+@@ -102,7 +97,7 @@ index 660323d4dcc..a5e5cb8422d 100644
+ {
+ static const WCHAR wine_usdW[] = {'\\','K','e','r','n','e','l','O','b','j','e','c','t','s',
+ '\\','_','_','w','i','n','e','_','u','s','e','r','_','s','h','a','r','e','d','_','d','a','t','a',0};
+-@@ -2814,6 +2815,11 @@ void virtual_map_user_shared_data(void)
++@@ -3000,6 +3000,11 @@ void virtual_map_user_shared_data(void)
+ ERR( "failed to remap the process USD: %d\n", res );
+ exit(1);
+ }
+@@ -115,7 +110,7 @@ index 660323d4dcc..a5e5cb8422d 100644
+ NtClose( section );
+ }
+ diff --git a/libs/wine/loader.c b/libs/wine/loader.c
+-index 4597a6cb324..3d0d75e9c6d 100644
++index 4597a6cb3243..3d0d75e9c6d3 100644
+ --- a/libs/wine/loader.c
+ +++ b/libs/wine/loader.c
+ @@ -398,7 +398,11 @@ static void *map_dll( const IMAGE_NT_HEADERS *nt_descr )
+@@ -131,7 +126,7 @@ index 4597a6cb324..3d0d75e9c6d 100644
+ sec++;
+
+ diff --git a/server/mapping.c b/server/mapping.c
+-index 0941dd87c05..002f3215af2 100644
++index 0941dd87c05d..002f3215af2e 100644
+ --- a/server/mapping.c
+ +++ b/server/mapping.c
+ @@ -964,7 +964,11 @@ struct object *create_user_data_mapping( struct object *root, const struct unico
+@@ -148,7 +143,7 @@ index 0941dd87c05..002f3215af2 100644
+ }
+
+ diff --git a/tools/winebuild/parser.c b/tools/winebuild/parser.c
+-index 74216f8bb6e..820516329a4 100644
++index 74216f8bb6e7..820516329a47 100644
+ --- a/tools/winebuild/parser.c
+ +++ b/tools/winebuild/parser.c
+ @@ -545,7 +545,7 @@ static const char *parse_spec_flags( DLLSPEC *spec, ORDDEF *odp )
+@@ -161,7 +156,7 @@ index 74216f8bb6e..820516329a4 100644
+ if (odp->flags & (FLAG_FORWARD | FLAG_REGISTER))
+ return 0;
+ diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
+-index 07d6eed05fc..9cc4698d0d7 100644
++index 07d6eed05fcc..9cc4698d0d7d 100644
+ --- a/tools/winebuild/spec32.c
+ +++ b/tools/winebuild/spec32.c
+ @@ -375,11 +375,11 @@ static void output_relay_debug( DLLSPEC *spec )
+diff --git a/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch b/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch
+index 69ee26be8..c3e065b26 100644
+--- a/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch
++++ b/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch
+@@ -1,4 +1,4 @@
+-From 659e192979eecfb59d1c1b26e8cea78c42300de5 Mon Sep 17 00:00:00 2001
++From feb53ed39179603391eff600ea59edc41407b238 Mon Sep 17 00:00:00 2001
+ From: Paul Gofman <gofmanp(a)gmail.com>
+ Date: Fri, 3 Jan 2020 17:39:08 +0300
+ Subject: [PATCH] ntdll: Call NtOpenFile through syscall thunk.
+@@ -15,10 +15,10 @@ Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48410
+ 7 files changed, 16 insertions(+), 8 deletions(-)
+
+ diff --git a/dlls/ntdll/actctx.c b/dlls/ntdll/actctx.c
+-index 1ca794ae3e5..b3c13042adc 100644
++index a25cefa555ac..34ba0dc813c6 100644
+ --- a/dlls/ntdll/actctx.c
+ +++ b/dlls/ntdll/actctx.c
+-@@ -2892,7 +2892,7 @@ static NTSTATUS open_nt_file( HANDLE *handle, UNICODE_STRING *name )
++@@ -2894,7 +2894,7 @@ static NTSTATUS open_nt_file( HANDLE *handle, UNICODE_STRING *name )
+ attr.ObjectName = name;
+ attr.SecurityDescriptor = NULL;
+ attr.SecurityQualityOfService = NULL;
+@@ -27,7 +27,7 @@ index 1ca794ae3e5..b3c13042adc 100644
+ }
+
+ static NTSTATUS get_manifest_in_module( struct actctx_loader* acl, struct assembly_identity* ai,
+-@@ -3209,7 +3209,7 @@ static NTSTATUS lookup_winsxs(struct actctx_loader* acl, struct assembly_identit
++@@ -3211,7 +3211,7 @@ static NTSTATUS lookup_winsxs(struct actctx_loader* acl, struct assembly_identit
+ attr.SecurityDescriptor = NULL;
+ attr.SecurityQualityOfService = NULL;
+
+@@ -37,10 +37,10 @@ index 1ca794ae3e5..b3c13042adc 100644
+ {
+ sxs_ai = *ai;
+ diff --git a/dlls/ntdll/directory.c b/dlls/ntdll/directory.c
+-index d18df38f626..69607a4fed9 100644
++index 18428658a5b5..7a9de26ccb0c 100644
+ --- a/dlls/ntdll/directory.c
+ +++ b/dlls/ntdll/directory.c
+-@@ -2943,7 +2943,7 @@ NTSTATUS DIR_get_unix_cwd( char **cwd )
++@@ -3071,7 +3071,7 @@ NTSTATUS DIR_get_unix_cwd( char **cwd )
+ attr.SecurityDescriptor = NULL;
+ attr.SecurityQualityOfService = NULL;
+
+@@ -50,10 +50,10 @@ index d18df38f626..69607a4fed9 100644
+ RtlFreeUnicodeString( &dirW );
+ if (status != STATUS_SUCCESS) goto done;
+ diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
+-index 0b8c28a0651..e48cd84cffd 100644
++index 51d989f30b45..8f1653b0d626 100644
+ --- a/dlls/ntdll/loader.c
+ +++ b/dlls/ntdll/loader.c
+-@@ -2469,7 +2469,7 @@ static NTSTATUS open_dll_file( UNICODE_STRING *nt_name, WINE_MODREF **pwm,
++@@ -2521,7 +2521,7 @@ static NTSTATUS open_dll_file( UNICODE_STRING *nt_name, WINE_MODREF **pwm,
+ attr.ObjectName = nt_name;
+ attr.SecurityDescriptor = NULL;
+ attr.SecurityQualityOfService = NULL;
+@@ -63,10 +63,10 @@ index 0b8c28a0651..e48cd84cffd 100644
+ FILE_SYNCHRONOUS_IO_NONALERT | FILE_NON_DIRECTORY_FILE )))
+ {
+ diff --git a/dlls/ntdll/locale.c b/dlls/ntdll/locale.c
+-index 0d0c1194d23..a1bf219ed0a 100644
++index 15ccdeb2e637..928edcb04e2c 100644
+ --- a/dlls/ntdll/locale.c
+ +++ b/dlls/ntdll/locale.c
+-@@ -661,7 +661,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file )
++@@ -660,7 +660,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file )
+ return STATUS_NO_MEMORY;
+ valueW.Length = NTDLL_swprintf( valueW.Buffer, pathfmtW, dir, name ) * sizeof(WCHAR);
+ InitializeObjectAttributes( &attr, &valueW, 0, 0, NULL );
+@@ -75,7 +75,7 @@ index 0d0c1194d23..a1bf219ed0a 100644
+ if (!status) TRACE( "found %s\n", debugstr_w( valueW.Buffer ));
+ RtlFreeUnicodeString( &valueW );
+ if (status != STATUS_OBJECT_NAME_NOT_FOUND && status != STATUS_OBJECT_PATH_NOT_FOUND) return status;
+-@@ -685,7 +685,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file )
++@@ -684,7 +684,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file )
+ wcscat( valueW.Buffer, name );
+ valueW.Length = wcslen(valueW.Buffer) * sizeof(WCHAR);
+ InitializeObjectAttributes( &attr, &valueW, 0, 0, NULL );
+@@ -85,10 +85,10 @@ index 0d0c1194d23..a1bf219ed0a 100644
+ }
+ RtlFreeUnicodeString( &valueW );
+ diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
+-index 2e791b92f73..f8170793185 100644
++index 9091d1ae8c77..f8e81ae49eaf 100644
+ --- a/dlls/ntdll/ntdll_misc.h
+ +++ b/dlls/ntdll/ntdll_misc.h
+-@@ -350,4 +350,12 @@ static inline void ascii_to_unicode( WCHAR *dst, const char *src, size_t len )
++@@ -329,4 +329,12 @@ static inline void ascii_to_unicode( WCHAR *dst, const char *src, size_t len )
+ while (len--) *dst++ = (unsigned char)*src++;
+ }
+
+@@ -102,7 +102,7 @@ index 2e791b92f73..f8170793185 100644
+ +
+ #endif
+ diff --git a/dlls/ntdll/path.c b/dlls/ntdll/path.c
+-index 32e1f951af5..71ae44dd498 100644
++index 32e1f951af5c..71ae44dd4988 100644
+ --- a/dlls/ntdll/path.c
+ +++ b/dlls/ntdll/path.c
+ @@ -1020,7 +1020,7 @@ NTSTATUS WINAPI RtlSetCurrentDirectory_U(const UNICODE_STRING* dir)
+@@ -115,10 +115,10 @@ index 32e1f951af5..71ae44dd498 100644
+ if (nts != STATUS_SUCCESS) goto out;
+
+ diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c
+-index 60ee39765bf..70dfe6f768a 100644
++index 884141da060c..32a1f5107f06 100644
+ --- a/dlls/ntdll/process.c
+ +++ b/dlls/ntdll/process.c
+-@@ -1281,7 +1281,7 @@ static NTSTATUS get_pe_file_info( UNICODE_STRING *path, ULONG attributes,
++@@ -1357,7 +1357,7 @@ static NTSTATUS get_pe_file_info( UNICODE_STRING *path, ULONG attributes,
+
+ memset( info, 0, sizeof(*info) );
+ InitializeObjectAttributes( &attr, path, attributes, 0, 0 );
diff --git a/wine.spec b/wine.spec
index cd74653..a2d6c1f 100644
--- a/wine.spec
+++ b/wine.spec
@@ -76,6 +76,7 @@ Source150: wine.appdata.xml
# wine bugs
Patch100: wine-staging-5.10-ntdll.patch
+Patch101: wine-staging-5.10-ntdll-arm.patch
# desktop dir
Source200: wine.menu
@@ -694,15 +695,9 @@ This package adds the opencl driver for wine.
# setup and apply wine-staging patches
gzip -dc %{SOURCE900} | tar -xf - --strip-components=1
%patch100 -p1 -b.ntdll
+%patch101 -p1 -b.ntdll-arm
-%ifarch %{arm} aarch64
-patches/patchinstall.sh DESTDIR="`pwd`" --all \
- -W ntdll-NtContinue \
- -W ntdll-Syscall_Emulation \
- -W winebuild-Fake_Dlls
-%else
patches/patchinstall.sh DESTDIR="`pwd`" --all
-%endif
# fix parallelized build
sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in
commit ed2472170e1a0d58cf40488140572c6a8b013023
Author: Michael Cronenworth <mike(a)cchtml.com>
Date: Thu Jun 11 08:30:55 2020 -0500
Apply wine-staging patch and disable a few patchsets on arm due to compile issues
diff --git a/wine-staging-5.10-ntdll.patch b/wine-staging-5.10-ntdll.patch
new file mode 100644
index 0000000..0ac49d8
--- /dev/null
+++ b/wine-staging-5.10-ntdll.patch
@@ -0,0 +1,497 @@
+From 044cb930662d61f401a5d1bdd7b8e75d59cea5ea Mon Sep 17 00:00:00 2001
+From: Paul Gofman <gofmanp(a)gmail.com>
+Date: Mon, 8 Jun 2020 15:33:10 +0300
+Subject: [PATCH] Updated ntdll-ForceBottomUpAlloc patchset.
+
+Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49326
+---
+ ...h-on-mmap-error-in-try_map_free_area.patch | 9 +-
+ ...XED_NOREPLACE-flag-in-try_map_free_a.patch | 10 +-
+ ...om-up-allocation-order-for-64-bit-ar.patch | 12 +-
+ ...tep-after-failed-map-attempt-in-try_.patch | 8 +-
+ ...rea-list-for-virtual-memory-allocati.patch | 163 +++++++++++-------
+ ...y-exclude-natively-mapped-areas-from.patch | 14 +-
+ 6 files changed, 126 insertions(+), 90 deletions(-)
+
+diff --git a/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch b/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch
+index 7aa2337e8..ecf750c59 100644
+--- a/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch
++++ b/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch
+@@ -1,7 +1,8 @@
+-From ca116113c19ee17d2e8283abe4edf27f76df2148 Mon Sep 17 00:00:00 2001
++From c0a24a86c70b3cf2bfe118cff4d9ab03efaa9689 Mon Sep 17 00:00:00 2001
+ From: Paul Gofman <gofmanp(a)gmail.com>
+ Date: Thu, 9 Jan 2020 15:05:09 +0300
+-Subject: [PATCH] ntdll: Stop search on mmap() error in try_map_free_area().
++Subject: [PATCH 1/6] ntdll: Stop search on mmap() error in
++ try_map_free_area().
+
+ The anon mmap errors do not depend on start address hint. Ignoring them
+ makes the search take incredible time until it fails.
+@@ -10,10 +11,10 @@ makes the search take incredible time until it fails.
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+ diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
+-index 0346d0d9753..c29f695d694 100644
++index b2725e3ae9a..5c2ecfab398 100644
+ --- a/dlls/ntdll/unix/virtual.c
+ +++ b/dlls/ntdll/unix/virtual.c
+-@@ -1016,8 +1016,14 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
++@@ -1063,8 +1063,14 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
+ return start;
+ TRACE( "Found free area is already mapped, start %p.\n", start );
+
+diff --git a/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch b/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch
+index 6672d646f..81bdde5a0 100644
+--- a/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch
++++ b/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch
+@@ -1,8 +1,8 @@
+-From b2c9894cd6a81eaa9f7dd4bce3f9cbfbec17d021 Mon Sep 17 00:00:00 2001
++From 68e035e381f5d53980a8bcd7c0798dfd4b4fbe95 Mon Sep 17 00:00:00 2001
+ From: Paul Gofman <gofmanp(a)gmail.com>
+ Date: Thu, 16 Jan 2020 16:09:24 +0300
+-Subject: [PATCH] ntdll: Use MAP_FIXED_NOREPLACE flag in try_map_free_area() if
+- available.
++Subject: [PATCH 2/6] ntdll: Use MAP_FIXED_NOREPLACE flag in
++ try_map_free_area() if available.
+
+ Avoids actual mapping followed by unmapping back if the memory range is
+ already mapped.
+@@ -11,10 +11,10 @@ already mapped.
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+ diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
+-index c29f695d694..8d3e25481ec 100644
++index 5c2ecfab398..93b5d99dadd 100644
+ --- a/dlls/ntdll/unix/virtual.c
+ +++ b/dlls/ntdll/unix/virtual.c
+-@@ -1008,22 +1008,28 @@ static struct wine_rb_entry *find_view_inside_range( void **base_ptr, void **end
++@@ -1055,22 +1055,28 @@ static struct wine_rb_entry *find_view_inside_range( void **base_ptr, void **end
+ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
+ void *start, size_t size, int unix_prot )
+ {
+diff --git a/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch b/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch
+index 44980f11a..279c8e3c2 100644
+--- a/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch
++++ b/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch
+@@ -1,7 +1,7 @@
+-From 9f7320fe58c85f1b53301c2c9a2a80fa8d4ed228 Mon Sep 17 00:00:00 2001
++From 25be7201abeb509db4b28b81914036bc0c00c2f9 Mon Sep 17 00:00:00 2001
+ From: Paul Gofman <gofmanp(a)gmail.com>
+ Date: Mon, 25 Nov 2019 12:19:20 +0300
+-Subject: [PATCH] ntdll: Force bottom up allocation order for 64 bit arch
++Subject: [PATCH 3/6] ntdll: Force bottom up allocation order for 64 bit arch
+ unless top down is requested.
+
+ Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48175
+@@ -11,10 +11,10 @@ Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46568
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+ diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
+-index 8d3e25481ec..dc20e827141 100644
++index 93b5d99dadd..87b33016b72 100644
+ --- a/dlls/ntdll/unix/virtual.c
+ +++ b/dlls/ntdll/unix/virtual.c
+-@@ -1715,13 +1715,19 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
++@@ -1775,13 +1775,19 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
+ }
+ else
+ {
+@@ -35,7 +35,7 @@ index 8d3e25481ec..dc20e827141 100644
+ if (mmap_enum_reserved_areas( alloc_reserved_area_callback, &alloc, top_down ))
+ {
+ ptr = alloc.result;
+-@@ -1731,7 +1737,7 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
++@@ -1791,7 +1797,7 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
+ goto done;
+ }
+
+@@ -44,7 +44,7 @@ index 8d3e25481ec..dc20e827141 100644
+ {
+ if (!(ptr = map_free_area( address_space_start, alloc.limit, size,
+ top_down, get_unix_prot(vprot) )))
+-@@ -1740,6 +1746,8 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
++@@ -1800,6 +1806,8 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
+ goto done;
+ }
+
+diff --git a/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch b/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch
+index 9361f0938..0b5c7618a 100644
+--- a/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch
++++ b/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch
+@@ -1,7 +1,7 @@
+-From e521333684d1286fff7b6625515d13ad6f3fcba3 Mon Sep 17 00:00:00 2001
++From d74a5c586c00a879fa1182af72c15c154e5dd096 Mon Sep 17 00:00:00 2001
+ From: Paul Gofman <gofmanp(a)gmail.com>
+ Date: Tue, 14 Jan 2020 21:39:23 +0300
+-Subject: [PATCH] ntdll: Increase step after failed map attempt in
++Subject: [PATCH 4/6] ntdll: Increase step after failed map attempt in
+ try_map_free_area().
+
+ ---
+@@ -9,10 +9,10 @@ Subject: [PATCH] ntdll: Increase step after failed map attempt in
+ 1 file changed, 1 insertion(+)
+
+ diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
+-index dc20e827141..720d45ecb9f 100644
++index 87b33016b72..5e79faaf6fc 100644
+ --- a/dlls/ntdll/unix/virtual.c
+ +++ b/dlls/ntdll/unix/virtual.c
+-@@ -1036,6 +1036,7 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
++@@ -1083,6 +1083,7 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
+ step == 0)
+ break;
+ start = (char *)start + step;
+diff --git a/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch b/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch
+index 569bf3e62..1f712ba10 100644
+--- a/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch
++++ b/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch
+@@ -1,17 +1,17 @@
+-From df7b650d5e17afa411024b88d1920d0910947a6b Mon Sep 17 00:00:00 2001
++From f14407ee5755b6482714a6232a4313bcd1531781 Mon Sep 17 00:00:00 2001
+ From: Paul Gofman <pgofman(a)codeweavers.com>
+ Date: Tue, 14 Jan 2020 21:42:21 +0300
+-Subject: [PATCH] ntdll: Use free area list for virtual memory allocation.
++Subject: [PATCH 5/6] ntdll: Use free area list for virtual memory allocation.
+
+ ---
+- dlls/ntdll/unix/virtual.c | 318 ++++++++++++++++++++++++--------------
+- 1 file changed, 204 insertions(+), 114 deletions(-)
++ dlls/ntdll/unix/virtual.c | 348 +++++++++++++++++++++++++-------------
++ 1 file changed, 234 insertions(+), 114 deletions(-)
+
+ diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
+-index 720d45ecb9f..e323f4290bf 100644
++index 5e79faaf6fc..7f194effcaa 100644
+ --- a/dlls/ntdll/unix/virtual.c
+ +++ b/dlls/ntdll/unix/virtual.c
+-@@ -192,7 +192,11 @@ static BYTE *pages_vprot;
++@@ -195,7 +195,11 @@ static BYTE *pages_vprot;
+ #endif
+
+ static struct file_view *view_block_start, *view_block_end, *next_free_view;
+@@ -23,7 +23,7 @@ index 720d45ecb9f..e323f4290bf 100644
+ static void *preload_reserve_start;
+ static void *preload_reserve_end;
+ static BOOL use_locks;
+-@@ -528,13 +532,13 @@ static struct range_entry *free_ranges_lower_bound( void *addr )
++@@ -546,13 +550,13 @@ static struct range_entry *free_ranges_lower_bound( void *addr )
+ *
+ * Updates the free_ranges after a new view has been created.
+ */
+@@ -40,7 +40,7 @@ index 720d45ecb9f..e323f4290bf 100644
+ /* free_ranges initial value is such that the view is either inside range or before another one. */
+ assert( range != free_ranges_end );
+ assert( range->end > view_base || next != free_ranges_end );
+-@@ -545,7 +549,7 @@ static void free_ranges_insert_view( struct file_view *view )
++@@ -563,7 +567,7 @@ static void free_ranges_insert_view( struct file_view *view )
+ (range->end == view_base && next->base >= view_end))
+ {
+ /* on Win64, assert that it's correctly aligned so we're not going to be in trouble later */
+@@ -49,7 +49,7 @@ index 720d45ecb9f..e323f4290bf 100644
+ WARN( "range %p - %p is already mapped\n", view_base, view_end );
+ return;
+ }
+-@@ -585,6 +589,12 @@ static void free_ranges_insert_view( struct file_view *view )
++@@ -603,6 +607,12 @@ static void free_ranges_insert_view( struct file_view *view )
+ }
+ }
+
+@@ -62,7 +62,7 @@ index 720d45ecb9f..e323f4290bf 100644
+
+ /***********************************************************************
+ * free_ranges_remove_view
+-@@ -615,6 +625,7 @@ static void free_ranges_remove_view( struct file_view *view )
++@@ -633,6 +643,7 @@ static void free_ranges_remove_view( struct file_view *view )
+ return;
+ }
+ #endif
+@@ -70,7 +70,7 @@ index 720d45ecb9f..e323f4290bf 100644
+
+ /* free_ranges initial value is such that the view is either inside range or before another one. */
+ assert( range != free_ranges_end );
+-@@ -961,44 +972,6 @@ static struct file_view *find_view_range( const void *addr, size_t size )
++@@ -1008,44 +1019,6 @@ static struct file_view *find_view_range( const void *addr, size_t size )
+ }
+
+
+@@ -115,7 +115,7 @@ index 720d45ecb9f..e323f4290bf 100644
+ /***********************************************************************
+ * try_map_free_area
+ *
+-@@ -1042,65 +1015,11 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
++@@ -1089,65 +1062,11 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
+ return NULL;
+ }
+
+@@ -181,7 +181,7 @@ index 720d45ecb9f..e323f4290bf 100644
+ */
+ static void *find_reserved_free_area( void *base, void *end, size_t size, int top_down )
+ {
+-@@ -1314,8 +1233,7 @@ static void delete_view( struct file_view *view ) /* [in] View */
++@@ -1361,8 +1280,7 @@ static void delete_view( struct file_view *view ) /* [in] View */
+ {
+ if (!(view->protect & VPROT_SYSTEM)) unmap_area( view->base, view->size );
+ set_page_vprot( view->base, view->size, 0 );
+@@ -191,7 +191,7 @@ index 720d45ecb9f..e323f4290bf 100644
+ wine_rb_remove( &views_tree, &view->entry );
+ *(struct file_view **)view = next_free_view;
+ next_free_view = view;
+-@@ -1363,8 +1281,7 @@ static NTSTATUS create_view( struct file_view **view_ret, void *base, size_t siz
++@@ -1410,8 +1328,7 @@ static NTSTATUS create_view( struct file_view **view_ret, void *base, size_t siz
+ set_page_vprot( base, size, vprot );
+
+ wine_rb_put( &views_tree, view->base, &view->entry );
+@@ -201,7 +201,7 @@ index 720d45ecb9f..e323f4290bf 100644
+
+ *view_ret = view;
+
+-@@ -1596,6 +1513,7 @@ struct alloc_area
++@@ -1656,6 +1573,7 @@ struct alloc_area
+ int top_down;
+ void *limit;
+ void *result;
+@@ -209,7 +209,7 @@ index 720d45ecb9f..e323f4290bf 100644
+ };
+
+ /***********************************************************************
+-@@ -1637,6 +1555,179 @@ static int CDECL alloc_reserved_area_callback( void *start, SIZE_T size, void *a
++@@ -1697,6 +1615,212 @@ static int CDECL alloc_reserved_area_callback( void *start, SIZE_T size, void *a
+ return 0;
+ }
+
+@@ -303,11 +303,62 @@ index 720d45ecb9f..e323f4290bf 100644
+ + return 0;
+ +}
+ +
+++static void *alloc_free_area_in_range(struct area_alloc_reserved *area, char *base, char *end,
+++ size_t size, int top_down, int unix_prot)
+++{
+++ char *start;
+++
+++ TRACE("range %p-%p.\n", base, end);
+++
+++ if (base >= end) return NULL;
+++
+++ area->map_area_start = base;
+++ area->map_area_end = end;
+++
+++ if (top_down)
+++ {
+++ start = ROUND_ADDR( end - size, granularity_mask );
+++ if (start >= end || start < base)
+++ return NULL;
+++ }
+++ else
+++ {
+++ start = ROUND_ADDR( base + granularity_mask, granularity_mask );
+++ if (!start || start >= end || (char *)end - (char *)start < size)
+++ return NULL;
+++ }
+++
+++ mmap_enum_reserved_areas( alloc_area_in_reserved_or_between_callback, area, top_down );
+++ if (area->result)
+++ return area->result;
+++
+++ if (top_down)
+++ {
+++ start = ROUND_ADDR( area->map_area_end - size, granularity_mask );
+++ if (start >= area->map_area_end || start < area->map_area_start)
+++ return NULL;
+++
+++ return try_map_free_area( area->map_area_start, start + size, area->step,
+++ start, size, unix_prot );
+++ }
+++ else
+++ {
+++ start = ROUND_ADDR( area->map_area_start + granularity_mask, granularity_mask );
+++ if (!start || start >= area->map_area_end
+++ || area->map_area_end - start < size)
+++ return NULL;
+++
+++ return try_map_free_area( start, area->map_area_end, area->step,
+++ start, size, unix_prot );
+++ }
+++}
+++
+ +static void *alloc_free_area(void *limit, size_t size, BOOL top_down, int unix_prot)
+ +{
+ + struct range_entry *range, *ranges_start, *ranges_end;
+++ char *reserve_start, *reserve_end;
+ + struct area_alloc_reserved area;
+-+ char *start, *base, *end;
+++ char *base, *end;
+ + int ranges_inc;
+ +
+ + TRACE("limit %p, size %p, top_down %#x.\n", limit, (void *)size, top_down);
+@@ -331,6 +382,9 @@ index 720d45ecb9f..e323f4290bf 100644
+ + area.top_down = top_down;
+ + area.unix_prot = unix_prot;
+ +
+++ reserve_start = ROUND_ADDR((char *)preload_reserve_start, granularity_mask);
+++ reserve_end = ROUND_ADDR((char *)preload_reserve_end + granularity_mask, granularity_mask);
+++
+ + for (range = ranges_start; range != ranges_end; range += ranges_inc)
+ + {
+ + base = range->base;
+@@ -340,48 +394,27 @@ index 720d45ecb9f..e323f4290bf 100644
+ +
+ + if (base < (char *)address_space_start) base = (char *)address_space_start;
+ + if (end > (char *)limit + granularity_mask + 1) end = (char *)limit + granularity_mask + 1;
+-+ if (base >= end) continue;
+ +
+-+ area.map_area_start = base;
+-+ area.map_area_end = end;
+-+
+-+ if (top_down)
+-+ {
+-+ start = ROUND_ADDR( (char *)end - size, granularity_mask );
+-+ if (start >= end || start < base)
+-+ continue;
+-+ }
+-+ else
+++ if (reserve_end >= base)
+ + {
+-+ start = ROUND_ADDR( (char *)base + granularity_mask, granularity_mask );
+-+ if (!start || start >= end || (char *)end - (char *)start < size)
+-+ continue;
+++ if (reserve_end >= end)
+++ {
+++ if (reserve_start <= base) continue; /* no space in that area */
+++ if (reserve_start < end) end = reserve_start;
+++ }
+++ else if (reserve_start <= base) base = reserve_end;
+++ else
+++ {
+++ /* range is split in two by the preloader reservation, try first part */
+++ if ((area.result = alloc_free_area_in_range(&area, base, reserve_start, size, top_down, unix_prot)))
+++ return area.result;
+++ /* then fall through to try second part */
+++ base = reserve_end;
+++ }
+ + }
+-+ mmap_enum_reserved_areas( alloc_area_in_reserved_or_between_callback, &area, top_down );
+-+ if (area.result)
+-+ return area.result;
+ +
+-+ if (top_down)
+-+ {
+-+ start = ROUND_ADDR( area.map_area_end - size, granularity_mask );
+-+ if (start >= area.map_area_end || start < area.map_area_start)
+-+ continue;
+-+
+-+ if ((area.result = try_map_free_area( area.map_area_start, start + size, area.step,
+-+ start, size, unix_prot )))
+-+ return area.result;
+-+ }
+-+ else
+-+ {
+-+ start = ROUND_ADDR( area.map_area_start + granularity_mask, granularity_mask );
+-+ if (!start || start >= area.map_area_end
+-+ || area.map_area_end - start < size)
+-+ continue;
+-+
+-+ if ((area.result = try_map_free_area( start, area.map_area_end, area.step,
+-+ start, size, unix_prot )))
+-+ return area.result;
+-+ }
+++ if ((area.result = alloc_free_area_in_range(&area, base, end, size, top_down, unix_prot)))
+++ return area.result;
+ + }
+ + return NULL;
+ +}
+@@ -389,7 +422,7 @@ index 720d45ecb9f..e323f4290bf 100644
+ /***********************************************************************
+ * map_fixed_area
+ *
+-@@ -1722,11 +1813,15 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
++@@ -1782,11 +1906,15 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
+ alloc.size = size;
+ alloc.top_down = top_down;
+ alloc.limit = (void*)(get_zero_bits_64_mask( zero_bits_64 ) & (UINT_PTR)user_space_limit);
+@@ -408,7 +441,7 @@ index 720d45ecb9f..e323f4290bf 100644
+ }
+
+ if (mmap_enum_reserved_areas( alloc_reserved_area_callback, &alloc, top_down ))
+-@@ -1738,15 +1833,6 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
++@@ -1798,15 +1926,6 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
+ goto done;
+ }
+
+@@ -424,7 +457,15 @@ index 720d45ecb9f..e323f4290bf 100644
+ view_size = size + granularity_mask + 1;
+
+ for (;;)
+-@@ -2466,10 +2552,14 @@ void virtual_init(void)
++@@ -2500,6 +2619,7 @@ void virtual_init(void)
++ if (preload_reserve_start)
++ address_space_start = min( address_space_start, preload_reserve_start );
++ }
+++ TRACE("preload reserve %p-%p.\n", preload_reserve_start, preload_reserve_end);
++ }
++
++ size = ROUND_SIZE( 0, sizeof(TEB) ) + max( MINSIGSTKSZ, 8192 );
++@@ -2528,8 +2648,8 @@ void virtual_init(void)
+ pages_vprot = (void *)((char *)alloc_views.base + 2 * view_block_size);
+ wine_rb_init( &views_tree, compare_view );
+
+@@ -434,13 +475,7 @@ index 720d45ecb9f..e323f4290bf 100644
+ + free_ranges[0].end = address_space_limit;
+ free_ranges_end = free_ranges + 1;
+
+-+ free_ranges_remove_range(ROUND_ADDR(preload_reserve_start, granularity_mask),
+-+ ROUND_ADDR((char *)preload_reserve_end + granularity_mask,
+-+ granularity_mask), preload_reserve_start);
+-+
+ /* make the DOS area accessible (except the low 64K) to hide bugs in broken apps like Excel 2003 */
+- size = (char *)address_space_start - (char *)0x10000;
+- if (size && mmap_is_in_reserved_area( (void*)0x10000, size ) == 1)
+ --
+ 2.26.2
+
+diff --git a/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch b/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch
+index 8cf896f8a..9bb16bdfc 100644
+--- a/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch
++++ b/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch
+@@ -1,18 +1,18 @@
+-From 81a8c626f834f3b2195980e84e2f5fc0a5b1e0e6 Mon Sep 17 00:00:00 2001
++From ac8fd6b34fa269ce840566055cc1c0b6c023516e Mon Sep 17 00:00:00 2001
+ From: Paul Gofman <pgofman(a)codeweavers.com>
+ Date: Tue, 2 Jun 2020 21:06:33 +0300
+-Subject: [PATCH] ntdll: Permanently exclude natively mapped areas from free
+- areas list.
++Subject: [PATCH 6/6] ntdll: Permanently exclude natively mapped areas from
++ free areas list.
+
+ ---
+ dlls/ntdll/unix/virtual.c | 25 +++++++++++++++++++++++++
+ 1 file changed, 25 insertions(+)
+
+ diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
+-index e323f4290bf..778f5d8c3b8 100644
++index 7f194effcaa..0e2e20396f3 100644
+ --- a/dlls/ntdll/unix/virtual.c
+ +++ b/dlls/ntdll/unix/virtual.c
+-@@ -123,6 +123,9 @@ static const BYTE VIRTUAL_Win32Flags[16] =
++@@ -124,6 +124,9 @@ static const BYTE VIRTUAL_Win32Flags[16] =
+
+ static struct wine_rb_tree views_tree;
+
+@@ -22,7 +22,7 @@ index e323f4290bf..778f5d8c3b8 100644
+ static RTL_CRITICAL_SECTION csVirtual;
+ static RTL_CRITICAL_SECTION_DEBUG critsect_debug =
+ {
+-@@ -1004,6 +1007,13 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
++@@ -1051,6 +1054,13 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
+ if (ptr != (void *)-1)
+ munmap( ptr, size );
+
+@@ -36,7 +36,7 @@ index e323f4290bf..778f5d8c3b8 100644
+ if ((step > 0 && (char *)end - (char *)start < step) ||
+ (step < 0 && (char *)start - (char *)base < -step) ||
+ step == 0)
+-@@ -1817,9 +1827,24 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
++@@ -1910,9 +1920,24 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
+
+ if (is_win64 || zero_bits_64)
+ {
diff --git a/wine.spec b/wine.spec
index 5d030b2..cd74653 100644
--- a/wine.spec
+++ b/wine.spec
@@ -75,6 +75,7 @@ Source109: wine-oleview.desktop
Source150: wine.appdata.xml
# wine bugs
+Patch100: wine-staging-5.10-ntdll.patch
# desktop dir
Source200: wine.menu
@@ -692,8 +693,16 @@ This package adds the opencl driver for wine.
%if 0%{?wine_staging}
# setup and apply wine-staging patches
gzip -dc %{SOURCE900} | tar -xf - --strip-components=1
+%patch100 -p1 -b.ntdll
+%ifarch %{arm} aarch64
+patches/patchinstall.sh DESTDIR="`pwd`" --all \
+ -W ntdll-NtContinue \
+ -W ntdll-Syscall_Emulation \
+ -W winebuild-Fake_Dlls
+%else
patches/patchinstall.sh DESTDIR="`pwd`" --all
+%endif
# fix parallelized build
sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in
commit 72dcd1b7ad63b94a947ae3d1d341ef752cf59dbf
Author: Michael Cronenworth <mike(a)cchtml.com>
Date: Wed Jun 10 16:29:09 2020 -0500
Fix broken macro
diff --git a/wine.spec b/wine.spec
index 9464feb..5d030b2 100644
--- a/wine.spec
+++ b/wine.spec
@@ -719,6 +719,7 @@ export CC="/usr/bin/clang"
# https://bugzilla.redhat.com/show_bug.cgi?id=1658311
export CFLAGS="`echo $CFLAGS | sed -e 's/-fstack-clash-protection//'`"
%endif
+%endif
%configure \
--sysconfdir=%{_sysconfdir}/wine \
commit 6a3375aed7da5016389cab93d28717377e09d9f0
Author: Michael Cronenworth <mike(a)cchtml.com>
Date: Wed Jun 10 16:27:36 2020 -0500
Re order macro to work with older aarch64 rules
diff --git a/wine.spec b/wine.spec
index b8c8f1b..9464feb 100644
--- a/wine.spec
+++ b/wine.spec
@@ -702,11 +702,6 @@ sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in
# 0%%{?wine_staging}
%build
-%if 0%{?fedora} >= 33
-%ifarch aarch64
-%global toolchain clang
-%endif
-%endif
# disable fortify as it breaks wine
# http://bugs.winehq.org/show_bug.cgi?id=24606
@@ -714,6 +709,9 @@ sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in
export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error"
%ifarch aarch64
+%if 0%{?fedora} >= 33
+%global toolchain clang
+%else
# ARM64 now requires clang
# https://source.winehq.org/git/wine.git/commit/8fb8cc03c3edb599dd98f369e14...
export CC="/usr/bin/clang"
commit 41fb9606e6f1c66e8ee0bab57dcadd9251b8a4a6
Author: Michael Cronenworth <mike(a)cchtml.com>
Date: Wed Jun 10 16:20:00 2020 -0500
Add new macro for toolchain based on comments from RHBZ#1844893
diff --git a/wine.spec b/wine.spec
index bb89e53..b8c8f1b 100644
--- a/wine.spec
+++ b/wine.spec
@@ -702,6 +702,11 @@ sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in
# 0%%{?wine_staging}
%build
+%if 0%{?fedora} >= 33
+%ifarch aarch64
+%global toolchain clang
+%endif
+%endif
# disable fortify as it breaks wine
# http://bugs.winehq.org/show_bug.cgi?id=24606
commit 4a5b3c288356f8f5c567ddd533aa2aac7f7a6c26
Author: Michael Cronenworth <mike(a)cchtml.com>
Date: Sun Jun 7 15:39:15 2020 -0500
Update to 5.10
diff --git a/.gitignore b/.gitignore
index 967baf9..1b3c9bc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
-/wine-5.9.tar.xz
-/wine-5.9.tar.xz.sign
-/wine-staging-5.9.tar.gz
+/wine-5.10.tar.xz
+/wine-5.10.tar.xz.sign
+/wine-staging-5.10.tar.gz
diff --git a/sources b/sources
index 7f5d1eb..71a95ad 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (wine-5.9.tar.xz) = edc6d55a275cf37430a62dc6d6d86bff6d5a434e708dbd99d245018db7f6a0abe39581a1d91eb947f204a45ac94cc5c931745169a3b63a2aecf8db277553b74b
-SHA512 (wine-5.9.tar.xz.sign) = 1a048d9e4229eb6391a8a48027af8c2511b5c921c70fb1c6a398570d5656c0747746d34d7d3458a7be68220d00130676ad97ddeaaee94023a63f9afeba833357
-SHA512 (wine-staging-5.9.tar.gz) = 8fcf448be21edc0ccf8afef75013298c8f1634b51cd4d927ee5a1d039552d7c29609f65f283519b6561d09eb6eeae91fa6db70b9e78e4fd8bb5318408b39fb33
+SHA512 (wine-5.10.tar.xz) = 669d6861525cd4ab000113e8d9c5e10822b62b293914542ee34a826696df66e1d2f09b09f576f714e4117e79e25d1fd0b2a06c57d29da0efa0bdfcb9fee59c60
+SHA512 (wine-5.10.tar.xz.sign) = 809c9d4d37440bc6beac0b6da9c69e81c055f3ea606261c21dd2e1ce02e71976f3fc3433e0bd87cc8431b5cd49cab9db01d4bf62bd23fe294ca7a5180adab7ee
+SHA512 (wine-staging-5.10.tar.gz) = fca5ddb648ac45c242b9bd7ccb0980161bff1e3539aa1a116f1cceece9d3b4a3188c82bd93624f561653dda793ad16dc00a87c7ed0c38f19a93b538519ef806c
diff --git a/wine-5.8-kernel32.patch b/wine-5.8-kernel32.patch
deleted file mode 100644
index 4345b38..0000000
--- a/wine-5.8-kernel32.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 613389059006270fc89abdfb984c43e6fa742a9a Mon Sep 17 00:00:00 2001
-From: Alexandre Julliard <julliard(a)winehq.org>
-Date: Tue, 26 May 2020 12:26:31 +0200
-Subject: [PATCH] kernel32: Leave some more space for kernelbase.
-
-Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49208
-Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
----
- dlls/kernel32/Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/dlls/kernel32/Makefile.in b/dlls/kernel32/Makefile.in
-index b3877fe13b..d9b1ca575c 100644
---- a/dlls/kernel32/Makefile.in
-+++ b/dlls/kernel32/Makefile.in
-@@ -3,7 +3,7 @@ MODULE = kernel32.dll
- IMPORTLIB = kernel32
- IMPORTS = winecrt0 kernelbase ntdll
- EXTRALIBS = $(COREFOUNDATION_LIBS) $(POLL_LIBS) $(RT_LIBS)
--EXTRADLLFLAGS = -nodefaultlibs -Wb,-F,KERNEL32.dll -Wl,--image-base,0x7b400000
-+EXTRADLLFLAGS = -nodefaultlibs -Wb,-F,KERNEL32.dll -Wl,--image-base,0x7b600000
-
- C_SRCS = \
- actctx.c \
---
-2.20.1
-
diff --git a/wine.spec b/wine.spec
index ffb9fc9..bb89e53 100644
--- a/wine.spec
+++ b/wine.spec
@@ -32,7 +32,8 @@
# build with wine-staging patches, see: https://github.com/wine-staging/wine-staging
%if 0%{?fedora}
%global wine_staging 1
-%endif # 0%{?fedora}
+%endif
+# 0%%{?fedora}
# binfmt macros for RHEL
%if 0%{?rhel} == 7
@@ -43,8 +44,8 @@
%endif
Name: wine
-Version: 5.9
-Release: 2%{?dist}
+Version: 5.10
+Release: 1%{?dist}
Summary: A compatibility layer for windows applications
License: LGPLv2+
@@ -74,8 +75,6 @@ Source109: wine-oleview.desktop
Source150: wine.appdata.xml
# wine bugs
-# https://source.winehq.org/git/wine.git/commit/613389059006270fc89abdfb984...
-Patch100: wine-5.8-kernel32.patch
# desktop dir
Source200: wine.menu
@@ -185,7 +184,8 @@ BuildRequires: libappstream-glib
BuildRequires: gtk3-devel
BuildRequires: libattr-devel
BuildRequires: libva-devel
-%endif # 0%{?wine_staging}
+%endif
+# 0%%{?wine_staging}
%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6
BuildRequires: openal-soft-devel
@@ -432,9 +432,11 @@ BuildArch: noarch
# arial-fonts are available with wine-staging patchset, only.
%if 0%{?wine_staging}
Requires: wine-arial-fonts = %{version}-%{release}
-%else # 0%{?wine_staging}
+%else
+# 0%%{?wine_staging}
Obsoletes: wine-arial-fonts <= %{version}-%{release}
-%endif # 0%{?wine_staging}
+%endif
+# 0%%{?wine_staging}
Requires: wine-courier-fonts = %{version}-%{release}
Requires: wine-fixedsys-fonts = %{version}-%{release}
Requires: wine-small-fonts = %{version}-%{release}
@@ -445,10 +447,12 @@ Requires: wine-tahoma-fonts = %{version}-%{release}
# times-new-roman-fonts are available with wine_staging-patchset, only.
%if 0%{?wine_staging}
Requires: wine-times-new-roman-fonts = %{version}-%{release}
-%else # 0%{?wine_staging}
+%else
+# 0%%{?wine_staging}
Obsoletes: wine-times-new-roman-fonts <= %{version}-%{release}
Obsoletes: wine-times-new-roman-fonts-system <= %{version}-%{release}
-%endif # 0%{?wine_staging}
+%endif
+# 0%%{?wine_staging}
Requires: wine-symbol-fonts = %{version}-%{release}
Requires: wine-wingdings-fonts = %{version}-%{release}
# intermediate fix for #593140
@@ -468,7 +472,8 @@ Requires: fontpackages-filesystem
%description arial-fonts
%{summary}
-%endif # 0%{?wine_staging}
+%endif
+# 0%%{?wine_staging}
%package courier-fonts
Summary: Wine Courier font family
@@ -683,7 +688,6 @@ This package adds the opencl driver for wine.
%prep
%setup -q -n wine-%{version}
%patch511 -p1 -b.cjk
-%patch100 -p1 -b.kernel32
%if 0%{?wine_staging}
# setup and apply wine-staging patches
@@ -694,7 +698,8 @@ patches/patchinstall.sh DESTDIR="`pwd`" --all
# fix parallelized build
sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in
-%endif # 0%{?wine_staging}
+%endif
+# 0%%{?wine_staging}
%build
@@ -1273,9 +1278,11 @@ fi
%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-1.%{winedll}
%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-2.%{winedll}
+%{_libdir}/wine/api-ms-win-core-libraryloader-l2-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-localization-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-localization-l1-2-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-localization-l1-2-1.%{winedll}
+%{_libdir}/wine/api-ms-win-core-localization-l1-2-2.%{winedll}
%{_libdir}/wine/api-ms-win-core-localization-l2-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-2-0.%{winedll}
@@ -1285,6 +1292,7 @@ fi
%{_libdir}/wine/api-ms-win-core-memory-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-memory-l1-1-1.%{winedll}
%{_libdir}/wine/api-ms-win-core-memory-l1-1-2.%{winedll}
+%{_libdir}/wine/api-ms-win-core-memory-l1-1-4.%{winedll}
%{_libdir}/wine/api-ms-win-core-misc-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-namedpipe-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-namedpipe-l1-2-0.%{winedll}
@@ -1373,6 +1381,7 @@ fi
%{_libdir}/wine/api-ms-win-devices-query-l1-1-1.%{winedll}
%{_libdir}/wine/api-ms-win-downlevel-advapi32-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-downlevel-advapi32-l2-1-0.%{winedll}
+%{_libdir}/wine/api-ms-win-downlevel-kernel32-l2-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-downlevel-normaliz-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-downlevel-ole32-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-downlevel-shell32-l1-1-0.%{winedll}
@@ -1766,6 +1775,7 @@ fi
%{_libdir}/wine/ndis.%{winesys}
%{_libdir}/wine/netapi32.dll.so
%{_libdir}/wine/netcfgx.%{winedll}
+%{_libdir}/wine/netio.%{winesys}
%{_libdir}/wine/netprofm.%{winedll}
%{_libdir}/wine/netsh.%{wineexe}
%{_libdir}/wine/newdev.%{winedll}
@@ -2147,7 +2157,8 @@ fi
%files arial-fonts
%doc COPYING.LIB
%{_datadir}/wine/fonts/arial*
-%endif #0%{?wine_staging}
+%endif
+#0%%{?wine_staging}
%files courier-fonts
%doc COPYING.LIB
@@ -2312,6 +2323,9 @@ fi
%endif
%changelog
+* Sun Jun 07 2020 Michael Cronenworth <mike(a)cchtml.com> 5.10-1
+- version update
+
* Tue Jun 02 2020 Michael Cronenworth <mike(a)cchtml.com> 5.9-2
- drop typelibs from 32-bit devel package
- add patch for wine bug 49208
3 years, 10 months