Architecture specific change in rpms/mpir.git
by githook-noreply@fedoraproject.org
The package rpms/mpir.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/mpir.git/commit/?id=9640d6b323e3e....
Change:
+%ifnarch x86_64 %ix86
Thanks.
Full change:
============
commit 9640d6b323e3e2837f57c53f4697b2725999f6de
Author: Benjamin Beasley <code(a)musicinmybrain.net>
Date: Tue Dec 8 11:32:58 2020 -0500
Do not BR yasm on platforms where it is not used in the build (https://github.com/wbhart/mpir/issues/270)
diff --git a/mpir.spec b/mpir.spec
index 71a10be..e672795 100644
--- a/mpir.spec
+++ b/mpir.spec
@@ -8,7 +8,7 @@ Name: mpir
Version: 3.0.0
%global so_version_c 23
%global so_version_cxx 8
-Release: 13%{?dist}
+Release: 14%{?dist}
Summary: Highly optimised library for bignum arithmetic
@@ -42,7 +42,9 @@ BuildRequires: gnulib-devel
BuildRequires: make
BuildRequires: gcc
BuildRequires: m4
+%ifarch x86_64 %ix86
BuildRequires: yasm
+%endif
%global _hardened_build 1
@@ -124,6 +126,9 @@ MPN_PATH='generic'; export MPN_PATH
--disable-static \
%if 0%{?epel} > 7 || ! 0%{?epel}
--enable-fat \
+%endif
+%ifnarch x86_64 %ix86
+ --with-yasm=%{_bindir}/false \
%endif
--enable-cxx
@@ -206,6 +211,10 @@ env LD_LIBRARY_PATH="${PWD}/.libs" %make_build check
%changelog
+* Tue Dec 8 2020 Benjamin A. Beasley <code(a)musicinmybrain.net> - 3.0.0-14
+- Do not BR yasm on platforms where it is not used in the build
+ (https://github.com/wbhart/mpir/issues/270)
+
* Tue Dec 8 2020 Benjamin A. Beasley <code(a)musicinmybrain.net> - 3.0.0-13
- Convert character encodings with a patch instead of a script; it turns out it
takes manual inspection to get this right
3 years, 4 months
Architecture specific change in rpms/cinnamon.git
by githook-noreply@fedoraproject.org
The package rpms/cinnamon.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/cinnamon.git/commit/?id=afee47700....
Change:
+ExcludeArch: s390x
Thanks.
Full change:
============
commit afee47700278abcf6c76577903f217a45667c9b0
Author: Leigh Scott <leigh123linux(a)gmail.com>
Date: Tue Dec 8 16:17:04 2020 +0000
Add ExcludeArch: s390x
diff --git a/cinnamon.spec b/cinnamon.spec
index fbe52a8..740fc56 100644
--- a/cinnamon.spec
+++ b/cinnamon.spec
@@ -27,6 +27,8 @@ Patch3: default_panal_launcher.patch
Patch4: remove_crap_from_menu.patch
Patch5: replace-metacity-with-openbox.patch
+# I don't have time to fix exotic arch
+ExcludeArch: s390x
BuildRequires: gcc-c++
BuildRequires: meson
3 years, 4 months
Architecture specific change in rpms/richacl.git
by githook-noreply@fedoraproject.org
The package rpms/richacl.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/richacl.git/commit/?id=260c6629b9....
Change:
+%ifarch i686 || %ifarch x86_64
Thanks.
Full change:
============
commit 260c6629b90861d7c7b363b50778ed40a6fcddb4
Author: Anoop C S <anoopcs(a)redhat.com>
Date: Thu May 14 11:36:47 2020 +0530
Cope with removal of glibc-headers package
Architecture specific glibc-headers are no longer availbale instead
require newly crafted noarch packages for librichacl-devel
https://fedoraproject.org/wiki/Changes/RemoveGlibcHeaders
resolves: #1871616
Signed-off-by: Anoop C S <anoopcs(a)redhat.com>
diff --git a/richacl.spec b/richacl.spec
index e8c5108..c12f128 100644
--- a/richacl.spec
+++ b/richacl.spec
@@ -3,7 +3,7 @@
Name: richacl
Summary: Rich Access Control List utilities
Version: 1.12
-Release: 10%{?dist}
+Release: 11%{?dist}
Requires: librichacl%{?_isa} = %{version}-%{release}
BuildRequires: autoconf automake libtool
BuildRequires: libattr-devel
@@ -37,7 +37,16 @@ Requires: librichacl%{?_isa} = %{version}-%{release}
Requires: libattr-devel%{?_isa}
# Required because of the directories those packages contain:
-Requires: pkgconfig%{?_isa}, glibc-headers%{?_isa}
+Requires: pkgconfig%{?_isa}
+%ifarch s390x
+Requires: glibc-headers-s390
+%else
+%ifarch i686 || %ifarch x86_64
+Requires: glibc-headers-x86
+%else
+Requires: glibc-devel
+%endif
+%endif
%description -n librichacl-devel
Header files and documentation needed to develop programs which make use
@@ -96,6 +105,9 @@ rm -f %{buildroot}%{_libdir}/librichacl.la
%{_libdir}/librichacl.so.*
%changelog
+* Wed Dec 02 2020 Anoop C S <anoopcs(a)redhat.com> - 1.12-11
+- resolves #1871616
+
* Wed Jul 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 1.12-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
3 years, 4 months
Architecture specific change in rpms/richacl.git
by githook-noreply@fedoraproject.org
The package rpms/richacl.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/richacl.git/commit/?id=260c6629b9....
Change:
+%ifarch i686 || %ifarch x86_64
Thanks.
Full change:
============
commit 260c6629b90861d7c7b363b50778ed40a6fcddb4
Author: Anoop C S <anoopcs(a)redhat.com>
Date: Thu May 14 11:36:47 2020 +0530
Cope with removal of glibc-headers package
Architecture specific glibc-headers are no longer availbale instead
require newly crafted noarch packages for librichacl-devel
https://fedoraproject.org/wiki/Changes/RemoveGlibcHeaders
resolves: #1871616
Signed-off-by: Anoop C S <anoopcs(a)redhat.com>
diff --git a/richacl.spec b/richacl.spec
index e8c5108..c12f128 100644
--- a/richacl.spec
+++ b/richacl.spec
@@ -3,7 +3,7 @@
Name: richacl
Summary: Rich Access Control List utilities
Version: 1.12
-Release: 10%{?dist}
+Release: 11%{?dist}
Requires: librichacl%{?_isa} = %{version}-%{release}
BuildRequires: autoconf automake libtool
BuildRequires: libattr-devel
@@ -37,7 +37,16 @@ Requires: librichacl%{?_isa} = %{version}-%{release}
Requires: libattr-devel%{?_isa}
# Required because of the directories those packages contain:
-Requires: pkgconfig%{?_isa}, glibc-headers%{?_isa}
+Requires: pkgconfig%{?_isa}
+%ifarch s390x
+Requires: glibc-headers-s390
+%else
+%ifarch i686 || %ifarch x86_64
+Requires: glibc-headers-x86
+%else
+Requires: glibc-devel
+%endif
+%endif
%description -n librichacl-devel
Header files and documentation needed to develop programs which make use
@@ -96,6 +105,9 @@ rm -f %{buildroot}%{_libdir}/librichacl.la
%{_libdir}/librichacl.so.*
%changelog
+* Wed Dec 02 2020 Anoop C S <anoopcs(a)redhat.com> - 1.12-11
+- resolves #1871616
+
* Wed Jul 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 1.12-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
3 years, 4 months
[Report] Packages Restricting Arches
by root
List of packages currently excluding arches (2578)
===========================================
- 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}
- OpenImageIO
ExclusiveArch: x86_64 ppc64le
- PragmARC
ExclusiveArch: %{GPRbuild_arches}
- R-V8
ExclusiveArch: %{nodejs_arches}
- RdRand
ExclusiveArch: %{ix86} x86_64
- RediSearch
ExclusiveArch: x86_64
- SLOF
ExclusiveArch: ppc64le
- YafaRay
ExclusiveArch: %{ix86} x86_64
- aboot
ExclusiveArch: alpha
- accel-config
ExclusiveArch: %{ix86} x86_64
- 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}
- anki
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- 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 armv7hl
- bcm283x-firmware
ExclusiveArch: %{arm} aarch64
- berusky2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{mips}
- biosdevname
ExclusiveArch: %{ix86} x86_64
- blender
ExclusiveArch: x86_64 aarch64 ppc64le
- bless
ExclusiveArch: %mono_arches
- boo
ExclusiveArch: %{mono_arches}
- bpftrace
ExclusiveArch: x86_64 %{power64} aarch64 s390x
- calamares
ExclusiveArch: %{ix86} x86_64
- calibre
ExclusiveArch: %{qt5_qtwebengine_arches}
- 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}
- clevis-pin-tpm2
ExclusiveArch: %{rust_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-parsec
ExclusiveArch: %{rust_arches}
- 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}}
- deepin-desktop-schemas
ExclusiveArch: %{go_arches}
- 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: aarch64 x86_64
ExclusiveArch: x86_64
- dotnet3.1
ExclusiveArch: aarch64 x86_64
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}
- emacs-slime
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- 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-developer-portal
ExclusiveArch: x86_64 i686 aarch64 # only chromium architectures
- 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
- fwts
ExclusiveArch: x86_64 %{arm} aarch64 s390x riscv64 %{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: %{grafanapcp_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}
- 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-ipsec-mb
ExclusiveArch: x86_64
ExclusiveArch: x86_64
- 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
- ispc
ExclusiveArch: x86_64 aarch64
- iucode-tool
ExclusiveArch: %{ix86} x86_64
- iyfct
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- 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
- kubernetes
ExclusiveArch: x86_64 aarch64 ppc64le s390x %{arm}
- lazarus
ExclusiveArch: %{fpc_arches}
- lazpaint
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 x86_64
- libguestfs
ExclusiveArch: %{kernel_arches}
- libica
ExclusiveArch: s390 s390x
- libipt
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- libnxz
ExclusiveArch: ppc64le
- 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
- libvma
ExclusiveArch: x86_64 ppc64le ppc64 aarch64
- libvmi
ExclusiveArch: x86_64
- libvpd
ExclusiveArch: %{power64}
- libxsmm
ExclusiveArch: x86_64
- libzfcphbaapi
ExclusiveArch: s390 s390x
- lightdm
ExclusiveArch: x86_64 ppc64le
- 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 ppc64 ppc64le s390x aarch64
- 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
- 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
- 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}
- nispor
ExclusiveArch: %{rust_arches}
- nodejs
ExclusiveArch: %{nodejs_arches}
- nodejs-Base64
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-align-text
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-append-field
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-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-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-asap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-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-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-aws4
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-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-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-beeper
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-bit-mask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-blob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-block-stream
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-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- 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-caching-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-as-promised
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-json-schema
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-oauth2orize-grant
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-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-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-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-stats
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-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-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-inherit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-concat-map
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-connect-livereload
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-console-group
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-consolemd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-content-disposition
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-preset-loader
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-filter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-hex
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-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-crc
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-what
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csso
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-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-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-define-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-delayed-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-delegates
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-dezalgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dicer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-diff
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-dot-prop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dotfile-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duplexer2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-echomd
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-error-symbol
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-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-espurify
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-event-emitter
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-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-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-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-figures
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-file-sync-cmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-filename-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fill-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-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-forwarded
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fragment-cache
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-temp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-write-stream-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-function-loop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gaze
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-generic-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-port
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-value
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-globals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-readlink
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-growl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-banner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-nodeunit
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-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-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-yarn
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-hosted-git-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-deceiver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-iferr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ignore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-immutable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-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-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-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-accessor-descriptor
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-data-descriptor
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-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-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-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-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-subset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-text-path
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-isobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isodate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-reports
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jade
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jest-mock
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-js-base64
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-tokens
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jschardet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stable-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stringify-safe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json3
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonparse
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-keep-alive-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-keygrip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-kind-of
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lazy-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lcid
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-levn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- 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-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-error
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-markdown
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-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-metascript
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-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-modify-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb-core
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ms
ExclusiveArch: %{nodejs_arches} 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-mysql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mz
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nanomsg
ExclusiveArch: %{nodejs_arches}
- nodejs-nanoseconds
ExclusiveArch: %{nodejs_arches} 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-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-usage
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-package-arg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-run-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nth-check
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-number-is-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth2orize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-copy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-dot-omit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-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-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-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-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-try
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-package-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-packaging
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-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-pascalcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-http-bearer
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-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-path2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pathval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pbkdf2-password
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-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-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-proclaim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress
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-propagate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-propget
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proxy-addr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pruddy-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pseudomap
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-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-re-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-readdir-enhanced
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readdirp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-realize-package-specifier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-regex-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regex-not
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-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-replace
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-replace-require-self
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-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-reusify
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-plugin-buble
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-json
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-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-safecb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-samsam
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-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-value
ExclusiveArch: %{nodejs_arches} 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-sift
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-signal-exit
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-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-slide
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} 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-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-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-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-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-stream-consume
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-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-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-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-supervisor
ExclusiveArch: %{nodejs_arches} 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-out
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-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tempfile
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-testutil
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-extensions
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-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-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-tippex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tlds
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tmatch
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-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-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-uid-safe
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-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unpipe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unset-value
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-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-inspect
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-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-queue
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-when
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-whet-dot-extend
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-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-xmlhttprequest
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-zeropad
ExclusiveArch: %{nodejs_arches} 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 armv7hl
- 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}
- onednn
ExclusiveArch: x86_64 aarch64 ppc64le
- 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}
- openshadinglanguage
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- 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}
- parsec
ExclusiveArch: %{rust_arches}
- parsec-tool
ExclusiveArch: %{rust_arches}
- 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: x86_64
- pinta
ExclusiveArch: %mono_arches
- pioneer
ExclusiveArch: %{ix86} x86_64
- pmdk-convert
ExclusiveArch: x86_64
- pmemkv
ExclusiveArch: 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}
- psi-plus
ExclusiveArch: %{qt5_qtwebengine_arches}
- 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
- qemu-sanity-check
ExclusiveArch: %{kernel_arches}
- 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: 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-ab_glyph_rasterizer
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-adler
ExclusiveArch: %{rust_arches}
- rust-adler32
ExclusiveArch: %{rust_arches}
- rust-aead
ExclusiveArch: %{rust_arches}
- rust-aes
ExclusiveArch: %{rust_arches}
- rust-aes-gcm
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-alacritty
ExclusiveArch: %{rust_arches}
- rust-alacritty_terminal
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-andrew
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-argparse
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-askama
ExclusiveArch: %{rust_arches}
- rust-askama_derive
ExclusiveArch: %{rust_arches}
- rust-askama_escape
ExclusiveArch: %{rust_arches}
- rust-askama_shared
ExclusiveArch: %{rust_arches}
- rust-assert-json-diff
ExclusiveArch: %{rust_arches}
- rust-assert_cli
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-base64_0.12
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-binfarce
ExclusiveArch: %{rust_arches}
- rust-biscuit
ExclusiveArch: %{rust_arches}
- rust-bit-set
ExclusiveArch: %{rust_arches}
- rust-bit-vec
ExclusiveArch: %{rust_arches}
- rust-bitfield
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-blobby0.1
ExclusiveArch: %{rust_arches}
- rust-block-buffer
ExclusiveArch: %{rust_arches}
- rust-block-buffer0.7
ExclusiveArch: %{rust_arches}
- rust-block-cipher
ExclusiveArch: %{rust_arches}
- rust-block-cipher-trait
ExclusiveArch: %{rust_arches}
- rust-block-modes
ExclusiveArch: %{rust_arches}
- rust-block-padding
ExclusiveArch: %{rust_arches}
- rust-blsctl
ExclusiveArch: %{rust_arches}
- rust-bodhi
ExclusiveArch: %{rust_arches}
- rust-bodhi-cli
ExclusiveArch: %{rust_arches}
- rust-bootupd
ExclusiveArch: x86_64 aarch64
- 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-min
ExclusiveArch: %{rust_arches}
- rust-buf_redux
ExclusiveArch: %{rust_arches}
- rust-bufstream
ExclusiveArch: %{rust_arches}
- rust-build_const
ExclusiveArch: %{rust_arches}
- rust-bumpalo
ExclusiveArch: %{rust_arches}
- rust-byte-tools
ExclusiveArch: %{rust_arches}
- rust-byte-unit
ExclusiveArch: %{rust_arches}
- rust-bytecount
ExclusiveArch: %{rust_arches}
- rust-bytelines
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-bytes0.5
ExclusiveArch: %{rust_arches}
- rust-bytesize
ExclusiveArch: %{rust_arches}
- rust-bytestring
ExclusiveArch: %{rust_arches}
- rust-bzip2
ExclusiveArch: %{rust_arches}
- rust-bzip2-sys
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-insta
ExclusiveArch: %{rust_arches}
- rust-cargo-platform
ExclusiveArch: %{rust_arches}
- rust-cargo-readme
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-cedarwood
ExclusiveArch: %{rust_arches}
- rust-cexpr
ExclusiveArch: %{rust_arches}
- rust-cfg-if
ExclusiveArch: %{rust_arches}
- rust-cfg-if0.1
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-cipher
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-colored1
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.11
ExclusiveArch: %{rust_arches}
- rust-console0.12
ExclusiveArch: %{rust_arches}
- rust-console0.9
ExclusiveArch: %{rust_arches}
- rust-const-random
ExclusiveArch: %{rust_arches}
- rust-const-random-macro
ExclusiveArch: %{rust_arches}
- rust-const_fn
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-copydeps
ExclusiveArch: %{rust_arches}
- rust-copyless
ExclusiveArch: %{rust_arches}
- rust-copypasta
ExclusiveArch: %{rust_arches}
- rust-coreos-installer
ExclusiveArch: %{rust_arches}
- rust-cpio
ExclusiveArch: %{rust_arches}
- rust-cpp_demangle
ExclusiveArch: %{rust_arches}
- rust-cpuid-bool
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-channel0.4
ExclusiveArch: %{rust_arches}
- rust-crossbeam-deque
ExclusiveArch: %{rust_arches}
- rust-crossbeam-deque0.7
ExclusiveArch: %{rust_arches}
- rust-crossbeam-epoch
ExclusiveArch: %{rust_arches}
- rust-crossbeam-epoch0.8
ExclusiveArch: %{rust_arches}
- rust-crossbeam-queue
ExclusiveArch: %{rust_arches}
- rust-crossbeam-queue0.2
ExclusiveArch: %{rust_arches}
- rust-crossbeam-utils
ExclusiveArch: %{rust_arches}
- rust-crossbeam-utils0.7
ExclusiveArch: %{rust_arches}
- rust-crossbeam0.7
ExclusiveArch: %{rust_arches}
- rust-crossfont
ExclusiveArch: %{rust_arches}
- rust-crossterm
ExclusiveArch: %{rust_arches}
- rust-crossterm0.17
ExclusiveArch: %{rust_arches}
- rust-crypto-hash
ExclusiveArch: %{rust_arches}
- rust-crypto-mac
ExclusiveArch: %{rust_arches}
- rust-crypto-mac0.8
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-ctr
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-dbus-codegen
ExclusiveArch: %{rust_arches}
- rust-dbus-crossroads
ExclusiveArch: %{rust_arches}
- rust-dbus0.2
ExclusiveArch: %{rust_arches}
- rust-dbus0.6
ExclusiveArch: %{rust_arches}
- rust-dbus0.8
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-derivative
ExclusiveArch: %{rust_arches}
- rust-derive_arbitrary
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-dialoguer
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-digest0.8
ExclusiveArch: %{rust_arches}
- rust-directories
ExclusiveArch: %{rust_arches}
- rust-dirs
ExclusiveArch: %{rust_arches}
- rust-dirs-sys
ExclusiveArch: %{rust_arches}
- rust-dirs2
ExclusiveArch: %{rust_arches}
- rust-diskonaut
ExclusiveArch: %{rust_arches}
- rust-dissimilar
ExclusiveArch: %{rust_arches}
- rust-dlib
ExclusiveArch: %{rust_arches}
- rust-dlv-list
ExclusiveArch: %{rust_arches}
- rust-dns-lookup
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-enumflags2
ExclusiveArch: %{rust_arches}
- rust-enumflags2_derive
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-env_logger0.7
ExclusiveArch: %{rust_arches}
- rust-environment
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-euclid
ExclusiveArch: %{rust_arches}
- rust-exa
ExclusiveArch: %{rust_arches}
- rust-expat-sys
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
ExclusiveArch: %{rust_arches}
- rust-fake-simd
ExclusiveArch: %{rust_arches}
- rust-fake_clock
ExclusiveArch: %{rust_arches}
- rust-fallible-iterator
ExclusiveArch: %{rust_arches}
- rust-fastrand
ExclusiveArch: %{rust_arches}
- rust-fd-find
ExclusiveArch: %{rust_arches}
- rust-fdlimit
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-cmp0.6
ExclusiveArch: %{rust_arches}
- rust-float-ord
ExclusiveArch: %{rust_arches}
- rust-flume
ExclusiveArch: %{rust_arches}
- rust-fnv
ExclusiveArch: %{rust_arches}
- rust-font-kit
ExclusiveArch: %{rust_arches}
- rust-foreign-types
ExclusiveArch: %{rust_arches}
- rust-foreign-types-macros
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared0.1
ExclusiveArch: %{rust_arches}
- rust-foreign-types0.3
ExclusiveArch: %{rust_arches}
- rust-form_urlencoded
ExclusiveArch: %{rust_arches}
- rust-fragile
ExclusiveArch: %{rust_arches}
- rust-freetype
ExclusiveArch: %{rust_arches}
- rust-freetype-rs
ExclusiveArch: %{rust_arches}
- rust-freetype-sys
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-generic-array0.12
ExclusiveArch: %{rust_arches}
- rust-getch
ExclusiveArch: %{rust_arches}
- rust-gethostname
ExclusiveArch: %{rust_arches}
- rust-getopts
ExclusiveArch: %{rust_arches}
- rust-getrandom
ExclusiveArch: %{rust_arches}
- rust-getrandom0.1
ExclusiveArch: %{rust_arches}
- rust-gettext-rs
ExclusiveArch: %{rust_arches}
- rust-gettext-sys
ExclusiveArch: %{rust_arches}
- rust-ghash
ExclusiveArch: %{rust_arches}
- rust-gif
ExclusiveArch: %{rust_arches}
- rust-gif0.10
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-gl_generator
ExclusiveArch: %{rust_arches}
- rust-glib
ExclusiveArch: %{rust_arches}
- rust-glib-macros
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-glutin
ExclusiveArch: %{rust_arches}
- rust-glutin_egl_sys
ExclusiveArch: %{rust_arches}
- rust-glutin_glx_sys
ExclusiveArch: %{rust_arches}
- rust-gobject-sys
ExclusiveArch: %{rust_arches}
- rust-goblin
ExclusiveArch: %{rust_arches}
- rust-google-drive3-fork
ExclusiveArch: %{rust_arches}
- rust-gptman
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-hex-literal0.2
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-hostname-validator
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-httpdate
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-insta
ExclusiveArch: %{rust_arches}
- rust-instant
ExclusiveArch: %{rust_arches}
- rust-interpolate_name
ExclusiveArch: %{rust_arches}
- rust-intervaltree
ExclusiveArch: %{rust_arches}
- rust-invalidstring
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-jieba-rs
ExclusiveArch: %{rust_arches}
- rust-jobserver
ExclusiveArch: %{rust_arches}
- rust-jpeg-decoder
ExclusiveArch: %{rust_arches}
- rust-jql
ExclusiveArch: %{rust_arches}
- rust-js-sys
ExclusiveArch: %{rust_arches}
- rust-json
ExclusiveArch: %{rust_arches}
- rust-jwalk
ExclusiveArch: %{rust_arches}
- rust-keccak
ExclusiveArch: %{rust_arches}
- rust-khronos_api
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-libcryptsetup-rs
ExclusiveArch: %{rust_arches}
- rust-libcryptsetup-rs-sys
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-line_drawing
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-log-panics
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-mbox
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-memoffset0.5
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_oxide0.3
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-netlink-packet-core
ExclusiveArch: %{rust_arches}
- rust-netlink-packet-route
ExclusiveArch: %{rust_arches}
- rust-netlink-packet-utils
ExclusiveArch: %{rust_arches}
- rust-netlink-proto
ExclusiveArch: %{rust_arches}
- rust-netlink-sys
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-nix0.17
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-bigint-dig
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-obfstr
ExclusiveArch: %{rust_arches}
- rust-obfstr-impl
ExclusiveArch: %{rust_arches}
- rust-object
ExclusiveArch: %{rust_arches}
- rust-odds
ExclusiveArch: %{rust_arches}
- rust-oid
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-openat
ExclusiveArch: %{rust_arches}
- rust-openat-ext
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-ordered-multimap
ExclusiveArch: %{rust_arches}
- rust-os_info
ExclusiveArch: %{rust_arches}
- rust-os_pipe
ExclusiveArch: %{rust_arches}
- rust-osmesa-sys
ExclusiveArch: %{rust_arches}
- rust-osstrtools
ExclusiveArch: %{rust_arches}
- rust-ostree
ExclusiveArch: %{rust_arches}
- rust-ostree-sys
ExclusiveArch: %{rust_arches}
- rust-owned-alloc
ExclusiveArch: %{rust_arches}
- rust-owned_ttf_parser
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-palette
ExclusiveArch: %{rust_arches}
- rust-palette_derive
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-parse_cfg
ExclusiveArch: %{rust_arches}
- rust-parsec-client
ExclusiveArch: %{rust_arches}
- rust-parsec-interface
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-pathfinder_geometry
ExclusiveArch: %{rust_arches}
- rust-pathfinder_simd
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-peg-macros
ExclusiveArch: %{rust_arches}
- rust-peg-runtime
ExclusiveArch: %{rust_arches}
- rust-peg0.5
ExclusiveArch: %{rust_arches}
- rust-pem
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-picky-asn1
ExclusiveArch: %{rust_arches}
- rust-picky-asn1-der
ExclusiveArch: %{rust_arches}
- rust-picky-asn1-x509
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-internal0.4
ExclusiveArch: %{rust_arches}
- rust-pin-project-lite
ExclusiveArch: %{rust_arches}
- rust-pin-project-lite0.1
ExclusiveArch: %{rust_arches}
- rust-pin-project0.4
ExclusiveArch: %{rust_arches}
- rust-pin-utils
ExclusiveArch: %{rust_arches}
- rust-pipe
ExclusiveArch: %{rust_arches}
- rust-piper
ExclusiveArch: %{rust_arches}
- rust-pkcs11
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-plotters
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-polyval
ExclusiveArch: %{rust_arches}
- rust-pommes
ExclusiveArch: %{rust_arches}
- rust-ppv-lite86
ExclusiveArch: %{rust_arches}
- rust-pq-sys
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-hex
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-crate
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-procfs0.8
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-prost
ExclusiveArch: %{rust_arches}
- rust-prost-build
ExclusiveArch: %{rust_arches}
- rust-prost-derive
ExclusiveArch: %{rust_arches}
- rust-prost-types
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-psa-crypto
ExclusiveArch: %{rust_arches}
- rust-psa-crypto-sys
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-pure-rust-locales
ExclusiveArch: %{rust_arches}
- rust-qr2term
ExclusiveArch: %{rust_arches}
- rust-qrcode
ExclusiveArch: %{rust_arches}
- rust-quick-error
ExclusiveArch: %{rust_arches}
- rust-quick-error1
ExclusiveArch: %{rust_arches}
- rust-quick-xml
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_distr0.2
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-raw-window-handle
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-ring
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-rsa
ExclusiveArch: %{rust_arches}
- rust-rtnetlink
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-rusttype
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-sd-notify
ExclusiveArch: %{rust_arches}
- rust-seahash
ExclusiveArch: %{rust_arches}
- rust-secrecy
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-semver-parser0.9
ExclusiveArch: %{rust_arches}
- rust-semver0.10
ExclusiveArch: %{rust_arches}
- rust-semver0.9
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_urlencoded0.6
ExclusiveArch: %{rust_arches}
- rust-serde_with_macros
ExclusiveArch: %{rust_arches}
- rust-serde_yaml
ExclusiveArch: %{rust_arches}
- rust-serial_test
ExclusiveArch: %{rust_arches}
- rust-serial_test_derive
ExclusiveArch: %{rust_arches}
- rust-servo-fontconfig
ExclusiveArch: %{rust_arches}
- rust-servo-fontconfig-sys
ExclusiveArch: %{rust_arches}
- rust-sha-1
ExclusiveArch: %{rust_arches}
- rust-sha1
ExclusiveArch: %{rust_arches}
- rust-sha2
ExclusiveArch: %{rust_arches}
- rust-sha3
ExclusiveArch: %{rust_arches}
- rust-shared_child
ExclusiveArch: %{rust_arches}
- rust-shared_library
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_asn1
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-smithay-client-toolkit
ExclusiveArch: %{rust_arches}
- rust-smithay-clipboard
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-spinning_top
ExclusiveArch: %{rust_arches}
- rust-spmc
ExclusiveArch: %{rust_arches}
- rust-ssh-key-dir
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-system-deps
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-textwrap0.11
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-tinyvec0.3
ExclusiveArch: %{rust_arches}
- rust-tinyvec_macros
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-tpm2-policy
ExclusiveArch: %{rust_arches}
- rust-tracing
ExclusiveArch: %{rust_arches}
- rust-tracing-attributes
ExclusiveArch: %{rust_arches}
- rust-tracing-core
ExclusiveArch: %{rust_arches}
- rust-tracing-futures
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-tss-esapi
ExclusiveArch: %{rust_arches}
- rust-ttf-parser
ExclusiveArch: %{rust_arches}
- rust-tui
ExclusiveArch: %{rust_arches}
- rust-tui-react
ExclusiveArch: %{rust_arches}
- rust-tui0.11
ExclusiveArch: %{rust_arches}
- rust-tui0.9
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-universal-hash
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-urlocator
ExclusiveArch: %{rust_arches}
- rust-urlshortener
ExclusiveArch: %{rust_arches}
- rust-users
ExclusiveArch: %{rust_arches}
- rust-users0.10
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
ExclusiveArch: %{rust_arches}
- rust-version-compare
ExclusiveArch: %{rust_arches}
- rust-version-sync
ExclusiveArch: %{rust_arches}
- rust-version-sync0.8
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-vte0.3
ExclusiveArch: %{rust_arches}
- rust-vte_generate_state_changes
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-wasm-bindgen
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-backend
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-macro
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-macro-support
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-shared
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-test-macro
ExclusiveArch: %{rust_arches}
- rust-wayland-client
ExclusiveArch: %{rust_arches}
- rust-wayland-commons
ExclusiveArch: %{rust_arches}
- rust-wayland-cursor
ExclusiveArch: %{rust_arches}
- rust-wayland-egl
ExclusiveArch: %{rust_arches}
- rust-wayland-protocols
ExclusiveArch: %{rust_arches}
- rust-wayland-scanner
ExclusiveArch: %{rust_arches}
- rust-wayland-server
ExclusiveArch: %{rust_arches}
- rust-wayland-sys
ExclusiveArch: %{rust_arches}
- rust-web-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-weezl
ExclusiveArch: %{rust_arches}
- rust-which
ExclusiveArch: %{rust_arches}
- rust-wild
ExclusiveArch: %{rust_arches}
- rust-winit
ExclusiveArch: %{rust_arches}
- rust-ws
ExclusiveArch: %{rust_arches}
- rust-x11
ExclusiveArch: %{rust_arches}
- rust-x11-clipboard
ExclusiveArch: %{rust_arches}
- rust-x11-dl
ExclusiveArch: %{rust_arches}
- rust-xattr
ExclusiveArch: %{rust_arches}
- rust-xcb
ExclusiveArch: %{rust_arches}
- rust-xcursor
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-zbus_macros
ExclusiveArch: %{rust_arches}
- rust-zeroize
ExclusiveArch: %{rust_arches}
- rust-zeroize_derive
ExclusiveArch: %{rust_arches}
- rust-zincati
ExclusiveArch: %{rust_arches}
- rust-zip
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}
- rust-zvariant
ExclusiveArch: %{rust_arches}
- rust-zvariant_derive
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
- seadrive-gui
ExclusiveArch: %{qt5_qtwebengine_arches}
- seafile-client
ExclusiveArch: %{qt5_qtwebengine_arches}
- seamonkey
ExclusiveArch: x86_64
- seqan3
ExclusiveArch: %{power64} x86_64 aarch64
- 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: %{kernel_arches}
- 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}
- testcloud
ExclusiveArch: %{kernel_arches} noarch
- 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}
- 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
- virt-v2v
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
- zeromq-ada
ExclusiveArch: %{GPRbuild_arches}
- zlib-ada
ExclusiveArch: %{GPRbuild_arches}
- zlib-ng
ExclusiveArch: aarch64 i686 ppc64le s390x x86_64
- zola
ExclusiveArch: %{rust_arches}
3 years, 4 months
Architecture specific change in rpms/sbd.git
by githook-noreply@fedoraproject.org
The package rpms/sbd.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/sbd.git/commit/?id=8a938dfd0962df....
Change:
-%ifarch s390x s390
Thanks.
Full change:
============
commit 8a938dfd0962df58ab049e80a1639844a014b5d7
Author: Klaus Wenninger <klaus.wenninger(a)aon.at>
Date: Mon Dec 7 23:34:59 2020 +0100
* Mon Dec 7 2020 Klaus Wenninger <kwenning(a)redhat.com> - 1.4.2-1
- Rebase to upstream v1.4.2
- Conflict with pacemaker that doesn't have pacemakerd-api
- Set default to not do startup/shutdown-syncing via pacemakerd-api
but enable in template-config
diff --git a/0001-Fix-regressions.sh-make-parameter-passing-consistent.patch b/0001-Fix-regressions.sh-make-parameter-passing-consistent.patch
deleted file mode 100644
index 6f17a5a..0000000
--- a/0001-Fix-regressions.sh-make-parameter-passing-consistent.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 1d2a7b8d059d4f090b351b8decca0ddf274c82a0 Mon Sep 17 00:00:00 2001
-From: Klaus Wenninger <klaus.wenninger(a)aon.at>
-Date: Wed, 20 Nov 2019 15:20:19 +0100
-Subject: [PATCH] Fix: regressions.sh: make parameter passing consistent
-
----
- tests/regressions.sh | 24 ++++++++++++------------
- 1 file changed, 12 insertions(+), 12 deletions(-)
-
-diff --git a/tests/regressions.sh b/tests/regressions.sh
-index 6cfb303..7ab80be 100755
---- a/tests/regressions.sh
-+++ b/tests/regressions.sh
-@@ -32,7 +32,7 @@
- : ${SBD_USE_DM:="yes"}
-
- sbd() {
-- LD_PRELOAD=${SBD_PRELOAD} SBD_WATCHDOG_TIMEOUT=5 SBD_DEVICE="${SBD_DEVICE}" SBD_PRELOAD_LOG=${SBD_PRELOAD_LOG} SBD_WATCHDOG_DEV=/dev/watchdog setsid ${SBD_BINARY} -p ${SBD_PIDFILE} $*
-+ LD_PRELOAD=${SBD_PRELOAD} SBD_WATCHDOG_TIMEOUT=5 SBD_DEVICE="${SBD_DEVICE}" SBD_PRELOAD_LOG=${SBD_PRELOAD_LOG} SBD_WATCHDOG_DEV=/dev/watchdog setsid ${SBD_BINARY} -p ${SBD_PIDFILE} "$@"
- }
-
- sbd_wipe_disk() {
-@@ -98,26 +98,26 @@ sbd_daemon_cleanup() {
- pkill -TERM --pidfile ${SBD_PIDFILE} 2>/dev/null
- sleep 5
- pkill -KILL --pidfile ${SBD_PIDFILE} 2>/dev/null
-- pkill -KILL --parent $(cat ${SBD_PIDFILE} 2>/dev/null) 2>/dev/null
-+ pkill -KILL --parent "$(cat ${SBD_PIDFILE} 2>/dev/null)" 2>/dev/null
- echo > ${SBD_PIDFILE}
- }
-
- _ok() {
-- echo -- $@
-- $@
-+ echo "-- $*"
-+ "$@"
- rc=$?
- if [ $rc -ne 0 ]; then
-- echo "$@ failed with $rc"
-+ echo "$* failed with $rc"
- exit $rc
- fi
- }
-
- _no() {
-- echo -- $@
-- $@
-+ echo "-- $*"
-+ "$@"
- rc=$?
- if [ $rc -eq 0 ]; then
-- echo "$@ did NOT fail ($rc)"
-+ echo "$* did NOT fail ($rc)"
- exit $rc
- fi
- return 0
-@@ -126,7 +126,7 @@ _no() {
- _in_log() {
- grep "$@" ${SBD_PRELOAD_LOG} >/dev/null
- if [ $? -ne 0 ]; then
-- echo "didn't find '$@' in log:"
-+ echo "didn't find '$*' in log:"
- cat ${SBD_PRELOAD_LOG}
- sbd_daemon_cleanup
- exit 1
-@@ -227,10 +227,10 @@ test_stall_inquisitor() {
- sbd_daemon_cleanup
- sbd -d ${D[1]} -d ${D[2]} -d ${D[3]} -n test-1 watch
- sleep 10
-- _ok kill -0 $(cat ${SBD_PIDFILE})
-- kill -STOP $(cat ${SBD_PIDFILE})
-+ _ok kill -0 "$(cat ${SBD_PIDFILE})"
-+ kill -STOP "$(cat ${SBD_PIDFILE})"
- sleep 10
-- kill -CONT $(cat ${SBD_PIDFILE}) 2>/dev/null
-+ kill -CONT "$(cat ${SBD_PIDFILE})" 2>/dev/null
- _in_log "watchdog fired"
- }
-
---
-1.8.3.1
-
diff --git a/0002-Doc-add-environment-section-to-man-page.patch b/0002-Doc-add-environment-section-to-man-page.patch
deleted file mode 100644
index 2ad9556..0000000
--- a/0002-Doc-add-environment-section-to-man-page.patch
+++ /dev/null
@@ -1,1459 +0,0 @@
-From 9dd82a8b4daa5a7bd8ab3afa43b081f212efb1ac Mon Sep 17 00:00:00 2001
-From: Klaus Wenninger <klaus.wenninger(a)aon.at>
-Date: Wed, 29 Jan 2020 20:34:18 +0100
-Subject: [PATCH] Doc: add environment section to man-page
-
-Environment section is auto-generated from sbd.sysconfig.
----
- .gitignore | 1 +
- Makefile.am | 6 +-
- README.md | 3 +-
- man/Makefile.am | 8 +-
- man/sbd.8.pod | 668 -----------------------------------------------------
- man/sbd.8.pod.in | 675 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
- src/sbd.sysconfig | 3 +-
- 7 files changed, 690 insertions(+), 674 deletions(-)
- delete mode 100644 man/sbd.8.pod
- create mode 100644 man/sbd.8.pod.in
-
-diff --git a/Makefile.am b/Makefile.am
-index 1c29f75..bd4346d 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -9,8 +9,8 @@ TARFILE = $(distdir).tar.gz
- DIST_ARCHIVES = $(TARFILE)
- KEEP_EXISTING_TAR = no
- INJECT_GIT_COMMIT = yes
--DISTCLEANFILES = sbd-* sbd-*/
- CLEANFILES = *.rpm *.tar.* sbd-*
-+DISTCLEANFILES = sbd-* sbd-*/
-
- RPM_ROOT = $(shell pwd)
- RPM_OPTS = --define "_sourcedir $(RPM_ROOT)" \
-@@ -31,7 +31,7 @@ export SBD_BINARY := src/sbd
- export SBD_PRELOAD := tests/.libs/libsbdtestbed.so
- export SBD_USE_DM := no
-
--EXTRA_DIST = sbd.spec tests/regressions.sh
-+EXTRA_DIST = sbd.spec tests/regressions.sh man/sbd.8.pod.in
-
- export:
- rm -f $(PACKAGE)-HEAD.tar.*
-@@ -43,7 +43,7 @@ export:
- echo `date`: Using existing tarball: $(TARFILE); \
- else \
- rm -f $(PACKAGE).tar.*; \
-- (git archive --prefix=$(distdir)/ $(shell echo $(TAG)|cut -f1 -d-) || tar -c --transform="s,^,$(distdir)/," --exclude="*.tar.*" --exclude="$(distdir)" --exclude="*.o" --exclude="*.8" --exclude="config.*" --exclude="libtool" --exclusive="ltmain.sh*" --exclude="Makefile" --exclude="Makefile.in" --exclude="stamp-*" --exclude="*.service" --exclude="sbd" --exclude="*.m4" --exclude="*.cache" --exclude="configure" --exclude="*.list" --exclude="depcomp" --exclude="install-sh" --exclude="missing" --exclude="compile" --exclude="sbd.sh" --exclude="~" --exclude="*.swp" --exclude="*.patch" --exclude="*.diff" --exclude="*.orig" --exclude="*.rej" --exclude="*.rpm" --exclude=".deps" --exclude="test-driver" *) | gzip > $(TARFILE); \
-+ (git archive --prefix=$(distdir)/ $(shell echo $(TAG)|cut -f1 -d-) || tar -c --transform="s,^,$(distdir)/," --exclude="*.tar.*" --exclude="$(distdir)" --exclude="*.o" --exclude="*.8" --exclude="config.*" --exclude="libtool" --exclude="ltmain.sh*" --exclude="Makefile" --exclude="Makefile.in" --exclude="stamp-*" --exclude="*.service" --exclude="sbd" --exclude="*.m4" --exclude="*.cache" --exclude="configure" --exclude="*.list" --exclude="depcomp" --exclude="install-sh" --exclude="missing" --exclude="compile" --exclude="sbd.sh" --exclude="~" --exclude="*.swp" --exclude="*.patch" --exclude="*.diff" --exclude="*.orig" --exclude="*.rej" --exclude="*.rpm" --exclude="*.pod" --exclude=".deps" --exclude="test-driver" *) | gzip > $(TARFILE); \
- if test -n "$$(git status -s)" || test "$(INJECT_GIT_COMMIT)" = "yes"; then \
- if test -n "$$(git status -s)"; then git diff HEAD --name-only|grep -v "^\."|xargs -n1 git diff HEAD > uncommitted.diff; fi; \
- rm -rf $(distdir); tar -xzf $(TARFILE); rm $(TARFILE); \
-diff --git a/README.md b/README.md
-index d02a8bd..42a3fde 100644
---- a/README.md
-+++ b/README.md
-@@ -5,5 +5,6 @@ A highly reliable fencing or Shoot-the-other-node-in-the-head (STONITH) mechanis
- The component works with Pacemaker clusters, and is currently known to
- compile and function on Pacemaker 1.1.7+ and corosync 1.4.x or 2.3.x.
-
--Please see https://github.com/l-mb/sbd/blob/master/man/sbd.8.pod for the full documentation.
-+Please see https://github.com/clusterlabs/sbd/blob/master/man/sbd.8.pod.in &
-+https://github.com/clusterlabs/sbd/blob/master/src/sbd.sysconfig for the full documentation.
-
-diff --git a/man/Makefile.am b/man/Makefile.am
-index 3f89085..995712d 100644
---- a/man/Makefile.am
-+++ b/man/Makefile.am
-@@ -1,6 +1,12 @@
- dist_man_MANS = sbd.8
-
--EXTRA_DIST = sbd.8.pod
-+DISTCLEANFILES = sbd.8.pod sbd.8 sbd.sysconfig.pod
-+
-+sbd.sysconfig.pod: ../src/sbd.sysconfig
-+ sed -r -n -e "s/^## Type: (.*)/Allows C<\1>/;t type;s/^## Default: (.*)/ defaulting to C<\1>/;t default;s/^#*(.*)=.*/=item B<\1>\n/;t variable;s/^#*//;s/^ *//;H;d;:type;h;d;:default;H;x;s/\n//;x;d;:variable;G;p" $< > $@
-+
-+sbd.8.pod: sbd.8.pod.in sbd.sysconfig.pod
-+ sed -e "s/@environment_section@//;t insert;p;d;:insert;rsbd.sysconfig.pod" $< > $@
-
- sbd.8: sbd.8.pod
- @POD2MAN@ -s 8 -c "STONITH Block Device" -r "SBD" -n "SBD" $< $@
-diff --git a/man/sbd.8.pod b/man/sbd.8.pod
-deleted file mode 100644
-index 377c579..0000000
---- a/man/sbd.8.pod
-+++ /dev/null
-@@ -1,668 +0,0 @@
--=head1 NAME
--
--sbd - STONITH Block Device daemon
--
--=head1 SYNOPSIS
--
--sbd <-d F</dev/...>> [options] C<command>
--
--=head1 SUMMARY
--
--SBD provides a node fencing mechanism (Shoot the other node in the head,
--STONITH) for Pacemaker-based clusters through the exchange of messages
--via shared block storage such as for example a SAN, iSCSI, FCoE. This
--isolates the fencing mechanism from changes in firmware version or
--dependencies on specific firmware controllers, and it can be used as a
--STONITH mechanism in all configurations that have reliable shared
--storage.
--
--SBD can also be used without any shared storage. In this mode, the
--watchdog device will be used to reset the node if it loses quorum, if
--any monitored daemon is lost and not recovered or if Pacemaker decides
--that the node requires fencing.
--
--The F<sbd> binary implements both the daemon that watches the message
--slots as well as the management tool for interacting with the block
--storage device(s). This mode of operation is specified via the
--C<command> parameter; some of these modes take additional parameters.
--
--To use SBD with shared storage, you must first C<create> the messaging
--layout on one to three block devices. Second, configure
--F</etc/sysconfig/sbd> to list those devices (and possibly adjust other
--options), and restart the cluster stack on each node to ensure that
--C<sbd> is started. Third, configure the C<external/sbd> fencing
--resource in the Pacemaker CIB.
--
--Each of these steps is documented in more detail below the description
--of the command options.
--
--C<sbd> can only be used as root.
--
--=head2 GENERAL OPTIONS
--
--=over
--
--=item B<-d> F</dev/...>
--
--Specify the block device(s) to be used. If you have more than one,
--specify this option up to three times. This parameter is mandatory for
--all modes, since SBD always needs a block device to interact with.
--
--This man page uses F</dev/sda1>, F</dev/sdb1>, and F</dev/sdc1> as
--example device names for brevity. However, in your production
--environment, you should instead always refer to them by using the long,
--stable device name (e.g.,
--F</dev/disk/by-id/dm-uuid-part1-mpath-3600508b400105b5a0001500000250000>).
--
--=item B<-v|-vv|-vvv>
--
--Enable verbose|debug|debug-library logging (optional)
--
--=item B<-h>
--
--Display a concise summary of C<sbd> options.
--
--=item B<-n> I<node>
--
--Set local node name; defaults to C<uname -n>. This should not need to be
--set.
--
--=item B<-R>
--
--Do B<not> enable realtime priority. By default, C<sbd> runs at realtime
--priority, locks itself into memory, and also acquires highest IO
--priority to protect itself against interference from other processes on
--the system. This is a debugging-only option.
--
--=item B<-I> I<N>
--
--Async IO timeout (defaults to 3 seconds, optional). You should not need
--to adjust this unless your IO setup is really very slow.
--
--(In daemon mode, the watchdog is refreshed when the majority of devices
--could be read within this time.)
--
--=back
--
--=head2 create
--
--Example usage:
--
-- sbd -d /dev/sdc2 -d /dev/sdd3 create
--
--If you specify the I<create> command, sbd will write a metadata header
--to the device(s) specified and also initialize the messaging slots for
--up to 255 nodes.
--
--B<Warning>: This command will not prompt for confirmation. Roughly the
--first megabyte of the specified block device(s) will be overwritten
--immediately and without backup.
--
--This command accepts a few options to adjust the default timings that
--are written to the metadata (to ensure they are identical across all
--nodes accessing the device).
--
--=over
--
--=item B<-1> I<N>
--
--Set watchdog timeout to N seconds. This depends mostly on your storage
--latency; the majority of devices must be successfully read within this
--time, or else the node will self-fence.
--
--If your sbd device(s) reside on a multipath setup or iSCSI, this should
--be the time required to detect a path failure. You may be able to reduce
--this if your device outages are independent, or if you are using the
--Pacemaker integration.
--
--=item B<-2> I<N>
--
--Set slot allocation timeout to N seconds. You should not need to tune
--this.
--
--=item B<-3> I<N>
--
--Set daemon loop timeout to N seconds. You should not need to tune this.
--
--=item B<-4> I<N>
--
--Set I<msgwait> timeout to N seconds. This should be twice the I<watchdog>
--timeout. This is the time after which a message written to a node's slot
--will be considered delivered. (Or long enough for the node to detect
--that it needed to self-fence.)
--
--This also affects the I<stonith-timeout> in Pacemaker's CIB; see below.
--
--=back
--
--=head2 list
--
--Example usage:
--
-- # sbd -d /dev/sda1 list
-- 0 hex-0 clear
-- 1 hex-7 clear
-- 2 hex-9 clear
--
--List all allocated slots on device, and messages. You should see all
--cluster nodes that have ever been started against this device. Nodes
--that are currently running should have a I<clear> state; nodes that have
--been fenced, but not yet restarted, will show the appropriate fencing
--message.
--
--=head2 dump
--
--Example usage:
--
-- # sbd -d /dev/sda1 dump
-- ==Dumping header on disk /dev/sda1
-- Header version : 2
-- Number of slots : 255
-- Sector size : 512
-- Timeout (watchdog) : 15
-- Timeout (allocate) : 2
-- Timeout (loop) : 1
-- Timeout (msgwait) : 30
-- ==Header on disk /dev/sda1 is dumped
--
--Dump meta-data header from device.
--
--=head2 watch
--
--Example usage:
--
-- sbd -d /dev/sdc2 -d /dev/sdd3 -P watch
--
--This command will make C<sbd> start in daemon mode. It will constantly monitor
--the message slot of the local node for incoming messages, reachability, and
--optionally take Pacemaker's state into account.
--
--C<sbd> B<must> be started on boot before the cluster stack! See below
--for enabling this according to your boot environment.
--
--The options for this mode are rarely specified directly on the
--commandline directly, but most frequently set via F</etc/sysconfig/sbd>.
--
--It also constantly monitors connectivity to the storage device, and
--self-fences in case the partition becomes unreachable, guaranteeing that it
--does not disconnect from fencing messages.
--
--A node slot is automatically allocated on the device(s) the first time
--the daemon starts watching the device; hence, manual allocation is not
--usually required.
--
--If a watchdog is used together with the C<sbd> as is strongly
--recommended, the watchdog is activated at initial start of the sbd
--daemon. The watchdog is refreshed every time the majority of SBD devices
--has been successfully read. Using a watchdog provides additional
--protection against C<sbd> crashing.
--
--If the Pacemaker integration is activated, C<sbd> will B<not> self-fence
--if device majority is lost, if:
--
--=over
--
--=item 1.
--
--The partition the node is in is still quorate according to the CIB;
--
--=item 2.
--
--it is still quorate according to Corosync's node count;
--
--=item 3.
--
--the node itself is considered online and healthy by Pacemaker.
--
--=back
--
--This allows C<sbd> to survive temporary outages of the majority of
--devices. However, while the cluster is in such a degraded state, it can
--neither successfully fence nor be shutdown cleanly (as taking the
--cluster below the quorum threshold will immediately cause all remaining
--nodes to self-fence). In short, it will not tolerate any further faults.
--Please repair the system before continuing.
--
--There is one C<sbd> process that acts as a master to which all watchers
--report; one per device to monitor the node's slot; and, optionally, one
--that handles the Pacemaker integration.
--
--=over
--
--=item B<-W>
--
--Enable or disable use of the system watchdog to protect against the sbd
--processes failing and the node being left in an undefined state. Specify
--this once to enable, twice to disable.
--
--Defaults to I<enabled>.
--
--=item B<-w> F</dev/watchdog>
--
--This can be used to override the default watchdog device used and should not
--usually be necessary.
--
--=item B<-p> F</var/run/sbd.pid>
--
--This option can be used to specify a pidfile for the main sbd process.
--
--=item B<-F> I<N>
--
--Number of failures before a failing servant process will not be restarted
--immediately until the dampening delay has expired. If set to zero, servants
--will be restarted immediately and indefinitely. If set to one, a failed
--servant will be restarted once every B<-t> seconds. If set to a different
--value, the servant will be restarted that many times within the dampening
--period and then delay.
--
--Defaults to I<1>.
--
--=item B<-t> I<N>
--
--Dampening delay before faulty servants are restarted. Combined with C<-F 1>,
--the most logical way to tune the restart frequency of servant processes.
--Default is 5 seconds.
--
--If set to zero, processes will be restarted indefinitely and immediately.
--
--=item B<-P>
--
--Enable Pacemaker integration which checks Pacemaker quorum and node health.
--Specify this once to enable, twice to disable.
--
--Defaults to I<enabled>.
--
--=item B<-S> I<N>
--
--Set the start mode. (Defaults to I<0>.)
--
--If this is set to zero, sbd will always start up unconditionally,
--regardless of whether the node was previously fenced or not.
--
--If set to one, sbd will only start if the node was previously shutdown
--cleanly (as indicated by an exit request message in the slot), or if the
--slot is empty. A reset, crashdump, or power-off request in any slot will
--halt the start up.
--
--This is useful to prevent nodes from rejoining if they were faulty. The
--node must be manually "unfenced" by sending an empty message to it:
--
-- sbd -d /dev/sda1 message node1 clear
--
--=item B<-s> I<N>
--
--Set the start-up wait time for devices. (Defaults to I<120>.)
--
--Dynamic block devices such as iSCSI might not be fully initialized and
--present yet. This allows one to set a timeout for waiting for devices to
--appear on start-up. If set to 0, start-up will be aborted immediately if
--no devices are available.
--
--=item B<-Z>
--
--Enable trace mode. B<Warning: this is unsafe for production, use at your
--own risk!> Specifying this once will turn all reboots or power-offs, be
--they caused by self-fence decisions or messages, into a crashdump.
--Specifying this twice will just log them but not continue running.
--
--=item B<-T>
--
--By default, the daemon will set the watchdog timeout as specified in the
--device metadata. However, this does not work for every watchdog device.
--In this case, you must manually ensure that the watchdog timeout used by
--the system correctly matches the SBD settings, and then specify this
--option to allow C<sbd> to continue with start-up.
--
--=item B<-5> I<N>
--
--Warn if the time interval for tickling the watchdog exceeds this many seconds.
--Since the node is unable to log the watchdog expiry (it reboots immediately
--without a chance to write its logs to disk), this is very useful for getting
--an indication that the watchdog timeout is too short for the IO load of the
--system.
--
--Default is 3 seconds, set to zero to disable.
--
--=item B<-C> I<N>
--
--Watchdog timeout to set before crashdumping. If SBD is set to crashdump
--instead of reboot - either via the trace mode settings or the I<external/sbd>
--fencing agent's parameter -, SBD will adjust the watchdog timeout to this
--setting before triggering the dump. Otherwise, the watchdog might trigger and
--prevent a successful crashdump from ever being written.
--
--Set to zero (= default) to disable.
--
--=item B<-r> I<N>
--
--Actions to be executed when the watchers don't timely report to the sbd
--master process or one of the watchers detects that the master process
--has died.
--
--Set timeout-action to comma-separated combination of
--noflush|flush plus reboot|crashdump|off.
--If just one of both is given the other stays at the default.
--
--This doesn't affect actions like off, crashdump, reboot explicitly
--triggered via message slots.
--And it does as well not configure the action a watchdog would
--trigger should it run off (there is no generic interface).
--
--Defaults to flush,reboot.
--
--=back
--
--=head2 allocate
--
--Example usage:
--
-- sbd -d /dev/sda1 allocate node1
--
--Explicitly allocates a slot for the specified node name. This should
--rarely be necessary, as every node will automatically allocate itself a
--slot the first time it starts up on watch mode.
--
--=head2 message
--
--Example usage:
--
-- sbd -d /dev/sda1 message node1 test
--
--Writes the specified message to node's slot. This is rarely done
--directly, but rather abstracted via the C<external/sbd> fencing agent
--configured as a cluster resource.
--
--Supported message types are:
--
--=over
--
--=item test
--
--This only generates a log message on the receiving node and can be used
--to check if SBD is seeing the device. Note that this could overwrite a
--fencing request send by the cluster, so should not be used during
--production.
--
--=item reset
--
--Reset the target upon receipt of this message.
--
--=item off
--
--Power-off the target.
--
--=item crashdump
--
--Cause the target node to crashdump.
--
--=item exit
--
--This will make the C<sbd> daemon exit cleanly on the target. You should
--B<not> send this message manually; this is handled properly during
--shutdown of the cluster stack. Manually stopping the daemon means the
--node is unprotected!
--
--=item clear
--
--This message indicates that no real message has been sent to the node.
--You should not set this manually; C<sbd> will clear the message slot
--automatically during start-up, and setting this manually could overwrite
--a fencing message by the cluster.
--
--=back
--
--=head2 query-watchdog
--
--Example usage:
--
-- sbd query-watchdog
--
--Check for available watchdog devices and print some info.
--
--B<Warning>: This command will arm the watchdog during query, and if your
--watchdog refuses disarming (for example, if its kernel module has the
--'nowayout' parameter set) this will reset your system.
--
--=head2 test-watchdog
--
--Example usage:
--
-- sbd test-watchdog [-w /dev/watchdog3]
--
--Test specified watchdog device (/dev/watchdog by default).
--
--B<Warning>: This command will arm the watchdog and have your system reset
--in case your watchdog is working properly! If issued from an interactive
--session, it will prompt for confirmation.
--
--=head1 Base system configuration
--
--=head2 Configure a watchdog
--
--It is highly recommended that you configure your Linux system to load a
--watchdog driver with hardware assistance (as is available on most modern
--systems), such as I<hpwdt>, I<iTCO_wdt>, or others. As a fall-back, you
--can use the I<softdog> module.
--
--No other software must access the watchdog timer; it can only be
--accessed by one process at any given time. Some hardware vendors ship
--systems management software that use the watchdog for system resets
--(f.e. HP ASR daemon). Such software has to be disabled if the watchdog
--is to be used by SBD.
--
--=head2 Choosing and initializing the block device(s)
--
--First, you have to decide if you want to use one, two, or three devices.
--
--If you are using multiple ones, they should reside on independent
--storage setups. Putting all three of them on the same logical unit for
--example would not provide any additional redundancy.
--
--The SBD device can be connected via Fibre Channel, Fibre Channel over
--Ethernet, or even iSCSI. Thus, an iSCSI target can become a sort-of
--network-based quorum server; the advantage is that it does not require
--a smart host at your third location, just block storage.
--
--The SBD partitions themselves B<must not> be mirrored (via MD,
--DRBD, or the storage layer itself), since this could result in a
--split-mirror scenario. Nor can they reside on cLVM2 volume groups, since
--they must be accessed by the cluster stack before it has started the
--cLVM2 daemons; hence, these should be either raw partitions or logical
--units on (multipath) storage.
--
--The block device(s) must be accessible from all nodes. (While it is not
--necessary that they share the same path name on all nodes, this is
--considered a very good idea.)
--
--SBD will only use about one megabyte per device, so you can easily
--create a small partition, or very small logical units. (The size of the
--SBD device depends on the block size of the underlying device. Thus, 1MB
--is fine on plain SCSI devices and SAN storage with 512 byte blocks. On
--the IBM s390x architecture in particular, disks default to 4k blocks,
--and thus require roughly 4MB.)
--
--The number of devices will affect the operation of SBD as follows:
--
--=over
--
--=item One device
--
--In its most simple implementation, you use one device only. This is
--appropriate for clusters where all your data is on the same shared
--storage (with internal redundancy) anyway; the SBD device does not
--introduce an additional single point of failure then.
--
--If the SBD device is not accessible, the daemon will fail to start and
--inhibit startup of cluster services.
--
--=item Two devices
--
--This configuration is a trade-off, primarily aimed at environments where
--host-based mirroring is used, but no third storage device is available.
--
--SBD will not commit suicide if it loses access to one mirror leg; this
--allows the cluster to continue to function even in the face of one outage.
--
--However, SBD will not fence the other side while only one mirror leg is
--available, since it does not have enough knowledge to detect an asymmetric
--split of the storage. So it will not be able to automatically tolerate a
--second failure while one of the storage arrays is down. (Though you
--can use the appropriate crm command to acknowledge the fence manually.)
--
--It will not start unless both devices are accessible on boot.
--
--=item Three devices
--
--In this most reliable and recommended configuration, SBD will only
--self-fence if more than one device is lost; hence, this configuration is
--resilient against temporary single device outages (be it due to failures
--or maintenance). Fencing messages can still be successfully relayed if
--at least two devices remain accessible.
--
--This configuration is appropriate for more complex scenarios where
--storage is not confined to a single array. For example, host-based
--mirroring solutions could have one SBD per mirror leg (not mirrored
--itself), and an additional tie-breaker on iSCSI.
--
--It will only start if at least two devices are accessible on boot.
--
--=back
--
--After you have chosen the devices and created the appropriate partitions
--and perhaps multipath alias names to ease management, use the C<sbd create>
--command described above to initialize the SBD metadata on them.
--
--=head3 Sharing the block device(s) between multiple clusters
--
--It is possible to share the block devices between multiple clusters,
--provided the total number of nodes accessing them does not exceed I<255>
--nodes, and they all must share the same SBD timeouts (since these are
--part of the metadata).
--
--If you are using multiple devices this can reduce the setup overhead
--required. However, you should B<not> share devices between clusters in
--different security domains.
--
--=head2 Configure SBD to start on boot
--
--On systems using C<sysvinit>, the C<openais> or C<corosync> system
--start-up scripts must handle starting or stopping C<sbd> as required
--before starting the rest of the cluster stack.
--
--For C<systemd>, sbd simply has to be enabled using
--
-- systemctl enable sbd.service
--
--The daemon is brought online on each node before corosync and Pacemaker
--are started, and terminated only after all other cluster components have
--been shut down - ensuring that cluster resources are never activated
--without SBD supervision.
--
--=head2 Configuration via sysconfig
--
--The system instance of C<sbd> is configured via F</etc/sysconfig/sbd>.
--In this file, you must specify the device(s) used, as well as any
--options to pass to the daemon:
--
-- SBD_DEVICE="/dev/sda1;/dev/sdb1;/dev/sdc1"
-- SBD_PACEMAKER="true"
--
--C<sbd> will fail to start if no C<SBD_DEVICE> is specified. See the
--installed template for more options that can be configured here.
--In general configuration done via parameters takes precedence over
--the configuration from the configuration file.
--
--=head2 Testing the sbd installation
--
--After a restart of the cluster stack on this node, you can now try
--sending a test message to it as root, from this or any other node:
--
-- sbd -d /dev/sda1 message node1 test
--
--The node will acknowledge the receipt of the message in the system logs:
--
-- Aug 29 14:10:00 node1 sbd: [13412]: info: Received command test from node2
--
--This confirms that SBD is indeed up and running on the node, and that it
--is ready to receive messages.
--
--Make B<sure> that F</etc/sysconfig/sbd> is identical on all cluster
--nodes, and that all cluster nodes are running the daemon.
--
--=head1 Pacemaker CIB integration
--
--=head2 Fencing resource
--
--Pacemaker can only interact with SBD to issue a node fence if there is a
--configure fencing resource. This should be a primitive, not a clone, as
--follows:
--
-- primitive fencing-sbd stonith:external/sbd \
-- params pcmk_delay_max=30
--
--This will automatically use the same devices as configured in
--F</etc/sysconfig/sbd>.
--
--While you should not configure this as a clone (as Pacemaker will register
--the fencing device on each node automatically), the I<pcmk_delay_max>
--setting enables random fencing delay which ensures, in a scenario where a
--split-brain scenario did occur in a two node cluster, that one of the nodes
--has a better chance to survive to avoid double fencing.
--
--SBD also supports turning the reset request into a crash request, which
--may be helpful for debugging if you have kernel crashdumping configured;
--then, every fence request will cause the node to dump core. You can
--enable this via the C<crashdump="true"> parameter on the fencing
--resource. This is B<not> recommended for production use, but only for
--debugging phases.
--
--=head2 General cluster properties
--
--You must also enable STONITH in general, and set the STONITH timeout to
--be at least twice the I<msgwait> timeout you have configured, to allow
--enough time for the fencing message to be delivered. If your I<msgwait>
--timeout is 60 seconds, this is a possible configuration:
--
-- property stonith-enabled="true"
-- property stonith-timeout="120s"
--
--B<Caution>: if I<stonith-timeout> is too low for I<msgwait> and the
--system overhead, sbd will never be able to successfully complete a fence
--request. This will create a fencing loop.
--
--Note that the sbd fencing agent will try to detect this and
--automatically extend the I<stonith-timeout> setting to a reasonable
--value, on the assumption that sbd modifying your configuration is
--preferable to not fencing.
--
--=head1 Management tasks
--
--=head2 Recovering from temporary SBD device outage
--
--If you have multiple devices, failure of a single device is not immediately
--fatal. C<sbd> will retry to restart the monitor for the device every 5
--seconds by default. However, you can tune this via the options to the
--I<watch> command.
--
--In case you wish the immediately force a restart of all currently
--disabled monitor processes, you can send a I<SIGUSR1> to the SBD
--I<inquisitor> process.
--
--
--=head1 LICENSE
--
--Copyright (C) 2008-2013 Lars Marowsky-Bree
--
--This program is free software; you can redistribute it and/or
--modify it under the terms of the GNU General Public
--License as published by the Free Software Foundation; either
--version 2 of the License, or (at your option) any later version.
--
--This software is distributed in the hope that it will be useful,
--but WITHOUT ANY WARRANTY; without even the implied warranty of
--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
--General Public License for more details.
--
--For details see the GNU General Public License at
--http://www.gnu.org/licenses/gpl-2.0.html (version 2) and/or
--http://www.gnu.org/licenses/gpl.html (the newest as per "any later").
-diff --git a/man/sbd.8.pod.in b/man/sbd.8.pod.in
-new file mode 100644
-index 0000000..ff89c82
---- /dev/null
-+++ b/man/sbd.8.pod.in
-@@ -0,0 +1,675 @@
-+=head1 NAME
-+
-+sbd - STONITH Block Device daemon
-+
-+=head1 SYNOPSIS
-+
-+sbd <-d F</dev/...>> [options] C<command>
-+
-+=head1 SUMMARY
-+
-+SBD provides a node fencing mechanism (Shoot the other node in the head,
-+STONITH) for Pacemaker-based clusters through the exchange of messages
-+via shared block storage such as for example a SAN, iSCSI, FCoE. This
-+isolates the fencing mechanism from changes in firmware version or
-+dependencies on specific firmware controllers, and it can be used as a
-+STONITH mechanism in all configurations that have reliable shared
-+storage.
-+
-+SBD can also be used without any shared storage. In this mode, the
-+watchdog device will be used to reset the node if it loses quorum, if
-+any monitored daemon is lost and not recovered or if Pacemaker decides
-+that the node requires fencing.
-+
-+The F<sbd> binary implements both the daemon that watches the message
-+slots as well as the management tool for interacting with the block
-+storage device(s). This mode of operation is specified via the
-+C<command> parameter; some of these modes take additional parameters.
-+
-+To use SBD with shared storage, you must first C<create> the messaging
-+layout on one to three block devices. Second, configure
-+F</etc/sysconfig/sbd> to list those devices (and possibly adjust other
-+options), and restart the cluster stack on each node to ensure that
-+C<sbd> is started. Third, configure the C<external/sbd> fencing
-+resource in the Pacemaker CIB.
-+
-+Each of these steps is documented in more detail below the description
-+of the command options.
-+
-+C<sbd> can only be used as root.
-+
-+=head2 GENERAL OPTIONS
-+
-+=over
-+
-+=item B<-d> F</dev/...>
-+
-+Specify the block device(s) to be used. If you have more than one,
-+specify this option up to three times. This parameter is mandatory for
-+all modes, since SBD always needs a block device to interact with.
-+
-+This man page uses F</dev/sda1>, F</dev/sdb1>, and F</dev/sdc1> as
-+example device names for brevity. However, in your production
-+environment, you should instead always refer to them by using the long,
-+stable device name (e.g.,
-+F</dev/disk/by-id/dm-uuid-part1-mpath-3600508b400105b5a0001500000250000>).
-+
-+=item B<-v|-vv|-vvv>
-+
-+Enable verbose|debug|debug-library logging (optional)
-+
-+=item B<-h>
-+
-+Display a concise summary of C<sbd> options.
-+
-+=item B<-n> I<node>
-+
-+Set local node name; defaults to C<uname -n>. This should not need to be
-+set.
-+
-+=item B<-R>
-+
-+Do B<not> enable realtime priority. By default, C<sbd> runs at realtime
-+priority, locks itself into memory, and also acquires highest IO
-+priority to protect itself against interference from other processes on
-+the system. This is a debugging-only option.
-+
-+=item B<-I> I<N>
-+
-+Async IO timeout (defaults to 3 seconds, optional). You should not need
-+to adjust this unless your IO setup is really very slow.
-+
-+(In daemon mode, the watchdog is refreshed when the majority of devices
-+could be read within this time.)
-+
-+=back
-+
-+=head2 create
-+
-+Example usage:
-+
-+ sbd -d /dev/sdc2 -d /dev/sdd3 create
-+
-+If you specify the I<create> command, sbd will write a metadata header
-+to the device(s) specified and also initialize the messaging slots for
-+up to 255 nodes.
-+
-+B<Warning>: This command will not prompt for confirmation. Roughly the
-+first megabyte of the specified block device(s) will be overwritten
-+immediately and without backup.
-+
-+This command accepts a few options to adjust the default timings that
-+are written to the metadata (to ensure they are identical across all
-+nodes accessing the device).
-+
-+=over
-+
-+=item B<-1> I<N>
-+
-+Set watchdog timeout to N seconds. This depends mostly on your storage
-+latency; the majority of devices must be successfully read within this
-+time, or else the node will self-fence.
-+
-+If your sbd device(s) reside on a multipath setup or iSCSI, this should
-+be the time required to detect a path failure. You may be able to reduce
-+this if your device outages are independent, or if you are using the
-+Pacemaker integration.
-+
-+=item B<-2> I<N>
-+
-+Set slot allocation timeout to N seconds. You should not need to tune
-+this.
-+
-+=item B<-3> I<N>
-+
-+Set daemon loop timeout to N seconds. You should not need to tune this.
-+
-+=item B<-4> I<N>
-+
-+Set I<msgwait> timeout to N seconds. This should be twice the I<watchdog>
-+timeout. This is the time after which a message written to a node's slot
-+will be considered delivered. (Or long enough for the node to detect
-+that it needed to self-fence.)
-+
-+This also affects the I<stonith-timeout> in Pacemaker's CIB; see below.
-+
-+=back
-+
-+=head2 list
-+
-+Example usage:
-+
-+ # sbd -d /dev/sda1 list
-+ 0 hex-0 clear
-+ 1 hex-7 clear
-+ 2 hex-9 clear
-+
-+List all allocated slots on device, and messages. You should see all
-+cluster nodes that have ever been started against this device. Nodes
-+that are currently running should have a I<clear> state; nodes that have
-+been fenced, but not yet restarted, will show the appropriate fencing
-+message.
-+
-+=head2 dump
-+
-+Example usage:
-+
-+ # sbd -d /dev/sda1 dump
-+ ==Dumping header on disk /dev/sda1
-+ Header version : 2
-+ Number of slots : 255
-+ Sector size : 512
-+ Timeout (watchdog) : 15
-+ Timeout (allocate) : 2
-+ Timeout (loop) : 1
-+ Timeout (msgwait) : 30
-+ ==Header on disk /dev/sda1 is dumped
-+
-+Dump meta-data header from device.
-+
-+=head2 watch
-+
-+Example usage:
-+
-+ sbd -d /dev/sdc2 -d /dev/sdd3 -P watch
-+
-+This command will make C<sbd> start in daemon mode. It will constantly monitor
-+the message slot of the local node for incoming messages, reachability, and
-+optionally take Pacemaker's state into account.
-+
-+C<sbd> B<must> be started on boot before the cluster stack! See below
-+for enabling this according to your boot environment.
-+
-+The options for this mode are rarely specified directly on the
-+commandline directly, but most frequently set via F</etc/sysconfig/sbd>.
-+
-+It also constantly monitors connectivity to the storage device, and
-+self-fences in case the partition becomes unreachable, guaranteeing that it
-+does not disconnect from fencing messages.
-+
-+A node slot is automatically allocated on the device(s) the first time
-+the daemon starts watching the device; hence, manual allocation is not
-+usually required.
-+
-+If a watchdog is used together with the C<sbd> as is strongly
-+recommended, the watchdog is activated at initial start of the sbd
-+daemon. The watchdog is refreshed every time the majority of SBD devices
-+has been successfully read. Using a watchdog provides additional
-+protection against C<sbd> crashing.
-+
-+If the Pacemaker integration is activated, C<sbd> will B<not> self-fence
-+if device majority is lost, if:
-+
-+=over
-+
-+=item 1.
-+
-+The partition the node is in is still quorate according to the CIB;
-+
-+=item 2.
-+
-+it is still quorate according to Corosync's node count;
-+
-+=item 3.
-+
-+the node itself is considered online and healthy by Pacemaker.
-+
-+=back
-+
-+This allows C<sbd> to survive temporary outages of the majority of
-+devices. However, while the cluster is in such a degraded state, it can
-+neither successfully fence nor be shutdown cleanly (as taking the
-+cluster below the quorum threshold will immediately cause all remaining
-+nodes to self-fence). In short, it will not tolerate any further faults.
-+Please repair the system before continuing.
-+
-+There is one C<sbd> process that acts as a master to which all watchers
-+report; one per device to monitor the node's slot; and, optionally, one
-+that handles the Pacemaker integration.
-+
-+=over
-+
-+=item B<-W>
-+
-+Enable or disable use of the system watchdog to protect against the sbd
-+processes failing and the node being left in an undefined state. Specify
-+this once to enable, twice to disable.
-+
-+Defaults to I<enabled>.
-+
-+=item B<-w> F</dev/watchdog>
-+
-+This can be used to override the default watchdog device used and should not
-+usually be necessary.
-+
-+=item B<-p> F</var/run/sbd.pid>
-+
-+This option can be used to specify a pidfile for the main sbd process.
-+
-+=item B<-F> I<N>
-+
-+Number of failures before a failing servant process will not be restarted
-+immediately until the dampening delay has expired. If set to zero, servants
-+will be restarted immediately and indefinitely. If set to one, a failed
-+servant will be restarted once every B<-t> seconds. If set to a different
-+value, the servant will be restarted that many times within the dampening
-+period and then delay.
-+
-+Defaults to I<1>.
-+
-+=item B<-t> I<N>
-+
-+Dampening delay before faulty servants are restarted. Combined with C<-F 1>,
-+the most logical way to tune the restart frequency of servant processes.
-+Default is 5 seconds.
-+
-+If set to zero, processes will be restarted indefinitely and immediately.
-+
-+=item B<-P>
-+
-+Enable Pacemaker integration which checks Pacemaker quorum and node health.
-+Specify this once to enable, twice to disable.
-+
-+Defaults to I<enabled>.
-+
-+=item B<-S> I<N>
-+
-+Set the start mode. (Defaults to I<0>.)
-+
-+If this is set to zero, sbd will always start up unconditionally,
-+regardless of whether the node was previously fenced or not.
-+
-+If set to one, sbd will only start if the node was previously shutdown
-+cleanly (as indicated by an exit request message in the slot), or if the
-+slot is empty. A reset, crashdump, or power-off request in any slot will
-+halt the start up.
-+
-+This is useful to prevent nodes from rejoining if they were faulty. The
-+node must be manually "unfenced" by sending an empty message to it:
-+
-+ sbd -d /dev/sda1 message node1 clear
-+
-+=item B<-s> I<N>
-+
-+Set the start-up wait time for devices. (Defaults to I<120>.)
-+
-+Dynamic block devices such as iSCSI might not be fully initialized and
-+present yet. This allows one to set a timeout for waiting for devices to
-+appear on start-up. If set to 0, start-up will be aborted immediately if
-+no devices are available.
-+
-+=item B<-Z>
-+
-+Enable trace mode. B<Warning: this is unsafe for production, use at your
-+own risk!> Specifying this once will turn all reboots or power-offs, be
-+they caused by self-fence decisions or messages, into a crashdump.
-+Specifying this twice will just log them but not continue running.
-+
-+=item B<-T>
-+
-+By default, the daemon will set the watchdog timeout as specified in the
-+device metadata. However, this does not work for every watchdog device.
-+In this case, you must manually ensure that the watchdog timeout used by
-+the system correctly matches the SBD settings, and then specify this
-+option to allow C<sbd> to continue with start-up.
-+
-+=item B<-5> I<N>
-+
-+Warn if the time interval for tickling the watchdog exceeds this many seconds.
-+Since the node is unable to log the watchdog expiry (it reboots immediately
-+without a chance to write its logs to disk), this is very useful for getting
-+an indication that the watchdog timeout is too short for the IO load of the
-+system.
-+
-+Default is 3 seconds, set to zero to disable.
-+
-+=item B<-C> I<N>
-+
-+Watchdog timeout to set before crashdumping. If SBD is set to crashdump
-+instead of reboot - either via the trace mode settings or the I<external/sbd>
-+fencing agent's parameter -, SBD will adjust the watchdog timeout to this
-+setting before triggering the dump. Otherwise, the watchdog might trigger and
-+prevent a successful crashdump from ever being written.
-+
-+Set to zero (= default) to disable.
-+
-+=item B<-r> I<N>
-+
-+Actions to be executed when the watchers don't timely report to the sbd
-+master process or one of the watchers detects that the master process
-+has died.
-+
-+Set timeout-action to comma-separated combination of
-+noflush|flush plus reboot|crashdump|off.
-+If just one of both is given the other stays at the default.
-+
-+This doesn't affect actions like off, crashdump, reboot explicitly
-+triggered via message slots.
-+And it does as well not configure the action a watchdog would
-+trigger should it run off (there is no generic interface).
-+
-+Defaults to flush,reboot.
-+
-+=back
-+
-+=head2 allocate
-+
-+Example usage:
-+
-+ sbd -d /dev/sda1 allocate node1
-+
-+Explicitly allocates a slot for the specified node name. This should
-+rarely be necessary, as every node will automatically allocate itself a
-+slot the first time it starts up on watch mode.
-+
-+=head2 message
-+
-+Example usage:
-+
-+ sbd -d /dev/sda1 message node1 test
-+
-+Writes the specified message to node's slot. This is rarely done
-+directly, but rather abstracted via the C<external/sbd> fencing agent
-+configured as a cluster resource.
-+
-+Supported message types are:
-+
-+=over
-+
-+=item test
-+
-+This only generates a log message on the receiving node and can be used
-+to check if SBD is seeing the device. Note that this could overwrite a
-+fencing request send by the cluster, so should not be used during
-+production.
-+
-+=item reset
-+
-+Reset the target upon receipt of this message.
-+
-+=item off
-+
-+Power-off the target.
-+
-+=item crashdump
-+
-+Cause the target node to crashdump.
-+
-+=item exit
-+
-+This will make the C<sbd> daemon exit cleanly on the target. You should
-+B<not> send this message manually; this is handled properly during
-+shutdown of the cluster stack. Manually stopping the daemon means the
-+node is unprotected!
-+
-+=item clear
-+
-+This message indicates that no real message has been sent to the node.
-+You should not set this manually; C<sbd> will clear the message slot
-+automatically during start-up, and setting this manually could overwrite
-+a fencing message by the cluster.
-+
-+=back
-+
-+=head2 query-watchdog
-+
-+Example usage:
-+
-+ sbd query-watchdog
-+
-+Check for available watchdog devices and print some info.
-+
-+B<Warning>: This command will arm the watchdog during query, and if your
-+watchdog refuses disarming (for example, if its kernel module has the
-+'nowayout' parameter set) this will reset your system.
-+
-+=head2 test-watchdog
-+
-+Example usage:
-+
-+ sbd test-watchdog [-w /dev/watchdog3]
-+
-+Test specified watchdog device (/dev/watchdog by default).
-+
-+B<Warning>: This command will arm the watchdog and have your system reset
-+in case your watchdog is working properly! If issued from an interactive
-+session, it will prompt for confirmation.
-+
-+=head1 Base system configuration
-+
-+=head2 Configure a watchdog
-+
-+It is highly recommended that you configure your Linux system to load a
-+watchdog driver with hardware assistance (as is available on most modern
-+systems), such as I<hpwdt>, I<iTCO_wdt>, or others. As a fall-back, you
-+can use the I<softdog> module.
-+
-+No other software must access the watchdog timer; it can only be
-+accessed by one process at any given time. Some hardware vendors ship
-+systems management software that use the watchdog for system resets
-+(f.e. HP ASR daemon). Such software has to be disabled if the watchdog
-+is to be used by SBD.
-+
-+=head2 Choosing and initializing the block device(s)
-+
-+First, you have to decide if you want to use one, two, or three devices.
-+
-+If you are using multiple ones, they should reside on independent
-+storage setups. Putting all three of them on the same logical unit for
-+example would not provide any additional redundancy.
-+
-+The SBD device can be connected via Fibre Channel, Fibre Channel over
-+Ethernet, or even iSCSI. Thus, an iSCSI target can become a sort-of
-+network-based quorum server; the advantage is that it does not require
-+a smart host at your third location, just block storage.
-+
-+The SBD partitions themselves B<must not> be mirrored (via MD,
-+DRBD, or the storage layer itself), since this could result in a
-+split-mirror scenario. Nor can they reside on cLVM2 volume groups, since
-+they must be accessed by the cluster stack before it has started the
-+cLVM2 daemons; hence, these should be either raw partitions or logical
-+units on (multipath) storage.
-+
-+The block device(s) must be accessible from all nodes. (While it is not
-+necessary that they share the same path name on all nodes, this is
-+considered a very good idea.)
-+
-+SBD will only use about one megabyte per device, so you can easily
-+create a small partition, or very small logical units. (The size of the
-+SBD device depends on the block size of the underlying device. Thus, 1MB
-+is fine on plain SCSI devices and SAN storage with 512 byte blocks. On
-+the IBM s390x architecture in particular, disks default to 4k blocks,
-+and thus require roughly 4MB.)
-+
-+The number of devices will affect the operation of SBD as follows:
-+
-+=over
-+
-+=item One device
-+
-+In its most simple implementation, you use one device only. This is
-+appropriate for clusters where all your data is on the same shared
-+storage (with internal redundancy) anyway; the SBD device does not
-+introduce an additional single point of failure then.
-+
-+If the SBD device is not accessible, the daemon will fail to start and
-+inhibit startup of cluster services.
-+
-+=item Two devices
-+
-+This configuration is a trade-off, primarily aimed at environments where
-+host-based mirroring is used, but no third storage device is available.
-+
-+SBD will not commit suicide if it loses access to one mirror leg; this
-+allows the cluster to continue to function even in the face of one outage.
-+
-+However, SBD will not fence the other side while only one mirror leg is
-+available, since it does not have enough knowledge to detect an asymmetric
-+split of the storage. So it will not be able to automatically tolerate a
-+second failure while one of the storage arrays is down. (Though you
-+can use the appropriate crm command to acknowledge the fence manually.)
-+
-+It will not start unless both devices are accessible on boot.
-+
-+=item Three devices
-+
-+In this most reliable and recommended configuration, SBD will only
-+self-fence if more than one device is lost; hence, this configuration is
-+resilient against temporary single device outages (be it due to failures
-+or maintenance). Fencing messages can still be successfully relayed if
-+at least two devices remain accessible.
-+
-+This configuration is appropriate for more complex scenarios where
-+storage is not confined to a single array. For example, host-based
-+mirroring solutions could have one SBD per mirror leg (not mirrored
-+itself), and an additional tie-breaker on iSCSI.
-+
-+It will only start if at least two devices are accessible on boot.
-+
-+=back
-+
-+After you have chosen the devices and created the appropriate partitions
-+and perhaps multipath alias names to ease management, use the C<sbd create>
-+command described above to initialize the SBD metadata on them.
-+
-+=head3 Sharing the block device(s) between multiple clusters
-+
-+It is possible to share the block devices between multiple clusters,
-+provided the total number of nodes accessing them does not exceed I<255>
-+nodes, and they all must share the same SBD timeouts (since these are
-+part of the metadata).
-+
-+If you are using multiple devices this can reduce the setup overhead
-+required. However, you should B<not> share devices between clusters in
-+different security domains.
-+
-+=head2 Configure SBD to start on boot
-+
-+On systems using C<sysvinit>, the C<openais> or C<corosync> system
-+start-up scripts must handle starting or stopping C<sbd> as required
-+before starting the rest of the cluster stack.
-+
-+For C<systemd>, sbd simply has to be enabled using
-+
-+ systemctl enable sbd.service
-+
-+The daemon is brought online on each node before corosync and Pacemaker
-+are started, and terminated only after all other cluster components have
-+been shut down - ensuring that cluster resources are never activated
-+without SBD supervision.
-+
-+=head2 Configuration via sysconfig
-+
-+The system instance of C<sbd> is configured via F</etc/sysconfig/sbd>.
-+In this file, you must specify the device(s) used, as well as any
-+options to pass to the daemon:
-+
-+ SBD_DEVICE="/dev/sda1;/dev/sdb1;/dev/sdc1"
-+ SBD_PACEMAKER="true"
-+
-+C<sbd> will fail to start if no C<SBD_DEVICE> is specified. See the
-+installed template or section for configuration via environment
-+for more options that can be configured here.
-+In general configuration done via parameters takes precedence over
-+the configuration from the configuration file.
-+
-+=head2 Configuration via environment
-+
-+=over
-+@environment_section@
-+=back
-+
-+=head2 Testing the sbd installation
-+
-+After a restart of the cluster stack on this node, you can now try
-+sending a test message to it as root, from this or any other node:
-+
-+ sbd -d /dev/sda1 message node1 test
-+
-+The node will acknowledge the receipt of the message in the system logs:
-+
-+ Aug 29 14:10:00 node1 sbd: [13412]: info: Received command test from node2
-+
-+This confirms that SBD is indeed up and running on the node, and that it
-+is ready to receive messages.
-+
-+Make B<sure> that F</etc/sysconfig/sbd> is identical on all cluster
-+nodes, and that all cluster nodes are running the daemon.
-+
-+=head1 Pacemaker CIB integration
-+
-+=head2 Fencing resource
-+
-+Pacemaker can only interact with SBD to issue a node fence if there is a
-+configure fencing resource. This should be a primitive, not a clone, as
-+follows:
-+
-+ primitive fencing-sbd stonith:external/sbd \
-+ params pcmk_delay_max=30
-+
-+This will automatically use the same devices as configured in
-+F</etc/sysconfig/sbd>.
-+
-+While you should not configure this as a clone (as Pacemaker will register
-+the fencing device on each node automatically), the I<pcmk_delay_max>
-+setting enables random fencing delay which ensures, in a scenario where a
-+split-brain scenario did occur in a two node cluster, that one of the nodes
-+has a better chance to survive to avoid double fencing.
-+
-+SBD also supports turning the reset request into a crash request, which
-+may be helpful for debugging if you have kernel crashdumping configured;
-+then, every fence request will cause the node to dump core. You can
-+enable this via the C<crashdump="true"> parameter on the fencing
-+resource. This is B<not> recommended for production use, but only for
-+debugging phases.
-+
-+=head2 General cluster properties
-+
-+You must also enable STONITH in general, and set the STONITH timeout to
-+be at least twice the I<msgwait> timeout you have configured, to allow
-+enough time for the fencing message to be delivered. If your I<msgwait>
-+timeout is 60 seconds, this is a possible configuration:
-+
-+ property stonith-enabled="true"
-+ property stonith-timeout="120s"
-+
-+B<Caution>: if I<stonith-timeout> is too low for I<msgwait> and the
-+system overhead, sbd will never be able to successfully complete a fence
-+request. This will create a fencing loop.
-+
-+Note that the sbd fencing agent will try to detect this and
-+automatically extend the I<stonith-timeout> setting to a reasonable
-+value, on the assumption that sbd modifying your configuration is
-+preferable to not fencing.
-+
-+=head1 Management tasks
-+
-+=head2 Recovering from temporary SBD device outage
-+
-+If you have multiple devices, failure of a single device is not immediately
-+fatal. C<sbd> will retry to restart the monitor for the device every 5
-+seconds by default. However, you can tune this via the options to the
-+I<watch> command.
-+
-+In case you wish the immediately force a restart of all currently
-+disabled monitor processes, you can send a I<SIGUSR1> to the SBD
-+I<inquisitor> process.
-+
-+
-+=head1 LICENSE
-+
-+Copyright (C) 2008-2013 Lars Marowsky-Bree
-+
-+This program is free software; you can redistribute it and/or
-+modify it under the terms of the GNU General Public
-+License as published by the Free Software Foundation; either
-+version 2 of the License, or (at your option) any later version.
-+
-+This software is distributed in the hope that it will be useful,
-+but WITHOUT ANY WARRANTY; without even the implied warranty of
-+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+General Public License for more details.
-+
-+For details see the GNU General Public License at
-+http://www.gnu.org/licenses/gpl-2.0.html (version 2) and/or
-+http://www.gnu.org/licenses/gpl.html (the newest as per "any later").
-diff --git a/src/sbd.sysconfig b/src/sbd.sysconfig
-index e1a60ed..33b50d0 100644
---- a/src/sbd.sysconfig
-+++ b/src/sbd.sysconfig
-@@ -14,7 +14,7 @@
- #
- SBD_PACEMAKER=yes
-
--## Type: list(always,clean)
-+## Type: always / clean
- ## Default: always
- #
- # Specify the start mode for sbd. Setting this to "clean" will only
-@@ -103,6 +103,7 @@ SBD_TIMEOUT_ACTION=flush,reboot
- # Thus in auto-mode sbd will check if the slice has RT-budget assigned.
- # If that is the case sbd will stay in that slice while it will
- # be moved to root-slice otherwise.
-+#
- SBD_MOVE_TO_ROOT_CGROUP=auto
-
- ## Type: string
---
-1.8.3.1
-
diff --git a/0003-Fix-scheduling-overhaul-the-whole-thing.patch b/0003-Fix-scheduling-overhaul-the-whole-thing.patch
deleted file mode 100644
index 05fab9d..0000000
--- a/0003-Fix-scheduling-overhaul-the-whole-thing.patch
+++ /dev/null
@@ -1,152 +0,0 @@
-From 4bc08cf76fc01e98cbec76bf32bb333b77f69217 Mon Sep 17 00:00:00 2001
-From: Klaus Wenninger <klaus.wenninger(a)aon.at>
-Date: Thu, 27 Feb 2020 19:02:57 +0100
-Subject: [PATCH] Fix: scheduling: overhaul the whole thing
-
-- prevent possible lockup when format in proc changes
-- properly get and handle scheduler policy & prio
-- on SCHED_RR failing push to the max with SCHED_OTHER
----
- src/sbd-common.c | 56 ++++++++++++++++++++++++++++++++++++++++++++------------
- 1 file changed, 44 insertions(+), 12 deletions(-)
-
-diff --git a/src/sbd-common.c b/src/sbd-common.c
-index 9ec43b2..c2da758 100644
---- a/src/sbd-common.c
-+++ b/src/sbd-common.c
-@@ -26,6 +26,9 @@
- #include <pwd.h>
- #include <unistd.h>
- #include <dirent.h>
-+#include <sys/time.h>
-+#include <sys/resource.h>
-+#include <limits.h>
-
- #ifdef _POSIX_MEMLOCK
- # include <sys/mman.h>
-@@ -298,7 +301,7 @@ watchdog_populate_list(void)
- FILE *file;
-
- snprintf(entry_name, sizeof(entry_name),
-- SYS_CLASS_WATCHDOG "/%s/dev", entry->d_name);
-+ SYS_CLASS_WATCHDOG "/%s/dev", entry->d_name);
- file = fopen(entry_name, "r");
- if (file) {
- int major, minor;
-@@ -667,7 +670,7 @@ static int get_realtime_budget(void)
- {
- FILE *f;
- char fname[PATH_MAX];
-- int res = -1, lnum = 0;
-+ int res = -1, lnum = 0, num;
- char *cgroup = NULL, *namespecs = NULL;
-
- snprintf(fname, PATH_MAX, "/proc/%jd/cgroup", (intmax_t)getpid());
-@@ -677,7 +680,8 @@ static int get_realtime_budget(void)
- (intmax_t)getpid());
- goto exit_res;
- }
-- while( fscanf(f, "%d:%m[^:]:%m[^\n]", &lnum, &namespecs, &cgroup) !=EOF ) {
-+ while( (num = fscanf(f, "%d:%m[^:]:%m[^\n]\n", &lnum,
-+ &namespecs, &cgroup)) !=EOF ) {
- if (namespecs && strstr(namespecs, "cpuacct")) {
- free(namespecs);
- break;
-@@ -690,6 +694,11 @@ static int get_realtime_budget(void)
- free(namespecs);
- namespecs = NULL;
- }
-+ /* not to get stuck if format changes */
-+ if ((num < 3) && ((fscanf(f, "%*[^\n]") == EOF) ||
-+ (fscanf(f, "\n") == EOF))) {
-+ break;
-+ }
- }
- fclose(f);
- if (cgroup == NULL) {
-@@ -776,15 +785,17 @@ sbd_make_realtime(int priority, int stackgrowK, int heapgrowK)
- return;
- }
-
-+do {
- #ifdef SCHED_RR
- if (move_to_root_cgroup) {
- sbd_move_to_root_cgroup(enforce_moving_to_root_cgroup);
- }
-
- {
-- int pcurrent = 0;
- int pmin = sched_get_priority_min(SCHED_RR);
- int pmax = sched_get_priority_max(SCHED_RR);
-+ struct sched_param sp;
-+ int pcurrent;
-
- if (priority == 0) {
- priority = pmax;
-@@ -794,26 +805,47 @@ sbd_make_realtime(int priority, int stackgrowK, int heapgrowK)
- priority = pmax;
- }
-
-- pcurrent = sched_getscheduler(0);
-- if (pcurrent < 0) {
-+ if (sched_getparam(0, &sp) < 0) {
- cl_perror("Unable to get scheduler priority");
-
-- } else if(pcurrent < priority) {
-- struct sched_param sp;
-+ } else if ((pcurrent = sched_getscheduler(0)) < 0) {
-+ cl_perror("Unable to get scheduler policy");
-
-+ } else if ((pcurrent == SCHED_RR) &&
-+ (sp.sched_priority >= priority)) {
-+ cl_log(LOG_INFO,
-+ "Stay with priority (%d) for policy SCHED_RR",
-+ sp.sched_priority);
-+ break;
-+ } else {
- memset(&sp, 0, sizeof(sp));
- sp.sched_priority = priority;
-
- if (sched_setscheduler(0, SCHED_RR, &sp) < 0) {
-- cl_perror("Unable to set scheduler priority to %d", priority);
-+ cl_perror(
-+ "Unable to set scheduler policy to SCHED_RR priority %d",
-+ priority);
- } else {
-- cl_log(LOG_INFO, "Scheduler priority is now %d", priority);
-+ cl_log(LOG_INFO,
-+ "Scheduler policy is now SCHED_RR priority %d",
-+ priority);
-+ break;
- }
- }
- }
- #else
-- cl_log(LOG_ERR, "System does not support updating the scheduler priority");
-+ cl_log(LOG_ERR, "System does not support updating the scheduler policy");
-+#endif
-+#ifdef PRIO_PGRP
-+ if (setpriority(PRIO_PGRP, 0, INT_MIN) < 0) {
-+ cl_perror("Unable to raise the scheduler priority");
-+ } else {
-+ cl_log(LOG_INFO, "Scheduler priority raised to the maximum");
-+ }
-+#else
-+ cl_perror("System does not support setting the scheduler priority");
- #endif
-+} while (0);
-
- sbd_memlock(heapgrowK, stackgrowK);
- }
-@@ -826,7 +858,7 @@ maximize_priority(void)
- return;
- }
-
-- sbd_make_realtime(0, 256, 256);
-+ sbd_make_realtime(0, 256, 256);
-
- if (ioprio_set(IOPRIO_WHO_PROCESS, getpid(),
- IOPRIO_PRIO_VALUE(IOPRIO_CLASS_RT, 1)) != 0) {
---
-1.8.3.1
-
diff --git a/sbd.spec b/sbd.spec
index 61b4e8a..45e159a 100644
--- a/sbd.spec
+++ b/sbd.spec
@@ -15,21 +15,28 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
-%global commit 25fce8a7d5e8cd5abc2379077381b10bd6cec183
-%global shortcommit %(c=%{commit}; echo ${c:0:7})
+%global longcommit 044643922c3044c0bac2f91b1382ff3f2c64a4a2
+%global shortcommit %(echo %{longcommit}|cut -c1-8)
%global github_owner Clusterlabs
-%global buildnum 7
+%global buildnum 1
+
+%ifarch s390x s390
+# minimum timeout on LPAR diag288 watchdog is 15s
+%global watchdog_timeout_default 15
+%else
+%global watchdog_timeout_default 5
+%endif
+
+%global sync_resource_startup_default no
+%global sync_resource_startup_sysconfig yes
Name: sbd
Summary: Storage-based death
License: GPLv2+
-Version: 1.4.1
-Release: %{buildnum}%{?dist}.1
+Version: 1.4.2
+Release: %{buildnum}%{?dist}
Url: https://github.com/%{github_owner}/%{name}
-Source0: https://github.com/%{github_owner}/%{name}/archive/%{commit}/%{name}-%{co...
-Patch0: 0001-Fix-regressions.sh-make-parameter-passing-consistent.patch
-Patch1: 0002-Doc-add-environment-section-to-man-page.patch
-Patch2: 0003-Fix-scheduling-overhaul-the-whole-thing.patch
+Source0: https://github.com/%{github_owner}/%{name}/archive/%{longcommit}/%{name}-...
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libuuid-devel
@@ -44,6 +51,7 @@ BuildRequires: pkgconfig
BuildRequires: make
BuildRequires: systemd
Conflicts: fence-agents-sbd < 4.5.0
+Conflicts: pacemaker-libs < 2.0.5-10
%if 0%{?rhel}
ExclusiveArch: i686 x86_64 s390x aarch64 ppc64le
@@ -68,18 +76,16 @@ regression-testing sbd.
###########################################################
%prep
-%autosetup -n %{name}-%{commit} -p1
-%ifarch s390x s390
-sed -i src/sbd.sysconfig -e "s/Default: 5/Default: 15/"
-sed -i src/sbd.sysconfig -e "s/SBD_WATCHDOG_TIMEOUT=5/SBD_WATCHDOG_TIMEOUT=15/"
-%endif
+%autosetup -n %{name}-%{longcommit} -p1
###########################################################
%build
./autogen.sh
export CFLAGS="$RPM_OPT_FLAGS -Wall -Werror"
-%configure
+%configure --with-watchdog-timeout-default=%{watchdog_timeout_default} \
+ --with-sync-resource-startup-default=%{sync_resource_startup_default} \
+ --with-sync-resource-startup-sysconfig=%{sync_resource_startup_sysconfig}
make %{?_smp_mflags}
###########################################################
@@ -133,6 +139,8 @@ fi
%defattr(-,root,root)
%config(noreplace) %{_sysconfdir}/sysconfig/sbd
%{_sbindir}/sbd
+%{_datadir}/sbd
+%{_datadir}/pkgconfig/sbd.pc
%exclude %{_datadir}/sbd/regressions.sh
%doc %{_mandir}/man8/sbd*
%if %{defined _unitdir}
@@ -149,6 +157,12 @@ fi
%{_libdir}/libsbdtestbed*
%changelog
+* Mon Dec 7 2020 Klaus Wenninger <kwenning(a)redhat.com> - 1.4.2-1
+- Rebase to upstream v1.4.2
+- Conflict with pacemaker that doesn't have pacemakerd-api
+- Set default to not do startup/shutdown-syncing via pacemakerd-api
+ but enable in template-config
+
* Wed Jul 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 1.4.1-7.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
diff --git a/sources b/sources
index 50b7de1..943a046 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (sbd-25fce8a7d5e8cd5abc2379077381b10bd6cec183.tar.gz) = 3b89ee0aa88282f17c8daf725a1e7a8c2f2affdcf6ff6f4ca4faf250760d778a65c5693e5df3fcc7554d60dd9b0cb1a0350e266fadb7668320f3c676d8799a29
+SHA512 (sbd-044643922c3044c0bac2f91b1382ff3f2c64a4a2.tar.gz) = de8b4c06b6382a56102af85b7b9f295ccf2ee5118213c4e95c4d314b681d2dcfa58702cd1ad7de667283508d69a36499bb767f4594745883c6fca0c54e365216
3 years, 4 months
Architecture specific change in rpms/buildah.git
by githook-noreply@fedoraproject.org
The package rpms/buildah.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/buildah.git/commit/?id=199c09e946....
Change:
+%ifarch x86_64
Thanks.
Full change:
============
commit 199c09e946b1632e786c45df6783661a9c38787d
Author: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
Date: Mon Dec 7 15:23:22 2020 -0500
buildah-1.18.0-2
- harden cgo based go binaries
Reported-by: Wade Mealing <wmealing(a)gmail.com>
Signed-off-by: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
diff --git a/buildah.spec b/buildah.spec
index c81a8be..496ed8d 100644
--- a/buildah.spec
+++ b/buildah.spec
@@ -112,6 +112,16 @@ popd
mv vendor src
+export CGO_CFLAGS="-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -ffat-lto-objects -fexceptions -fasynchronous-unwind-tables -fstack-protector-strong -fstack-clash-protection -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
+%ifarch x86_64
+export CGO_CFLAGS="$CGO_CFLAGS -m64 -mtune=generic"
+%if 0%{?fedora} || 0%{?centos} >= 8
+export CGO_CFLAGS="$CGO_CFLAGS -fcf-protection"
+%endif
+%endif
+# These extra flags present in %%{optflags} have been skipped for now as they break the build
+#export CGO_CFLAGS="$CGO_CFLAGS -flto=auto -Wp,D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1"
+
export GOPATH=$(pwd)/_build:$(pwd)
export BUILDTAGS='seccomp selinux'
%if 0%{?centos} >= 8
@@ -148,8 +158,9 @@ cp imgtype %{buildroot}/%{_bindir}/%{name}-imgtype
%{_datadir}/%{name}/test
%changelog
-* Thu Nov 19 2020 Lokesh Mandvekar <lsm5(a)fedoraproject.org> - 1.18.0-2
-- bump release tag for OBS
+* Mon Dec 07 2020 Lokesh Mandvekar <lsm5(a)fedoraproject.org> - 1.18.0-2
+- harden cgo based go binaries
+- Reported-by: Wade Mealing <wmealing(a)gmail.com>
* Mon Nov 16 2020 RH Container Bot <rhcontainerbot(a)fedoraproject.org> - 1.18.0-1
- autobuilt v1.18.0
3 years, 4 months
Architecture specific change in rpms/buildah.git
by githook-noreply@fedoraproject.org
The package rpms/buildah.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/buildah.git/commit/?id=b138b8fa8d....
Change:
+%ifarch x86_64
Thanks.
Full change:
============
commit 51e1853c7e1942e26543e2d80d1b54fc54b4c46b
Author: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
Date: Mon Dec 7 15:02:19 2020 -0500
buildah-1.18.0-2
- harden cgo based golang binaries
Reported-by: Wade Mealing <wmealing(a)gmail.com>
Signed-off-by: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
diff --git a/buildah.spec b/buildah.spec
index b5b5cbb..9051c23 100644
--- a/buildah.spec
+++ b/buildah.spec
@@ -33,7 +33,7 @@
Name: %{repo}
Version: 1.18.0
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A command line tool used for creating OCI Images
License: ASL 2.0
URL: https://%{name}.io
@@ -158,6 +158,10 @@ cp imgtype %{buildroot}/%{_bindir}/%{name}-imgtype
%{_datadir}/%{name}/test
%changelog
+* Mon Dec 7 2020 Lokesh Mandvekar <lsm5(a)fedoraproject.org> - 1.18.0-2
+- harden cgo based golang binaries
+- Reported-by: Wade Mealing <wmealing(a)gmail.com>
+
* Mon Nov 16 2020 RH Container Bot <rhcontainerbot(a)fedoraproject.org> - 1.18.0-1
- autobuilt v1.18.0
commit b138b8fa8d9361241db413716f9c0efb41eb55b5
Author: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
Date: Mon Dec 7 14:58:58 2020 -0500
Harden cgo based golang binaries
Reported-by: Wade Mealing <wmealing(a)gmail.com>
Signed-off-by: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
diff --git a/buildah.spec b/buildah.spec
index 701772f..b5b5cbb 100644
--- a/buildah.spec
+++ b/buildah.spec
@@ -112,6 +112,16 @@ popd
mv vendor src
+export CGO_CFLAGS="-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -ffat-lto-objects -fexceptions -fasynchronous-unwind-tables -fstack-protector-strong -fstack-clash-protection -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
+%ifarch x86_64
+export CGO_CFLAGS="$CGO_CFLAGS -m64 -mtune=generic"
+%if 0%{?fedora} || 0%{?centos} >= 8
+export CGO_CFLAGS="$CGO_CFLAGS -fcf-protection"
+%endif
+%endif
+# These extra flags present in %%{optflags} have been skipped for now as they break the build
+#export CGO_CFLAGS="$CGO_CFLAGS -flto=auto -Wp,D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1"
+
export GOPATH=$(pwd)/_build:$(pwd)
export BUILDTAGS='seccomp selinux'
%if 0%{?centos} >= 8
3 years, 4 months
Architecture specific change in rpms/dyninst.git
by githook-noreply@fedoraproject.org
The package rpms/dyninst.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/dyninst.git/commit/?id=d51e94a73e....
Change:
+%ifarch %{ix86}
Thanks.
Full change:
============
commit deb50bba405a02e97206b4ed0a0cafae7df82e86
Author: Stan Cox <scox(a)redhat.com>
Date: Fri Dec 4 16:21:10 2020 -0500
Resolves: #1889545
diff --git a/dyninst.spec b/dyninst.spec
index cf7facd..b86cc6b 100644
--- a/dyninst.spec
+++ b/dyninst.spec
@@ -1,7 +1,7 @@
Summary: An API for Run-time Code Generation
License: LGPLv2+
Name: dyninst
-Release: 2%{?dist}
+Release: 1%{?dist}
URL: http://www.dyninst.org
Version: 10.2.1
ExclusiveArch: %{ix86} x86_64 ppc64le aarch64
@@ -186,10 +186,7 @@ find %{buildroot}%{_libdir}/dyninst/testsuite/ \
%attr(644,root,root) %{_libdir}/dyninst/testsuite/*.a
%changelog
-* Tue Nov 10 2020 Stan Cox <scox(a)redhat.com> - 10.2.1-2
-- Enable debuginfod
-
-* Wed Oct 28 2020 Stan Cox <scox(a)redhat.com> - 10.2.1-1
+* Mon Dec 07 2020 Stan Cox <scox(a)redhat.com> - 10.2.1-1
- Update to 10.2.1
* Tue Oct 27 2020 Jeff Law <law(a)redhat.com> - 10.2.0-2
commit 922809d7399daa657607dc5ca0c1bd24f3472a47
Author: Stan Cox <scox(a)redhat.com>
Date: Tue Nov 10 16:14:43 2020 -0500
Resolves: #1889545
diff --git a/dyninst-10.2.1-dbid.patch b/dyninst-10.2.1-dbid.patch
index 91b5407..78f3997 100644
--- a/dyninst-10.2.1-dbid.patch
+++ b/dyninst-10.2.1-dbid.patch
@@ -92,18 +92,9 @@ https://sourceware.org/elfutils/Debuginfod.html
elseif(NOT (LibElf_FOUND AND LibDwarf_FOUND) AND STERILE_BUILD)
message(FATAL_ERROR "Elfutils not found and cannot be downloaded because build is sterile.")
else()
-@@ -104,7 +121,7 @@ else()
- if(NOT (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") OR NOT (${CMAKE_C_COMPILER_ID} STREQUAL "GNU"))
- message(FATAL_ERROR "ElfUtils will only build with the GNU compiler")
- endif()
--
-+
- include(ExternalProject)
- externalproject_add(
- ElfUtils
---- /dedyninst-10.2.1/dyninst-10.2.1/null
-+++ b/cmake/Modules/FindLibDebuginfod.cmake
+--- /dev/null
++++ dyninst-10.2.1/dyninst-10.2.1/cmake/Modules/FindLibDebuginfod.cmake
@@ -0,0 +1,76 @@
+#========================================================================================
+# FindDebuginfod
diff --git a/dyninst-10.2.1-pie.patch b/dyninst-10.2.1-pie.patch
deleted file mode 100644
index 095f037..0000000
--- a/dyninst-10.2.1-pie.patch
+++ /dev/null
@@ -1,8 +0,0 @@
---- dyninst-10.2.1/dyninst-10.2.1/dyninstAPI_RT/CMakeLists.txt 2020-02-24 09:41:30.207108160 -0500
-+++ dyninst-10.2.1/dyninst-10.2.1/dyninstAPI_RT/CMakeLists.txt 2020-08-25 15:57:28.437496257 -0400
-@@ -5,4 +5,4 @@
- set (DYNINST_ROOT ${PROJECT_SOURCE_DIR}/..)
--set(CMAKE_C_FLAGS "${DYNINST_RT_CMAKE_C_FLAGS}")
--set(CMAKE_CXX_FLAGS "${DYNINST_RT_CMAKE_CXX_FLAGS}")
-+# set(CMAKE_C_FLAGS "${DYNINST_RT_CMAKE_C_FLAGS}")
-+# set(CMAKE_CXX_FLAGS "${DYNINST_RT_CMAKE_CXX_FLAGS}")
diff --git a/dyninst.spec b/dyninst.spec
index 7f428c3..cf7facd 100644
--- a/dyninst.spec
+++ b/dyninst.spec
@@ -1,7 +1,7 @@
Summary: An API for Run-time Code Generation
License: LGPLv2+
Name: dyninst
-Release: 1%{?dist}
+Release: 2%{?dist}
URL: http://www.dyninst.org
Version: 10.2.1
ExclusiveArch: %{ix86} x86_64 ppc64le aarch64
@@ -22,6 +22,7 @@ Patch5: testsuite-10.1.0-throw.patch
BuildRequires: gcc-c++
BuildRequires: elfutils-devel
BuildRequires: elfutils-libelf-devel
+BuildRequires: elfutils-debuginfod-client-devel
BuildRequires: boost-devel
BuildRequires: binutils-devel
BuildRequires: cmake
@@ -102,6 +103,7 @@ CXXFLAGS="$CFLAGS"
export CFLAGS CXXFLAGS LDFLAGS
%cmake \
+ -DENABLE_DEBUGINFOD=1 \
-DINSTALL_LIB_DIR:PATH=%{_libdir}/dyninst \
-DINSTALL_INCLUDE_DIR:PATH=%{_includedir}/dyninst \
-DINSTALL_CMAKE_DIR:PATH=%{_libdir}/cmake/Dyninst \
@@ -139,6 +141,13 @@ cd ../%{testsuite_base}
mkdir -p %{buildroot}/etc/ld.so.conf.d
echo "%{_libdir}/dyninst" > %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf
+# Ugly hack to mask testsuite files from debuginfo extraction. Running the
+# testsuite requires debuginfo, so extraction is useless. However, debuginfo
+# extraction is still nice for the main libraries, so we don't want to disable
+# it package-wide. The permissions are restored by attr(755,-,-) in files.
+find %{buildroot}%{_libdir}/dyninst/testsuite/ \
+ -type f '!' -name '*.a' -execdir chmod 644 '{}' '+'
+
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
@@ -177,6 +186,9 @@ echo "%{_libdir}/dyninst" > %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf
%attr(644,root,root) %{_libdir}/dyninst/testsuite/*.a
%changelog
+* Tue Nov 10 2020 Stan Cox <scox(a)redhat.com> - 10.2.1-2
+- Enable debuginfod
+
* Wed Oct 28 2020 Stan Cox <scox(a)redhat.com> - 10.2.1-1
- Update to 10.2.1
commit 07af1b4b2a5f4f174aa08e1ea655e145e32ae121
Author: Stan Cox <scox(a)redhat.com>
Date: Thu Oct 29 17:34:54 2020 -0400
Update to 10.2.1
diff --git a/.gitignore b/.gitignore
index b84defc..3fd4028 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,3 +22,4 @@
/testsuite-10.1.0.tar.gz
/dyninst-10.1.0.tar.gz
/dyninst-10.2.0.tar.gz
+/dyninst-10.2.1.tar.gz
diff --git a/dyninst-10.1.0-aarch-regs.patch b/dyninst-10.1.0-aarch-regs.patch
deleted file mode 100644
index 814137c..0000000
--- a/dyninst-10.1.0-aarch-regs.patch
+++ /dev/null
@@ -1,309 +0,0 @@
---- dyninst-10.1.0/dyninst-10.1.0/dyninstAPI/src/BPatch_addressSpace.C.orig 2019-05-16 14:40:05.000000000 -0400
-+++ dyninst-10.1.0/dyninst-10.1.0/dyninstAPI/src/BPatch_addressSpace.C 2019-11-06 10:20:08.567523510 -0500
---- BPatch_addressSpace.C.orig 2019-05-16 14:40:05.000000000 -0400
-+++ BPatch_addressSpace.C 2019-11-15 18:10:31.186122654 -0500
-@@ -1050,5 +1050,2 @@
- return true;
--
-- regs = registers_;
-- return true;
- }
---- dyninst-10.1.0/dyninst-10.1.0/dyninstAPI/src/emit-aarch64.C.orig 2019-05-16 14:40:05.000000000 -0400
-+++ dyninst-10.1.0/dyninst-10.1.0/dyninstAPI/src/emit-aarch64.C 2019-11-06 10:20:08.567523510 -0500
-@@ -276,9 +276,2 @@
-
-- if (register_num == REG_SP) {
-- insnCodeGen::generateAddSubImmediate(gen, insnCodeGen::Add, 0,
-- TRAMP_FRAME_SIZE_64, destination, REG_SP, true);
--
-- return;
-- }
--
- if (src->spilledState == registerSlot::unspilled)
-@@ -293,3 +286,3 @@
- // its on the stack so load it.
-- insnCodeGen::restoreRegister(gen, destination, offset + (register_num * gen.width()),
-+ insnCodeGen::restoreRegister(gen, destination, offset + (src->encoding() * gen.width()),
- insnCodeGen::Offset);
-@@ -298 +291,7 @@
-
-+bool EmitterAARCH64::emitMoveRegToReg(Register src, Register dest, codeGen &gen)
-+{
-+ insnCodeGen::generateMove(gen, dest, src);
-+ return true;
-+}
-+
---- dyninst-10.1.0/dyninst-10.1.0/dyninstAPI/src/emit-aarch64.h.orig 2019-05-16 14:40:05.000000000 -0400
-+++ dyninst-10.1.0/dyninst-10.1.0/dyninstAPI/src/emit-aarch64.h 2019-11-06 10:20:08.567523510 -0500
-@@ -107,6 +107,3 @@
-
-- virtual bool emitMoveRegToReg(Register, Register, codeGen &) {
-- assert(0);
-- return 0;
-- }
-+ virtual bool emitMoveRegToReg(Register, Register, codeGen &);
-
---- dyninst-10.1.0/dyninst-10.1.0/dyninstAPI/src/inst-aarch64.C.orig 2019-05-16 14:40:05.000000000 -0400
-+++ dyninst-10.1.0/dyninst-10.1.0/dyninstAPI/src/inst-aarch64.C 2019-11-06 10:20:08.567523510 -0500
-@@ -108,2 +108,4 @@
- registers.push_back(new registerSlot(r30, "r30", true, registerSlot::liveAlways, registerSlot::GPR));
-+ // SP is r31, but also could be considered special. But now it's being added as GPR
-+ registers.push_back(new registerSlot(sp, "r31", true, registerSlot::liveAlways, registerSlot::GPR));
-
-@@ -111,3 +113,3 @@
- registers.push_back(new registerSlot(lr, "lr", true, registerSlot::liveAlways, registerSlot::SPR));
-- registers.push_back(new registerSlot(sp, "sp", true, registerSlot::liveAlways, registerSlot::SPR));
-+ //registers.push_back(new registerSlot(sp, "sp", true, registerSlot::liveAlways, registerSlot::SPR));
- registers.push_back(new registerSlot(pstate, "nzcv", true, registerSlot::liveAlways, registerSlot::SPR));
-@@ -183,9 +185,16 @@
- registerSlot *reg = theRegSpace->GPRs()[idx];
-- // We always save FP and LR for stack walking out of instrumentation
-- if (reg->liveState == registerSlot::live || reg->number == REG_FP || reg->number == REG_LR) {
-+ // We always save FP and LR for stack walking out of instrumentation
-+ //if (reg->liveState == registerSlot::live || reg->number == REG_FP || reg->number == REG_LR) {
- int offset_from_sp = offset + (reg->encoding() * gen.width());
-- insnCodeGen::saveRegister(gen, reg->number, offset_from_sp);
-+ if(reg->number != registerSpace::sp)
-+ insnCodeGen::saveRegister(gen, reg->number, offset_from_sp);
-+ else{
-+ // mov SP to x0
-+ insnCodeGen::generateAddSubImmediate(gen, insnCodeGen::Add, 0,
-+ TRAMP_FRAME_SIZE_64, REG_SP, 0, true);
-+ insnCodeGen::saveRegister(gen, 0, offset_from_sp);
-+ }
- theRegSpace->markSavedRegister(reg->number, offset_from_sp);
- ret++;
-- }
-+ //}
- }
-@@ -283,2 +292,4 @@
- if(reg->liveState == registerSlot::spilled) {
-+ if(reg->number == registerSpace::sp)
-+ continue;
- //#sasha this should be GPRSIZE_64 and not gen.width
-@@ -602,4 +613,2 @@
- {
-- //#sasha This function implementation is experimental.
--
- if (op != callOp) {
-@@ -623,4 +632,2 @@
- vector<int> savedRegs;
--
-- // save r0-r7
- for(size_t id = 0; id < gen.rs()->numGPRs(); id++)
-@@ -653,2 +660,6 @@
- assert(reg!=REG_NULL);
-+
-+ // mark reg offLimits so getScratchRegister won't use it
-+ registerSlot *regS = gen.rs()->GPRs()[id];
-+ regS->offLimits = true;
- }
-@@ -691,3 +702,2 @@
-
-- // r7-r0
- for (signed int ui = savedRegs.size()-1; ui >= 0; ui--) {
-@@ -697,2 +707,9 @@
-
-+ // Making operand's reg not offLimits again
-+ for(size_t id = 0; id < operands.size(); id++)
-+ {
-+ registerSlot *reg = gen.rs()->GPRs()[id];
-+ reg->offLimits = false;
-+ }
-+
- return 0;
-@@ -1426,4 +1443,53 @@
- bool EmitterAARCH64Stat::emitPLTCall(func_instance *callee, codeGen &gen) {
-- assert(0); //Not implemented
-- return emitPLTCommon(callee, true, gen);
-+ /*
-+ Address dest = getInterModuleFuncAddr(callee, gen);
-+ //Register scr = gen.rs()->getScratchRegister(gen);
-+ //Register lr = gen.rs()->getScratchRegister(gen);
-+ //Address pc = emitMovePCToReg(scr, gen);
-+
-+ Address varOffset = dest - gen.currAddr();
-+ //printf("VarOffset = %d\n", varOffset);
-+ //emitLoadRelative(lr, varOffset, scr, gen.width(), gen);
-+
-+ insnCodeGen::generateBranch(gen, gen.currAddr(), dest, true);
-+
-+ return true;
-+ */
-+
-+
-+ Address dest = getInterModuleFuncAddr(callee, gen);
-+ Register scr = gen.rs()->getScratchRegister(gen);
-+ Register lr = gen.rs()->getScratchRegister(gen);
-+ //Register scr = gen.rs()->getRegByName("r2");
-+ //Register lr = gen.rs()->getRegByName("r3");
-+ emitMovePCToReg(scr, gen);
-+
-+ Address varOffset = dest - gen.currAddr() + 4;
-+ //printf("VarOffset = %d\n", varOffset);
-+ emitLoadRelative(lr, varOffset, scr, gen.width(), gen);
-+ insnCodeGen::generateMemAccess(gen, insnCodeGen::Load, lr, lr, 0, 8, insnCodeGen::Offset);
-+
-+ // indirect branch
-+ instruction branchInsn;
-+ branchInsn.clear();
-+
-+ //Set bits which are 0 for both BR and BLR
-+ INSN_SET(branchInsn, 0, 4, 0);
-+ INSN_SET(branchInsn, 10, 15, 0);
-+
-+ //Set register
-+ INSN_SET(branchInsn, 5, 9, lr);
-+
-+ //Set other bits. Basically, these are the opcode bits.
-+ //The only difference between BR and BLR is that bit 21 is 1 for BLR.
-+ INSN_SET(branchInsn, 16, 31, BRegOp);
-+ INSN_SET(branchInsn, 21, 21, 1);
-+ insnCodeGen::generate(gen, branchInsn);
-+ //insnCodeGen::generateBranch(gen, gen.currAddr(), lr, true);
-+ //insnCodeGen::generateBranch(gen, gen.currAddr(), gen.currAddr() +varOffset, true);
-+
-+ return true;
-+
-+ //assert(0); //Not implemented
-+ //return emitPLTCommon(callee, true, gen);
- }
-@@ -1431,4 +1497,81 @@
- bool EmitterAARCH64Stat::emitPLTJump(func_instance *callee, codeGen &gen) {
-- assert(0); //Not implemented
-- return emitPLTCommon(callee, false, gen);
-+ /*
-+ Address dest = getInterModuleFuncAddr(callee, gen);
-+ //Register scr = gen.rs()->getScratchRegister(gen);
-+ //Register lr = gen.rs()->getScratchRegister(gen);
-+ Register scr = gen.rs()->getRegByName("r2");
-+ Register lr = gen.rs()->getRegByName("r3");
-+ //Address pc = emitMovePCToReg(scr, gen);
-+
-+ Address varOffset = dest - gen.currAddr();
-+ //printf("VarOffset = %d\n", varOffset);
-+ emitLoadRelative(lr, varOffset, scr, gen.width(), gen);
-+ insnCodeGen::generateMemAccess(gen, insnCodeGen::Load, lr, lr, 0, 8, insnCodeGen::Offset);
-+
-+ insnCodeGen::generateBranch(gen, gen.currAddr(), lr, false);
-+
-+ return true;
-+ */
-+
-+ /*
-+ Address dest = getInterModuleFuncAddr(callee, gen);
-+ Register scr = gen.rs()->getScratchRegister(gen);
-+ Register lr = gen.rs()->getScratchRegister(gen);
-+ Address pc = emitMovePCToReg(scr, gen);
-+
-+ Address varOffset = dest - pc;
-+ printf("VarOffset = %d\n", varOffset);
-+ emitLoadRelative(lr, varOffset, scr, gen.width(), gen);
-+
-+ insnCodeGen::generateBranch(gen, gen.currAddr(), lr, false);
-+ return true;
-+ */
-+
-+ /*
-+ Address dest = getInterModuleFuncAddr(callee, gen);
-+ Register scr = gen.rs()->getScratchRegister(gen);
-+ Register lr = gen.rs()->getScratchRegister(gen);
-+ Address varOffset = dest - gen.currAddr();
-+ emitLoadRelative(lr, varOffset, scr, gen.width(), gen);
-+ insnCodeGen::generateBranch(gen, gen.currAddr(), gen.currAddr() +varOffset, false);
-+
-+ return true;
-+ */
-+
-+
-+ Address dest = getInterModuleFuncAddr(callee, gen);
-+ Register scr = gen.rs()->getScratchRegister(gen);
-+ Register lr = gen.rs()->getScratchRegister(gen);
-+ //Register scr = gen.rs()->getRegByName("r2");
-+ //Register lr = gen.rs()->getRegByName("r3");
-+ emitMovePCToReg(scr, gen);
-+
-+ Address varOffset = dest - gen.currAddr() + 4;
-+ //printf("VarOffset = %d\n", varOffset);
-+ emitLoadRelative(lr, varOffset, scr, gen.width(), gen);
-+ insnCodeGen::generateMemAccess(gen, insnCodeGen::Load, lr, lr, 0, 8, insnCodeGen::Offset);
-+
-+ // indirect branch
-+ instruction branchInsn;
-+ branchInsn.clear();
-+
-+ //Set bits which are 0 for both BR and BLR
-+ INSN_SET(branchInsn, 0, 4, 0);
-+ INSN_SET(branchInsn, 10, 15, 0);
-+
-+ //Set register
-+ INSN_SET(branchInsn, 5, 9, lr);
-+
-+ //Set other bits. Basically, these are the opcode bits.
-+ //The only difference between BR and BLR is that bit 21 is 1 for BLR.
-+ INSN_SET(branchInsn, 16, 31, BRegOp);
-+ INSN_SET(branchInsn, 21, 21, 0);
-+ insnCodeGen::generate(gen, branchInsn);
-+ //insnCodeGen::generateBranch(gen, gen.currAddr(), lr, true);
-+ //insnCodeGen::generateBranch(gen, gen.currAddr(), gen.currAddr() +varOffset, true);
-+
-+ return true;
-+
-+ //assert(0); //Not implemented
-+ //return emitPLTCommon(callee, false, gen);
- }
---- dyninst-10.1.0/dyninst-10.1.0/dyninstAPI/src/inst-aarch64.h.orig 2019-05-16 14:40:05.000000000 -0400
-+++ dyninst-10.1.0/dyninst-10.1.0/dyninstAPI/src/inst-aarch64.h 2019-11-06 10:20:08.567523510 -0500
-@@ -74,3 +74,3 @@
- //TODO Fix for ARM
--#define GPRSAVE_64 (31*GPRSIZE_64)
-+#define GPRSAVE_64 (32*GPRSIZE_64)
- #define FPRSAVE_64 (32*FPRSIZE_64)
---- dyninst-10.1.0/dyninst-10.1.0/dyninstAPI/src/registerSpace.C.orig 2019-05-16 14:40:05.000000000 -0400
-+++ dyninst-10.1.0/dyninst-10.1.0/dyninstAPI/src/registerSpace.C 2019-11-06 10:20:08.567523510 -0500
-@@ -110,2 +110,4 @@
- #elif defined(arch_aarch64)
-+ if(number == registerSpace::sp)
-+ return REG_SP;
- switch (type) {
-@@ -342,3 +344,3 @@
-
-- reg->markUsed(true);
-+ //reg->markUsed(true);
- gen.markRegDefined(reg->number);
-
---- dyninst-10.1.0/dyninst-10.1.0/dyninstAPI/src/dynProcess.C.orig
-+++ dyninst-10.1.0/dyninst-10.1.0/dyninstAPI/src/dynProcess.C
-@@ -3243,25 +3243,13 @@ bool PCProcess::continueSyncRPCThreads() {
- }
-
- void PCProcess::addTrap(Address from, Address to, codeGen &gen) {
-- map<Address, Breakpoint::ptr>::iterator breakIter =
-- installedCtrlBrkpts.find(from);
--
-- if( breakIter != installedCtrlBrkpts.end() ) {
-- if( !pcProc_->rmBreakpoint(from, breakIter->second) ) {
-- // Oops?
-- }
-- installedCtrlBrkpts.erase(breakIter);
-- }
--
-- Breakpoint::ptr newBreak = Breakpoint::newTransferBreakpoint(to);
-- newBreak->setSuppressCallbacks(true);
--
-- if( !pcProc_->addBreakpoint(from, newBreak) ) {
-- // Oops?
-- }
--
-- installedCtrlBrkpts.insert(make_pair(from, newBreak));
-- gen.invalidate();
-+ gen.invalidate();
-+ gen.allocate(4);
-+ gen.setAddrSpace(this);
-+ gen.setAddr(from);
-+ insnCodeGen::generateTrap(gen);
-+ trapMapping.addTrapMapping(from, to, true);
-+ springboard_cerr << "Generated springboard trap " << hex << from << "->" << to << dec << endl;
- }
-
- void PCProcess::removeTrap(Address from) {
diff --git a/dyninst-10.1.0-result.patch b/dyninst-10.1.0-result.patch
deleted file mode 100644
index 2738cf2..0000000
--- a/dyninst-10.1.0-result.patch
+++ /dev/null
@@ -1,28 +0,0 @@
---- dyninst-10.1.0/dyninst-10.1.0/instructionAPI/h/Result.h.sv 2018-11-09 11:48:08.000000000 -0500
-+++ dyninst-10.1.0/dyninst-10.1.0/instructionAPI/h/Result.h 2018-12-04 22:12:47.369579566 -0500
-@@ -449,10 +449,10 @@
- snprintf(hex, 20, "%x", val.s32val);
- break;
- case u64:
-- snprintf(hex, 20, "%lx", val.u64val);
-+ snprintf(hex, 20, "%" PRIx64, val.u64val);
- break;
- case s64:
-- snprintf(hex, 20, "%lx", val.s64val);
-+ snprintf(hex, 20, "%" PRIx64, val.s64val);
- break;
- case sp_float:
- snprintf(hex, 20, "%f", val.floatval);
-@@ -464,10 +464,10 @@
- snprintf(hex, 20, "%x", val.bitval);
- break;
- case u48:
-- snprintf(hex, 20, "%lx", val.s48val);
-+ snprintf(hex, 20, "%" PRIx64, val.s48val);
- break;
- case s48:
-- snprintf(hex, 20, "%lx", val.s48val);
-+ snprintf(hex, 20, "%" PRIx64, val.s48val);
- break;
- case m512:
- snprintf(hex, 20, "%p", val.m512val);
diff --git a/dyninst-10.2.1-dbid.patch b/dyninst-10.2.1-dbid.patch
new file mode 100644
index 0000000..91b5407
--- /dev/null
+++ b/dyninst-10.2.1-dbid.patch
@@ -0,0 +1,326 @@
+Debuginfod is a lightweight web service that indexes ELF/DWARF debugging
+resources by build-id and serves them over HTTP.
+
+This patch enables dyninst to query debuginfod servers for a file's
+separate debuginfo when it otherwise cannot be found.
+
+This patch also adds a cmake option -DENABLE_DEBUGINFOD to control
+whether dyninst is built with debuginfod support.
+
+This requires having the debuginfod client library (libdebuginfod)
+and header installed.
+
+Debuginfod is distributed with elfutils, for more information see
+https://sourceware.org/elfutils/Debuginfod.html
+---
+ cmake/ElfUtils.cmake | 37 ++++++++---
+ cmake/Modules/FindLibDebuginfod.cmake | 76 +++++++++++++++++++++
+ cmake/options.cmake | 2 +
+ elf/CMakeLists.txt | 3 +
+ elf/src/Elf_X.C | 95 ++++++++++++++++++++-------
+ 5 files changed, 178 insertions(+), 35 deletions(-)
+ create mode 100644 cmake/Modules/FindLibDebuginfod.cmake
+
+--- dyninst-10.2.1/dyninst-10.2.1/cmake/ElfUtils.cmake
++++ dyninst-10.2.1/dyninst-10.2.1/cmake/ElfUtils.cmake
+@@ -28,7 +28,7 @@
+ #
+ #======================================================================================
+
+-if(LibElf_FOUND AND LibDwarf_FOUND)
++if(LibElf_FOUND AND LibDwarf_FOUND AND (LibDebuginfod_FOUND OR NOT ENABLE_DEBUGINFOD))
+ return()
+ endif()
+
+@@ -37,7 +37,12 @@ if(NOT UNIX)
+ endif()
+
+ # Minimum acceptable version of elfutils
+-set(_min_version 0.178)
++if(ENABLE_DEBUGINFOD)
++ set(_min_version 0.179)
++else()
++ set(_min_version 0.178)
++endif()
++
+ set(ElfUtils_MIN_VERSION ${_min_version}
+ CACHE STRING "Minimum acceptable elfutils version")
+ if(${ElfUtils_MIN_VERSION} VERSION_LESS ${_min_version})
+@@ -62,7 +67,7 @@ set(ElfUtils_LIBRARYDIR "${ElfUtils_ROOT_DIR}/lib"
+ CACHE PATH "Hint directory that contains the elfutils library files")
+
+ # libelf/dwarf-specific directory hints
+-foreach(l LibElf LibDwarf)
++foreach(l LibElf LibDwarf LibDebuginfod)
+ foreach(d ROOT_DIR INCLUDEDIR LIBRARYDIR)
+ set(${l}_${d} ${ElfUtils_${d}})
+ endforeach()
+@@ -72,18 +77,30 @@ endforeach()
+
+ find_package(LibElf ${ElfUtils_MIN_VERSION})
+
+-# Don't search for libdw if we didn't find a suitable libelf
++# Don't search for libdw or libdebuginfod if we didn't find a suitable libelf
+ if(LibElf_FOUND)
+ find_package(LibDwarf ${ElfUtils_MIN_VERSION})
++ if (ENABLE_DEBUGINFOD)
++ find_package(LibDebuginfod ${ElfUtils_MIN_VERSION})
++ endif()
+ endif()
+
+ # -------------- SOURCE BUILD -------------------------------------------------
+-if(LibElf_FOUND AND LibDwarf_FOUND)
+- set(_eu_root ${ElfUtils_ROOT_DIR})
+- set(_eu_inc_dirs ${LibElf_INCLUDE_DIRS} ${LibDwarf_INCLUDE_DIRS})
+- set(_eu_lib_dirs ${LibElf_LIBRARY_DIRS} ${LibDwarf_LIBRARY_DIRS})
+- set(_eu_libs ${LibElf_LIBRARIES} ${LibDwarf_LIBRARIES})
++if(LibElf_FOUND AND LibDwarf_FOUND AND (NOT ENABLE_DEBUGINFOD OR LibDebuginfod_FOUND))
++ if(ENABLE_DEBUGINFOD AND LibDebuginfod_FOUND)
++ set(_eu_root ${ElfUtils_ROOT_DIR})
++ set(_eu_inc_dirs ${LibElf_INCLUDE_DIRS} ${LibDwarf_INCLUDE_DIRS} ${LibDebuginfod_INCLUDE_DIRS})
++ set(_eu_lib_dirs ${LibElf_LIBRARY_DIRS} ${LibDwarf_LIBRARY_DIRS} ${LibDebuginfod_LIBRARY_DIRS})
++ set(_eu_libs ${LibElf_LIBRARIES} ${LibDwarf_LIBRARIES} ${LibDebuginfod_LIBRARIES})
++ else()
++ set(_eu_root ${ElfUtils_ROOT_DIR})
++ set(_eu_inc_dirs ${LibElf_INCLUDE_DIRS} ${LibDwarf_INCLUDE_DIRS})
++ set(_eu_lib_dirs ${LibElf_LIBRARY_DIRS} ${LibDwarf_LIBRARY_DIRS})
++ set(_eu_libs ${LibElf_LIBRARIES} ${LibDwarf_LIBRARIES})
++ endif()
+ add_library(ElfUtils SHARED IMPORTED)
++elseif(ENABLE_DEBUGINFOD AND NOT LibDebuginfod_FOUND)
++ message(FATAL_ERROR "Debuginfod enabled but not found")
+ elseif(NOT (LibElf_FOUND AND LibDwarf_FOUND) AND STERILE_BUILD)
+ message(FATAL_ERROR "Elfutils not found and cannot be downloaded because build is sterile.")
+ else()
+@@ -104,7 +121,7 @@ else()
+ if(NOT (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") OR NOT (${CMAKE_C_COMPILER_ID} STREQUAL "GNU"))
+ message(FATAL_ERROR "ElfUtils will only build with the GNU compiler")
+ endif()
+-
++
+ include(ExternalProject)
+ externalproject_add(
+ ElfUtils
+
+--- /dedyninst-10.2.1/dyninst-10.2.1/null
++++ b/cmake/Modules/FindLibDebuginfod.cmake
+@@ -0,0 +1,76 @@
++#========================================================================================
++# FindDebuginfod
++# -----------
++#
++# Find debuginfod library and headers
++#
++# The module defines the following variables:
++#
++# This module reads hints about search locations from variables::
++#
++# LibDebuginfod_ROOT_DIR - Base directory the of libdebuginfod installation
++# LibDebuginfod_INCLUDEDIR - Hint directory that contains the libdebuginfod headers files
++# LibDebuginfod_LIBRARYDIR - Hint directory that contains the libdebuginfod library files
++#
++# and saves search results persistently in CMake cache entries::
++#
++# LibDebuginfod_FOUND - True if headers and requested libraries were found
++# LibDebuginfod_INCLUDE_DIRS - libdebuginfod include directories
++# LibDebuginfod_LIBRARY_DIRS - Link directories for libdebuginfod libraries
++# LibDebuginfod_LIBRARIES - libdebuginfod library files
++#
++# Utilize package config (e.g. /usr/lib64/pkgconfig/libdebuginfod.pc) to fetch
++# version information.
++#
++#========================================================================================
++
++find_package(PkgConfig QUIET)
++pkg_check_modules(PC_Debuginfod QUIET REQUIRED libdebuginfod>=${ElfUtils_MIN_VERSION})
++set(LibDebuginfod_VERSION "${PC_Debuginfod_VERSION}")
++
++find_path(LibDebuginfod_INCLUDE_DIRS
++ NAMES
++ debuginfod.h
++ HINTS
++ ${PC_Debuginfod_INCLUDEDIR}
++ ${PC_Debuginfod_INCLUDE_DIRS}
++ ${LibDebuginfod_ROOT_DIR}/include
++ ${LibDebuginfod_ROOT_DIR}
++ ${LibDebuginfod_INCLUDEDIR}
++ PATHS
++ ${DYNINST_SYSTEM_INCLUDE_PATHS}
++ PATH_SUFFIXES
++ ${_path_suffixes}
++ DOC
++ "libdebuginfod include directories")
++
++find_library(LibDebuginfod_LIBRARIES
++ NAMES
++ libdebuginfod.so.1 libdebuginfod.so
++ HINTS
++ ${PC_Debuginfod_LIBDIR}
++ ${PC_Debuginfod_LIBRARY_DIRS}
++ ${LibDebuginfod_ROOT_DIR}/lib
++ ${LibDebuginfod_ROOT_DIR}
++ ${LibDebuginfod_LIBRARYDIR}
++ PATHS
++ ${DYNINST_SYSTEM_LIBRARY_PATHS}
++ PATH_SUFFIXES
++ ${_path_suffixes})
++
++include(FindPackageHandleStandardArgs)
++find_package_handle_standard_args(LibDebuginfod
++ FOUND_VAR
++ LibDebuginfod_FOUND
++ REQUIRED_VARS
++ LibDebuginfod_INCLUDE_DIRS
++ LibDebuginfod_LIBRARIES
++ VERSION_VAR
++ LibDebuginfod_VERSION)
++
++if(LibDebuginfod_FOUND)
++ set(LibDebuginfod_INCLUDE_DIRS ${LibDebuginfod_INCLUDE_DIRS})
++ set(LibDebuginfod_LIBRARIES ${LibDebuginfod_LIBRARIES})
++ get_filename_component(_debuginfod_dir ${LibDebuginfod_LIBRARIES} DIRECTORY)
++ set(LibDebuginfod_LIBRARY_DIRS ${_debuginfod_dir} "${_debuginfod_dir}/elfutils")
++endif()
+
+--- dyninst-10.2.1/dyninst-10.2.1/cmake/options.cmake
++++ dyninst-10.2.1/dyninst-10.2.1/cmake/options.cmake
+@@ -16,6 +16,8 @@ option(USE_COTIRE "Enable Cotire precompiled headers")
+
+ option (ENABLE_LTO "Enable Link-Time Optimization" OFF)
+
++option(ENABLE_DEBUGINFOD "Enable debuginfod support" OFF)
++
+ # Some global on/off switches
+ if (LIGHTWEIGHT_SYMTAB)
+ add_definitions (-DWITHOUT_SYMTAB_API -DWITH_SYMLITE)
+
+--- dyninst-10.2.1/dyninst-10.2.1/elf/CMakeLists.txt
++++ dyninst-10.2.1/dyninst-10.2.1/elf/CMakeLists.txt
+@@ -27,5 +27,8 @@ endif()
+ add_dependencies(dynElf ElfUtils)
+ target_link_private_libraries(dynElf ${ElfUtils_LIBRARIES})
+
++if (ENABLE_DEBUGINFOD AND LibDebuginfod_FOUND)
++ add_definitions(-DDEBUGINFOD_LIB)
++endif()
+
+ add_definitions(-DDYNELF_LIB)
+
+
+--- dyninst-10.2.1/dyninst-10.2.1/elf/src/Elf_X.C
++++ dyninst-10.2.1/dyninst-10.2.1/elf/src/Elf_X.C
+@@ -47,6 +47,9 @@
+ #include <sstream>
+ #include <libelf.h>
+
++#if DEBUGINFOD_LIB
++#include <elfutils/debuginfod.h>
++#endif
+
+ using namespace std;
+ using boost::crc_32_type;
+@@ -1722,37 +1725,79 @@ bool Elf_X::findDebugFile(std::string origfilename, string &output_name, char* &
+ }
+ }
+
+- if (debugFileFromDebugLink.empty())
+- return false;
++ if (!debugFileFromDebugLink.empty()) {
++ char *mfPathNameCopy = strdup(origfilename.c_str());
++ string objectFileDirName = dirname(mfPathNameCopy);
+
+- char *mfPathNameCopy = strdup(origfilename.c_str());
+- string objectFileDirName = dirname(mfPathNameCopy);
++ vector<string> fnames = list_of
++ (objectFileDirName + "/" + debugFileFromDebugLink)
++ (objectFileDirName + "/.debug/" + debugFileFromDebugLink)
++ ("/usr/lib/debug/" + objectFileDirName + "/" + debugFileFromDebugLink);
+
+- vector<string> fnames = list_of
+- (objectFileDirName + "/" + debugFileFromDebugLink)
+- (objectFileDirName + "/.debug/" + debugFileFromDebugLink)
+- ("/usr/lib/debug/" + objectFileDirName + "/" + debugFileFromDebugLink);
++ free(mfPathNameCopy);
+
+- free(mfPathNameCopy);
++ for(unsigned i = 0; i < fnames.size(); i++) {
++ bool result = loadDebugFileFromDisk(fnames[i], output_buffer, output_buffer_size);
++ if (!result)
++ continue;
+
+- for(unsigned i = 0; i < fnames.size(); i++) {
+- bool result = loadDebugFileFromDisk(fnames[i], output_buffer, output_buffer_size);
+- if (!result)
+- continue;
+-
+- boost::crc_32_type crcComputer;
+- crcComputer.process_bytes(output_buffer, output_buffer_size);
+- if(crcComputer.checksum() != debugFileCrc) {
+- munmap(output_buffer, output_buffer_size);
+- continue;
+- }
++ boost::crc_32_type crcComputer;
++ crcComputer.process_bytes(output_buffer, output_buffer_size);
++ if(crcComputer.checksum() != debugFileCrc) {
++ munmap(output_buffer, output_buffer_size);
++ continue;
++ }
++
++ output_name = fnames[i];
++ cached_debug_buffer = output_buffer;
++ cached_debug_size = output_buffer_size;
++ cached_debug_name = output_name;
++ return true;
++ }
++ }
+
+- output_name = fnames[i];
+- cached_debug_buffer = output_buffer;
+- cached_debug_size = output_buffer_size;
+- cached_debug_name = output_name;
+- return true;
++#ifdef DEBUGINFOD_LIB
++ if (!debugFileFromBuildID.empty()) {
++ // Given /usr/lib/debug/.buildid/XX/YYYYYY.debug, isolate XXYYYYYY.
++ size_t idx1 = debugFileFromBuildID.find_last_of("/");
++ size_t idx2 = debugFileFromBuildID.find_last_of(".");
++
++ if (idx1 == string::npos || idx2 == string::npos
++ || idx1 < 2 || idx1 > idx2)
++ return false;
++
++ idx1 -= 2;
++ string buildid(debugFileFromBuildID.substr(idx1, idx2 - idx1));
++ buildid.erase(2, 1);
++
++ debuginfod_client *client = debuginfod_begin();
++ if (client == NULL)
++ return false;
++
++ char *filename;
++ int fd = debuginfod_find_debuginfo(client,
++ (const unsigned char *)buildid.c_str(),
++ 0, &filename);
++ debuginfod_end(client);
++
++ if (fd >= 0) {
++ string fname = string(filename);
++ free(filename);
++ close(fd);
++
++ bool result = loadDebugFileFromDisk(fname,
++ output_buffer,
++ output_buffer_size);
++ if (result) {
++ output_name = fname;
++ cached_debug_buffer = output_buffer;
++ cached_debug_size = output_buffer_size;
++ cached_debug_name = output_name;
++ return true;
++ }
++ }
+ }
++#endif
+
+ return false;
+ }
diff --git a/dyninst-10.2.0-pie.patch b/dyninst-10.2.1-pie.patch
similarity index 72%
rename from dyninst-10.2.0-pie.patch
rename to dyninst-10.2.1-pie.patch
index 32262c1..095f037 100644
--- a/dyninst-10.2.0-pie.patch
+++ b/dyninst-10.2.1-pie.patch
@@ -1,5 +1,5 @@
---- dyninst-10.2.0/dyninst-10.2.0/dyninstAPI_RT/CMakeLists.txt 2020-02-24 09:41:30.207108160 -0500
-+++ dyninst-10.2.0/dyninst-10.2.0/dyninstAPI_RT/CMakeLists.txt 2020-08-25 15:57:28.437496257 -0400
+--- dyninst-10.2.1/dyninst-10.2.1/dyninstAPI_RT/CMakeLists.txt 2020-02-24 09:41:30.207108160 -0500
++++ dyninst-10.2.1/dyninst-10.2.1/dyninstAPI_RT/CMakeLists.txt 2020-08-25 15:57:28.437496257 -0400
@@ -5,4 +5,4 @@
set (DYNINST_ROOT ${PROJECT_SOURCE_DIR}/..)
-set(CMAKE_C_FLAGS "${DYNINST_RT_CMAKE_C_FLAGS}")
diff --git a/dyninst.spec b/dyninst.spec
index bccc268..7f428c3 100644
--- a/dyninst.spec
+++ b/dyninst.spec
@@ -1,19 +1,20 @@
Summary: An API for Run-time Code Generation
License: LGPLv2+
Name: dyninst
-Release: 2%{?dist}
+Release: 1%{?dist}
URL: http://www.dyninst.org
-Version: 10.2.0
+Version: 10.2.1
ExclusiveArch: %{ix86} x86_64 ppc64le aarch64
%define __testsuite_version 10.1.0
Source0: https://github.com/dyninst/dyninst/archive/v%{version}/dyninst-%{version}...
Source1: https://github.com/dyninst/testsuite/archive/v10.1.0/testsuite-%{__testsu...
-Patch1: dyninst-10.2.0-pie.patch
-Patch2: testsuite-10.1.0-gettid.patch
-Patch3: testsuite-10.1.0-386.patch
-Patch4: %{name}-gcc11.patch
+Patch1: %{name}-gcc11.patch
+Patch2: %{name}-10.2.1-dbid.patch
+Patch3: testsuite-10.1.0-gettid.patch
+Patch4: testsuite-10.1.0-386.patch
+Patch5: testsuite-10.1.0-throw.patch
%global dyninst_base dyninst-%{version}
%global testsuite_base testsuite-%{__testsuite_version}
@@ -76,10 +77,11 @@ making sure that dyninst works properly.
%setup -q -n %{name}-%{version} -c
%setup -q -T -D -a 1
-%patch1 -p1 -b.pie
-%patch2 -p1 -b.gettid
-%patch3 -p1 -b.386
-%patch4 -p1 -b .gcc11
+%patch1 -p1 -b .gcc11
+%patch2 -p1 -b .dbid
+%patch3 -p1 -b .gettid
+%patch4 -p1 -b .386
+%patch5 -p1 -b .throw
# cotire seems to cause non-deterministic gcc errors
# https://bugzilla.redhat.com/show_bug.cgi?id=1420551
@@ -175,6 +177,9 @@ echo "%{_libdir}/dyninst" > %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf
%attr(644,root,root) %{_libdir}/dyninst/testsuite/*.a
%changelog
+* Wed Oct 28 2020 Stan Cox <scox(a)redhat.com> - 10.2.1-1
+- Update to 10.2.1
+
* Tue Oct 27 2020 Jeff Law <law(a)redhat.com> - 10.2.0-2
- Fix C++17 issue caught by gcc-11
diff --git a/sources b/sources
index 496c76e..3758b48 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
+SHA512 (dyninst-10.2.1.tar.gz) = 5666ffd888afdb9493bd495aa6027ca5b9f71fe811a6d88777d55b612c92f73dc6c008c1738be111175a31fb0a2ec804d8ffc3e79888d8366ae5b5b624537055
SHA512 (testsuite-10.1.0.tar.gz) = 47b91ebc0623f672378086a5f8d84e3934bd6b22d8932b12aaad257ccf7eb109505edb63dfbc3eb15aa099fc488a517835412099a77e3e0dd1275b3e3f672b3b
-SHA512 (dyninst-10.2.0.tar.gz) = 32ddf871a8b486bb38530a264b140f504bfd5fb9401c940c6e36540f932ad8dd87375a517324416035ba6eeb05107cf03acebc88bdaad4b5d4c3643afaa5ac5c
diff --git a/testsuite-10.1.0-386.patch b/testsuite-10.1.0-386.patch
index eb46c9f..7fbee48 100644
--- a/testsuite-10.1.0-386.patch
+++ b/testsuite-10.1.0-386.patch
@@ -1,5 +1,5 @@
---- dyninst-10.1.0/testsuite-10.1.0/CMakeLists.txt
-+++ dyninst-10.1.0/testsuite-10.1.0/CMakeLists.txt
+--- dyninst-10.2.0/testsuite-10.1.0/CMakeLists.txt
++++ dyninst-10.2.0/testsuite-10.1.0/CMakeLists.txt
@@ -111,7 +111,8 @@
if(UNIX)
enable_language(ASM-ATT)
@@ -13,8 +13,8 @@
elseif(WIN32)
enable_language(ASM_MASM)
---- dyninst-10.1.0/testsuite-10.1.0/src/instruction/test_instruction_farcall.C
-+++ dyninst-10.1.0/testsuite-10.1.0/src/instruction/test_instruction_farcall.C
+--- dyninst-10.2.0/testsuite-10.1.0/src/instruction/test_instruction_farcall.C
++++ dyninst-10.2.0/testsuite-10.1.0/src/instruction/test_instruction_farcall.C
@@ -96,21 +96,21 @@ test_results_t test_instruction_farcall_Mutator::executeTest()
if(decodedInsns.size() != expectedInsns) // six valid, one invalid
{
diff --git a/testsuite-10.1.0-throw.patch b/testsuite-10.1.0-throw.patch
new file mode 100644
index 0000000..886e9b5
--- /dev/null
+++ b/testsuite-10.1.0-throw.patch
@@ -0,0 +1,14 @@
+--- dyninst-10.2.0/testsuite-10.1.0/src/test_lib.h
++++ dyninst-10.2.0/testsuite-10.1.0/src/test_lib.h
+@@ -158,3 +158,3 @@
+
+- TESTLIB_DLL_EXPORT virtual ~LocErr() THROW;
++ TESTLIB_DLL_EXPORT virtual ~LocErr() throw();
+
+--- dyninst-10.2.0/testsuite-10.1.0/src/test_lib.C
++++ dyninst-10.2.0/testsuite-10.1.0/src/test_lib.C
+@@ -112,3 +112,3 @@
+
+-LocErr::~LocErr() THROW
++LocErr::~LocErr() throw()
+ {}
commit a0e0736c471536b406e9bdea552d73f41614c707
Author: Jeff Law <law(a)redhat.com>
Date: Tue Oct 27 15:47:20 2020 -0600
Commit the patch
diff --git a/dyninst-gcc11.patch b/dyninst-gcc11.patch
new file mode 100644
index 0000000..8fc536c
--- /dev/null
+++ b/dyninst-gcc11.patch
@@ -0,0 +1,13 @@
+diff --git a/testsuite-10.1.0/src/dyninst/test1_3.C b/testsuite-10.1.0/src/dyninst/test1_3.C
+index d32f630..b9bd0ba 100644
+--- a/testsuite-10.1.0/src/dyninst/test1_3.C
++++ b/testsuite-10.1.0/src/dyninst/test1_3.C
+@@ -134,7 +134,7 @@ test_results_t test1_3_Mutator::executeTest()
+ }
+
+ // see if we can find the address
+- if (expr3_1->getBaseAddr() <= 0)
++ if (expr3_1->getBaseAddr() == 0)
+ {
+ logerror("*Error*: address %p for %s is not valid\n",
+ expr3_1->getBaseAddr(), globalVar);
commit 99f8c3271039ae1c3db38f679313512b86221420
Author: Jeff Law <law(a)redhat.com>
Date: Tue Oct 27 15:39:31 2020 -0600
Fix C++17 caught by gcc-11
diff --git a/dyninst.spec b/dyninst.spec
index 4b33ace..bccc268 100644
--- a/dyninst.spec
+++ b/dyninst.spec
@@ -1,7 +1,7 @@
Summary: An API for Run-time Code Generation
License: LGPLv2+
Name: dyninst
-Release: 1%{?dist}
+Release: 2%{?dist}
URL: http://www.dyninst.org
Version: 10.2.0
ExclusiveArch: %{ix86} x86_64 ppc64le aarch64
@@ -13,6 +13,7 @@ Source1: https://github.com/dyninst/testsuite/archive/v10.1.0/testsuite-%{__test
Patch1: dyninst-10.2.0-pie.patch
Patch2: testsuite-10.1.0-gettid.patch
Patch3: testsuite-10.1.0-386.patch
+Patch4: %{name}-gcc11.patch
%global dyninst_base dyninst-%{version}
%global testsuite_base testsuite-%{__testsuite_version}
@@ -78,6 +79,7 @@ making sure that dyninst works properly.
%patch1 -p1 -b.pie
%patch2 -p1 -b.gettid
%patch3 -p1 -b.386
+%patch4 -p1 -b .gcc11
# cotire seems to cause non-deterministic gcc errors
# https://bugzilla.redhat.com/show_bug.cgi?id=1420551
@@ -173,6 +175,9 @@ echo "%{_libdir}/dyninst" > %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf
%attr(644,root,root) %{_libdir}/dyninst/testsuite/*.a
%changelog
+* Tue Oct 27 2020 Jeff Law <law(a)redhat.com> - 10.2.0-2
+- Fix C++17 issue caught by gcc-11
+
* Tue Sep 01 2020 Stan Cox <scox(a)redhat.com> - 10.2.0-1
- Update to 10.2.0
commit 67da9764dd61988a2be9df5abb518d1aff387ad2
Author: Stan Cox <scox(a)redhat.com>
Date: Wed Sep 9 14:06:45 2020 -0400
Update to 10.2.0
diff --git a/dyninst.spec b/dyninst.spec
index 9235b75..4b33ace 100644
--- a/dyninst.spec
+++ b/dyninst.spec
@@ -91,7 +91,7 @@ cd %{dyninst_base}
CFLAGS="$CFLAGS $RPM_OPT_FLAGS"
LDFLAGS="$LDFLAGS $RPM_LD_FLAGS"
%ifarch %{ix86}
- CFLAGS="$CFLAGS -fno-lto"
+ CFLAGS="$CFLAGS -fno-lto -march=i686"
LDFLAGS="$LDFLAGS -fno-lto"
%endif
CXXFLAGS="$CFLAGS"
commit da6c061ac34c7cd2d4b13cc562ef1a734a09b703
Author: Stan Cox <scox(a)redhat.com>
Date: Wed Sep 2 16:33:16 2020 -0400
Update to 10.2.0
diff --git a/dyninst-10.2.0-pie.patch b/dyninst-10.2.0-pie.patch
new file mode 100644
index 0000000..32262c1
--- /dev/null
+++ b/dyninst-10.2.0-pie.patch
@@ -0,0 +1,8 @@
+--- dyninst-10.2.0/dyninst-10.2.0/dyninstAPI_RT/CMakeLists.txt 2020-02-24 09:41:30.207108160 -0500
++++ dyninst-10.2.0/dyninst-10.2.0/dyninstAPI_RT/CMakeLists.txt 2020-08-25 15:57:28.437496257 -0400
+@@ -5,4 +5,4 @@
+ set (DYNINST_ROOT ${PROJECT_SOURCE_DIR}/..)
+-set(CMAKE_C_FLAGS "${DYNINST_RT_CMAKE_C_FLAGS}")
+-set(CMAKE_CXX_FLAGS "${DYNINST_RT_CMAKE_CXX_FLAGS}")
++# set(CMAKE_C_FLAGS "${DYNINST_RT_CMAKE_C_FLAGS}")
++# set(CMAKE_CXX_FLAGS "${DYNINST_RT_CMAKE_CXX_FLAGS}")
commit d51e94a73e2fc0598070895204dd28945eec3a4b
Author: Stan Cox <scox(a)redhat.com>
Date: Wed Sep 2 13:54:44 2020 -0400
Update to 10.2.0
diff --git a/.gitignore b/.gitignore
index 925d489..b84defc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,3 +21,4 @@
/testsuite-9.4.0.tar.gz
/testsuite-10.1.0.tar.gz
/dyninst-10.1.0.tar.gz
+/dyninst-10.2.0.tar.gz
diff --git a/Object-elf.patch b/Object-elf.patch
deleted file mode 100644
index c579ddb..0000000
--- a/Object-elf.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-# workaround for https://github.com/dyninst/dyninst/issues/396
-
---- ./dyninst-9.3.2/symtabAPI/src/Object-elf.C.sv 2017-09-27 21:43:18.399429243 -0400
-+++ ./dyninst-9.3.2/symtabAPI/src/Object-elf.C 2017-09-27 21:56:14.485125928 -0400
-@@ -1445,6 +1445,24 @@
- if (fbt_iter == -1) { // Create new relocation entry.
- relocationEntry re( next_plt_entry_addr, offset, targ_name,
- NULL, type );
-+ if (type == R_X86_64_IRELATIVE) {
-+ vector<Symbol *> funcs;
-+ dyn_hash_map<std::string, std::vector<Symbol *> >::iterator iter;
-+ // find the resolver function and use that as the
-+ // caller function symbol. The resolver has not run
-+ // so we don't know the ultimate destination.
-+ // Since the funcsByOffset map hasn't been setup yet
-+ // we cannot call associated_symtab->findFuncByEntryOffset
-+ for (iter = symbols_.begin(); iter != symbols_.end(); ++iter) {
-+ std::string name = iter->first;
-+ Symbol *sym = iter->second[0];
-+ if (sym->getOffset() == (Offset)addend) {
-+ // Use dynsym_list.push_back(sym) instead?
-+ re.addDynSym(sym);
-+ break;
-+ }
-+ }
-+ }
- re.setAddend(addend);
- re.setRegionType(rtype);
- if (dynsym_list.size() > 0)
diff --git a/addrtranslate-sysv.patch b/addrtranslate-sysv.patch
deleted file mode 100644
index 3de3a53..0000000
--- a/addrtranslate-sysv.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-# workaround for https://github.com/dyninst/dyninst/issues/406
-
---- dyninst-9.3.2/common/src/addrtranslate-sysv.C.sv 2017-10-03 21:32:23.608614189 -0400
-+++ dyninst-9.3.2/common/src/addrtranslate-sysv.C 2017-10-03 21:33:36.538642148 -0400
-@@ -800,6 +800,7 @@
- continue;
- }
- if (obj_name == "linux-vdso.so.1" ||
-+ obj_name == "linux-vdso64.so.1" ||
- obj_name == "linux-gate.so.1")
- {
- continue;
diff --git a/dyninst-10.0.0-doc.patch b/dyninst-10.0.0-doc.patch
deleted file mode 100644
index 74ff705..0000000
--- a/dyninst-10.0.0-doc.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-
---- ./dyninst-10.0.0/CMakeLists.txt.sv 2018-11-09 11:48:08.000000000 -0500
-+++ ./dyninst-10.0.0/CMakeLists.txt 2018-11-13 11:35:20.109650373 -0500
-@@ -149,7 +149,7 @@ if(BUILD_DOCS)
- foreach(COMPONENT ${WORD_DOCS})
- add_dependencies(doc ${COMPONENT}-doc)
- set_target_properties(${COMPONENT}-doc PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD 1)
-- install(FILES ${CMAKE_SOURCE_DIR}/${COMPONENT}/doc/${COMPONENT}.pdf
-+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${COMPONENT}/doc/${COMPONENT}.pdf
- DESTINATION ${INSTALL_DOC_DIR}
- RENAME ${COMPONENT}-${VERSION_STRING}.pdf
- OPTIONAL
diff --git a/dyninst-10.0.0-examples.patch b/dyninst-10.0.0-examples.patch
deleted file mode 100644
index aee1d74..0000000
--- a/dyninst-10.0.0-examples.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-# workaround for https://github.com/dyninst/dyninst/issues/396
-
---- ./dyninst-10.0.0/examples/CMakeLists.txt.sv 2018-11-09 11:48:08.000000000 -0500
-+++ ./dyninst-10.0.0/examples/CMakeLists.txt 2018-11-13 11:35:20.109650373 -0500
-@@ -1,19 +1,19 @@
-
-
--add_executable(unstrip unstrip/unstrip.C
-- unstrip/util.C
-- unstrip/types.C
-- unstrip/semanticDescriptor.C
-- unstrip/database.C
-- unstrip/fingerprint.C
-- unstrip/callback.C)
-+add_executable(unstrip unstrip.dir/unstrip.C
-+ unstrip.dir/util.C
-+ unstrip.dir/types.C
-+ unstrip.dir/semanticDescriptor.C
-+ unstrip.dir/database.C
-+ unstrip.dir/fingerprint.C
-+ unstrip.dir/callback.C)
- add_dependencies(unstrip parseAPI symtabAPI instructionAPI common)
- target_link_libraries(unstrip parseAPI symtabAPI instructionAPI common dynDwarf dynElf ${Boost_LIBRARIES})
-
--add_executable(codeCoverage codeCoverage/codeCoverage.C)
-+add_executable(codeCoverage codeCoverage.dir/codeCoverage.C)
- add_dependencies(codeCoverage dyninstAPI patchAPI parseAPI symtabAPI instructionAPI pcontrol common stackwalk dynDwarf dynElf)
- target_link_libraries(codeCoverage dyninstAPI patchAPI parseAPI symtabAPI instructionAPI pcontrol common stackwalk dynDwarf dynElf ${Boost_LIBRARIES})
-
--add_library(Inst SHARED codeCoverage/libInst.C)
-+add_library(Inst SHARED codeCoverage.dir/libInst.C)
-
- add_executable(cfg_to_dot ../parseAPI/doc/example.cc)
-@@ -29,5 +29,5 @@
- )
-
--install (
-- FILES unstrip/ddb.db unstrip/params.db unstrip/unistd.db DESTINATION ${INSTALL_BIN_DIR}
--)
-+# install (
-+# FILES unstrip.dir/ddb.db unstrip.dir/params.db unstrip.dir/unistd.db DESTINATION ${INSTALL_BIN_DIR}
-+# )
diff --git a/dyninst-10.0.0-result.patch b/dyninst-10.0.0-result.patch
deleted file mode 100644
index 89d6e70..0000000
--- a/dyninst-10.0.0-result.patch
+++ /dev/null
@@ -1,28 +0,0 @@
---- ./dyninst-10.0.0/instructionAPI/h/Result.h.sv 2018-11-09 11:48:08.000000000 -0500
-+++ ./dyninst-10.0.0/instructionAPI/h/Result.h 2018-12-04 22:12:47.369579566 -0500
-@@ -449,10 +449,10 @@
- snprintf(hex, 20, "%x", val.s32val);
- break;
- case u64:
-- snprintf(hex, 20, "%lx", val.u64val);
-+ snprintf(hex, 20, "%" PRIx64, val.u64val);
- break;
- case s64:
-- snprintf(hex, 20, "%lx", val.s64val);
-+ snprintf(hex, 20, "%" PRIx64, val.s64val);
- break;
- case sp_float:
- snprintf(hex, 20, "%f", val.floatval);
-@@ -464,10 +464,10 @@
- snprintf(hex, 20, "%x", val.bitval);
- break;
- case u48:
-- snprintf(hex, 20, "%lx", val.s48val);
-+ snprintf(hex, 20, "%" PRIx64, val.s48val);
- break;
- case s48:
-- snprintf(hex, 20, "%lx", val.s48val);
-+ snprintf(hex, 20, "%" PRIx64, val.s48val);
- break;
- case m512:
- snprintf(hex, 20, "%p", val.m512val);
diff --git a/dyninst-10.0.0-tribool.patch b/dyninst-10.0.0-tribool.patch
deleted file mode 100644
index 0caec2f..0000000
--- a/dyninst-10.0.0-tribool.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-commit 54a2debd94c3e8df3b6f1e579f1db02dae61cbb7
-Author: Mark W. Krentel <krentel(a)rice.edu>
-Date: Fri Feb 1 13:14:11 2019 -0600
-
- Add some explicit casts from boost::tribool to bool for some code in (#541)
-
- Add some explicit casts from boost::tribool to bool for some code in dataflowAPI/rose/util/Message.[Ch]. This was breaking the build when using boost >= 1.69.
-
-diff --git a/dataflowAPI/rose/util/Message.C b/dataflowAPI/rose/util/Message.C
-index a8a66ad4c..5e276f97d 100644
---- ./dyninst-10.0.0/dataflowAPI/rose/util/Message.C
-+++ ./dyninst-10.0.0/dataflowAPI/rose/util/Message.C
-@@ -1123,7 +1123,7 @@ StreamBuf::bake() {
- destination_->bakeDestinations(message_.properties(), baked_/*out*/);
- anyUnbuffered_ = false;
- for (BakedDestinations::const_iterator bi=baked_.begin(); bi!=baked_.end() && !anyUnbuffered_; ++bi)
-- anyUnbuffered_ = !bi->second.isBuffered;
-+ anyUnbuffered_ = static_cast<bool>(!bi->second.isBuffered);
- isBaked_ = true;
- }
- }
-diff --git a/dataflowAPI/rose/util/Message.h b/dataflowAPI/rose/util/Message.h
-index 816f68d2e..03592cb97 100644
---- ./dyninst-10.0.0/dataflowAPI/rose/util/Message.h
-+++ ./dyninst-10.0.0/dataflowAPI/rose/util/Message.h
-@@ -386,7 +386,8 @@ struct SAWYER_EXPORT ColorSpec {
- ColorSpec(AnsiColor fg, AnsiColor bg, bool bold): foreground(fg), background(bg), bold(bold) {}
-
- /** Returns true if this object is in its default-constructed state. */
-- bool isDefault() const { return COLOR_DEFAULT==foreground && COLOR_DEFAULT==background && !bold; }
-+ bool isDefault() const { return COLOR_DEFAULT==foreground && COLOR_DEFAULT==background
-+ && static_cast<bool>(!bold); }
- };
-
- /** Colors to use for each message importance.
diff --git a/dyninst-9.3.1-Address.patch b/dyninst-9.3.1-Address.patch
deleted file mode 100644
index 213cc4a..0000000
--- a/dyninst-9.3.1-Address.patch
+++ /dev/null
@@ -1,108 +0,0 @@
---- dyninst-9.3.1/common/src/Types.h.sv 2017-03-07 22:05:52.187479600 -0500
-+++ dyninst-9.3.1/common/src/Types.h 2017-03-07 22:06:57.509944790 -0500
-@@ -170,7 +170,7 @@
- static const Address ADDR_NULL = (Address)(0);
- #else
- #define ADDR_NULL (0)
--typedef uintptr_t Address;
-+typedef unsigned long Address;
- #endif
- /* Note the inherent assumption that the size of a "long" integer matches
- that of an address (void*) on every supported Paradyn/Dyninst system!
-
-
---- dyninst-9.3.1/common/h/dyntypes.h.sv 2017-03-08 10:16:18.657768231 -0500
-+++ dyninst-9.3.1/common/h/dyntypes.h 2017-03-08 10:37:07.992634513 -0500
-@@ -124,8 +124,8 @@
-
- namespace Dyninst
- {
-- typedef uintptr_t Address;
-- typedef uintptr_t Offset;
-+ typedef unsigned long Address;
-+ typedef unsigned long Offset;
-
- #if defined(_MSC_VER)
- typedef int PID;
-
-
---- dyninst-9.3.1/dyninstAPI/src/BPatch_memoryAccess.C.sv 2017-03-07 23:07:29.371789000 -0500
-+++ dyninst-9.3.1/dyninstAPI/src/BPatch_memoryAccess.C 2017-03-07 23:07:48.928927991 -0500
-@@ -33,10 +33,10 @@
- #include <stdlib.h>
- #include <string.h>
-
-+#include "../../common/src/Types.h"
- #include "BPatch_memoryAccess_NP.h"
- #include "BPatch_Vector.h"
- #include "BPatch_point.h"
--#include "../../common/src/Types.h"
-
- BPatch_addrSpec_NP::BPatch_addrSpec_NP(long _imm, int _ra, int _rb, int _scale) :
- imm(_imm),
-
-
---- dyninst-9.3.1/dyninstAPI/h/BPatch_instruction.h.sv 2017-03-08 09:06:46.638171175 -0500
-+++ dyninst-9.3.1/dyninstAPI/h/BPatch_instruction.h 2017-03-08 09:00:39.455564403 -0500
-@@ -69,7 +69,7 @@
- public:
-
- BPatch_instruction(internal_instruction *insn,
-- uintptr_t _addr);
-+ Dyninst::Address _addr);
- virtual ~BPatch_instruction();
-
- void getInstruction(const unsigned char *&_buffer, unsigned char &_length);
-
-
---- dyninst-9.3.1/dyninstAPI/h/BPatch_memoryAccess_NP.h.sv 2017-03-07 22:43:56.645745821 -0500
-+++ dyninst-9.3.1/dyninstAPI/h/BPatch_memoryAccess_NP.h 2017-03-08 10:39:30.122643332 -0500
-@@ -121,27 +121,27 @@
- static BPatch_memoryAccess* init_tables();
-
- // initializes only the first access; #bytes is a constant
-- BPatch_memoryAccess(internal_instruction *, uintptr_t _addr,
-+ BPatch_memoryAccess(internal_instruction *, Dyninst::Address _addr,
- bool _isLoad, bool _isStore, unsigned int _bytes,
- long _imm, int _ra, int _rb, unsigned int _scale = 0,
- int _cond = -1, bool _nt = false);
-
- // initializes only the first access; #bytes is an expression w/scale
-- BPatch_memoryAccess(internal_instruction *insn, uintptr_t _addr,
-+ BPatch_memoryAccess(internal_instruction *insn, Dyninst::Address _addr,
- bool _isinternal_Load, bool _isStore,
- long _imm_s, int _ra_s, int _rb_s, unsigned int _scale_s,
- long _imm_c, int _ra_c, int _rb_c, unsigned int _scale_c,
- int _cond, bool _nt, int _preFcn = -1);
-
- // initializes only the first access; #bytes is an expression
-- BPatch_memoryAccess(internal_instruction *insn, uintptr_t _addr,
-+ BPatch_memoryAccess(internal_instruction *insn, Dyninst::Address _addr,
- bool _isLoad, bool _isStore, bool _isPrefetch,
- long _imm_s, int _ra_s, int _rb_s,
- long _imm_c, int _ra_c, int _rb_c,
- unsigned short _preFcn);
-
- // initializes only the first access; #bytes is an expression & not a prefetch
-- BPatch_memoryAccess(internal_instruction *insn, uintptr_t _addr,
-+ BPatch_memoryAccess(internal_instruction *insn, Dyninst::Address _addr,
- bool _isLoad, bool _isStore, long _imm_s, int _ra_s, int _rb_s,
- long _imm_c, int _ra_c, int _rb_c);
-
-@@ -156,14 +156,14 @@
- int _cond, bool _nt);
-
- // initializes both accesses; #bytes is a constant
-- BPatch_memoryAccess(internal_instruction *insn, uintptr_t _addr,
-+ BPatch_memoryAccess(internal_instruction *insn, Dyninst::Address _addr,
- bool _isLoad, bool _isStore, unsigned int _bytes,
- long _imm, int _ra, int _rb, unsigned int _scale,
- bool _isLoad2, bool _isStore2, unsigned int _bytes2,
- long _imm2, int _ra2, int _rb2, unsigned int _scale2);
-
- // initializes both accesses; #bytes is an expression & not a prefetch
-- BPatch_memoryAccess(internal_instruction *insn, uintptr_t _addr, bool _isLoad, bool _isStore,
-+ BPatch_memoryAccess(internal_instruction *insn, Dyninst::Address _addr, bool _isLoad, bool _isStore,
- long _imm_s, int _ra_s, int _rb_s, unsigned int _scale_s,
- long _imm_c, int _ra_c, int _rb_c, unsigned int _scale_c,
- bool _isLoad2, bool _isStore2, long _imm2_s, int _ra2_s,
diff --git a/dyninst-9.3.2-gcc8.patch b/dyninst-9.3.2-gcc8.patch
deleted file mode 100644
index faec1a1..0000000
--- a/dyninst-9.3.2-gcc8.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up dyninst-9.3.2/dyninst-9.3.2/symtabAPI/src/emitElf.C.me dyninst-9.3.2/dyninst-9.3.2/symtabAPI/src/emitElf.C
---- dyninst-9.3.2/dyninst-9.3.2/symtabAPI/src/emitElf.C.me 2018-02-07 15:50:36.706363500 +0100
-+++ dyninst-9.3.2/dyninst-9.3.2/symtabAPI/src/emitElf.C 2018-02-07 16:30:28.173906877 +0100
-@@ -2512,8 +2512,8 @@ void emitElf<ElfTypes>::createDynamicSec
-
- if (!object->hasReldyn() && !object->hasReladyn()) {
- if (object->getRelType() == Region::RT_REL) {
-- new_dynamic_entries.push_back(make_pair(DT_REL, 0));
-- new_dynamic_entries.push_back(make_pair(DT_RELSZ, 0));
-+ new_dynamic_entries.push_back(std::pair<long, long>(DT_REL, 0));
-+ new_dynamic_entries.push_back(std::pair<long, long>(DT_RELSZ, 0));
-
- dynamicSecData[DT_REL].push_back(dynsecData + curpos);
- dynsecData[curpos].d_tag = DT_NULL;
diff --git a/dyninst-9.3.2-glibc-rpc.patch b/dyninst-9.3.2-glibc-rpc.patch
deleted file mode 100644
index 1f6098e..0000000
--- a/dyninst-9.3.2-glibc-rpc.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -up dyninst-9.3.2/dyninst-9.3.2/CMakeLists.txt.me dyninst-9.3.2/dyninst-9.3.2/CMakeLists.txt
---- dyninst-9.3.2/dyninst-9.3.2/CMakeLists.txt.me 2018-02-07 15:25:38.925763122 +0100
-+++ dyninst-9.3.2/dyninst-9.3.2/CMakeLists.txt 2018-02-07 15:30:42.242099198 +0100
-@@ -19,6 +19,7 @@ include (${DYNINST_ROOT}/cmake/shared.cm
- configure_file(cmake/version.h.in common/h/version.h)
- include_directories(${PROJECT_BINARY_DIR})
- include_directories(${PROJECT_BINARY_DIR}/common/h)
-+include_directories("/usr/include/tirpc/")
- set (HEADER_DIRS common
- dataflowAPI
- dyninstAPI
-diff -up dyninst-9.3.2/dyninst-9.3.2/common/src/linuxHeaders.h.me dyninst-9.3.2/dyninst-9.3.2/common/src/linuxHeaders.h
---- dyninst-9.3.2/dyninst-9.3.2/common/src/linuxHeaders.h.me 2018-02-07 15:06:45.961780668 +0100
-+++ dyninst-9.3.2/dyninst-9.3.2/common/src/linuxHeaders.h 2018-02-07 15:38:56.832278338 +0100
-@@ -281,7 +281,7 @@ inline bool_t P_xdr_string(XDR *x, char
- inline void P_xdrrec_create(XDR *x, const u_int send_sz, const u_int rec_sz,
- const caddr_t handle,
- xdr_rd_func read_r, xdr_wr_func write_f) {
-- xdrrec_create(x, send_sz, rec_sz, handle, (int(*)(char*, char*, int))read_r, (int(*)(char*, char*, int))write_f);}
-+ xdrrec_create(x, send_sz, rec_sz, handle, (int(*)(void*, void*, int))read_r, (int(*)(void*, void*, int))write_f);}
- inline bool_t P_xdrrec_endofrecord(XDR *x, int now) {
- return (xdrrec_endofrecord(x, now));}
- inline bool_t P_xdrrec_skiprecord(XDR *x) { return (xdrrec_skiprecord(x));}
diff --git a/dyninst.spec b/dyninst.spec
index 94a1a6c..9235b75 100644
--- a/dyninst.spec
+++ b/dyninst.spec
@@ -1,21 +1,21 @@
Summary: An API for Run-time Code Generation
License: LGPLv2+
Name: dyninst
-Release: 10%{?dist}
+Release: 1%{?dist}
URL: http://www.dyninst.org
-Version: 10.1.0
+Version: 10.2.0
ExclusiveArch: %{ix86} x86_64 ppc64le aarch64
+%define __testsuite_version 10.1.0
Source0: https://github.com/dyninst/dyninst/archive/v%{version}/dyninst-%{version}...
-Source1: https://github.com/dyninst/testsuite/archive/v%{version}/testsuite-%{vers...
+Source1: https://github.com/dyninst/testsuite/archive/v10.1.0/testsuite-%{__testsu...
-Patch1: dyninst-10.1.0-result.patch
+Patch1: dyninst-10.2.0-pie.patch
Patch2: testsuite-10.1.0-gettid.patch
Patch3: testsuite-10.1.0-386.patch
-Patch4: dyninst-10.1.0-aarch-regs.patch
%global dyninst_base dyninst-%{version}
-%global testsuite_base testsuite-%{version}
+%global testsuite_base testsuite-%{__testsuite_version}
BuildRequires: gcc-c++
BuildRequires: elfutils-devel
@@ -28,7 +28,7 @@ BuildRequires: tbb tbb-devel
BuildRequires: tex-latex
# Extra requires just for the testsuite
-BuildRequires: gcc-gfortran nasm libxml2-devel
+BuildRequires: gcc-gfortran libxml2-devel
# Testsuite files should not provide/require anything
%{?filter_setup:
@@ -75,10 +75,9 @@ making sure that dyninst works properly.
%setup -q -n %{name}-%{version} -c
%setup -q -T -D -a 1
-%patch1 -p1 -b.result
+%patch1 -p1 -b.pie
%patch2 -p1 -b.gettid
%patch3 -p1 -b.386
-%patch4 -p1 -b.aarch
# cotire seems to cause non-deterministic gcc errors
# https://bugzilla.redhat.com/show_bug.cgi?id=1420551
@@ -91,6 +90,10 @@ cd %{dyninst_base}
CFLAGS="$CFLAGS $RPM_OPT_FLAGS"
LDFLAGS="$LDFLAGS $RPM_LD_FLAGS"
+%ifarch %{ix86}
+ CFLAGS="$CFLAGS -fno-lto"
+ LDFLAGS="$LDFLAGS -fno-lto"
+%endif
CXXFLAGS="$CFLAGS"
export CFLAGS CXXFLAGS LDFLAGS
@@ -165,17 +168,14 @@ echo "%{_libdir}/dyninst" > %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf
%files testsuite
%{_bindir}/parseThat
-%exclude %{_bindir}/cfg_to_dot
-%exclude /usr/bin/codeCoverage
-%exclude /usr/bin/unstrip
-%exclude /usr/bin/ddb.db
-%exclude /usr/bin/params.db
-%exclude /usr/bin/unistd.db
%dir %{_libdir}/dyninst/testsuite/
%attr(755,root,root) %{_libdir}/dyninst/testsuite/*[!a]
%attr(644,root,root) %{_libdir}/dyninst/testsuite/*.a
%changelog
+* Tue Sep 01 2020 Stan Cox <scox(a)redhat.com> - 10.2.0-1
+- Update to 10.2.0
+
* Mon Aug 10 2020 Orion Poplawski <orion(a)nwra.com> - 10.1.0-10
- Use new cmake macros (FTBFS bz#1863463)
- Add BR tex-latex for doc build
diff --git a/sources b/sources
index 1ccb90f..496c76e 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (testsuite-10.1.0.tar.gz) = 47b91ebc0623f672378086a5f8d84e3934bd6b22d8932b12aaad257ccf7eb109505edb63dfbc3eb15aa099fc488a517835412099a77e3e0dd1275b3e3f672b3b
-SHA512 (dyninst-10.1.0.tar.gz) = 41d7b6f0fce56be84091cc9796b7fa3295a652f80203b6e246df3a28a7bdc02a11996a38c9ccfb2ea7c18ee937a93020ff31d5d4652fd8082f99167e94b16df6
+SHA512 (dyninst-10.2.0.tar.gz) = 32ddf871a8b486bb38530a264b140f504bfd5fb9401c940c6e36540f932ad8dd87375a517324416035ba6eeb05107cf03acebc88bdaad4b5d4c3643afaa5ac5c
diff --git a/testsuite-10.1.0-386.patch b/testsuite-10.1.0-386.patch
index 38dcd3a..eb46c9f 100644
--- a/testsuite-10.1.0-386.patch
+++ b/testsuite-10.1.0-386.patch
@@ -1,3 +1,18 @@
+--- dyninst-10.1.0/testsuite-10.1.0/CMakeLists.txt
++++ dyninst-10.1.0/testsuite-10.1.0/CMakeLists.txt
+@@ -111,7 +111,8 @@
+ if(UNIX)
+ enable_language(ASM-ATT)
+- if("${DYNINST_PLATFORM}" MATCHES "i386")
+- enable_language(ASM_NASM)
+- endif()
++# nasm/yasm are deprecated
++# if("${DYNINST_PLATFORM}" MATCHES "i386")
++# enable_language(ASM_NASM)
++# endif()
+ elseif(WIN32)
+ enable_language(ASM_MASM)
+
--- dyninst-10.1.0/testsuite-10.1.0/src/instruction/test_instruction_farcall.C
+++ dyninst-10.1.0/testsuite-10.1.0/src/instruction/test_instruction_farcall.C
@@ -96,21 +96,21 @@ test_results_t test_instruction_farcall_Mutator::executeTest()
diff --git a/testsuite-9.3.0-junit-nullptr.patch b/testsuite-9.3.0-junit-nullptr.patch
deleted file mode 100644
index 6f055c3..0000000
--- a/testsuite-9.3.0-junit-nullptr.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- testsuite-9.3.0/src/JUnitOutputDriver.cpp.nullptr 2016-12-19 14:55:38.000000000 -0800
-+++ testsuite-9.3.0/src/JUnitOutputDriver.cpp 2017-02-15 11:19:22.628056889 -0800
-@@ -35,7 +35,7 @@ void JUnitOutputDriver::startNewTest(std
- {
- std::stringstream suitename;
- suitename << last_group->modname;
-- if(last_group->mutatee != '\0') suitename << "." << last_group->mutatee;
-+ if(last_group->mutatee != nullptr) suitename << "." << last_group->mutatee;
- log(HUMAN, "<testsuite name=\"%s\" errors=\"%d\" skipped=\"%d\" tests=\"%d\" failures=\"%d\">\n",
- suitename.str().c_str(), group_errors, group_skips, group_tests, group_failures);
- log(HUMAN, group_output.str().c_str());
3 years, 4 months
Architecture specific change in rpms/podman.git
by githook-noreply@fedoraproject.org
The package rpms/podman.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/podman.git/commit/?id=aa5f4c2e24f....
Change:
+%ifarch x86_64
Thanks.
Full change:
============
commit aa5f4c2e24fd8729baa16b7162480766981332a7
Author: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
Date: Mon Dec 7 10:08:03 2020 -0500
Harden cgo based golang binaries
- adjust CGO_CFLAGS to make both koji and checksec happy
Reported-by: Wade Mealing <wmealing(a)gmail.com>
Signed-off-by: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
diff --git a/podman.spec b/podman.spec
index 9473adf..ba016ce 100644
--- a/podman.spec
+++ b/podman.spec
@@ -470,6 +470,12 @@ tar zxf %{SOURCE1}
%build
export GO111MODULE=off
+export CGO_CFLAGS="-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -ffat-lto-objects -fexceptions -fasynchronous-unwind-tables -fstack-protector-strong -fstack-clash-protection -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
+%ifarch x86_64
+export CGO_CFLAGS="$CGO_CFLAGS -m64 -mtune=generic -fcf-protection"
+%endif
+# These extra flags present in %%{optflags} have been skipped for now as they break the build
+#export CGO_CFLAGS="$CGO_CFLAGS -flto=auto -Wp,D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1"
# build plugins first cause we don't wanna use podman's buildtags
pushd dnsname-%{commit_plugins}
3 years, 4 months