Architecture specific change in rpms/webkitgtk.git
by githook-noreply@fedoraproject.org
The package rpms/webkitgtk.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/webkitgtk.git/commit/?id=8ea0b451....
Change:
+%ifarch %{ix86}
Thanks.
Full change:
============
commit 8ea0b4518be2a64b8223c406792a8c9f25c5ea5f
Author: Kalev Lember <klember(a)redhat.com>
Date: Wed Aug 10 23:12:52 2022 +0200
Re-enable debuginfo for ppc64le and s390x builds
- Require 8 GB of RAM per vCPU for debuginfo processing
This should reduce the debuginfo processing parallelization enough so
that low memory builders don't OOM during the debuginfo processing.
This reverts commit 0ece072912ef34ea7778977af0301b3211e81c37.
diff --git a/webkitgtk.spec b/webkitgtk.spec
index c3d51cb..06c0a33 100644
--- a/webkitgtk.spec
+++ b/webkitgtk.spec
@@ -300,13 +300,14 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0
# Remove debuginfo from 32-bit builds to reduce memory consumption:
# https://bugs.webkit.org/show_bug.cgi?id=140176
# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.o...
-# Additionally, disable debuginfo for ppc64le and s390x builds as well as we
-# have trouble with the koji builders, https://pagure.io/releng/issue/10909
-%ifarch %{ix86} ppc64le s390x
+%ifarch %{ix86}
%global debug_package %{nil}
%global optflags %(echo %{optflags} | sed 's/-g /-g0 /')
%endif
+# Require 8 GB of RAM per vCPU for debuginfo processing
+%global _find_debuginfo_opts %limit_build -m 8192
+
# Warning: although RHEL 9 aarch64 now uses 4 KB page sizes, we still have to
# support 64 KB page sizes until the *builders* use RHEL 9. This means we still
# have to disable JIT and bmalloc, even though this disables important heap
1 year, 10 months
Architecture specific change in rpms/ipxe.git
by githook-noreply@fedoraproject.org
The package rpms/ipxe.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/ipxe.git/commit/?id=74282a850eef6....
Change:
+%ifarch aarch64
Thanks.
Full change:
============
commit c91f95f3a0c1e23f87e076bcb10937489ff4d72b
Author: Cole Robinson <crobinso(a)redhat.com>
Date: Sun Apr 10 16:08:32 2022 -0400
Update to newer git snapshot
Use the commit requested in 2063876
commit 64113751c3729a2deaffbb1e1b6fd36e2c8bac6b
Author: Michael Brown <mcb30(a)ipxe.org>
Date: Thu Feb 10 12:47:25 2022 +0000
[efi] Enable IMAGE_GZIP by default for AArch64
Signed-off-by: Cole Robinson <crobinso(a)redhat.com>
diff --git a/ipxe.spec b/ipxe.spec
index 1bab075..bc3171e 100644
--- a/ipxe.spec
+++ b/ipxe.spec
@@ -34,12 +34,12 @@
#
# And then change these two:
-%global hash 4bd064de
-%global date 20200823
+%global hash 64113751
+%global date 20220210
Name: ipxe
Version: %{date}
-Release: 9.git%{hash}%{?dist}
+Release: 1.git%{hash}%{?dist}
Summary: A network boot loader
License: GPLv2 with additional permissions and BSD
@@ -278,6 +278,9 @@ cp -a src/bin-arm64-efi/ipxe.efi %{buildroot}/%{_datadir}/%{name}/arm64-efi/ipxe
%endif
%changelog
+* Sun Apr 10 2022 Cole Robinson <crobinso(a)redhat.com> - 20220210-1.git64113751
+- Update to newer git snapshot
+
* Tue Mar 01 2022 Yaakov Selkowitz <yselkowi(a)redhat.com> - 20200823-9.git4bd064de
- Add aarch64 EFI artifacts (bz 2058680)
diff --git a/sources b/sources
index 28e0946..ea363a2 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (ipxe-20200823-git4bd064de.tar.xz) = 70c040352a5ab54e516df2f347128ff539bb7b689d3b26224c5ac073ac96b3107262beacfa8e0c604357f50bf7cc6fec86741a3d477d60b94dceb61d2365895c
+SHA512 (ipxe-20220210-git64113751.tar.xz) = 3c7d80e2f841013bcb0cb917e13fac86e90e27deadc07d50fac99d8abf69b851a045eed376a095baebc28f5b04f5a9c88fc142979ca65800b9219216cd7fb81b
commit 74282a850eef63690ae02356d1fc528627eff7ba
Author: Yaakov Selkowitz <yselkowi(a)redhat.com>
Date: Mon Feb 28 22:15:45 2022 -0500
Add aarch64 EFI artifacts (bz 2058680)
diff --git a/ipxe.spec b/ipxe.spec
index d3b9191..1bab075 100644
--- a/ipxe.spec
+++ b/ipxe.spec
@@ -1,7 +1,3 @@
-%if 0%{?fedora}
-%global cross 1
-%endif
-
# ROMS we want for QEMU with format PCIID:QEMUNAME
%global qemuroms \\\
8086100e:e1000 \\\
@@ -18,17 +14,10 @@
15ad07b0:vmxnet3
%endif
-# We only build the ROMs if on an x86 build host. The resulting
+# We only build the ROMs if on an EFI build host. The resulting
# binary RPM will be noarch, so other archs will still be able
# to use the binary ROMs.
-#
-# We do cross-compilation for 32->64-bit, but not for other arches
-# because EDK II does not support big-endian hosts.
-%if 0%{?cross}
-%global buildarches %{ix86} x86_64
-%else
-%global buildarches x86_64
-%endif
+%global buildarches x86_64 aarch64
# debugging firmwares does not go the same way as a normal program.
# moreover, all architectures providing debuginfo for a single noarch
@@ -50,7 +39,7 @@
Name: ipxe
Version: %{date}
-Release: 8.git%{hash}%{?dist}
+Release: 9.git%{hash}%{?dist}
Summary: A network boot loader
License: GPLv2 with additional permissions and BSD
@@ -70,24 +59,26 @@ BuildRequires: perl-Getopt-Long
BuildRequires: perl-FindBin
BuildRequires: perl-lib
%endif
+%ifarch x86_64
BuildRequires: syslinux
+%endif
BuildRequires: mtools
BuildRequires: xorriso
BuildRequires: edk2-tools
BuildRequires: xz-devel
BuildRequires: gcc
-
BuildRequires: binutils-devel
-%if 0%{?cross}
-BuildRequires: binutils-x86_64-linux-gnu gcc-x86_64-linux-gnu
-%endif
BuildRequires: make
Obsoletes: gpxe <= 1.0.1
+%endif
-%package bootimgs
-Summary: Network boot loader images in bootable USB, CD, floppy and GRUB formats
+%ifarch x86_64
+%package bootimgs-x86
+Summary: X86 Network boot loader images in bootable USB, CD, floppy and GRUB formats
BuildArch: noarch
+Provides: %{name}-bootimgs = %{version}-%{release}
+Obsoletes: %{name}-bootimgs < 20200823-9.git4bd064de
Obsoletes: gpxe-bootimgs <= 1.0.1
%package roms
@@ -101,7 +92,7 @@ Summary: Network boot loader roms supported by QEMU, .rom format
BuildArch: noarch
Obsoletes: gpxe-roms-qemu <= 1.0.1
-%description bootimgs
+%description bootimgs-x86
iPXE is an open source network bootloader. It provides a direct
replacement for proprietary PXE ROMs, with many extra features such as
DNS, HTTP, iSCSI, etc.
@@ -126,6 +117,19 @@ This package contains the iPXE ROMs for devices emulated by QEMU, in
.rom format.
%endif
+%ifarch aarch64
+%package bootimgs-aarch64
+Summary: ARM Network boot loader images in bootable USB and GRUB formats
+BuildArch: noarch
+
+%description bootimgs-aarch64
+iPXE is an open source network bootloader. It provides a direct
+replacement for proprietary PXE ROMs, with many extra features such as
+DNS, HTTP, iSCSI, etc.
+
+This package contains the iPXE ARM boot images in USB and GRUB formats.
+%endif
+
%description
iPXE is an open source network bootloader. It provides a direct
replacement for proprietary PXE ROMs, with many extra features such as
@@ -134,27 +138,23 @@ DNS, HTTP, iSCSI, etc.
%prep
%setup -q -n %{name}-%{version}-git%{hash}
%autopatch -p1
-
-
-%build
-%ifarch %{buildarches}
-cd src
-
# ath9k drivers are too big for an Option ROM, and ipxe devs say it doesn't
# make sense anyways
# http://lists.ipxe.org/pipermail/ipxe-devel/2012-March/001290.html
-rm -rf drivers/net/ath/ath9k
+rm -rf src/drivers/net/ath/ath9k
+
+%build
+cd src
make_ipxe() {
make %{?_smp_mflags} \
NO_WERROR=1 V=1 \
GITVERSION=%{hash} \
-%if 0%{?cross}
- CROSS_COMPILE=x86_64-linux-gnu- \
-%endif
"$@"
}
+%ifarch x86_64
+
make_ipxe bin-i386-efi/ipxe.efi bin-x86_64-efi/ipxe.efi \
bin-x86_64-efi/snponly.efi
@@ -187,8 +187,15 @@ done
%endif
+%ifarch aarch64
+make_ipxe bin-arm64-efi/snponly.efi
+%if 0%{?fedora}
+make_ipxe bin-arm64-efi/ipxe.efi
+%endif
+%endif
+
%install
-%ifarch %{buildarches}
+%ifarch x86_64
mkdir -p %{buildroot}/%{_datadir}/%{name}/
mkdir -p %{buildroot}/%{_datadir}/%{name}.efi/
pushd src/bin/
@@ -225,12 +232,19 @@ for romstr in %{qemuroms}; do
ln -s ../../ipxe.efi/${rom}.rom %{buildroot}%{_datadir}/%{name}/qemu/efi-${qemuname}.rom
done
-# endif buildarches
+# endif x86_64
%endif
+%ifarch aarch64
+mkdir -p %{buildroot}/%{_datadir}/%{name}/arm64-efi
+cp -a src/bin-arm64-efi/snponly.efi %{buildroot}/%{_datadir}/%{name}/arm64-efi/snponly.efi
+%if 0%{?fedora}
+cp -a src/bin-arm64-efi/ipxe.efi %{buildroot}/%{_datadir}/%{name}/arm64-efi/ipxe.efi
+%endif
+%endif
-%ifarch %{buildarches}
-%files bootimgs
+%ifarch x86_64
+%files bootimgs-x86
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/ipxe.iso
%{_datadir}/%{name}/ipxe.usb
@@ -253,7 +267,20 @@ done
%doc COPYING COPYING.GPLv2 COPYING.UBDL
%endif
+%ifarch aarch64
+%files bootimgs-aarch64
+%dir %{_datadir}/%{name}
+%dir %{_datadir}/%{name}/arm64-efi
+%if 0%{?fedora}
+%{_datadir}/%{name}/arm64-efi/ipxe.efi
+%endif
+%{_datadir}/%{name}/arm64-efi/snponly.efi
+%endif
+
%changelog
+* Tue Mar 01 2022 Yaakov Selkowitz <yselkowi(a)redhat.com> - 20200823-9.git4bd064de
+- Add aarch64 EFI artifacts (bz 2058680)
+
* Thu Jan 20 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 20200823-8.git4bd064de
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
1 year, 10 months
Architecture specific change in rpms/mozjs102.git
by githook-noreply@fedoraproject.org
The package rpms/mozjs102.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/mozjs102.git/commit/?id=0327febac....
Change:
+%ifarch s390 s390x
Thanks.
Full change:
============
commit 0327febaca5a7d85154c333eea867f8073968b20
Author: František Zatloukal <fzatlouk(a)redhat.com>
Date: Wed Aug 10 00:02:39 2022 +0200
Init package
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..8e4f784
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/firefox-102.1.0esr.source.tar.xz
diff --git a/0001-Python-Build-Use-r-instead-of-rU-file-read-modes.patch b/0001-Python-Build-Use-r-instead-of-rU-file-read-modes.patch
new file mode 100644
index 0000000..a20d39a
--- /dev/null
+++ b/0001-Python-Build-Use-r-instead-of-rU-file-read-modes.patch
@@ -0,0 +1,109 @@
+From 0e790bd2eb846e90495eb81952cf35cc7fc8766a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk(a)redhat.com>
+Date: Mon, 27 Jun 2022 19:55:16 +0100
+Subject: [PATCH] Python/Build: Use r instead of rU file read modes
+
+Fixes Python 3.11 build
+---
+ python/mozbuild/mozbuild/action/process_define_files.py | 2 +-
+ python/mozbuild/mozbuild/backend/base.py | 2 +-
+ python/mozbuild/mozbuild/preprocessor.py | 6 +++---
+ python/mozbuild/mozbuild/util.py | 4 ++--
+ python/mozbuild/mozpack/files.py | 4 ++--
+ 5 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/python/mozbuild/mozbuild/action/process_define_files.py b/python/mozbuild/mozbuild/action/process_define_files.py
+index f1d401a..aca59d0 100644
+--- a/python/mozbuild/mozbuild/action/process_define_files.py
++++ b/python/mozbuild/mozbuild/action/process_define_files.py
+@@ -36,7 +36,7 @@ def process_define_file(output, input):
+ ) and not config.substs.get("JS_STANDALONE"):
+ config = PartialConfigEnvironment(mozpath.join(topobjdir, "js", "src"))
+
+- with open(path, "rU") as input:
++ with open(path, "r") as input:
+ r = re.compile(
+ "^\s*#\s*(?P<cmd>[a-z]+)(?:\s+(?P<name>\S+)(?:\s+(?P<value>\S+))?)?", re.U
+ )
+diff --git a/python/mozbuild/mozbuild/backend/base.py b/python/mozbuild/mozbuild/backend/base.py
+index 7bc1986..b64a709 100644
+--- a/python/mozbuild/mozbuild/backend/base.py
++++ b/python/mozbuild/mozbuild/backend/base.py
+@@ -272,7 +272,7 @@ class BuildBackend(LoggingMixin):
+ return status
+
+ @contextmanager
+- def _write_file(self, path=None, fh=None, readmode="rU"):
++ def _write_file(self, path=None, fh=None, readmode="r"):
+ """Context manager to write a file.
+
+ This is a glorified wrapper around FileAvoidWrite with integration to
+diff --git a/python/mozbuild/mozbuild/preprocessor.py b/python/mozbuild/mozbuild/preprocessor.py
+index f7820b9..857f1a6 100644
+--- a/python/mozbuild/mozbuild/preprocessor.py
++++ b/python/mozbuild/mozbuild/preprocessor.py
+@@ -531,7 +531,7 @@ class Preprocessor:
+
+ if args:
+ for f in args:
+- with io.open(f, "rU", encoding="utf-8") as input:
++ with io.open(f, "r", encoding="utf-8") as input:
+ self.processFile(input=input, output=out)
+ if depfile:
+ mk = Makefile()
+@@ -860,7 +860,7 @@ class Preprocessor:
+ args = self.applyFilters(args)
+ if not os.path.isabs(args):
+ args = os.path.join(self.curdir, args)
+- args = io.open(args, "rU", encoding="utf-8")
++ args = io.open(args, "r", encoding="utf-8")
+ except Preprocessor.Error:
+ raise
+ except Exception:
+@@ -914,7 +914,7 @@ class Preprocessor:
+ def preprocess(includes=[sys.stdin], defines={}, output=sys.stdout, marker="#"):
+ pp = Preprocessor(defines=defines, marker=marker)
+ for f in includes:
+- with io.open(f, "rU", encoding="utf-8") as input:
++ with io.open(f, "r", encoding="utf-8") as input:
+ pp.processFile(input=input, output=output)
+ return pp.includes
+
+diff --git a/python/mozbuild/mozbuild/util.py b/python/mozbuild/mozbuild/util.py
+index 071daec..b59aabb 100644
+--- a/python/mozbuild/mozbuild/util.py
++++ b/python/mozbuild/mozbuild/util.py
+@@ -236,7 +236,7 @@ class FileAvoidWrite(BytesIO):
+ still occur, as well as diff capture if requested.
+ """
+
+- def __init__(self, filename, capture_diff=False, dry_run=False, readmode="rU"):
++ def __init__(self, filename, capture_diff=False, dry_run=False, readmode="r"):
+ BytesIO.__init__(self)
+ self.name = filename
+ assert type(capture_diff) == bool
+diff --git a/python/mozbuild/mozpack/files.py b/python/mozbuild/mozpack/files.py
+index 8150e72..001c497 100644
+--- a/python/mozbuild/mozpack/files.py
++++ b/python/mozbuild/mozpack/files.py
+@@ -554,7 +554,7 @@ class PreprocessedFile(BaseFile):
+ pp = Preprocessor(defines=self.defines, marker=self.marker)
+ pp.setSilenceDirectiveWarnings(self.silence_missing_directive_warnings)
+
+- with _open(self.path, "rU") as input:
++ with _open(self.path, "r") as input:
+ with _open(os.devnull, "w") as output:
+ pp.processFile(input=input, output=output)
+
+@@ -611,7 +611,7 @@ class PreprocessedFile(BaseFile):
+ pp = Preprocessor(defines=self.defines, marker=self.marker)
+ pp.setSilenceDirectiveWarnings(self.silence_missing_directive_warnings)
+
+- with _open(self.path, "rU") as input:
++ with _open(self.path, "r") as input:
+ pp.processFile(input=input, output=dest, depfile=deps_out)
+
+ dest.close()
+--
+2.36.1
+
diff --git a/0001-Skip-failing-tests-on-ppc64-and-s390x.patch b/0001-Skip-failing-tests-on-ppc64-and-s390x.patch
new file mode 100644
index 0000000..5c28664
--- /dev/null
+++ b/0001-Skip-failing-tests-on-ppc64-and-s390x.patch
@@ -0,0 +1,36 @@
+From db3a0a25b97377b388532b23e73a10d246f66496 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk(a)redhat.com>
+Date: Mon, 3 Aug 2020 10:27:00 +0200
+Subject: [PATCH] Skip failing tests on ppc64 and s390x
+
+ppc64 and s390x: non262/extensions/clone-errors.js
+s390x: test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js
+s390x, ppc64 and aarch64: test262/built-ins/Date/UTC/fp-evaluation-order.js
+---
+ js/src/tests/jstests.list | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/js/src/tests/jstests.list b/js/src/tests/jstests.list
+index 73ce42f..1797646 100644
+--- a/js/src/tests/jstests.list
++++ b/js/src/tests/jstests.list
+@@ -53,6 +53,15 @@ skip-if(!this.hasOwnProperty("Intl")) include test262/intl402/jstests.list
+ skip-if(!this.hasOwnProperty("Atomics")) include test262/built-ins/Atomics/jstests.list
+ skip-if(!this.hasOwnProperty("SharedArrayBuffer")) include test262/built-ins/SharedArrayBuffer/jstests.list
+
++# Crashes on s390x and ppc64, avoid it
++skip-if(xulRuntime.XPCOMABI.match(/s390x|ppc64-/)) script non262/extensions/clone-errors.js
++
++# Crashes on s390x, ppc64, aarch64
++skip-if(xulRuntime.XPCOMABI.match(/s390x|aarch64|ppc64-/)) script test262/built-ins/Date/UTC/fp-evaluation-order.js
++
++# Crashes on s390x, avoid it
++skip-if(xulRuntime.XPCOMABI.match(/s390x/)) script test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js
++
+ #####################################
+ # Test262 tests disabled on browser #
+ #####################################
+--
+2.31.1
+
+
diff --git a/D152549.diff b/D152549.diff
new file mode 100644
index 0000000..3bd15d2
--- /dev/null
+++ b/D152549.diff
@@ -0,0 +1,18 @@
+diff --git a/js/src/build/Makefile.in b/js/src/build/Makefile.in
+--- a/js/src/build/Makefile.in
++++ b/js/src/build/Makefile.in
+@@ -29,10 +29,13 @@
+ $(SYSINSTALL) $(JS_LIBRARY_NAME).pc $(DESTDIR)$(libdir)/pkgconfig
+
+ install:: ../js-config.h
+ $(SYSINSTALL) $^ $(DESTDIR)$(includedir)/$(JS_LIBRARY_NAME)
+
++install:: ../../../mozglue/baseprofiler/public/ProfilingCategoryList.h
++ $(SYSINSTALL) $^ $(DESTDIR)$(includedir)/$(JS_LIBRARY_NAME)/js
++
+ ######################################################
+ # BEGIN SpiderMonkey header installation
+ #
+ # Mozilla/Gecko/Firefox mostly doesn't concern itself with defining a sensible
+ # install target, because it's shipping primarily packaged builds. And even if
+
diff --git a/D152556.diff b/D152556.diff
new file mode 100644
index 0000000..039c815
--- /dev/null
+++ b/D152556.diff
@@ -0,0 +1,17 @@
+diff --git a/js/public/Debug.h b/js/public/Debug.h
+--- a/js/public/Debug.h
++++ b/js/public/Debug.h
+@@ -137,11 +137,11 @@
+ js::Debugger* debugger;
+
+ // Check that |thing| is in the same compartment as our debuggerObject. Used
+ // for assertions when constructing BuiltThings. We can overload this as we
+ // add more instantiations of BuiltThing.
+-#if DEBUG
++#ifdef DEBUG
+ void assertBuilt(JSObject* obj);
+ #else
+ void assertBuilt(JSObject* obj) {}
+ #endif
+
+
diff --git a/copy-headers.patch b/copy-headers.patch
new file mode 100644
index 0000000..dfddcfa
--- /dev/null
+++ b/copy-headers.patch
@@ -0,0 +1,38 @@
+From 3b3c8e37cca418e07bdeceaf3a601805df28d925 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk(a)redhat.com>
+Date: Wed, 15 Jul 2020 08:27:39 +0200
+Subject: [PATCH] build: Copy headers on install instead of symlinking
+
+Patch by Philip Chimento ported forward to mozjs78
+---
+ python/mozbuild/mozbuild/backend/recursivemake.py | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/python/mozbuild/mozbuild/backend/recursivemake.py b/python/mozbuild/mozbuild/backend/recursivemake.py
+index 858d4d4..8c229e8 100644
+--- a/python/mozbuild/mozbuild/backend/recursivemake.py
++++ b/python/mozbuild/mozbuild/backend/recursivemake.py
+@@ -1533,9 +1533,9 @@ class RecursiveMakeBackend(MakeBackend):
+ " of srcdir-relative or absolute paths."
+ )
+
+- install_manifest.add_pattern_link(basepath, wild, dest_dir)
++ install_manifest.add_pattern_copy(basepath, wild, dest_dir)
+ else:
+- install_manifest.add_pattern_link(f.srcdir, f, dest_dir)
++ install_manifest.add_pattern_copy(f.srcdir, f, dest_dir)
+ elif isinstance(f, AbsolutePath):
+ if not f.full_path.lower().endswith((".dll", ".pdb", ".so")):
+ raise Exception(
+@@ -1546,7 +1546,7 @@ class RecursiveMakeBackend(MakeBackend):
+ install_manifest.add_optional_exists(dest_file)
+ absolute_files.append(f.full_path)
+ else:
+- install_manifest.add_link(f.full_path, dest_file)
++ install_manifest.add_copy(f.full_path, dest_file)
+ else:
+ install_manifest.add_optional_exists(dest_file)
+ objdir_files.append(self._pretty_path(f, backend_file))
+--
+2.37.1
+
diff --git a/emitter.patch b/emitter.patch
new file mode 100644
index 0000000..8d5aafb
--- /dev/null
+++ b/emitter.patch
@@ -0,0 +1,67 @@
+From d1d785c169345b81c76213f6dd9be32b4db60294 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk(a)redhat.com>
+Date: Wed, 15 Jul 2020 08:39:47 +0200
+Subject: [PATCH] Build: allow LOCAL_INCLUDES paths with topsrcdir or topobjdir
+
+---
+ python/mozbuild/mozbuild/frontend/emitter.py | 10 ---------
+ .../mozbuild/test/frontend/test_emitter.py | 22 -------------------
+ 2 files changed, 32 deletions(-)
+
+diff --git a/python/mozbuild/mozbuild/frontend/emitter.py b/python/mozbuild/mozbuild/frontend/emitter.py
+index 0b7ccef..a3c7f2f 100644
+--- a/python/mozbuild/mozbuild/frontend/emitter.py
++++ b/python/mozbuild/mozbuild/frontend/emitter.py
+@@ -1365,16 +1365,6 @@ class TreeMetadataEmitter(LoggingMixin):
+ "(resolved to %s)" % (local_include, full_path),
+ context,
+ )
+- if (
+- full_path == context.config.topsrcdir
+- or full_path == context.config.topobjdir
+- ):
+- raise SandboxValidationError(
+- "Path specified in LOCAL_INCLUDES "
+- "(%s) resolves to the topsrcdir or topobjdir (%s), which is "
+- "not allowed" % (local_include, full_path),
+- context,
+- )
+ include_obj = LocalInclude(context, local_include)
+ local_includes.append(include_obj.path.full_path)
+ yield include_obj
+diff --git a/python/mozbuild/mozbuild/test/frontend/test_emitter.py b/python/mozbuild/mozbuild/test/frontend/test_emitter.py
+index 99507fc..821de22 100644
+--- a/python/mozbuild/mozbuild/test/frontend/test_emitter.py
++++ b/python/mozbuild/mozbuild/test/frontend/test_emitter.py
+@@ -1076,28 +1076,6 @@ class TestEmitterBasic(unittest.TestCase):
+
+ self.assertEqual(local_includes, expected)
+
+- def test_local_includes_invalid(self):
+- """Test that invalid LOCAL_INCLUDES are properly detected."""
+- reader = self.reader("local_includes-invalid/srcdir")
+-
+- with six.assertRaisesRegex(
+- self,
+- SandboxValidationError,
+- "Path specified in LOCAL_INCLUDES.*resolves to the "
+- "topsrcdir or topobjdir",
+- ):
+- self.read_topsrcdir(reader)
+-
+- reader = self.reader("local_includes-invalid/objdir")
+-
+- with six.assertRaisesRegex(
+- self,
+- SandboxValidationError,
+- "Path specified in LOCAL_INCLUDES.*resolves to the "
+- "topsrcdir or topobjdir",
+- ):
+- self.read_topsrcdir(reader)
+-
+ def test_local_includes_file(self):
+ """Test that a filename can't be used in LOCAL_INCLUDES."""
+ reader = self.reader("local_includes-filename")
+--
+2.37.1
+
diff --git a/fix-soname.patch b/fix-soname.patch
new file mode 100644
index 0000000..8323264
--- /dev/null
+++ b/fix-soname.patch
@@ -0,0 +1,26 @@
+From d21c7cb9343d8c495d987e71be0f35887574c820 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk(a)redhat.com>
+Date: Wed, 15 Jul 2020 08:21:47 +0200
+Subject: [PATCH] Add soname switch to linker, regardless of Operating System
+
+Fix backported from Debian: http://bugs.debian.org/746705
+---
+ config/rules.mk | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/config/rules.mk b/config/rules.mk
+index 90a9946..dc87789 100644
+--- a/config/rules.mk
++++ b/config/rules.mk
+@@ -291,6 +291,8 @@ ifeq ($(OS_ARCH),GNU)
+ OS_CPPFLAGS += -DPATH_MAX=1024 -DMAXPATHLEN=1024
+ endif
+
++EXTRA_DSO_LDOPTS += -Wl,-soname,lib$(JS_LIBRARY_NAME).so.0
++
+ #
+ # MINGW32
+ #
+--
+2.37.1
+
diff --git a/icu_sources_data-Write-command-output-to-our-stderr.patch b/icu_sources_data-Write-command-output-to-our-stderr.patch
new file mode 100644
index 0000000..8468425
--- /dev/null
+++ b/icu_sources_data-Write-command-output-to-our-stderr.patch
@@ -0,0 +1,44 @@
+From: Simon McVittie <smcv(a)debian.org>
+Date: Mon, 9 Oct 2017 09:23:14 +0100
+Subject: icu_sources_data: Write command output to our stderr
+
+Saying "See output in /tmp/foobar" is all very well for a developer
+build, but on a buildd our /tmp is going to get thrown away after
+the build. Just log the usual way instead.
+---
+ intl/icu_sources_data.py | 16 ++++------------
+ 1 file changed, 4 insertions(+), 12 deletions(-)
+
+diff --git a/intl/icu_sources_data.py b/intl/icu_sources_data.py
+index 4db52af..d62960d 100644
+--- a/intl/icu_sources_data.py
++++ b/intl/icu_sources_data.py
+@@ -188,21 +188,13 @@ def update_sources(topsrcdir):
+
+ def try_run(name, command, cwd=None, **kwargs):
+ try:
+- with tempfile.NamedTemporaryFile(prefix=name, delete=False) as f:
+- subprocess.check_call(
+- command, cwd=cwd, stdout=f, stderr=subprocess.STDOUT, **kwargs
+- )
+- except subprocess.CalledProcessError:
+- print(
+- """Error running "{}" in directory {}
+- See output in {}""".format(
+- " ".join(command), cwd, f.name
+- ),
+- file=sys.stderr,
++ subprocess.check_call(
++ command, cwd=cwd, stdout=sys.stderr, stderr=subprocess.STDOUT, **kwargs
+ )
++ except subprocess.CalledProcessError:
++ print('''Error running "{}" in directory {}'''.format(' '.join(command), cwd), file=sys.stderr)
+ return False
+ else:
+- os.unlink(f.name)
+ return True
+
+
+--
+2.31.1
+
diff --git a/icu_sources_data.py-Decouple-from-Mozilla-build-system.patch b/icu_sources_data.py-Decouple-from-Mozilla-build-system.patch
new file mode 100644
index 0000000..8572c21
--- /dev/null
+++ b/icu_sources_data.py-Decouple-from-Mozilla-build-system.patch
@@ -0,0 +1,29 @@
+From: Simon McVittie <smcv(a)debian.org>
+Date: Mon, 9 Oct 2017 09:22:12 +0100
+Subject: icu_sources_data.py: Decouple from Mozilla build system
+
+mozpack.path is a wrapper around os.path that normalizes path
+separators on Windows, but on Unix we only have one path separator
+so there's nothing to normalize. Avoid needing to import all of it.
+---
+ intl/icu_sources_data.py | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/intl/icu_sources_data.py b/intl/icu_sources_data.py
+index 2936df9..4db52af 100644
+--- a/intl/icu_sources_data.py
++++ b/intl/icu_sources_data.py
+@@ -21,7 +21,9 @@ import subprocess
+ import sys
+ import tempfile
+
+-from mozpack import path as mozpath
++# Close enough
++import os.path as mozpath
++mozpath.normsep = lambda p: p
+
+ # The following files have been determined to be dead/unused by a
+ # semi-automated analysis. You can just remove any of the files below
+--
+2.31.1
+
diff --git a/init_patch.patch b/init_patch.patch
new file mode 100644
index 0000000..28ed1d3
--- /dev/null
+++ b/init_patch.patch
@@ -0,0 +1,28 @@
+From 00414eb67ab0591911167155963b5524fbf2b0c0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk(a)redhat.com>
+Date: Mon, 9 Aug 2021 14:38:58 +0200
+Subject: [PATCH] Don't throw InvalidOptionError on invalid options
+
+---
+ python/mozbuild/mozbuild/configure/__init__.py | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/python/mozbuild/mozbuild/configure/__init__.py b/python/mozbuild/mozbuild/configure/__init__.py
+index f3167f6..c9e1132 100644
+--- a/python/mozbuild/mozbuild/configure/__init__.py
++++ b/python/mozbuild/mozbuild/configure/__init__.py
+@@ -557,10 +557,7 @@ class ConfigureSandbox(dict):
+ for arg in self._helper:
+ without_value = arg.split("=", 1)[0]
+ msg = "Unknown option: %s" % without_value
+- if self._help:
+- self._logger.warning(msg)
+- else:
+- raise InvalidOptionError(msg)
++ self._logger.warning(msg)
+
+ # Run the execution queue
+ for func, args in self._execution_queue:
+--
+2.31.1
+
diff --git a/known_failures.txt b/known_failures.txt
new file mode 100644
index 0000000..027ceff
--- /dev/null
+++ b/known_failures.txt
@@ -0,0 +1,12 @@
+non262/Intl/available-locales-resolved.js
+non262/Intl/available-locales-supported.js
+non262/Intl/DateTimeFormat/fractional-second-digits-append-item.js
+non262/Intl/DateTimeFormat/tz-environment-variable.js
+non262/Intl/DateTimeFormat/day-period-hour-cycle.js
+non262/Intl/DateTimeFormat/timeZone_version.js
+non262/Date/toString-localized.js
+non262/Date/reset-time-zone-cache-same-offset.js
+non262/Date/time-zones-imported.js
+non262/Date/time-zones-historic.js
+non262/Date/toString-localized-posix.js
+non262/Date/time-zone-path.js
diff --git a/mozjs102.spec b/mozjs102.spec
new file mode 100644
index 0000000..4b73a25
--- /dev/null
+++ b/mozjs102.spec
@@ -0,0 +1,233 @@
+%global major 102
+
+# LTO - Enable in Release builds, but consider disabling for development as it increases compile time
+%global build_with_lto 1
+
+# Require tests to pass?
+%global require_tests 1
+
+%if 0%{?build_with_lto}
+# LTO is the default
+%else
+%define _lto_cflags %{nil}
+%endif
+
+# Big endian platforms
+%ifarch ppc ppc64 s390 s390x
+%global big_endian 1
+%endif
+
+Name: mozjs%{major}
+Version: 102.1.0
+Release: 1%{?dist}
+Summary: SpiderMonkey JavaScript library
+
+License: MPL-2.0 AND Apache-2.0 AND BSD-3-Clause AND BSD-2-Clause AND MIT AND GPL-3.0-or-later
+URL: https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey
+Source0: https://ftp.mozilla.org/pub/firefox/releases/%{version}esr/source/firefox...
+
+# Known failures with system libicu
+Source1: known_failures.txt
+
+# Patches from mozjs68, rebased for mozjs78:
+Patch01: fix-soname.patch
+Patch02: copy-headers.patch
+Patch03: tests-increase-timeout.patch
+Patch09: icu_sources_data.py-Decouple-from-Mozilla-build-system.patch
+Patch10: icu_sources_data-Write-command-output-to-our-stderr.patch
+
+# Build fixes - https://hg.mozilla.org/mozilla-central/rev/ca36a6c4f8a4a0ddaa033fdbe20836...
+Patch12: emitter.patch
+Patch13: tests-Use-native-TemporaryDirectory.patch
+
+# Build fixes
+Patch14: init_patch.patch
+Patch15: remove-sloppy-m4-detection-from-bundled-autoconf.patch
+Patch16: 0001-Python-Build-Use-r-instead-of-rU-file-read-modes.patch
+# These two should get uplifted into the next esr
+Patch17: D152556.diff
+Patch18: D152549.diff
+
+# TODO: Check with mozilla for cause of these fails and re-enable spidermonkey compile time checks if needed
+Patch20: spidermonkey_checks_disable.patch
+
+# s390x/ppc64 fixes
+Patch21: 0001-Skip-failing-tests-on-ppc64-and-s390x.patch
+
+BuildRequires: cargo
+BuildRequires: ccache
+BuildRequires: clang-devel
+BuildRequires: gcc
+BuildRequires: gcc-c++
+BuildRequires: m4
+BuildRequires: make
+%if !0%{?rhel}
+BuildRequires: nasm
+%endif
+BuildRequires: libicu-devel
+BuildRequires: llvm
+BuildRequires: rust
+BuildRequires: rustfmt
+BuildRequires: perl-devel
+BuildRequires: pkgconfig(libffi)
+BuildRequires: pkgconfig(zlib)
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-six
+BuildRequires: readline-devel
+BuildRequires: wget
+BuildRequires: zip
+
+%description
+SpiderMonkey is the code-name for Mozilla Firefox's C++ implementation of
+JavaScript. It is intended to be embedded in other applications
+that provide host environments for JavaScript.
+
+%package devel
+Summary: Development files for %{name}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description devel
+The %{name}-devel package contains libraries and header files for
+developing applications that use %{name}.
+
+%prep
+%autosetup -n firefox-%{version}/js/src -N
+
+pushd ../..
+%autopatch -p1
+
+# Copy out the LICENSE file
+cp LICENSE js/src/
+
+# Copy out file containing known test failures with system libicu
+cp %{SOURCE1} js/src/
+
+# Remove zlib directory (to be sure using system version)
+rm -rf modules/zlib
+
+# Remove unneeded bundled stuff
+rm -rf js/src/devtools/automation/variants/
+rm -rf js/src/octane/
+rm -rf js/src/ctypes/libffi/
+
+popd
+
+%build
+%if 0%{?build_with_lto}
+# https://github.com/ptomato/mozjs/commit/36bb7982b41e0ef9a65f7174252ab996c...
+export CARGO_PROFILE_RELEASE_LTO=true
+%endif
+
+# Use bundled autoconf
+export M4=m4
+export AWK=awk
+export AC_MACRODIR=/builddir/build/BUILD/firefox-%{version}/build/autoconf/
+
+sh ../../build/autoconf/autoconf.sh --localdir=/builddir/build/BUILD/firefox-%{version}/js/src configure.in > configure
+chmod +x configure
+
+%configure \
+ --with-system-icu \
+ --with-system-zlib \
+ --disable-tests \
+ --disable-strip \
+ --with-intl-api \
+ --enable-readline \
+ --enable-shared-js \
+ --enable-optimize \
+ --disable-debug \
+ --enable-pie \
+ --disable-jemalloc
+
+%make_build
+
+%install
+%make_install
+
+# Fix permissions
+chmod -x %{buildroot}%{_libdir}/pkgconfig/*.pc
+
+# Avoid multilib conflicts
+case `uname -i` in
+ i386 | ppc | s390 | sparc )
+ wordsize="32"
+ ;;
+ x86_64 | ppc64 | s390x | sparc64 )
+ wordsize="64"
+ ;;
+ *)
+ wordsize=""
+ ;;
+esac
+
+if test -n "$wordsize"
+then
+ mv %{buildroot}%{_includedir}/mozjs-%{major}/js-config.h \
+ %{buildroot}%{_includedir}/mozjs-%{major}/js-config-$wordsize.h
+
+ cat >%{buildroot}%{_includedir}/mozjs-%{major}/js-config.h <<EOF
+#ifndef JS_CONFIG_H_MULTILIB
+#define JS_CONFIG_H_MULTILIB
+
+#include <bits/wordsize.h>
+
+#if __WORDSIZE == 32
+# include "js-config-32.h"
+#elif __WORDSIZE == 64
+# include "js-config-64.h"
+#else
+# error "unexpected value for __WORDSIZE macro"
+#endif
+
+#endif
+EOF
+
+fi
+
+# Remove unneeded files
+rm %{buildroot}%{_bindir}/js%{major}-config
+rm %{buildroot}%{_libdir}/libjs_static.ajs
+
+# Rename library and create symlinks, following fix-soname.patch
+mv %{buildroot}%{_libdir}/libmozjs-%{major}.so \
+ %{buildroot}%{_libdir}/libmozjs-%{major}.so.0.0.0
+ln -s libmozjs-%{major}.so.0.0.0 %{buildroot}%{_libdir}/libmozjs-%{major}.so.0
+ln -s libmozjs-%{major}.so.0 %{buildroot}%{_libdir}/libmozjs-%{major}.so
+
+%check
+# Run SpiderMonkey tests
+%if 0%{?require_tests}
+%{python3} tests/jstests.py -d -s -t 2400 --exclude-file=known_failures.txt --no-progress --wpt=disabled ../../js/src/dist/bin/js%{major}
+%else
+%{python3} tests/jstests.py -d -s -t 2400 --exclude-file=known_failures.txt --no-progress --wpt=disabled ../../js/src/dist/bin/js%{major} || :
+%endif
+
+# Run basic JIT tests
+%if 0%{?require_tests}
+
+# large-arraybuffers/basic.js fails on s390x
+%ifarch s390 s390x
+%{python3} jit-test/jit_test.py -s -t 2400 --no-progress -x large-arraybuffers/basic.js ../../js/src/dist/bin/js%{major} basic
+%else
+%{python3} jit-test/jit_test.py -s -t 2400 --no-progress ../../js/src/dist/bin/js%{major} basic
+%endif
+
+%else
+%{python3} jit-test/jit_test.py -s -t 2400 --no-progress ../../js/src/dist/bin/js%{major} basic || :
+%endif
+
+%files
+%doc README.html
+%license LICENSE
+%{_libdir}/libmozjs-%{major}.so.0*
+
+%files devel
+%{_bindir}/js%{major}
+%{_libdir}/libmozjs-%{major}.so
+%{_libdir}/pkgconfig/*.pc
+%{_includedir}/mozjs-%{major}/
+
+%changelog
+* Wed Jul 27 2022 Frantisek Zatloukal <fzatlouk(a)redhat.com> - 102.1.0-1
+- Initial mozjs102 package based on mozjs91
diff --git a/remove-sloppy-m4-detection-from-bundled-autoconf.patch b/remove-sloppy-m4-detection-from-bundled-autoconf.patch
new file mode 100644
index 0000000..10b8b16
--- /dev/null
+++ b/remove-sloppy-m4-detection-from-bundled-autoconf.patch
@@ -0,0 +1,29 @@
+From 2d99a7b076578a3394fb9d5be6eb44f9cfebc681 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk(a)redhat.com>
+Date: Mon, 9 Aug 2021 16:15:37 +0200
+Subject: [PATCH] Remove sloppy m4 detection from bundled autoconf
+
+---
+ build/autoconf/autoconf.sh | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/build/autoconf/autoconf.sh b/build/autoconf/autoconf.sh
+index ceb8a25..606c74e 100644
+--- a/build/autoconf/autoconf.sh
++++ b/build/autoconf/autoconf.sh
+@@ -114,12 +114,6 @@ fi
+
+ # Use the frozen version of Autoconf if available.
+ r= f=
+-# Some non-GNU m4's don't reject the --help option, so give them /dev/null.
+-case `$M4 --help < /dev/null 2>&1` in
+-*reload-state*) test -r $AC_MACRODIR/autoconf.m4f && { r=--reload f=f; } ;;
+-*traditional*) ;;
+-*) echo Autoconf requires GNU m4 1.1 or later >&2; rm -f $tmpin; exit 1 ;;
+-esac
+
+ $M4 -I$AC_MACRODIR $use_localdir $r autoconf.m4$f $infile > $tmpout ||
+ { rm -f $tmpin $tmpout; exit 2; }
+--
+2.31.1
+
diff --git a/sources b/sources
new file mode 100644
index 0000000..4045972
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (firefox-102.1.0esr.source.tar.xz) = 2505b87ce4115445568eb6b7d8af41678bd787fd07f3f79e9f0a22d90cdf752ae5d4371856cf9c56e2d9da7d5b7c3939dc2aab5753fcc017398e7d65260f6f03
diff --git a/spidermonkey_checks_disable.patch b/spidermonkey_checks_disable.patch
new file mode 100644
index 0000000..451d3ee
--- /dev/null
+++ b/spidermonkey_checks_disable.patch
@@ -0,0 +1,22 @@
+From 6ebe8ce6a3267c96454de3cd453269b4c4053a3e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk(a)redhat.com>
+Date: Mon, 9 Aug 2021 14:41:14 +0200
+Subject: [PATCH] Don't die on SpiderMonkey checks
+
+---
+ config/run_spidermonkey_checks.py | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/config/run_spidermonkey_checks.py b/config/run_spidermonkey_checks.py
+index 0f842d9..b49db52 100644
+--- a/config/run_spidermonkey_checks.py
++++ b/config/run_spidermonkey_checks.py
+@@ -11,5 +11,3 @@ import sys
+ def main(output, lib_file, *scripts):
+ for script in scripts:
+ retcode = subprocess.call([sys.executable, script], cwd=buildconfig.topsrcdir)
+- if retcode != 0:
+- raise Exception(script + " failed")
+--
+2.31.1
+
diff --git a/tests-Use-native-TemporaryDirectory.patch b/tests-Use-native-TemporaryDirectory.patch
new file mode 100644
index 0000000..054685c
--- /dev/null
+++ b/tests-Use-native-TemporaryDirectory.patch
@@ -0,0 +1,66 @@
+From 1af9fdd2124547099eb0cf5a71b513ef5592dbf9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk(a)redhat.com>
+Date: Tue, 10 Aug 2021 00:00:50 +0200
+Subject: [PATCH] Tests: Use native TemporaryDirectory
+
+Without ugly wrapper for Py < 3.2 that doesn't work half of the times...
+---
+ js/src/jit-test/jit_test.py | 2 +-
+ js/src/tests/jstests.py | 2 +-
+ js/src/tests/lib/tempfile.py | 17 +----------------
+ 3 files changed, 3 insertions(+), 18 deletions(-)
+
+diff --git a/js/src/jit-test/jit_test.py b/js/src/jit-test/jit_test.py
+index f5d7794..8d443aa 100755
+--- a/js/src/jit-test/jit_test.py
++++ b/js/src/jit-test/jit_test.py
+@@ -38,7 +38,7 @@ from lib.tests import (
+ get_environment_overlay,
+ change_env,
+ )
+-from lib.tempfile import TemporaryDirectory
++from tempfile import TemporaryDirectory
+
+
+ def which(name):
+diff --git a/js/src/tests/jstests.py b/js/src/tests/jstests.py
+index 6fa2f5f..53ceff6 100755
+--- a/js/src/tests/jstests.py
++++ b/js/src/tests/jstests.py
+@@ -37,7 +37,7 @@ from lib.tests import (
+ from lib.results import ResultsSink, TestOutput
+ from lib.progressbar import ProgressBar
+ from lib.adaptor import xdr_annotate
+-from lib.tempfile import TemporaryDirectory
++from tempfile import TemporaryDirectory
+
+ if sys.platform.startswith("linux") or sys.platform.startswith("darwin"):
+ from lib.tasks_unix import run_all_tests
+diff --git a/js/src/tests/lib/tempfile.py b/js/src/tests/lib/tempfile.py
+index ecc21c9..f0a1fa3 100644
+--- a/js/src/tests/lib/tempfile.py
++++ b/js/src/tests/lib/tempfile.py
+@@ -2,19 +2,4 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ from __future__ import absolute_import
+-
+-try:
+- # Python 3.2
+- from tempfile import TemporaryDirectory
+-except ImportError:
+- import tempfile
+- import shutil
+- from contextlib import contextmanager
+-
+- @contextmanager
+- def TemporaryDirectory(*args, **kwds):
+- d = tempfile.mkdtemp(*args, **kwds)
+- try:
+- yield d
+- finally:
+- shutil.rmtree(d)
++from tempfile import TemporaryDirectory
+--
+2.31.1
+
diff --git a/tests-increase-timeout.patch b/tests-increase-timeout.patch
new file mode 100644
index 0000000..2ba725c
--- /dev/null
+++ b/tests-increase-timeout.patch
@@ -0,0 +1,26 @@
+From 9be85b155c6df0454c5faef9e850f572c99e3615 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk(a)redhat.com>
+Date: Wed, 15 Jul 2020 08:32:44 +0200
+Subject: [PATCH] Increase the test timeout for slower buildds
+
+Ported forward from Debian: https://bugs.debian.org/878284
+---
+ js/src/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/js/src/Makefile.in b/js/src/Makefile.in
+index 6daed72..16db2de 100644
+--- a/js/src/Makefile.in
++++ b/js/src/Makefile.in
+@@ -53,7 +53,7 @@ check:: check-js-msg
+
+ check-jstests:
+ $(wildcard $(RUN_TEST_PROGRAM)) $(PYTHON3) -u $(srcdir)/tests/jstests.py \
+- --no-progress --format=automation --timeout 300 \
++ --no-progress --format=automation --timeout 600 \
+ $(JSTESTS_EXTRA_ARGS) \
+ $(DIST)/bin/js$(BIN_SUFFIX)
+
+--
+2.37.1
+
1 year, 10 months
[Report] Packages Restricting Arches
by root
New package excluding arches (1)
============================
- rust-data-encoding-macro-internal
ExclusiveArch: %{rust_arches}
Package no longer excluding arches (43)
==================================
- lancer
- rust-arf-strings
- rust-cap-async-std
- rust-cap-fs-ext
- rust-cap-primitives
- rust-cap-rand
- rust-cap-std
- rust-cap-tempfile
- rust-cap-time-ext
- rust-cranelift-bforest
- rust-cranelift-codegen
- rust-cranelift-codegen-meta
- rust-cranelift-codegen-shared
- rust-cranelift-entity
- rust-cranelift-frontend
- rust-cranelift-native
- rust-cranelift-wasm
- rust-fs-set-times
- rust-io-extras
- rust-is-terminal
- rust-memfd
- rust-regalloc
- rust-system-interface
- rust-userfaultfd
- rust-userfaultfd-sys
- rust-wasmparser
- rust-wasmtime
- rust-wasmtime-cache
- rust-wasmtime-cranelift
- rust-wasmtime-environ
- rust-wasmtime-fiber
- rust-wasmtime-jit
- rust-wasmtime-jit-debug
- rust-wasmtime-runtime
- rust-wasmtime-types
- rust-wasmtime-wast
- rust-wast
- rust-wat
- rust-wiggle
- rust-wiggle-generate
- rust-wiggle-macro
- rust-witx
- uom-parent
List of packages currently excluding arches (2809)
===========================================
- 0ad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- 90-Second-Portraits
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- BareBonesBrowserLaunch
ExclusiveArch: %{java_arches} noarch
- CFR
ExclusiveArch: %{java_arches} noarch
- CardManager
ExclusiveArch: %{java_arches} noarch
- GoldenCheetah
ExclusiveArch: %{qt5_qtwebengine_arches}
- GtkAda
ExclusiveArch: %{GPRbuild_arches}
- GtkAda3
ExclusiveArch: %{GPRbuild_arches}
- IPAddress
ExclusiveArch: %{java_arches} noarch
- Mars
ExclusiveArch: %{java_arches} noarch
- OpenColorIO
ExclusiveArch: x86_64 ppc64le
- OpenImageIO
ExclusiveArch: x86_64 ppc64le
- OpenMolcas
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- OpenStego
ExclusiveArch: %{java_arches} noarch
- 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
- aardvark-dns
ExclusiveArch: %{rust_arches}
- 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 s390x
- anet
ExclusiveArch: %{GPRbuild_arches}
- anki
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- ant
ExclusiveArch: %{java_arches} noarch
- ant-antunit
ExclusiveArch: %{java_arches} noarch
- antlr
ExclusiveArch: %{java_arches}
- antlr-maven-plugin
ExclusiveArch: %{java_arches} noarch
- antlr3
ExclusiveArch: %{java_arches}
- antlr32
ExclusiveArch: %{java_arches} noarch
- antlr4-project
ExclusiveArch: %{java_arches}
- antlrworks
ExclusiveArch: %{java_arches} noarch
- aopalliance
ExclusiveArch: %{java_arches} noarch
- apache-commons-beanutils
ExclusiveArch: %{java_arches} noarch
- apache-commons-cli
ExclusiveArch: %{java_arches} noarch
- apache-commons-codec
ExclusiveArch: %{java_arches} noarch
- apache-commons-collections
ExclusiveArch: %{java_arches} noarch
- apache-commons-collections4
ExclusiveArch: %{java_arches} noarch
- apache-commons-compress
ExclusiveArch: %{java_arches} noarch
- apache-commons-digester
ExclusiveArch: %{java_arches} noarch
- apache-commons-exec
ExclusiveArch: %{java_arches} noarch
- apache-commons-fileupload
ExclusiveArch: %{java_arches} noarch
- apache-commons-io
ExclusiveArch: %{java_arches} noarch
- apache-commons-jxpath
ExclusiveArch: %{java_arches} noarch
- apache-commons-lang3
ExclusiveArch: %{java_arches} noarch
- apache-commons-logging
ExclusiveArch: %{java_arches} noarch
- apache-commons-math
ExclusiveArch: %{java_arches} noarch
- apache-commons-modeler
ExclusiveArch: %{java_arches} noarch
- apache-commons-net
ExclusiveArch: %{java_arches} noarch
- apache-commons-parent
ExclusiveArch: %{java_arches} noarch
- apache-commons-pool
ExclusiveArch: %{java_arches} noarch
- apache-ivy
ExclusiveArch: %{java_arches} noarch
- apache-parent
ExclusiveArch: %{java_arches} noarch
- apache-resource-bundles
ExclusiveArch: %{java_arches} noarch
- apache-sshd
ExclusiveArch: %{java_arches} noarch
- apiguardian
ExclusiveArch: %{java_arches} noarch
- apmd
ExclusiveArch: %{ix86}
- appstream-generator
ExclusiveArch: %{ldc_arches}
- aqute-bnd
ExclusiveArch: %{java_arches} noarch
- args4j
ExclusiveArch: %{java_arches} noarch
- arm-trusted-firmware
ExclusiveArch: aarch64
- assertj-core
ExclusiveArch: %{java_arches} noarch
- atinject
ExclusiveArch: %{java_arches} noarch
- aunit
ExclusiveArch: %GPRbuild_arches
- auto
ExclusiveArch: %{java_arches} noarch
- avgtime
ExclusiveArch: %{ldc_arches}
- aws
ExclusiveArch: %GPRbuild_arches
- azure-cli
ExclusiveArch: %{java_arches} noarch
- batik
ExclusiveArch: %{java_arches} noarch
- bcal
ExclusiveArch: x86_64 aarch64 ia64 ppc64 ppc64le s390x
- bcc
ExclusiveArch: x86_64 %{power64} aarch64 s390x armv7hl
- bcel
ExclusiveArch: %{java_arches} noarch
- bcm283x-firmware
ExclusiveArch: %{arm} aarch64
- beansbinding
ExclusiveArch: %{java_arches} noarch
- belle-sip
ExclusiveArch: %{java_arches}
- berusky2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{mips}
- beust-jcommander
ExclusiveArch: %{java_arches} noarch
- biosdevname
ExclusiveArch: %{ix86} x86_64
- blender
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- bless
ExclusiveArch: %mono_arches
- bolzplatz2006
ExclusiveArch: %{java_arches}
- bouncycastle
ExclusiveArch: %{java_arches} noarch
- bpftrace
ExclusiveArch: x86_64 %{power64} aarch64 s390x
- brazil
ExclusiveArch: %{java_arches} noarch
- bsf
ExclusiveArch: %{java_arches} noarch
- bsh
ExclusiveArch: %{java_arches} noarch
- buildnumber-maven-plugin
ExclusiveArch: %{java_arches} noarch
- byte-buddy
ExclusiveArch: %{java_arches} noarch
- byteman
ExclusiveArch: %{java_arches} noarch
- cachelib
ExclusiveArch: x86_64 aarch64 ppc64le
- calamares
ExclusiveArch: %{ix86} x86_64 aarch64
- calibre
ExclusiveArch: %{qt5_qtwebengine_arches}
- cambozola
ExclusiveArch: %{java_arches} noarch
- canl-java
ExclusiveArch: %{java_arches} noarch
- ccdciel
ExclusiveArch: %{fpc_arches}
- cdcollect
ExclusiveArch: %{mono_arches}
- cdi-api
ExclusiveArch: %{java_arches} noarch
- ceph
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- cglib
ExclusiveArch: %{java_arches} noarch
- chromium
ExclusiveArch: x86_64 i686
ExclusiveArch: x86_64 aarch64
ExclusiveArch: x86_64 i686 aarch64
- cjdns
ExclusiveArch: %{nodejs_arches}
- classloader-leak-test-framework
ExclusiveArch: %{java_arches} noarch
- classpathless-compiler
ExclusiveArch: %{java_arches} noarch
- clevis-pin-tpm2
ExclusiveArch: %{rust_arches}
- clojure
ExclusiveArch: %{java_arches} noarch
- clojure-core-specs-alpha
ExclusiveArch: %{java_arches} noarch
- clojure-maven-plugin
ExclusiveArch: %{java_arches} noarch
- clojure-spec-alpha
ExclusiveArch: %{java_arches} noarch
- cmospwd
ExclusiveArch: %{ix86} x86_64
- cmrt
ExclusiveArch: %{ix86} x86_64 ia64
- codehaus-parent
ExclusiveArch: %{java_arches} noarch
- coffee-script
ExclusiveArch: %{nodejs_arches} noarch
- colorful
ExclusiveArch: %{fpc_arches}
- colossus
ExclusiveArch: %{java_arches} noarch
- console-image-viewer
ExclusiveArch: %{java_arches} noarch
- coq
ExclusiveArch: %{java_arches}
- cortado
ExclusiveArch: %{java_arches} noarch
- cpu-x
ExclusiveArch: i686 x86_64
- cpufetch
ExclusiveArch: %{arm} aarch64 x86_64 ppc ppc64 ppc64le
- cpuid
ExclusiveArch: %{ix86} x86_64
- cqrlog
ExclusiveArch: %{fpc_arches}
- crash
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- crash-gcore-command
ExclusiveArch: aarch64 ppc64le x86_64
- crash-trace-command
ExclusiveArch: aarch64 ppc64le s390x x86_64
- cri-o
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- 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 aarch64 ppc64le
- crypto-policies
ExclusiveArch: %{java_arches} noarch
- cryptobone
ExclusiveArch: x86_64 ppc64le aarch64
- csslint
ExclusiveArch: %{nodejs_arches} noarch
- cvc4
ExclusiveArch: %{java_arches}
- daq
ExclusiveArch: x86_64 aarch64
- dbus-parsec
ExclusiveArch: %{rust_arches}
- dbus-sharp
ExclusiveArch: %mono_arches
- dbus-sharp-glib
ExclusiveArch: %mono_arches
- dbxtool
ExclusiveArch: i386 x86_64 aarch64
- decentxml
ExclusiveArch: %{java_arches} noarch
- deepin-daemon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- deepin-desktop-schemas
ExclusiveArch: %{go_arches}
- directory-maven-plugin
ExclusiveArch: %{java_arches} noarch
- dirgra
ExclusiveArch: %{java_arches} noarch
- disruptor
ExclusiveArch: %{java_arches} noarch
- ditaa
ExclusiveArch: %{java_arches} noarch
- dlm
ExclusiveArch: i686 x86_64
- dmidecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- dmtcp
ExclusiveArch: x86_64
- docker-distribution
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- dolphin-emu
ExclusiveArch: x86_64 aarch64
- dom4j
ExclusiveArch: %{java_arches} noarch
- dotnet6.0
ExclusiveArch: aarch64 x86_64 s390x
ExclusiveArch: x86_64
- doublecmd
ExclusiveArch: %{ix86} x86_64
- dpdk
ExclusiveArch: x86_64 i686 aarch64 ppc64le
- dub
ExclusiveArch: %{ldc_arches}
- dxvk-native
ExclusiveArch: %{ix86} x86_64
- dyninst
ExclusiveArch: %{ix86} x86_64 ppc64le aarch64
- e3
ExclusiveArch: %{ix86} x86_64
- easymock
ExclusiveArch: %{java_arches} noarch
- ecj
ExclusiveArch: %{java_arches} noarch
- eclipse-swt
ExclusiveArch: %{java_arches}
- ed25519-java
ExclusiveArch: %{java_arches} noarch
- edk2
ExclusiveArch: x86_64 aarch64
- efibootmgr
ExclusiveArch: %{efi}
- efifs
ExclusiveArch: %{efi}
- efitools
ExclusiveArch: %{efi}
- efivar
ExclusiveArch: %{efi}
- elk
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- emacs-slime
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- enjarify
ExclusiveArch: %{java_arches} noarch
- enki
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- envytools
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- eric
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- erlang-corba
ExclusiveArch: %{java_arches}
- eth-tools
ExclusiveArch: x86_64
- exec-maven-plugin
ExclusiveArch: %{java_arches} noarch
- extra-enforcer-rules
ExclusiveArch: %{java_arches} noarch
- fasterxml-oss-parent
ExclusiveArch: %{java_arches} noarch
- fb303
ExclusiveArch: x86_64 aarch64 ppc64le
- fbthrift
ExclusiveArch: x86_64 aarch64 ppc64le
- fcitx-libpinyin
ExclusiveArch: %{qt5_qtwebengine_arches}
- fedora-dockerfiles
ExclusiveArch: %{go_arches}
- felix-parent
ExclusiveArch: %{java_arches} noarch
- felix-utils
ExclusiveArch: %{java_arches} noarch
- fernflower
ExclusiveArch: %{java_arches} noarch
- fes
ExclusiveArch: %{ix86} x86_64
- filedrop
ExclusiveArch: %{java_arches} noarch
- fishbowl
ExclusiveArch: %{java_arches} noarch
- fizz
ExclusiveArch: x86_64 aarch64 ppc64le
- flocq
ExclusiveArch: %{java_arches}
- florist
ExclusiveArch: %{GPRbuild_arches}
- fluent-bit
ExclusiveArch: x86_64 aarch64
- flute
ExclusiveArch: %{java_arches} noarch
- folly
ExclusiveArch: x86_64 aarch64 ppc64le
- fop
ExclusiveArch: %{java_arches} noarch
- forge-parent
ExclusiveArch: %{java_arches} noarch
- fpc
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64 ppc64le
- frama-c
ExclusiveArch: %{java_arches}
- freecol
ExclusiveArch: %{java_arches} noarch
- freemarker
ExclusiveArch: %{java_arches} noarch
- freerouting
ExclusiveArch: %{java_arches} noarch
- frescobaldi
ExclusiveArch: %{qt5_qtwebengine_arches}
- frysk
ExclusiveArch: x86_64 ppc64
- fusesource-pom
ExclusiveArch: %{java_arches} noarch
- fwts
ExclusiveArch: x86_64 %{arm} aarch64 s390x riscv64 %{power64}
- fwupd-efi
ExclusiveArch: x86_64 aarch64
- ga
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- gap-pkg-hap
ExclusiveArch: noarch aarch64 ppc64le s390x x86_64
- gap-pkg-hapcryst
ExclusiveArch: noarch aarch64 ppc64le s390x x86_64
- gap-pkg-polymaking
ExclusiveArch: noarch aarch64 ppc64le s390x x86_64
- gap-pkg-xmod
ExclusiveArch: noarch aarch64 ppc64le s390x x86_64
- gappalib-coq
ExclusiveArch: %{java_arches}
- gbrainy
ExclusiveArch: %mono_arches
- gdb
ExclusiveArch: %{ix86} x86_64
- gdb-exploitable
ExclusiveArch: x86_64 i386
ExclusiveArch: x86_64 noarch
- gearhead1
ExclusiveArch: %{fpc_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}}
- gitqlient
ExclusiveArch: %{qt5_qtwebengine_arches}
- 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-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}
- 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}}
- google-gson
ExclusiveArch: %{java_arches} noarch
- google-guice
ExclusiveArch: %{java_arches} noarch
- 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 aarch64
- grafana
ExclusiveArch: %{grafana_arches}
- grafana-pcp
ExclusiveArch: %{grafanapcp_arches}
- greetd
ExclusiveArch: %{rust_arches}
- gtk-sharp-beans
ExclusiveArch: %mono_arches
- gtk-sharp2
ExclusiveArch: %mono_arches
- gtk-sharp3
ExclusiveArch: %{mono_arches}
- gtkd
ExclusiveArch: %{ldc_arches}
- guava
ExclusiveArch: %{java_arches} noarch
- gudev-sharp
ExclusiveArch: %mono_arches
- guestfs-tools
ExclusiveArch: %{kernel_arches}
- hamcrest
ExclusiveArch: %{java_arches} noarch
- hawtjni
ExclusiveArch: %{java_arches} noarch
- hedgewars
ExclusiveArch: %{fpc_arches}
- hibernate-jpa-2.0-api
ExclusiveArch: %{java_arches} noarch
- hibernate-jpa-2.1-api
ExclusiveArch: %{java_arches} noarch
- hid4java
ExclusiveArch: %{java_arches} noarch
- hsakmt
ExclusiveArch: x86_64 aarch64 ppc64le
- httpcomponents-client
ExclusiveArch: %{java_arches} noarch
- httpcomponents-core
ExclusiveArch: %{java_arches} noarch
- httpcomponents-project
ExclusiveArch: %{java_arches} noarch
- hyena
ExclusiveArch: %{mono_arches}
- hyperscan
ExclusiveArch: x86_64
- hyperv-daemons
ExclusiveArch: i686 x86_64 aarch64
- i3status-rs
ExclusiveArch: %{rust_arches}
- icaro
ExclusiveArch: %{ix86} x86_64 noarch
- icu4j
ExclusiveArch: %{java_arches} noarch
- imagej
ExclusiveArch: %{java_arches} noarch
- imvirt
ExclusiveArch: %{ix86} x86_64 ia64
- indistarter
ExclusiveArch: %{fpc_arches}
- infinipath-psm
ExclusiveArch: x86_64
- intel-cm-compiler
ExclusiveArch: i686 x86_64
- intel-cmt-cat
ExclusiveArch: x86_64 i686 i586
ExclusiveArch: x86_64 i686 i586
- intel-compute-runtime
ExclusiveArch: x86_64
- intel-gmmlib
ExclusiveArch: x86_64 i686
- intel-igc
ExclusiveArch: x86_64
- intel-ipp-crypto-mb
ExclusiveArch: x86_64
ExclusiveArch: x86_64
- 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
- ispc
ExclusiveArch: x86_64 aarch64
- iucode-tool
ExclusiveArch: %{ix86} x86_64
- iyfct
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- jFormatString
ExclusiveArch: %{java_arches} noarch
- jackson-annotations
ExclusiveArch: %{java_arches} noarch
- jackson-bom
ExclusiveArch: %{java_arches} noarch
- jackson-core
ExclusiveArch: %{java_arches} noarch
- jackson-databind
ExclusiveArch: %{java_arches} noarch
- jackson-dataformats-binary
ExclusiveArch: %{java_arches} noarch
- jackson-dataformats-text
ExclusiveArch: %{java_arches} noarch
- jackson-jaxrs-providers
ExclusiveArch: %{java_arches} noarch
- jackson-modules-base
ExclusiveArch: %{java_arches} noarch
- jackson-parent
ExclusiveArch: %{java_arches} noarch
- jacoco
ExclusiveArch: %{java_arches} noarch
- jacop
ExclusiveArch: %{java_arches} noarch
- jakarta-activation
ExclusiveArch: %{java_arches} noarch
- jakarta-annotations
ExclusiveArch: %{java_arches} noarch
- jakarta-el
ExclusiveArch: %{java_arches} noarch
- jakarta-interceptors
ExclusiveArch: %{java_arches} noarch
- jakarta-json
ExclusiveArch: %{java_arches} noarch
- jakarta-mail
ExclusiveArch: %{java_arches} noarch
- jakarta-oro
ExclusiveArch: %{java_arches} noarch
- jakarta-saaj
ExclusiveArch: %{java_arches} noarch
- jakarta-server-pages
ExclusiveArch: %{java_arches} noarch
- jakarta-servlet
ExclusiveArch: %{java_arches} noarch
- jakarta-xml-ws
ExclusiveArch: %{java_arches} noarch
- janino
ExclusiveArch: %{java_arches} noarch
- jansi
ExclusiveArch: %{java_arches}
- jansi-native
ExclusiveArch: %{java_arches}
- jansi1
ExclusiveArch: %{java_arches} noarch
- jargs
ExclusiveArch: %{java_arches} noarch
- java-1.8.0-openjdk
ExclusiveArch: %{java_arches}
- java-1.8.0-openjdk-aarch32
ExclusiveArch: %{arm}
- java-11-openjdk
ExclusiveArch: %{java_arches}
- java-17-openjdk
ExclusiveArch: %{java_arches}
- java-diff-utils
ExclusiveArch: %{java_arches} noarch
- java-dirq
ExclusiveArch: %{java_arches} noarch
- java-jd-decompiler
ExclusiveArch: %{java_arches} noarch
- java-latest-openjdk
ExclusiveArch: %{java_arches}
- java-mersenne-twister
ExclusiveArch: %{java_arches} noarch
- java-runtime-decompiler
ExclusiveArch: %{java_arches} noarch
- java-scrypt
ExclusiveArch: %{java_arches} noarch
- java_cup
ExclusiveArch: %{java_arches} noarch
- javacc
ExclusiveArch: %{java_arches} noarch
- javacc-maven-plugin
ExclusiveArch: %{java_arches} noarch
- javaewah
ExclusiveArch: %{java_arches} noarch
- javapackages-bootstrap
ExclusiveArch: %{java_arches} noarch
- javaparser
ExclusiveArch: %{java_arches} noarch
- javapoet
ExclusiveArch: %{java_arches} noarch
- javassist
ExclusiveArch: %{java_arches} noarch
- jaxb
ExclusiveArch: %{java_arches} noarch
- jaxb-api
ExclusiveArch: %{java_arches} noarch
- jaxb-dtd-parser
ExclusiveArch: %{java_arches} noarch
- jaxb-fi
ExclusiveArch: %{java_arches} noarch
- jaxb-istack-commons
ExclusiveArch: %{java_arches} noarch
- jaxb-stax-ex
ExclusiveArch: %{java_arches} noarch
- jaxen
ExclusiveArch: %{java_arches} noarch
- jboss-jaxrs-2.0-api
ExclusiveArch: %{java_arches} noarch
- jboss-logging
ExclusiveArch: %{java_arches} noarch
- jboss-logging-tools
ExclusiveArch: %{java_arches} noarch
- jboss-parent
ExclusiveArch: %{java_arches} noarch
- jchardet
ExclusiveArch: %{java_arches} noarch
- jcip-annotations
ExclusiveArch: %{java_arches} noarch
- jcodings
ExclusiveArch: %{java_arches} noarch
- jcommon
ExclusiveArch: %{java_arches} noarch
- jcommon-serializer
ExclusiveArch: %{java_arches} noarch
- jctools
ExclusiveArch: %{java_arches} noarch
- jcuber
ExclusiveArch: %{java_arches} noarch
- jdeparser
ExclusiveArch: %{java_arches} noarch
- jdepend
ExclusiveArch: %{java_arches} noarch
- jdependency
ExclusiveArch: %{java_arches} noarch
- jdom
ExclusiveArch: %{java_arches} noarch
- jdom2
ExclusiveArch: %{java_arches} noarch
- jericho-html
ExclusiveArch: %{java_arches} noarch
- jetty
ExclusiveArch: %{java_arches} noarch
- jflex
ExclusiveArch: %{java_arches} noarch
- jfreechart
ExclusiveArch: %{java_arches} noarch
- jgit
ExclusiveArch: %{java_arches} noarch
- jglobus
ExclusiveArch: %{java_arches} noarch
- jgoodies-common
ExclusiveArch: %{java_arches} noarch
- jgoodies-forms
ExclusiveArch: %{java_arches} noarch
- jgoodies-looks
ExclusiveArch: %{java_arches} noarch
- jgrapht
ExclusiveArch: %{java_arches} noarch
- jigawatts
ExclusiveArch: x86_64 %{arm} ppc64le aarch64 s390x
- jline
ExclusiveArch: %{java_arches} noarch
- jline2
ExclusiveArch: %{java_arches} noarch
- jmock
ExclusiveArch: %{java_arches} noarch
- jmol
ExclusiveArch: %{java_arches} noarch
- jna
ExclusiveArch: %{java_arches}
- jneuroml-core
ExclusiveArch: %{java_arches} noarch
- jni-inchi
ExclusiveArch: %{java_arches}
- jnr-constants
ExclusiveArch: %{java_arches} noarch
- jnr-ffi
ExclusiveArch: %{java_arches} noarch
- jnr-netdb
ExclusiveArch: %{java_arches} noarch
- jnr-posix
ExclusiveArch: %{java_arches} noarch
- jnr-x86asm
ExclusiveArch: %{java_arches} noarch
- jol
ExclusiveArch: %{java_arches} noarch
- jolokia-jvm-agent
ExclusiveArch: %{java_arches} noarch
- joni
ExclusiveArch: %{java_arches} noarch
- jopt-simple
ExclusiveArch: %{java_arches} noarch
- jorbis
ExclusiveArch: %{java_arches} noarch
- jpanoramamaker
ExclusiveArch: %{java_arches} noarch
- jsch
ExclusiveArch: %{java_arches} noarch
- jsch-agent-proxy
ExclusiveArch: %{java_arches} noarch
- json_simple
ExclusiveArch: %{java_arches} noarch
- jsr-305
ExclusiveArch: %{java_arches} noarch
- jssc
ExclusiveArch: %{java_arches}
- jtidy
ExclusiveArch: %{java_arches} noarch
- junit
ExclusiveArch: %{java_arches} noarch
- junit5
ExclusiveArch: %{java_arches} noarch
- juniversalchardet
ExclusiveArch: %{java_arches} noarch
- jzlib
ExclusiveArch: %{java_arches} noarch
- kchmviewer
ExclusiveArch: %{qt5_qtwebengine_arches}
- kernel
ExclusiveArch: noarch x86_64 s390x %{arm} aarch64 ppc64le
ExclusiveArch: noarch i386 i686 x86_64 s390x %{arm} aarch64 ppc64le
- keylime-agent-rust
ExclusiveArch: %{rust_arches}
- keyring-ima-signer
ExclusiveArch: %{rust_arches}
- 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-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}
- klee
ExclusiveArch: x86_64
- 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}
- laf-plugin
ExclusiveArch: %{java_arches} noarch
- lazarus
ExclusiveArch: %{fpc_arches}
- lazpaint
ExclusiveArch: %{fpc_arches}
- ldapjdk
ExclusiveArch: %{java_arches} noarch
- ldc
ExclusiveArch: %{ldc_arches}
- libbase
ExclusiveArch: %{java_arches} noarch
- libbsr
ExclusiveArch: %{power64}
- libclc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
- libcxl
ExclusiveArch: %{power64}
- libdfp
ExclusiveArch: ppc ppc64 ppc64le s390 s390x x86_64
- libdispatch
ExclusiveArch: x86_64 aarch64 ppc64le
- libfonts
ExclusiveArch: %{java_arches} noarch
- libformula
ExclusiveArch: %{java_arches} noarch
- libguestfs
ExclusiveArch: %{kernel_arches}
- libica
ExclusiveArch: s390 s390x
- libipt
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- libkgapi
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- libkrun
ExclusiveArch: x86_64 aarch64
- libkrunfw
ExclusiveArch: x86_64 aarch64
- liblayout
ExclusiveArch: %{java_arches} noarch
- libloader
ExclusiveArch: %{java_arches} noarch
- libnxz
ExclusiveArch: ppc64le
- libocxl
ExclusiveArch: ppc64le
- libpmemobj-cpp
ExclusiveArch: x86_64 ppc64le
- libpsm2
ExclusiveArch: x86_64
- libquentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- libreoffice-TexMaths
ExclusiveArch: %{java_arches}
- librepository
ExclusiveArch: %{java_arches} noarch
- libretro-desmume2015
ExclusiveArch: i686 x86_64
- librtas
ExclusiveArch: %{power64}
- libserializer
ExclusiveArch: %{java_arches} noarch
- 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
- libvirt-java
ExclusiveArch: %{java_arches} noarch
- libvma
ExclusiveArch: x86_64 ppc64le ppc64 aarch64
- libvmi
ExclusiveArch: x86_64
- libvpd
ExclusiveArch: %{power64}
- libxsmm
ExclusiveArch: x86_64
- libzdnn
ExclusiveArch: s390x
- libzfcphbaapi
ExclusiveArch: s390 s390x
- llhttp
ExclusiveArch: %{nodejs_arches}
- log4j
ExclusiveArch: %{java_arches} noarch
- log4net
ExclusiveArch: %mono_arches
- lrmi
ExclusiveArch: %{ix86}
- lsvpd
ExclusiveArch: %{power64}
- luajit
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- luxcorerender
ExclusiveArch: x86_64
- mactel-boot
ExclusiveArch: x86_64
- manifest-tool
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- mariadb-java-client
ExclusiveArch: %{java_arches} noarch
- marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- matreshka
ExclusiveArch: %GPRbuild_arches
- maui-mauikit
ExclusiveArch: %{ix86} s390x aarch64 x86_64
- maven
ExclusiveArch: %{java_arches} noarch
- maven-antrun-plugin
ExclusiveArch: %{java_arches} noarch
- maven-archetype
ExclusiveArch: %{java_arches} noarch
- maven-archiver
ExclusiveArch: %{java_arches} noarch
- maven-artifact-transfer
ExclusiveArch: %{java_arches} noarch
- maven-assembly-plugin
ExclusiveArch: %{java_arches} noarch
- maven-clean-plugin
ExclusiveArch: %{java_arches} noarch
- maven-common-artifact-filters
ExclusiveArch: %{java_arches} noarch
- maven-compiler-plugin
ExclusiveArch: %{java_arches} noarch
- maven-dependency-analyzer
ExclusiveArch: %{java_arches} noarch
- maven-dependency-plugin
ExclusiveArch: %{java_arches} noarch
- maven-dependency-tree
ExclusiveArch: %{java_arches} noarch
- maven-doxia
ExclusiveArch: %{java_arches} noarch
- maven-doxia-sitetools
ExclusiveArch: %{java_arches} noarch
- maven-enforcer
ExclusiveArch: %{java_arches} noarch
- maven-file-management
ExclusiveArch: %{java_arches} noarch
- maven-filtering
ExclusiveArch: %{java_arches} noarch
- maven-invoker
ExclusiveArch: %{java_arches} noarch
- maven-invoker-plugin
ExclusiveArch: %{java_arches} noarch
- maven-jar-plugin
ExclusiveArch: %{java_arches} noarch
- maven-mapping
ExclusiveArch: %{java_arches} noarch
- maven-native
ExclusiveArch: %{java_arches} noarch
- maven-parent
ExclusiveArch: %{java_arches} noarch
- maven-patch-plugin
ExclusiveArch: %{java_arches} noarch
- maven-plugin-build-helper
ExclusiveArch: %{java_arches} noarch
- maven-plugin-bundle
ExclusiveArch: %{java_arches} noarch
- maven-plugin-testing
ExclusiveArch: %{java_arches} noarch
- maven-plugin-tools
ExclusiveArch: %{java_arches} noarch
- maven-remote-resources-plugin
ExclusiveArch: %{java_arches} noarch
- maven-reporting-api
ExclusiveArch: %{java_arches} noarch
- maven-reporting-impl
ExclusiveArch: %{java_arches} noarch
- maven-resolver
ExclusiveArch: %{java_arches} noarch
- maven-resources-plugin
ExclusiveArch: %{java_arches} noarch
- maven-scm
ExclusiveArch: %{java_arches} noarch
- maven-script-interpreter
ExclusiveArch: %{java_arches} noarch
- maven-shade-plugin
ExclusiveArch: %{java_arches} noarch
- maven-shared-incremental
ExclusiveArch: %{java_arches} noarch
- maven-shared-io
ExclusiveArch: %{java_arches} noarch
- maven-shared-utils
ExclusiveArch: %{java_arches} noarch
- maven-source-plugin
ExclusiveArch: %{java_arches} noarch
- maven-surefire
ExclusiveArch: %{java_arches} noarch
- maven-verifier
ExclusiveArch: %{java_arches} noarch
- maven-verifier-plugin
ExclusiveArch: %{java_arches} noarch
- maven-wagon
ExclusiveArch: %{java_arches} noarch
- maven2
ExclusiveArch: %{java_arches} noarch
- maxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- mbpfan
ExclusiveArch: x86_64
- mcelog
ExclusiveArch: i686 x86_64
- mcrouter
ExclusiveArch: x86_64 aarch64 ppc64le
- mdevctl
ExclusiveArch: %{rust_arches}
- mecab-java
ExclusiveArch: %java_arches
- 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} x86_64
ExclusiveArch: %{arm} %{ix86} x86_64
- miglayout
ExclusiveArch: %{java_arches} noarch
- mine_detector
ExclusiveArch: %{GPRbuild_arches}
- minetest
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- mingw-libidn2
ExclusiveArch: %{ix86} x86_64 %{arm}
- mingw-wine-gecko
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- mirrorlist-server
ExclusiveArch: %{rust_arches}
- mkbootdisk
ExclusiveArch: %{ix86} sparc sparc64 x86_64
- moby-engine
ExclusiveArch: %{golang_arches}
- mockito
ExclusiveArch: %{java_arches} noarch
- mod_mono
ExclusiveArch: %mono_arches
- modello
ExclusiveArch: %{java_arches} noarch
- module-build-service
ExclusiveArch: %{ix86} x86_64 noarch
- mojo-executor
ExclusiveArch: %{java_arches} noarch
- mojo-parent
ExclusiveArch: %{java_arches} noarch
- mokutil
ExclusiveArch: %{ix86} x86_64 aarch64 %{arm}
- mold
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 riscv64
- 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
- munge-maven-plugin
ExclusiveArch: %{java_arches} noarch
- mxparser
ExclusiveArch: %{java_arches} noarch
- mysql-connector-java
ExclusiveArch: %{java_arches} noarch
- mysql-connector-net
ExclusiveArch: %{mono_arches}
- naev
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- naga
ExclusiveArch: %{java_arches} noarch
- nant
ExclusiveArch: %mono_arches
- nativejit
ExclusiveArch: x86_64
- nbc
ExclusiveArch: %{fpc_arches}
- nbdkit
ExclusiveArch: x86_64
- ndesk-dbus
ExclusiveArch: %{mono_arches}
- ndesk-dbus-glib
ExclusiveArch: %{mono_arches}
- nekohtml
ExclusiveArch: %{java_arches} noarch
- netavark
ExclusiveArch: %{rust_arches}
- newtonsoft-json
ExclusiveArch: %{mono_arches}
- nispor
ExclusiveArch: %{rust_arches}
- nodejs
ExclusiveArch: %{nodejs_arches}
- nodejs-acorn-object-spread
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-backbone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bash-language-server
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buble
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generic-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-less
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-linefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nodemon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-packaging
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-replace-require-self
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supervisor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-underscore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nom-tam-fits
ExclusiveArch: %{java_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
- objectweb-asm
ExclusiveArch: %{java_arches} noarch
- objenesis
ExclusiveArch: %{java_arches} noarch
- obs-service-rust2rpm
ExclusiveArch: %{rust_arches} noarch
- 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-utils
ExclusiveArch: %{ix86} %{arm}
- oneVPL
ExclusiveArch: x86_64
- oneVPL-intel-gpu
ExclusiveArch: x86_64
- onednn
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- onedrive
ExclusiveArch: %{ldc_arches}
- ongres-scram
ExclusiveArch: %{java_arches} noarch
- ongres-stringprep
ExclusiveArch: %{java_arches} noarch
- opae
ExclusiveArch: x86_64
- opal-prd
ExclusiveArch: ppc64le
- open-vm-tools
ExclusiveArch: x86_64 aarch64
ExclusiveArch: %{ix86} x86_64 aarch64
ExclusiveArch: x86_64
- openas2
ExclusiveArch: %{java_arches} noarch
ExclusiveArch: %{java_arches} noarch
- openblas
ExclusiveArch: %{openblas_arches}
- openjdk-asmtools
ExclusiveArch: %{java_arches} noarch
- openjfx
ExclusiveArch: %{java_arches}
- openjfx8
ExclusiveArch: x86_64
- openlibm
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 %{power64}
- openms
ExclusiveArch: %{qt5_qtwebengine_arches}
- 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
- openstack-java-sdk
ExclusiveArch: %{java_arches} noarch
- opentest4j
ExclusiveArch: %{java_arches} noarch
- options
ExclusiveArch: %{java_arches} noarch
- origin
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- orthorobot
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- osgi-annotation
ExclusiveArch: %{java_arches} noarch
- osgi-compendium
ExclusiveArch: %{java_arches} noarch
- osgi-core
ExclusiveArch: %{java_arches} noarch
- pacemaker
ExclusiveArch: aarch64 i686 ppc64le s390x x86_64 %{arm}
ExclusiveArch: aarch64 i686 ppc64le s390x x86_64
- paflib
ExclusiveArch: ppc %{power64}
- parsec
ExclusiveArch: %{rust_arches}
- parsec-tool
ExclusiveArch: %{rust_arches}
- pasdoc
ExclusiveArch: %{fpc_arches}
- pcc
ExclusiveArch: %{ix86} x86_64
- pcfi
ExclusiveArch: %{java_arches} noarch
- pcm
ExclusiveArch: %{ix86} x86_64
- pcmciautils
ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64 %{arm}
- pdbg
ExclusiveArch: ppc64le
- pdfbox
ExclusiveArch: %{java_arches} noarch
- pdfmod
ExclusiveArch: %mono_arches
- pdftk-java
ExclusiveArch: %{java_arches} noarch
- pentaho-libxml
ExclusiveArch: %{java_arches} noarch
- pentaho-reporting-flow-engine
ExclusiveArch: %{java_arches} noarch
- 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
- picocli
ExclusiveArch: %{java_arches} noarch
- pinta
ExclusiveArch: %mono_arches
- pioneer
ExclusiveArch: %{ix86} x86_64
- plantuml
ExclusiveArch: %{java_arches} noarch
- playonlinux
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- plexus-active-collections
ExclusiveArch: %{java_arches} noarch
- plexus-archiver
ExclusiveArch: %{java_arches} noarch
- plexus-build-api
ExclusiveArch: %{java_arches} noarch
- plexus-cipher
ExclusiveArch: %{java_arches} noarch
- plexus-classworlds
ExclusiveArch: %{java_arches} noarch
- plexus-compiler
ExclusiveArch: %{java_arches} noarch
- plexus-component-api
ExclusiveArch: %{java_arches} noarch
- plexus-components-pom
ExclusiveArch: %{java_arches} noarch
- plexus-containers
ExclusiveArch: %{java_arches} noarch
- plexus-i18n
ExclusiveArch: %{java_arches} noarch
- plexus-interpolation
ExclusiveArch: %{java_arches} noarch
- plexus-io
ExclusiveArch: %{java_arches} noarch
- plexus-languages
ExclusiveArch: %{java_arches} noarch
- plexus-pom
ExclusiveArch: %{java_arches} noarch
- plexus-resources
ExclusiveArch: %{java_arches} noarch
- plexus-sec-dispatcher
ExclusiveArch: %{java_arches} noarch
- plexus-utils
ExclusiveArch: %{java_arches} noarch
- plexus-velocity
ExclusiveArch: %{java_arches} noarch
- pmdk-convert
ExclusiveArch: x86_64
- pmemkv
ExclusiveArch: x86_64
- podman
ExclusiveArch: %{golang_arches}
- pomchecker
ExclusiveArch: %{java_arches} noarch
- poppler-sharp
ExclusiveArch: %mono_arches
- popub
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- portlet-2.0-api
ExclusiveArch: %{java_arches} noarch
- postgresql-jdbc
ExclusiveArch: %{java_arches} noarch
- powerpc-utils
ExclusiveArch: ppc %{power64}
- ppc64-diag
ExclusiveArch: ppc %{power64}
- procyon
ExclusiveArch: %{java_arches} noarch
ExclusiveArch: %{java_arches} noarch
ExclusiveArch: %{java_arches} noarch
ExclusiveArch: %{java_arches} noarch
ExclusiveArch: %{java_arches} noarch
ExclusiveArch: %{java_arches} noarch
- proguard
ExclusiveArch: %{java_arches} noarch
- prometheus-jmx-exporter
ExclusiveArch: %{java_arches} noarch
- prometheus-simpleclient-java
ExclusiveArch: %{java_arches} noarch
- proxygen
ExclusiveArch: x86_64 aarch64 ppc64le
- pveclib
ExclusiveArch: ppc %{power64}
- pvs-sbcl
ExclusiveArch: x86_64
- py4j
ExclusiveArch: %{java_arches} noarch
- pyqtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- python-cryptography
ExclusiveArch: %{rust_arches}
- python-etcd
ExclusiveArch: noarch %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- python-javabridge
ExclusiveArch: i686 x86_64
- python-javaobj
ExclusiveArch: %{java_arches} noarch
- python-jupyter-polymake
ExclusiveArch: noarch aarch64 ppc64le s390x x86_64
- python-openoffice
ExclusiveArch: noarch x86_64
- python-pymoc
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-setuptools-rust
ExclusiveArch: %{rust_arches}
- q4wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- qatzip
ExclusiveArch: x86_64
- qcint
ExclusiveArch: x86_64
- qclib
ExclusiveArch: s390 s390x
- qdox
ExclusiveArch: %{java_arches} noarch
- 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} aarch64 %{power64}
- quentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- rachota
ExclusiveArch: %{java_arches} noarch
- rear
ExclusiveArch: %ix86 x86_64 ppc ppc64 ppc64le ia64
- reflections
ExclusiveArch: %{java_arches} noarch
- reg
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- regexp
ExclusiveArch: %{java_arches} noarch
- renderdoc
ExclusiveArch: x86_64
- replacer
ExclusiveArch: %{java_arches} noarch
- reptyr
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- rescene
ExclusiveArch: %{mono_arches}
- resteasy
ExclusiveArch: %{java_arches} noarch
- restool
ExclusiveArch: aarch64
- restsharp
ExclusiveArch: %{mono_arches}
- rhino
ExclusiveArch: %{java_arches} noarch
- rhythmbox-alternative-toolbar
ExclusiveArch: %{ix86} %{arm} x86_64 ppc64 ppc64le
- rocm-compilersupport
ExclusiveArch: x86_64 aarch64 ppc64le
- rocm-device-libs
ExclusiveArch: x86_64 aarch64 ppc64le
- rocm-opencl
ExclusiveArch: x86_64 aarch64
ExclusiveArch: x86_64 aarch64 ppc64le
- rocm-runtime
ExclusiveArch: x86_64 aarch64 ppc64le
- rocminfo
ExclusiveArch: x86_64 aarch64 ppc64le
- rpm-ostree
ExclusiveArch: %{rust_arches}
- rr
ExclusiveArch: %{ix86} x86_64 aarch64
- rssguard
ExclusiveArch: %{qt5_qtwebengine_arches}
- rstudio
ExclusiveArch: %{java_arches}
- rsyntaxtextarea
ExclusiveArch: %{java_arches} noarch
- rubygem-childprocess
ExclusiveArch: %{ix86} x86_64 noarch
- runc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le %{mips} s390x
- rundoc
ExclusiveArch: %{java_arches} noarch
- rust
ExclusiveArch: %{rust_arches}
- rust-Inflector
ExclusiveArch: %{rust_arches}
- rust-abomonation
ExclusiveArch: %{rust_arches}
- rust-actix
ExclusiveArch: %{rust_arches}
- rust-actix-codec
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-service
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-aes0.7
ExclusiveArch: %{rust_arches}
- rust-afterburn
ExclusiveArch: %{rust_arches}
- rust-ahash
ExclusiveArch: %{rust_arches}
- rust-ahash0.4
ExclusiveArch: %{rust_arches}
- rust-aho-corasick
ExclusiveArch: %{rust_arches}
- rust-alacritty
ExclusiveArch: %{rust_arches}
- rust-alacritty_config_derive
ExclusiveArch: %{rust_arches}
- rust-alacritty_terminal
ExclusiveArch: %{rust_arches}
- rust-alga
ExclusiveArch: %{rust_arches}
- rust-alga_derive
ExclusiveArch: %{rust_arches}
- rust-aliasable
ExclusiveArch: %{rust_arches}
- rust-alloc-no-stdlib
ExclusiveArch: %{rust_arches}
- rust-alloc-stdlib
ExclusiveArch: %{rust_arches}
- rust-ambient-authority
ExclusiveArch: %{rust_arches}
- rust-ammonia
ExclusiveArch: %{rust_arches}
- rust-ansi_colours
ExclusiveArch: %{rust_arches}
- rust-ansi_term
ExclusiveArch: %{rust_arches}
- rust-ansi_term0.11
ExclusiveArch: %{rust_arches}
- rust-antidote
ExclusiveArch: %{rust_arches}
- rust-anyhow
ExclusiveArch: %{rust_arches}
- rust-aom-sys
ExclusiveArch: %{rust_arches}
- rust-aparato
ExclusiveArch: %{rust_arches}
- rust-app_dirs
ExclusiveArch: %{rust_arches}
- rust-approx
ExclusiveArch: %{rust_arches}
- rust-ar
ExclusiveArch: %{rust_arches}
- rust-arbitrary
ExclusiveArch: %{rust_arches}
- rust-arbitrary0.4
ExclusiveArch: %{rust_arches}
- rust-arc-swap
ExclusiveArch: %{rust_arches}
- rust-arg_enum_proc_macro
ExclusiveArch: %{rust_arches}
- rust-argh
ExclusiveArch: %{rust_arches}
- rust-argh_derive
ExclusiveArch: %{rust_arches}
- rust-argh_shared
ExclusiveArch: %{rust_arches}
- rust-argmax
ExclusiveArch: %{rust_arches}
- rust-argparse
ExclusiveArch: %{rust_arches}
- rust-array-init
ExclusiveArch: %{rust_arches}
- rust-arrayref
ExclusiveArch: %{rust_arches}
- rust-arrayvec
ExclusiveArch: %{rust_arches}
- rust-arrayvec0.5
ExclusiveArch: %{rust_arches}
- rust-ascii
ExclusiveArch: %{rust_arches}
- rust-ascii-canvas
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-asn1
ExclusiveArch: %{rust_arches}
- rust-asn1_derive
ExclusiveArch: %{rust_arches}
- rust-assert-impl
ExclusiveArch: %{rust_arches}
- rust-assert-json-diff
ExclusiveArch: %{rust_arches}
- rust-assert_approx_eq
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-broadcast
ExclusiveArch: %{rust_arches}
- rust-async-channel
ExclusiveArch: %{rust_arches}
- rust-async-compression
ExclusiveArch: %{rust_arches}
- rust-async-executor
ExclusiveArch: %{rust_arches}
- rust-async-global-executor
ExclusiveArch: %{rust_arches}
- rust-async-io
ExclusiveArch: %{rust_arches}
- rust-async-lock
ExclusiveArch: %{rust_arches}
- rust-async-mutex
ExclusiveArch: %{rust_arches}
- rust-async-process
ExclusiveArch: %{rust_arches}
- rust-async-recursion
ExclusiveArch: %{rust_arches}
- rust-async-std
ExclusiveArch: %{rust_arches}
- rust-async-stream
ExclusiveArch: %{rust_arches}
- rust-async-stream-impl
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-atomic
ExclusiveArch: %{rust_arches}
- rust-atomic-traits
ExclusiveArch: %{rust_arches}
- rust-atomic-waker
ExclusiveArch: %{rust_arches}
- rust-atty
ExclusiveArch: %{rust_arches}
- rust-autocfg
ExclusiveArch: %{rust_arches}
- rust-automod
ExclusiveArch: %{rust_arches}
- rust-av-metrics
ExclusiveArch: %{rust_arches}
- rust-average
ExclusiveArch: %{rust_arches}
- rust-awc
ExclusiveArch: %{rust_arches}
- rust-aws-nitro-enclaves-cose
ExclusiveArch: %{rust_arches}
- rust-az
ExclusiveArch: %{rust_arches}
- rust-backtrace
ExclusiveArch: %{rust_arches}
- rust-base100
ExclusiveArch: %{rust_arches}
- rust-base64
ExclusiveArch: %{rust_arches}
- rust-base64-0.10
ExclusiveArch: %{rust_arches}
- rust-base64_0.12
ExclusiveArch: %{rust_arches}
- rust-base64ct
ExclusiveArch: %{rust_arches}
- rust-bat
ExclusiveArch: %{rust_arches}
- rust-beef
ExclusiveArch: %{rust_arches}
- rust-below
ExclusiveArch: %{rust_arches}
- rust-below-common
ExclusiveArch: %{rust_arches}
- rust-below-config
ExclusiveArch: %{rust_arches}
- rust-below-dump
ExclusiveArch: %{rust_arches}
- rust-below-model
ExclusiveArch: %{rust_arches}
- rust-below-render
ExclusiveArch: %{rust_arches}
- rust-below-store
ExclusiveArch: %{rust_arches}
- rust-below-view
ExclusiveArch: %{rust_arches}
- rust-below_derive
ExclusiveArch: %{rust_arches}
- rust-bencher
ExclusiveArch: %{rust_arches}
- rust-benfred-read-process-memory
ExclusiveArch: %{rust_arches}
- rust-bigdecimal
ExclusiveArch: %{rust_arches}
- rust-binascii
ExclusiveArch: %{rust_arches}
- rust-bincode
ExclusiveArch: %{rust_arches}
- rust-bindgen
ExclusiveArch: %{rust_arches}
- rust-binfarce
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-bitvec
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.9
ExclusiveArch: %{rust_arches}
- rust-block-modes
ExclusiveArch: %{rust_arches}
- rust-block-padding
ExclusiveArch: %{rust_arches}
- rust-block-padding0.2
ExclusiveArch: %{rust_arches}
- rust-blocking
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-boxfnonce
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-btrd
ExclusiveArch: %{rust_arches}
- rust-buf_redux
ExclusiveArch: %{rust_arches}
- rust-buffered-reader
ExclusiveArch: %{rust_arches}
- rust-bufstream
ExclusiveArch: %{rust_arches}
- rust-bugreport
ExclusiveArch: %{rust_arches}
- rust-bumpalo
ExclusiveArch: %{rust_arches}
- rust-byte-unit
ExclusiveArch: %{rust_arches}
- rust-byte-unit3
ExclusiveArch: %{rust_arches}
- rust-bytecheck
ExclusiveArch: %{rust_arches}
- rust-bytecheck_derive
ExclusiveArch: %{rust_arches}
- rust-bytecount
ExclusiveArch: %{rust_arches}
- rust-bytelines
ExclusiveArch: %{rust_arches}
- rust-bytemuck
ExclusiveArch: %{rust_arches}
- rust-bytemuck_derive
ExclusiveArch: %{rust_arches}
- rust-byteorder
ExclusiveArch: %{rust_arches}
- rust-bytes
ExclusiveArch: %{rust_arches}
- rust-bytes-cast
ExclusiveArch: %{rust_arches}
- rust-bytes-cast-derive
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-cache-padded
ExclusiveArch: %{rust_arches}
- rust-cairo-rs
ExclusiveArch: %{rust_arches}
- rust-cairo-sys-rs
ExclusiveArch: %{rust_arches}
- rust-calloop
ExclusiveArch: %{rust_arches}
- rust-camino
ExclusiveArch: %{rust_arches}
- rust-capng
ExclusiveArch: %{rust_arches}
- rust-capnp
ExclusiveArch: %{rust_arches}
- rust-capnp-futures
ExclusiveArch: %{rust_arches}
- rust-capnp-rpc
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-edit
ExclusiveArch: %{rust_arches}
- rust-cargo-husky
ExclusiveArch: %{rust_arches}
- rust-cargo-insta
ExclusiveArch: %{rust_arches}
- rust-cargo-manifest
ExclusiveArch: %{rust_arches}
- rust-cargo-platform
ExclusiveArch: %{rust_arches}
- rust-cargo-readme
ExclusiveArch: %{rust_arches}
- rust-cargo-util
ExclusiveArch: %{rust_arches}
- rust-cargo_metadata
ExclusiveArch: %{rust_arches}
- rust-cascade
ExclusiveArch: %{rust_arches}
- rust-case
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-cfb
ExclusiveArch: %{rust_arches}
- rust-cfg-expr
ExclusiveArch: %{rust_arches}
- rust-cfg-if
ExclusiveArch: %{rust_arches}
- rust-cfg-if0.1
ExclusiveArch: %{rust_arches}
- rust-cgroupfs
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-ciborium
ExclusiveArch: %{rust_arches}
- rust-ciborium-io
ExclusiveArch: %{rust_arches}
- rust-ciborium-ll
ExclusiveArch: %{rust_arches}
- rust-cipher
ExclusiveArch: %{rust_arches}
- rust-cipher0.3
ExclusiveArch: %{rust_arches}
- rust-clang-ast
ExclusiveArch: %{rust_arches}
- rust-clang-sys
ExclusiveArch: %{rust_arches}
- rust-clap
ExclusiveArch: %{rust_arches}
- rust-clap-verbosity-flag
ExclusiveArch: %{rust_arches}
- rust-clap2
ExclusiveArch: %{rust_arches}
- rust-clap_complete
ExclusiveArch: %{rust_arches}
- rust-clap_complete_fig
ExclusiveArch: %{rust_arches}
- rust-clap_derive
ExclusiveArch: %{rust_arches}
- rust-clap_generate
ExclusiveArch: %{rust_arches}
- rust-clap_generate_fig
ExclusiveArch: %{rust_arches}
- rust-clap_lex
ExclusiveArch: %{rust_arches}
- rust-clicolors-control
ExclusiveArch: %{rust_arches}
- rust-clircle
ExclusiveArch: %{rust_arches}
- rust-cmake
ExclusiveArch: %{rust_arches}
- rust-codespan-reporting
ExclusiveArch: %{rust_arches}
- rust-codicon
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-colorful
ExclusiveArch: %{rust_arches}
- rust-combine
ExclusiveArch: %{rust_arches}
- rust-comfy-table
ExclusiveArch: %{rust_arches}
- rust-common-path
ExclusiveArch: %{rust_arches}
- rust-compiletest_rs
ExclusiveArch: %{rust_arches}
- rust-compress-tools
ExclusiveArch: %{rust_arches}
- rust-comrak
ExclusiveArch: %{rust_arches}
- rust-concolor-query
ExclusiveArch: %{rust_arches}
- rust-concurrent-queue
ExclusiveArch: %{rust_arches}
- rust-configparser
ExclusiveArch: %{rust_arches}
- rust-confy
ExclusiveArch: %{rust_arches}
- rust-conhash
ExclusiveArch: %{rust_arches}
- rust-console
ExclusiveArch: %{rust_arches}
- rust-console0.11
ExclusiveArch: %{rust_arches}
- rust-console0.12
ExclusiveArch: %{rust_arches}
- rust-console0.13
ExclusiveArch: %{rust_arches}
- rust-console0.14
ExclusiveArch: %{rust_arches}
- rust-console0.9
ExclusiveArch: %{rust_arches}
- rust-const-cstr
ExclusiveArch: %{rust_arches}
- rust-const-oid
ExclusiveArch: %{rust_arches}
- rust-const-random
ExclusiveArch: %{rust_arches}
- rust-const-random-macro
ExclusiveArch: %{rust_arches}
- rust-const_fn
ExclusiveArch: %{rust_arches}
- rust-const_format
ExclusiveArch: %{rust_arches}
- rust-const_format_proc_macros
ExclusiveArch: %{rust_arches}
- rust-constant_time_eq
ExclusiveArch: %{rust_arches}
- rust-content_inspector
ExclusiveArch: %{rust_arches}
- rust-conv
ExclusiveArch: %{rust_arches}
- rust-convert_case
ExclusiveArch: %{rust_arches}
- rust-cookie
ExclusiveArch: %{rust_arches}
- rust-cookie-factory
ExclusiveArch: %{rust_arches}
- rust-cookie0.14
ExclusiveArch: %{rust_arches}
- rust-cookie_store
ExclusiveArch: %{rust_arches}
- rust-cookie_store0.12
ExclusiveArch: %{rust_arches}
- rust-coolor
ExclusiveArch: %{rust_arches}
- rust-copydeps
ExclusiveArch: %{rust_arches}
- rust-copypasta
ExclusiveArch: %{rust_arches}
- rust-cordic
ExclusiveArch: %{rust_arches}
- rust-coreos-installer
ExclusiveArch: %{rust_arches}
- rust-count-zeroes
ExclusiveArch: %{rust_arches}
- rust-counted-array
ExclusiveArch: %{rust_arches}
- rust-cpc
ExclusiveArch: %{rust_arches}
- rust-cpio
ExclusiveArch: %{rust_arches}
- rust-cpp_demangle
ExclusiveArch: %{rust_arches}
- rust-cpufeatures
ExclusiveArch: %{rust_arches}
- rust-cpython
ExclusiveArch: %{rust_arches}
- rust-crates-io
ExclusiveArch: %{rust_arches}
- rust-crc
ExclusiveArch: %{rust_arches}
- rust-crc-catalog
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-crossterm0.19
ExclusiveArch: %{rust_arches}
- rust-crosstermion
ExclusiveArch: %{rust_arches}
- rust-crunchy
ExclusiveArch: %{rust_arches}
- rust-crypto-bigint
ExclusiveArch: %{rust_arches}
- rust-crypto-common
ExclusiveArch: %{rust_arches}
- rust-crypto-hash
ExclusiveArch: %{rust_arches}
- rust-crypto-mac
ExclusiveArch: %{rust_arches}
- rust-cryptoki
ExclusiveArch: %{rust_arches}
- rust-cryptoki-sys
ExclusiveArch: %{rust_arches}
- rust-cstr_core
ExclusiveArch: %{rust_arches}
- rust-csv
ExclusiveArch: %{rust_arches}
- rust-csv-core
ExclusiveArch: %{rust_arches}
- rust-ct-logs
ExclusiveArch: %{rust_arches}
- rust-ctor
ExclusiveArch: %{rust_arches}
- rust-ctr
ExclusiveArch: %{rust_arches}
- rust-ctr0.8
ExclusiveArch: %{rust_arches}
- rust-ctrlc
ExclusiveArch: %{rust_arches}
- rust-cty
ExclusiveArch: %{rust_arches}
- rust-curl
ExclusiveArch: %{rust_arches}
- rust-curl-sys
ExclusiveArch: %{rust_arches}
- rust-cursive
ExclusiveArch: %{rust_arches}
- rust-cursive-tabs
ExclusiveArch: %{rust_arches}
- rust-cursive_buffered_backend
ExclusiveArch: %{rust_arches}
- rust-cursive_core
ExclusiveArch: %{rust_arches}
- rust-curve25519-dalek
ExclusiveArch: %{rust_arches}
- rust-custom_derive
ExclusiveArch: %{rust_arches}
- rust-custom_error
ExclusiveArch: %{rust_arches}
- rust-cxx
ExclusiveArch: %{rust_arches}
- rust-cxx-build
ExclusiveArch: %{rust_arches}
- rust-cxx-gen
ExclusiveArch: %{rust_arches}
- rust-cxxbridge-flags
ExclusiveArch: %{rust_arches}
- rust-cxxbridge-macro
ExclusiveArch: %{rust_arches}
- rust-daemonize
ExclusiveArch: %{rust_arches}
- rust-darling
ExclusiveArch: %{rust_arches}
- rust-darling0.12
ExclusiveArch: %{rust_arches}
- rust-darling_core
ExclusiveArch: %{rust_arches}
- rust-darling_core0.12
ExclusiveArch: %{rust_arches}
- rust-darling_macro
ExclusiveArch: %{rust_arches}
- rust-darling_macro0.12
ExclusiveArch: %{rust_arches}
- rust-dashmap
ExclusiveArch: %{rust_arches}
- rust-dashmap4
ExclusiveArch: %{rust_arches}
- rust-data-encoding
ExclusiveArch: %{rust_arches}
- rust-data-encoding-macro-internal
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-dbus-tokio
ExclusiveArch: %{rust_arches}
- rust-dbus-tree
ExclusiveArch: %{rust_arches}
- rust-dbus0.8
ExclusiveArch: %{rust_arches}
- rust-decimal
ExclusiveArch: %{rust_arches}
- rust-defer-drop
ExclusiveArch: %{rust_arches}
- rust-deflate
ExclusiveArch: %{rust_arches}
- rust-deflate0.8
ExclusiveArch: %{rust_arches}
- rust-defmac
ExclusiveArch: %{rust_arches}
- rust-der
ExclusiveArch: %{rust_arches}
- rust-der_derive
ExclusiveArch: %{rust_arches}
- rust-derivative
ExclusiveArch: %{rust_arches}
- rust-derive-new
ExclusiveArch: %{rust_arches}
- rust-derive_arbitrary
ExclusiveArch: %{rust_arches}
- rust-derive_arbitrary0.4
ExclusiveArch: %{rust_arches}
- rust-derive_builder
ExclusiveArch: %{rust_arches}
- rust-derive_builder0.9
ExclusiveArch: %{rust_arches}
- rust-derive_builder_core
ExclusiveArch: %{rust_arches}
- rust-derive_builder_core0.9
ExclusiveArch: %{rust_arches}
- rust-derive_builder_macro
ExclusiveArch: %{rust_arches}
- rust-derive_more
ExclusiveArch: %{rust_arches}
- rust-des
ExclusiveArch: %{rust_arches}
- rust-des0.7
ExclusiveArch: %{rust_arches}
- rust-desed
ExclusiveArch: %{rust_arches}
- rust-deunicode
ExclusiveArch: %{rust_arches}
- rust-devicemapper
ExclusiveArch: %{rust_arches}
- rust-devicemapper-sys
ExclusiveArch: %{rust_arches}
- rust-dialoguer
ExclusiveArch: %{rust_arches}
- rust-diesel
ExclusiveArch: %{rust_arches}
- rust-diesel_derives
ExclusiveArch: %{rust_arches}
- rust-diff
ExclusiveArch: %{rust_arches}
- rust-difference
ExclusiveArch: %{rust_arches}
- rust-difflib
ExclusiveArch: %{rust_arches}
- rust-digest
ExclusiveArch: %{rust_arches}
- rust-digest0.9
ExclusiveArch: %{rust_arches}
- rust-digest_auth
ExclusiveArch: %{rust_arches}
- rust-directories
ExclusiveArch: %{rust_arches}
- rust-directories-next
ExclusiveArch: %{rust_arches}
- rust-directories3
ExclusiveArch: %{rust_arches}
- rust-dirs
ExclusiveArch: %{rust_arches}
- rust-dirs-next
ExclusiveArch: %{rust_arches}
- rust-dirs-sys
ExclusiveArch: %{rust_arches}
- rust-dirs-sys-next
ExclusiveArch: %{rust_arches}
- rust-dirs2
ExclusiveArch: %{rust_arches}
- rust-dirs3
ExclusiveArch: %{rust_arches}
- rust-diskonaut
ExclusiveArch: %{rust_arches}
- rust-displaydoc
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-doc-comment
ExclusiveArch: %{rust_arches}
- rust-docmatic
ExclusiveArch: %{rust_arches}
- rust-docopt
ExclusiveArch: %{rust_arches}
- rust-dotenv
ExclusiveArch: %{rust_arches}
- rust-downcast
ExclusiveArch: %{rust_arches}
- rust-downcast-rs
ExclusiveArch: %{rust_arches}
- rust-drg
ExclusiveArch: %{rust_arches}
- rust-dtoa
ExclusiveArch: %{rust_arches}
- rust-dua-cli
ExclusiveArch: %{rust_arches}
- rust-duct
ExclusiveArch: %{rust_arches}
- rust-dummy
ExclusiveArch: %{rust_arches}
- rust-dunce
ExclusiveArch: %{rust_arches}
- rust-dutree
ExclusiveArch: %{rust_arches}
- rust-dyn-clone
ExclusiveArch: %{rust_arches}
- rust-easy-cast
ExclusiveArch: %{rust_arches}
- rust-easy-parallel
ExclusiveArch: %{rust_arches}
- rust-edit
ExclusiveArch: %{rust_arches}
- rust-edit-distance
ExclusiveArch: %{rust_arches}
- rust-either
ExclusiveArch: %{rust_arches}
- rust-elasticlunr-rs
ExclusiveArch: %{rust_arches}
- rust-elf
ExclusiveArch: %{rust_arches}
- rust-elfcat
ExclusiveArch: %{rust_arches}
- rust-email-encoding
ExclusiveArch: %{rust_arches}
- rust-ena
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-endian-type
ExclusiveArch: %{rust_arches}
- rust-enquote
ExclusiveArch: %{rust_arches}
- rust-entities
ExclusiveArch: %{rust_arches}
- rust-enum-as-inner
ExclusiveArch: %{rust_arches}
- rust-enum-as-inner0.3
ExclusiveArch: %{rust_arches}
- rust-enum-iterator
ExclusiveArch: %{rust_arches}
- rust-enum-iterator-derive
ExclusiveArch: %{rust_arches}
- rust-enum-map
ExclusiveArch: %{rust_arches}
- rust-enum-map-derive
ExclusiveArch: %{rust_arches}
- rust-enumflags2
ExclusiveArch: %{rust_arches}
- rust-enumflags2_0.6
ExclusiveArch: %{rust_arches}
- rust-enumflags2_derive
ExclusiveArch: %{rust_arches}
- rust-enumflags2_derive0.6
ExclusiveArch: %{rust_arches}
- rust-enumset
ExclusiveArch: %{rust_arches}
- rust-enumset_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-env_logger0.8
ExclusiveArch: %{rust_arches}
- rust-env_proxy
ExclusiveArch: %{rust_arches}
- rust-environment
ExclusiveArch: %{rust_arches}
- rust-envsubst
ExclusiveArch: %{rust_arches}
- rust-epoll
ExclusiveArch: %{rust_arches}
- rust-erased-serde
ExclusiveArch: %{rust_arches}
- rust-err-derive
ExclusiveArch: %{rust_arches}
- rust-errno
ExclusiveArch: %{rust_arches}
- rust-error-chain
ExclusiveArch: %{rust_arches}
- rust-escape_string
ExclusiveArch: %{rust_arches}
- rust-escargot
ExclusiveArch: %{rust_arches}
- rust-esphome
ExclusiveArch: %{rust_arches}
- rust-ethtool
ExclusiveArch: %{rust_arches}
- rust-event-listener
ExclusiveArch: %{rust_arches}
- rust-exa
ExclusiveArch: %{rust_arches}
- rust-executable-path
ExclusiveArch: %{rust_arches}
- rust-exitcode
ExclusiveArch: %{rust_arches}
- rust-exitfailure
ExclusiveArch: %{rust_arches}
- rust-expat-sys
ExclusiveArch: %{rust_arches}
- rust-eyre
ExclusiveArch: %{rust_arches}
- rust-faccess
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-fallible-iterator
ExclusiveArch: %{rust_arches}
- rust-fallible-streaming-iterator
ExclusiveArch: %{rust_arches}
- rust-fancy-regex
ExclusiveArch: %{rust_arches}
- rust-fastrand
ExclusiveArch: %{rust_arches}
- rust-fatfs
ExclusiveArch: %{rust_arches}
- rust-fb_procfs
ExclusiveArch: %{rust_arches}
- rust-fbthrift_codegen_includer_proc_macro
ExclusiveArch: %{rust_arches}
- rust-fd-find
ExclusiveArch: %{rust_arches}
- rust-fd-lock
ExclusiveArch: %{rust_arches}
- rust-fdlimit
ExclusiveArch: %{rust_arches}
- rust-fedora
ExclusiveArch: %{rust_arches}
- rust-fedora-update-feedback
ExclusiveArch: %{rust_arches}
- rust-femme
ExclusiveArch: %{rust_arches}
- rust-fern
ExclusiveArch: %{rust_arches}
- rust-ffsend
ExclusiveArch: %{rust_arches}
- rust-ffsend-api
ExclusiveArch: %{rust_arches}
- rust-field-offset
ExclusiveArch: %{rust_arches}
- rust-file-per-thread-logger
ExclusiveArch: %{rust_arches}
- rust-filedescriptor
ExclusiveArch: %{rust_arches}
- rust-filesize
ExclusiveArch: %{rust_arches}
- rust-filetime
ExclusiveArch: %{rust_arches}
- rust-filetreelist
ExclusiveArch: %{rust_arches}
- rust-find-crate
ExclusiveArch: %{rust_arches}
- rust-findshlibs
ExclusiveArch: %{rust_arches}
- rust-firestorm
ExclusiveArch: %{rust_arches}
- rust-fixed
ExclusiveArch: %{rust_arches}
- rust-fixedbitset
ExclusiveArch: %{rust_arches}
- rust-fixedbitset0.2
ExclusiveArch: %{rust_arches}
- rust-flate2
ExclusiveArch: %{rust_arches}
- rust-float-cmp
ExclusiveArch: %{rust_arches}
- rust-float-ord
ExclusiveArch: %{rust_arches}
- rust-fluent
ExclusiveArch: %{rust_arches}
- rust-fluent-bundle
ExclusiveArch: %{rust_arches}
- rust-fluent-langneg
ExclusiveArch: %{rust_arches}
- rust-fluent-syntax
ExclusiveArch: %{rust_arches}
- rust-fn-error-context
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-format-bytes
ExclusiveArch: %{rust_arches}
- rust-format-bytes-macros
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-fs-err
ExclusiveArch: %{rust_arches}
- rust-fs2
ExclusiveArch: %{rust_arches}
- rust-fs_extra
ExclusiveArch: %{rust_arches}
- rust-fscommon
ExclusiveArch: %{rust_arches}
- rust-fslock
ExclusiveArch: %{rust_arches}
- rust-funty
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-lite
ExclusiveArch: %{rust_arches}
- rust-futures-macro
ExclusiveArch: %{rust_arches}
- rust-futures-sink
ExclusiveArch: %{rust_arches}
- rust-futures-task
ExclusiveArch: %{rust_arches}
- rust-futures-test
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-gdk
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf-sys
ExclusiveArch: %{rust_arches}
- rust-gdk-sys
ExclusiveArch: %{rust_arches}
- rust-gdk4
ExclusiveArch: %{rust_arches}
- rust-gdk4-sys
ExclusiveArch: %{rust_arches}
- rust-generic-array
ExclusiveArch: %{rust_arches}
- rust-generic-array0.12
ExclusiveArch: %{rust_arches}
- rust-genetlink
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-getset
ExclusiveArch: %{rust_arches}
- rust-gettext-rs
ExclusiveArch: %{rust_arches}
- rust-gettext-sys
ExclusiveArch: %{rust_arches}
- rust-gh-emoji
ExclusiveArch: %{rust_arches}
- rust-ghash
ExclusiveArch: %{rust_arches}
- rust-ghost
ExclusiveArch: %{rust_arches}
- rust-gif
ExclusiveArch: %{rust_arches}
- rust-gimli
ExclusiveArch: %{rust_arches}
- rust-gio
ExclusiveArch: %{rust_arches}
- rust-gio-sys
ExclusiveArch: %{rust_arches}
- rust-gir-format-check
ExclusiveArch: %{rust_arches}
- rust-git-delta
ExclusiveArch: %{rust_arches}
- rust-git-version
ExclusiveArch: %{rust_arches}
- rust-git-version-macro
ExclusiveArch: %{rust_arches}
- rust-git2
ExclusiveArch: %{rust_arches}
- rust-git2-curl
ExclusiveArch: %{rust_arches}
- rust-git2_0.13
ExclusiveArch: %{rust_arches}
- rust-gitui
ExclusiveArch: %{rust_arches}
- rust-gl_generator
ExclusiveArch: %{rust_arches}
- rust-glam
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-gmp-mpfr-sys
ExclusiveArch: %{rust_arches}
- rust-gobject-sys
ExclusiveArch: %{rust_arches}
- rust-goblin
ExclusiveArch: %{rust_arches}
- rust-gptman
ExclusiveArch: %{rust_arches}
- rust-graphene-rs
ExclusiveArch: %{rust_arches}
- rust-graphene-sys
ExclusiveArch: %{rust_arches}
- rust-greetd_ipc
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-gsk4
ExclusiveArch: %{rust_arches}
- rust-gsk4-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-sys
ExclusiveArch: %{rust_arches}
- rust-gtk3-macros
ExclusiveArch: %{rust_arches}
- rust-gtk4
ExclusiveArch: %{rust_arches}
- rust-gtk4-macros
ExclusiveArch: %{rust_arches}
- rust-gtk4-sys
ExclusiveArch: %{rust_arches}
- rust-gzip-header
ExclusiveArch: %{rust_arches}
- rust-h2
ExclusiveArch: %{rust_arches}
- rust-h2_0.2
ExclusiveArch: %{rust_arches}
- rust-half
ExclusiveArch: %{rust_arches}
- rust-hamcrest2
ExclusiveArch: %{rust_arches}
- rust-handlebars
ExclusiveArch: %{rust_arches}
- rust-hashbrown
ExclusiveArch: %{rust_arches}
- rust-hashbrown0.11
ExclusiveArch: %{rust_arches}
- rust-hashbrown0.9
ExclusiveArch: %{rust_arches}
- rust-hashlink
ExclusiveArch: %{rust_arches}
- rust-headers
ExclusiveArch: %{rust_arches}
- rust-headers-core
ExclusiveArch: %{rust_arches}
- rust-heapsize
ExclusiveArch: %{rust_arches}
- rust-heatseeker
ExclusiveArch: %{rust_arches}
- rust-heck
ExclusiveArch: %{rust_arches}
- rust-heck0.3
ExclusiveArch: %{rust_arches}
- rust-helvum
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-hidapi
ExclusiveArch: %{rust_arches}
- rust-hkdf
ExclusiveArch: %{rust_arches}
- rust-hkdf0.11
ExclusiveArch: %{rust_arches}
- rust-hmac
ExclusiveArch: %{rust_arches}
- rust-hmac0.11
ExclusiveArch: %{rust_arches}
- rust-home
ExclusiveArch: %{rust_arches}
- rust-hostname
ExclusiveArch: %{rust_arches}
- rust-hostname-validator
ExclusiveArch: %{rust_arches}
- rust-html-escape
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-http-body0.3
ExclusiveArch: %{rust_arches}
- rust-http0.1
ExclusiveArch: %{rust_arches}
- rust-httparse
ExclusiveArch: %{rust_arches}
- rust-httpdate
ExclusiveArch: %{rust_arches}
- rust-human-panic
ExclusiveArch: %{rust_arches}
- rust-human-sort
ExclusiveArch: %{rust_arches}
- rust-humansize
ExclusiveArch: %{rust_arches}
- rust-humantime
ExclusiveArch: %{rust_arches}
- rust-humantime-serde
ExclusiveArch: %{rust_arches}
- rust-humantime1
ExclusiveArch: %{rust_arches}
- rust-hyper
ExclusiveArch: %{rust_arches}
- rust-hyper-native-tls
ExclusiveArch: %{rust_arches}
- rust-hyper-rustls
ExclusiveArch: %{rust_arches}
- rust-hyper-staticfile
ExclusiveArch: %{rust_arches}
- rust-hyper-tls
ExclusiveArch: %{rust_arches}
- rust-hyper-tls0.4
ExclusiveArch: %{rust_arches}
- rust-hyper0.10
ExclusiveArch: %{rust_arches}
- rust-hyper0.13
ExclusiveArch: %{rust_arches}
- rust-hyperfine
ExclusiveArch: %{rust_arches}
- rust-i18n-config
ExclusiveArch: %{rust_arches}
- rust-i18n-embed
ExclusiveArch: %{rust_arches}
- rust-i18n-embed-fl
ExclusiveArch: %{rust_arches}
- rust-i18n-embed-impl
ExclusiveArch: %{rust_arches}
- rust-i3ipc
ExclusiveArch: %{rust_arches}
- rust-iai
ExclusiveArch: %{rust_arches}
- rust-id-arena
ExclusiveArch: %{rust_arches}
- rust-ident_case
ExclusiveArch: %{rust_arches}
- rust-idna
ExclusiveArch: %{rust_arches}
- rust-idna0.1
ExclusiveArch: %{rust_arches}
- rust-ifcfg-devname
ExclusiveArch: %{rust_arches}
- rust-ignition-config
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-impls
ExclusiveArch: %{rust_arches}
- rust-indenter
ExclusiveArch: %{rust_arches}
- rust-indexmap
ExclusiveArch: %{rust_arches}
- rust-indicatif
ExclusiveArch: %{rust_arches}
- rust-indicatif0.15
ExclusiveArch: %{rust_arches}
- rust-indoc
ExclusiveArch: %{rust_arches}
- rust-infer
ExclusiveArch: %{rust_arches}
- rust-inferno
ExclusiveArch: %{rust_arches}
- rust-inlinable_string
ExclusiveArch: %{rust_arches}
- rust-inotify
ExclusiveArch: %{rust_arches}
- rust-inotify-sys
ExclusiveArch: %{rust_arches}
- rust-inout
ExclusiveArch: %{rust_arches}
- rust-input_buffer
ExclusiveArch: %{rust_arches}
- rust-insta
ExclusiveArch: %{rust_arches}
- rust-instant
ExclusiveArch: %{rust_arches}
- rust-integer-encoding
ExclusiveArch: %{rust_arches}
- rust-interpolate_name
ExclusiveArch: %{rust_arches}
- rust-intervaltree
ExclusiveArch: %{rust_arches}
- rust-intl-memoizer
ExclusiveArch: %{rust_arches}
- rust-intl_pluralrules
ExclusiveArch: %{rust_arches}
- rust-invalidstring
ExclusiveArch: %{rust_arches}
- rust-inventory
ExclusiveArch: %{rust_arches}
- rust-inventory-impl
ExclusiveArch: %{rust_arches}
- rust-inventory0.1
ExclusiveArch: %{rust_arches}
- rust-io-lifetimes
ExclusiveArch: %{rust_arches}
- rust-ioctl-rs
ExclusiveArch: %{rust_arches}
- rust-iocuddle
ExclusiveArch: %{rust_arches}
- rust-iovec
ExclusiveArch: %{rust_arches}
- rust-ipnet
ExclusiveArch: %{rust_arches}
- rust-ipnetwork
ExclusiveArch: %{rust_arches}
- rust-ipnetwork0.17
ExclusiveArch: %{rust_arches}
- rust-iptables
ExclusiveArch: %{rust_arches}
- rust-iron
ExclusiveArch: %{rust_arches}
- rust-is_ci
ExclusiveArch: %{rust_arches}
- rust-is_debug
ExclusiveArch: %{rust_arches}
- rust-is_executable
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-itertools0.9
ExclusiveArch: %{rust_arches}
- rust-itoa
ExclusiveArch: %{rust_arches}
- rust-itoa0.4
ExclusiveArch: %{rust_arches}
- rust-ivf
ExclusiveArch: %{rust_arches}
- rust-jieba-rs
ExclusiveArch: %{rust_arches}
- rust-jobserver
ExclusiveArch: %{rust_arches}
- rust-josekit
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-json5
ExclusiveArch: %{rust_arches}
- rust-json_value_merge
ExclusiveArch: %{rust_arches}
- rust-just
ExclusiveArch: %{rust_arches}
- rust-jwalk
ExclusiveArch: %{rust_arches}
- rust-k9
ExclusiveArch: %{rust_arches}
- rust-keccak
ExclusiveArch: %{rust_arches}
- rust-khronos_api
ExclusiveArch: %{rust_arches}
- rust-konst
ExclusiveArch: %{rust_arches}
- rust-konst_macro_rules
ExclusiveArch: %{rust_arches}
- rust-konst_proc_macros
ExclusiveArch: %{rust_arches}
- rust-krunvm
ExclusiveArch: x86_64 aarch64
- rust-kstring
ExclusiveArch: %{rust_arches}
- rust-kv-log-macro
ExclusiveArch: %{rust_arches}
- rust-kvm-bindings
ExclusiveArch: %{rust_arches}
- rust-kvm-ioctls
ExclusiveArch: x86_64 aarch64
- rust-lab
ExclusiveArch: %{rust_arches}
- rust-lalrpop
ExclusiveArch: %{rust_arches}
- rust-lalrpop-util
ExclusiveArch: %{rust_arches}
- rust-language-tags
ExclusiveArch: %{rust_arches}
- rust-language-tags0.2
ExclusiveArch: %{rust_arches}
- rust-lazy_static
ExclusiveArch: %{rust_arches}
- rust-lazycell
ExclusiveArch: %{rust_arches}
- rust-leb128
ExclusiveArch: %{rust_arches}
- rust-lev_distance
ExclusiveArch: %{rust_arches}
- rust-lexical-core
ExclusiveArch: %{rust_arches}
- rust-lexiclean
ExclusiveArch: %{rust_arches}
- rust-lexopt
ExclusiveArch: %{rust_arches}
- rust-libblkid-rs
ExclusiveArch: %{rust_arches}
- rust-libblkid-rs-sys
ExclusiveArch: %{rust_arches}
- rust-libbpf-cargo
ExclusiveArch: %{rust_arches}
- rust-libbpf-rs
ExclusiveArch: %{rust_arches}
- rust-libbpf-sys
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-libgit2-sys0.12
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-libnotcurses-sys
ExclusiveArch: %{rust_arches}
- rust-liboverdrop
ExclusiveArch: %{rust_arches}
- rust-libpulse-binding
ExclusiveArch: %{rust_arches}
- rust-libpulse-sys
ExclusiveArch: %{rust_arches}
- rust-libseccomp-sys
ExclusiveArch: %{rust_arches}
- rust-libslirp
ExclusiveArch: %{rust_arches}
- rust-libslirp-sys
ExclusiveArch: %{rust_arches}
- rust-libspa
ExclusiveArch: %{rust_arches}
- rust-libspa-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-link-cplusplus
ExclusiveArch: %{rust_arches}
- rust-linked-hash-map
ExclusiveArch: %{rust_arches}
- rust-linkify
ExclusiveArch: %{rust_arches}
- rust-linreg
ExclusiveArch: %{rust_arches}
- rust-linux-raw-sys
ExclusiveArch: %{rust_arches}
- rust-linux_proc
ExclusiveArch: %{rust_arches}
- rust-lipsum
ExclusiveArch: %{rust_arches}
- rust-listenfd
ExclusiveArch: %{rust_arches}
- rust-lmdb
ExclusiveArch: %{rust_arches}
- rust-lmdb-sys
ExclusiveArch: %{rust_arches}
- rust-local-channel
ExclusiveArch: %{rust_arches}
- rust-local-encoding
ExclusiveArch: %{rust_arches}
- rust-local-waker
ExclusiveArch: %{rust_arches}
- rust-local_ipaddress
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-loggerv
ExclusiveArch: %{rust_arches}
- rust-loopdev
ExclusiveArch: %{rust_arches}
- rust-lru-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-mac_address
ExclusiveArch: %{rust_arches}
- rust-macro-attr
ExclusiveArch: %{rust_arches}
- rust-madvr_parse
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-matrixcompare
ExclusiveArch: %{rust_arches}
- rust-matrixcompare-core
ExclusiveArch: %{rust_arches}
- rust-matrixcompare-mock
ExclusiveArch: %{rust_arches}
- rust-matrixmultiply
ExclusiveArch: %{rust_arches}
- rust-maxminddb
ExclusiveArch: %{rust_arches}
- rust-maybe-owned
ExclusiveArch: %{rust_arches}
- rust-maybe-uninit
ExclusiveArch: %{rust_arches}
- rust-mbox
ExclusiveArch: %{rust_arches}
- rust-mbrman
ExclusiveArch: %{rust_arches}
- rust-md-5
ExclusiveArch: %{rust_arches}
- rust-md-5_0.9
ExclusiveArch: %{rust_arches}
- rust-md5
ExclusiveArch: %{rust_arches}
- rust-mdl
ExclusiveArch: %{rust_arches}
- rust-memcached-rs
ExclusiveArch: %{rust_arches}
- rust-memchr
ExclusiveArch: %{rust_arches}
- rust-memmap
ExclusiveArch: %{rust_arches}
- rust-memmap2
ExclusiveArch: %{rust_arches}
- rust-memmap2_0.3
ExclusiveArch: %{rust_arches}
- rust-memmem
ExclusiveArch: %{rust_arches}
- rust-memoffset
ExclusiveArch: %{rust_arches}
- rust-memoffset0.5
ExclusiveArch: %{rust_arches}
- rust-memsec
ExclusiveArch: %{rust_arches}
- rust-micro-timer
ExclusiveArch: %{rust_arches}
- rust-micro-timer-macros
ExclusiveArch: %{rust_arches}
- rust-miette
ExclusiveArch: %{rust_arches}
- rust-miette-derive
ExclusiveArch: %{rust_arches}
- rust-mime
ExclusiveArch: %{rust_arches}
- rust-mime0.2
ExclusiveArch: %{rust_arches}
- rust-mime_guess
ExclusiveArch: %{rust_arches}
- rust-mime_guess1
ExclusiveArch: %{rust_arches}
- rust-minify-html
ExclusiveArch: %{rust_arches}
- rust-minimad
ExclusiveArch: %{rust_arches}
- rust-minimal-lexical
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-mio0.7
ExclusiveArch: %{rust_arches}
- rust-mktemp
ExclusiveArch: %{rust_arches}
- rust-mnt
ExclusiveArch: %{rust_arches}
- rust-mockall
ExclusiveArch: %{rust_arches}
- rust-mockall_derive
ExclusiveArch: %{rust_arches}
- rust-mockall_double
ExclusiveArch: %{rust_arches}
- rust-mockito
ExclusiveArch: %{rust_arches}
- rust-modifier
ExclusiveArch: %{rust_arches}
- rust-more-asserts
ExclusiveArch: %{rust_arches}
- rust-mptcp-pm
ExclusiveArch: %{rust_arches}
- rust-muldiv
ExclusiveArch: %{rust_arches}
- rust-multer
ExclusiveArch: %{rust_arches}
- rust-multimap
ExclusiveArch: %{rust_arches}
- rust-multipart
ExclusiveArch: %{rust_arches}
- rust-mustache
ExclusiveArch: %{rust_arches}
- rust-nalgebra
ExclusiveArch: %{rust_arches}
- rust-nalgebra-macros
ExclusiveArch: %{rust_arches}
- rust-nasm-rs
ExclusiveArch: %{rust_arches}
- rust-native-tls
ExclusiveArch: %{rust_arches}
- rust-natord
ExclusiveArch: %{rust_arches}
- rust-navi
ExclusiveArch: %{rust_arches}
- rust-nb-connect
ExclusiveArch: %{rust_arches}
- rust-ncurses
ExclusiveArch: %{rust_arches}
- rust-net2
ExclusiveArch: %{rust_arches}
- rust-netlink-packet-core
ExclusiveArch: %{rust_arches}
- rust-netlink-packet-generic
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-nettle
ExclusiveArch: %{rust_arches}
- rust-nettle-sys
ExclusiveArch: %{rust_arches}
- rust-new_debug_unreachable
ExclusiveArch: %{rust_arches}
- rust-newtype_derive
ExclusiveArch: %{rust_arches}
- rust-nibble_vec
ExclusiveArch: %{rust_arches}
- rust-nix
ExclusiveArch: %{rust_arches}
- rust-nix0.14
ExclusiveArch: %{rust_arches}
- rust-nix0.17
ExclusiveArch: %{rust_arches}
- rust-nix0.18
ExclusiveArch: %{rust_arches}
- rust-nix0.20
ExclusiveArch: %{rust_arches}
- rust-nix0.22
ExclusiveArch: %{rust_arches}
- rust-nix0.23
ExclusiveArch: %{rust_arches}
- rust-no-panic
ExclusiveArch: %{rust_arches}
- rust-nodrop
ExclusiveArch: %{rust_arches}
- rust-nohash-hasher
ExclusiveArch: %{rust_arches}
- rust-nom
ExclusiveArch: %{rust_arches}
- rust-nom4
ExclusiveArch: %{rust_arches}
- rust-nom5
ExclusiveArch: %{rust_arches}
- rust-noop_proc_macro
ExclusiveArch: %{rust_arches}
- rust-normalize-line-endings
ExclusiveArch: %{rust_arches}
- rust-notify
ExclusiveArch: %{rust_arches}
- rust-notify-rust
ExclusiveArch: %{rust_arches}
- rust-nu-ansi-term
ExclusiveArch: %{rust_arches}
- rust-nu-engine
ExclusiveArch: %{rust_arches}
- rust-nu-glob
ExclusiveArch: %{rust_arches}
- rust-nu-json
ExclusiveArch: %{rust_arches}
- rust-nu-parser
ExclusiveArch: %{rust_arches}
- rust-nu-path
ExclusiveArch: %{rust_arches}
- rust-nu-protocol
ExclusiveArch: %{rust_arches}
- rust-nu-utils
ExclusiveArch: %{rust_arches}
- rust-num
ExclusiveArch: %{rust_arches}
- rust-num-bigint
ExclusiveArch: %{rust_arches}
- rust-num-bigint-dig
ExclusiveArch: %{rust_arches}
- rust-num-bigint0.3
ExclusiveArch: %{rust_arches}
- rust-num-complex
ExclusiveArch: %{rust_arches}
- rust-num-complex0.3
ExclusiveArch: %{rust_arches}
- rust-num-derive
ExclusiveArch: %{rust_arches}
- rust-num-format
ExclusiveArch: %{rust_arches}
- rust-num-integer
ExclusiveArch: %{rust_arches}
- rust-num-iter
ExclusiveArch: %{rust_arches}
- rust-num-rational
ExclusiveArch: %{rust_arches}
- rust-num-rational0.3
ExclusiveArch: %{rust_arches}
- rust-num-traits
ExclusiveArch: %{rust_arches}
- rust-num-traits0.1
ExclusiveArch: %{rust_arches}
- rust-num0.3
ExclusiveArch: %{rust_arches}
- rust-num_cpus
ExclusiveArch: %{rust_arches}
- rust-num_enum
ExclusiveArch: %{rust_arches}
- rust-num_enum_derive
ExclusiveArch: %{rust_arches}
- rust-num_threads
ExclusiveArch: %{rust_arches}
- rust-number_prefix
ExclusiveArch: %{rust_arches}
- rust-numtoa
ExclusiveArch: %{rust_arches}
- rust-oauth2
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-open1
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-kdf
ExclusiveArch: %{rust_arches}
- rust-openssl-macros
ExclusiveArch: %{rust_arches}
- rust-openssl-probe
ExclusiveArch: %{rust_arches}
- rust-openssl-sys
ExclusiveArch: %{rust_arches}
- rust-option-operations
ExclusiveArch: %{rust_arches}
- rust-ord_subset
ExclusiveArch: %{rust_arches}
- rust-ordered-float
ExclusiveArch: %{rust_arches}
- rust-ordered-float2
ExclusiveArch: %{rust_arches}
- rust-ordered-multimap
ExclusiveArch: %{rust_arches}
- rust-ordered-stream
ExclusiveArch: %{rust_arches}
- rust-os-release
ExclusiveArch: %{rust_arches}
- rust-os_display
ExclusiveArch: %{rust_arches}
- rust-os_info
ExclusiveArch: %{rust_arches}
- rust-os_pipe
ExclusiveArch: %{rust_arches}
- rust-os_pipe0.9
ExclusiveArch: %{rust_arches}
- rust-os_str_bytes
ExclusiveArch: %{rust_arches}
- rust-os_type
ExclusiveArch: %{rust_arches}
- rust-osmesa-sys
ExclusiveArch: %{rust_arches}
- rust-osstrtools
ExclusiveArch: %{rust_arches}
- rust-ouroboros
ExclusiveArch: %{rust_arches}
- rust-ouroboros_macro
ExclusiveArch: %{rust_arches}
- rust-overload
ExclusiveArch: %{rust_arches}
- rust-owned-alloc
ExclusiveArch: %{rust_arches}
- rust-owning_ref
ExclusiveArch: %{rust_arches}
- rust-owo-colors
ExclusiveArch: %{rust_arches}
- rust-packaging
ExclusiveArch: %{rust_arches}
- rust-pad
ExclusiveArch: %{rust_arches}
- rust-page_size
ExclusiveArch: %{rust_arches}
- rust-pager
ExclusiveArch: %{rust_arches}
- rust-palette
ExclusiveArch: %{rust_arches}
- rust-palette_derive
ExclusiveArch: %{rust_arches}
- rust-pam
ExclusiveArch: %{rust_arches}
- rust-pam-sys
ExclusiveArch: %{rust_arches}
- rust-pancurses
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-paris
ExclusiveArch: %{rust_arches}
- rust-parity-wasm
ExclusiveArch: %{rust_arches}
- rust-parking
ExclusiveArch: %{rust_arches}
- rust-parking_lot
ExclusiveArch: %{rust_arches}
- rust-parking_lot0.11
ExclusiveArch: %{rust_arches}
- rust-parking_lot_core
ExclusiveArch: %{rust_arches}
- rust-parking_lot_core0.8
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-partition-identity
ExclusiveArch: %{rust_arches}
- rust-passwd
ExclusiveArch: %{rust_arches}
- rust-password-hash
ExclusiveArch: %{rust_arches}
- rust-paste
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-pbkdf2
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-pem-rfc7468
ExclusiveArch: %{rust_arches}
- rust-pem0.8
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-petgraph0.5
ExclusiveArch: %{rust_arches}
- rust-phf
ExclusiveArch: %{rust_arches}
- rust-phf0.7
ExclusiveArch: %{rust_arches}
- rust-phf0.8
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_generator0.8
ExclusiveArch: %{rust_arches}
- rust-phf_macros
ExclusiveArch: %{rust_arches}
- rust-phf_macros0.7
ExclusiveArch: %{rust_arches}
- rust-phf_macros0.8
ExclusiveArch: %{rust_arches}
- rust-phf_shared
ExclusiveArch: %{rust_arches}
- rust-phf_shared0.7
ExclusiveArch: %{rust_arches}
- rust-phf_shared0.8
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-pid
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-pipewire
ExclusiveArch: %{rust_arches}
- rust-pipewire-sys
ExclusiveArch: %{rust_arches}
- rust-pkcs1
ExclusiveArch: %{rust_arches}
- rust-pkcs5
ExclusiveArch: %{rust_arches}
- rust-pkcs8
ExclusiveArch: %{rust_arches}
- rust-pkg-config
ExclusiveArch: %{rust_arches}
- rust-plain
ExclusiveArch: %{rust_arches}
- rust-pleaser
ExclusiveArch: %{rust_arches}
- rust-plist
ExclusiveArch: %{rust_arches}
- rust-plotlib
ExclusiveArch: %{rust_arches}
- rust-plotters
ExclusiveArch: %{rust_arches}
- rust-plotters-backend
ExclusiveArch: %{rust_arches}
- rust-plotters-bitmap
ExclusiveArch: %{rust_arches}
- rust-plotters-svg
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-png0.16
ExclusiveArch: %{rust_arches}
- rust-podio
ExclusiveArch: %{rust_arches}
- rust-polling
ExclusiveArch: %{rust_arches}
- rust-polyval
ExclusiveArch: %{rust_arches}
- rust-pom
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-predicates1
ExclusiveArch: %{rust_arches}
- rust-pretty
ExclusiveArch: %{rust_arches}
- rust-pretty-git-prompt
ExclusiveArch: %{rust_arches}
- rust-pretty-hex
ExclusiveArch: %{rust_arches}
- rust-pretty_assertions
ExclusiveArch: %{rust_arches}
- rust-pretty_assertions0.6
ExclusiveArch: %{rust_arches}
- rust-pretty_assertions0.7
ExclusiveArch: %{rust_arches}
- rust-pretty_env_logger
ExclusiveArch: %{rust_arches}
- rust-prettytable-rs
ExclusiveArch: %{rust_arches}
- rust-print_bytes
ExclusiveArch: %{rust_arches}
- rust-proc-macro-crate
ExclusiveArch: %{rust_arches}
- rust-proc-macro-crate0.1
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-macro2
ExclusiveArch: %{rust_arches}
- rust-proc-macro2-0.4
ExclusiveArch: %{rust_arches}
- rust-proc-maps
ExclusiveArch: %{rust_arches}
- rust-proc-mounts
ExclusiveArch: %{rust_arches}
- rust-proc-quote-impl
ExclusiveArch: %{rust_arches}
- rust-process_control
ExclusiveArch: %{rust_arches}
- rust-process_path
ExclusiveArch: %{rust_arches}
- rust-procfs
ExclusiveArch: %{rust_arches}
- rust-procfs0.9
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-proptest0.10
ExclusiveArch: %{rust_arches}
- rust-prost
ExclusiveArch: %{rust_arches}
- rust-prost-build
ExclusiveArch: %{rust_arches}
- rust-prost-derive
ExclusiveArch: %{rust_arches}
- rust-prost-derive0.8
ExclusiveArch: %{rust_arches}
- rust-prost-types
ExclusiveArch: %{rust_arches}
- rust-prost0.8
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-psl-types
ExclusiveArch: %{rust_arches}
- rust-psm
ExclusiveArch: %{rust_arches}
- rust-ptr_meta
ExclusiveArch: %{rust_arches}
- rust-ptr_meta_derive
ExclusiveArch: %{rust_arches}
- rust-publicsuffix
ExclusiveArch: %{rust_arches}
- rust-publicsuffix1
ExclusiveArch: %{rust_arches}
- rust-pulldown-cmark
ExclusiveArch: %{rust_arches}
- rust-pulse
ExclusiveArch: %{rust_arches}
- rust-pure-rust-locales
ExclusiveArch: %{rust_arches}
- rust-pwd
ExclusiveArch: %{rust_arches}
- rust-pyo3
ExclusiveArch: %{rust_arches}
- rust-pyo3-build-config
ExclusiveArch: %{rust_arches}
- rust-pyo3-macros
ExclusiveArch: %{rust_arches}
- rust-pyo3-macros-backend
ExclusiveArch: %{rust_arches}
- rust-python-launcher
ExclusiveArch: %{rust_arches}
- rust-python3-sys
ExclusiveArch: %{rust_arches}
- rust-qr2term
ExclusiveArch: %{rust_arches}
- rust-qrcode
ExclusiveArch: %{rust_arches}
- rust-qstring
ExclusiveArch: %{rust_arches}
- rust-quantiles
ExclusiveArch: %{rust_arches}
- rust-quick-error
ExclusiveArch: %{rust_arches}
- rust-quick-error1
ExclusiveArch: %{rust_arches}
- rust-quick-xml
ExclusiveArch: %{rust_arches}
- rust-quick-xml0.22
ExclusiveArch: %{rust_arches}
- rust-quickcheck
ExclusiveArch: %{rust_arches}
- rust-quickcheck0.6
ExclusiveArch: %{rust_arches}
- rust-quickcheck0.9
ExclusiveArch: %{rust_arches}
- rust-quickcheck_macros
ExclusiveArch: %{rust_arches}
- rust-quickersort
ExclusiveArch: %{rust_arches}
- rust-quicli
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-radium
ExclusiveArch: %{rust_arches}
- rust-radix_trie
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-rand0.7
ExclusiveArch: %{rust_arches}
- rust-rand_chacha
ExclusiveArch: %{rust_arches}
- rust-rand_chacha0.1
ExclusiveArch: %{rust_arches}
- rust-rand_chacha0.2
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_core0.5
ExclusiveArch: %{rust_arches}
- rust-rand_distr
ExclusiveArch: %{rust_arches}
- rust-rand_hc
ExclusiveArch: %{rust_arches}
- rust-rand_hc0.1
ExclusiveArch: %{rust_arches}
- rust-rand_isaac
ExclusiveArch: %{rust_arches}
- rust-rand_isaac0.1
ExclusiveArch: %{rust_arches}
- rust-rand_jitter
ExclusiveArch: %{rust_arches}
- rust-rand_jitter0.1
ExclusiveArch: %{rust_arches}
- rust-rand_os
ExclusiveArch: %{rust_arches}
- rust-rand_os0.1
ExclusiveArch: %{rust_arches}
- rust-rand_pcg
ExclusiveArch: %{rust_arches}
- rust-rand_pcg0.1
ExclusiveArch: %{rust_arches}
- rust-rand_pcg0.2
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift0.2
ExclusiveArch: %{rust_arches}
- rust-rand_xoshiro
ExclusiveArch: %{rust_arches}
- rust-random
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-rbspy
ExclusiveArch: %{rust_arches}
- rust-rbspy-ruby-structs
ExclusiveArch: %{rust_arches}
- rust-rbspy-testdata
ExclusiveArch: %{rust_arches}
- rust-rd-agent
ExclusiveArch: %{rust_arches}
- rust-rd-agent-intf
ExclusiveArch: %{rust_arches}
- rust-rd-hashd
ExclusiveArch: %{rust_arches}
- rust-rd-hashd-intf
ExclusiveArch: %{rust_arches}
- rust-rd-util
ExclusiveArch: %{rust_arches}
- rust-read-process-memory
ExclusiveArch: %{rust_arches}
- rust-read_input
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-relative-path
ExclusiveArch: %{rust_arches}
- rust-relay
ExclusiveArch: %{rust_arches}
- rust-remoteprocess
ExclusiveArch: %{rust_arches}
- rust-remove_dir_all
ExclusiveArch: %{rust_arches}
- rust-rend
ExclusiveArch: %{rust_arches}
- rust-reqwest
ExclusiveArch: %{rust_arches}
- rust-reqwest0.10
ExclusiveArch: %{rust_arches}
- rust-resctl-bench
ExclusiveArch: %{rust_arches}
- rust-resctl-bench-intf
ExclusiveArch: %{rust_arches}
- rust-resctl-demo
ExclusiveArch: %{rust_arches}
- rust-resize
ExclusiveArch: %{rust_arches}
- rust-resolv-conf
ExclusiveArch: %{rust_arches}
- rust-retry
ExclusiveArch: %{rust_arches}
- rust-rgb
ExclusiveArch: %{rust_arches}
- rust-ring
ExclusiveArch: %{rust_arches}
- rust-ripgrep
ExclusiveArch: %{rust_arches}
- rust-rkyv
ExclusiveArch: %{rust_arches}
- rust-rkyv_derive
ExclusiveArch: %{rust_arches}
- rust-rle-decode-fast
ExclusiveArch: %{rust_arches}
- rust-rmp
ExclusiveArch: %{rust_arches}
- rust-rmp-serde
ExclusiveArch: %{rust_arches}
- rust-rmpv
ExclusiveArch: %{rust_arches}
- rust-roff
ExclusiveArch: %{rust_arches}
- rust-ron
ExclusiveArch: %{rust_arches}
- rust-roxmltree
ExclusiveArch: %{rust_arches}
- rust-rpassword
ExclusiveArch: %{rust_arches}
- rust-rpick
ExclusiveArch: %{rust_arches}
- rust-rsa
ExclusiveArch: %{rust_arches}
- rust-rspec
ExclusiveArch: %{rust_arches}
- rust-rtnetlink
ExclusiveArch: %{rust_arches}
- rust-rusqlite
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-rustbus
ExclusiveArch: %{rust_arches}
- rust-rustbus_derive
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-rustc_version0.3
ExclusiveArch: %{rust_arches}
- rust-rustcat
ExclusiveArch: %{rust_arches}
- rust-rustdoc-stripper
ExclusiveArch: %{rust_arches}
- rust-rustfilt
ExclusiveArch: %{rust_arches}
- rust-rustfix
ExclusiveArch: %{rust_arches}
- rust-rustix
ExclusiveArch: %{rust_arches}
- rust-rustls
ExclusiveArch: %{rust_arches}
- rust-rustls-native-certs
ExclusiveArch: %{rust_arches}
- rust-rustls-pemfile
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-safe_arch
ExclusiveArch: %{rust_arches}
- rust-safemem
ExclusiveArch: %{rust_arches}
- rust-salsa20
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-scratch
ExclusiveArch: %{rust_arches}
- rust-scroll
ExclusiveArch: %{rust_arches}
- rust-scroll_derive
ExclusiveArch: %{rust_arches}
- rust-scrypt
ExclusiveArch: %{rust_arches}
- rust-sct
ExclusiveArch: %{rust_arches}
- rust-sd
ExclusiveArch: %{rust_arches}
- rust-sd-notify
ExclusiveArch: %{rust_arches}
- rust-seahash
ExclusiveArch: %{rust_arches}
- rust-seahash3
ExclusiveArch: %{rust_arches}
- rust-secrecy
ExclusiveArch: %{rust_arches}
- rust-secret-service
ExclusiveArch: %{rust_arches}
- rust-self_cell
ExclusiveArch: %{rust_arches}
- rust-semver
ExclusiveArch: %{rust_arches}
- rust-semver-parser
ExclusiveArch: %{rust_arches}
- rust-semver-parser0.9
ExclusiveArch: %{rust_arches}
- rust-semver0.11
ExclusiveArch: %{rust_arches}
- rust-sequoia-autocrypt
ExclusiveArch: %{rust_arches}
- rust-sequoia-ipc
ExclusiveArch: %{rust_arches}
- rust-sequoia-keyring-linter
ExclusiveArch: %{rust_arches}
- rust-sequoia-net
ExclusiveArch: %{rust_arches}
- rust-sequoia-octopus-librnp
ExclusiveArch: %{rust_arches}
- rust-sequoia-openpgp
ExclusiveArch: %{rust_arches}
- rust-sequoia-openpgp-mt
ExclusiveArch: %{rust_arches}
- rust-sequoia-sop
ExclusiveArch: %{rust_arches}
- rust-sequoia-sq
ExclusiveArch: %{rust_arches}
- rust-sequoia-sqv
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_bser
ExclusiveArch: %{rust_arches}
- rust-serde_bytes
ExclusiveArch: %{rust_arches}
- rust-serde_cbor
ExclusiveArch: %{rust_arches}
- rust-serde_derive
ExclusiveArch: %{rust_arches}
- rust-serde_fmt
ExclusiveArch: %{rust_arches}
- rust-serde_ignored
ExclusiveArch: %{rust_arches}
- rust-serde_json
ExclusiveArch: %{rust_arches}
- rust-serde_qs
ExclusiveArch: %{rust_arches}
- rust-serde_repr
ExclusiveArch: %{rust_arches}
- rust-serde_stacker
ExclusiveArch: %{rust_arches}
- rust-serde_test
ExclusiveArch: %{rust_arches}
- rust-serde_url_params
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded
ExclusiveArch: %{rust_arches}
- rust-serde_with
ExclusiveArch: %{rust_arches}
- rust-serde_with_macros
ExclusiveArch: %{rust_arches}
- rust-serde_yaml
ExclusiveArch: %{rust_arches}
- rust-serial-core
ExclusiveArch: %{rust_arches}
- rust-serial_test
ExclusiveArch: %{rust_arches}
- rust-serial_test0.5
ExclusiveArch: %{rust_arches}
- rust-serial_test_derive
ExclusiveArch: %{rust_arches}
- rust-serial_test_derive0.5
ExclusiveArch: %{rust_arches}
- rust-servo-fontconfig
ExclusiveArch: %{rust_arches}
- rust-servo-fontconfig-sys
ExclusiveArch: %{rust_arches}
- rust-sev
ExclusiveArch: %{rust_arches}
- rust-sevctl
ExclusiveArch: x86_64
- rust-sha-1
ExclusiveArch: %{rust_arches}
- rust-sha-1_0.9
ExclusiveArch: %{rust_arches}
- rust-sha1
ExclusiveArch: %{rust_arches}
- rust-sha1_0.6
ExclusiveArch: %{rust_arches}
- rust-sha1_smol
ExclusiveArch: %{rust_arches}
- rust-sha1collisiondetection
ExclusiveArch: %{rust_arches}
- rust-sha2
ExclusiveArch: %{rust_arches}
- rust-sha2_0.9
ExclusiveArch: %{rust_arches}
- rust-sha3
ExclusiveArch: %{rust_arches}
- rust-sha3_0.9
ExclusiveArch: %{rust_arches}
- rust-shadow-rs
ExclusiveArch: %{rust_arches}
- rust-sharded-slab
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-shellwords
ExclusiveArch: %{rust_arches}
- rust-shlex
ExclusiveArch: %{rust_arches}
- rust-signal
ExclusiveArch: %{rust_arches}
- rust-signal-hook
ExclusiveArch: %{rust_arches}
- rust-signal-hook-mio
ExclusiveArch: %{rust_arches}
- rust-signal-hook-registry
ExclusiveArch: %{rust_arches}
- rust-signal-hook0.1
ExclusiveArch: %{rust_arches}
- rust-silver
ExclusiveArch: %{rust_arches}
- rust-simba
ExclusiveArch: %{rust_arches}
- rust-simd_helpers
ExclusiveArch: %{rust_arches}
- rust-simdutf8
ExclusiveArch: %{rust_arches}
- rust-similar
ExclusiveArch: %{rust_arches}
- rust-similar-asserts
ExclusiveArch: %{rust_arches}
- rust-simple-error
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-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-smallbitvec
ExclusiveArch: %{rust_arches}
- rust-smallstr
ExclusiveArch: %{rust_arches}
- rust-smallvec
ExclusiveArch: %{rust_arches}
- rust-smart-default
ExclusiveArch: %{rust_arches}
- rust-smawk
ExclusiveArch: %{rust_arches}
- rust-smithay-client-toolkit
ExclusiveArch: %{rust_arches}
- rust-smithay-clipboard
ExclusiveArch: %{rust_arches}
- rust-smol_str
ExclusiveArch: %{rust_arches}
- rust-snafu
ExclusiveArch: %{rust_arches}
- rust-snafu-derive
ExclusiveArch: %{rust_arches}
- rust-snake_case
ExclusiveArch: %{rust_arches}
- rust-socket2
ExclusiveArch: %{rust_arches}
- rust-socket2_0.3
ExclusiveArch: %{rust_arches}
- rust-sop
ExclusiveArch: %{rust_arches}
- rust-spin
ExclusiveArch: %{rust_arches}
- rust-spin0.5
ExclusiveArch: %{rust_arches}
- rust-spin_on
ExclusiveArch: %{rust_arches}
- rust-spinning_top
ExclusiveArch: %{rust_arches}
- rust-spki
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-battery
ExclusiveArch: %{rust_arches}
- rust-starship_module_config_derive
ExclusiveArch: %{rust_arches}
- rust-static_assertions
ExclusiveArch: %{rust_arches}
- rust-statistical
ExclusiveArch: %{rust_arches}
- rust-statrs
ExclusiveArch: %{rust_arches}
- rust-stb_truetype
ExclusiveArch: %{rust_arches}
- rust-stderrlog
ExclusiveArch: %{rust_arches}
- rust-stfu8
ExclusiveArch: %{rust_arches}
- rust-str_stack
ExclusiveArch: %{rust_arches}
- rust-stratisd_proc_macros
ExclusiveArch: %{rust_arches}
- rust-streaming-stats
ExclusiveArch: %{rust_arches}
- rust-streebog
ExclusiveArch: %{rust_arches}
- rust-streebog0.9
ExclusiveArch: %{rust_arches}
- rust-strict
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-strum0.21
ExclusiveArch: %{rust_arches}
- rust-strum_macros
ExclusiveArch: %{rust_arches}
- rust-strum_macros0.21
ExclusiveArch: %{rust_arches}
- rust-subprocess
ExclusiveArch: %{rust_arches}
- rust-subtle
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin-sys
ExclusiveArch: %{rust_arches}
- rust-supports-color
ExclusiveArch: %{rust_arches}
- rust-supports-hyperlinks
ExclusiveArch: %{rust_arches}
- rust-supports-unicode
ExclusiveArch: %{rust_arches}
- rust-sval
ExclusiveArch: %{rust_arches}
- rust-sval_derive
ExclusiveArch: %{rust_arches}
- rust-sval_json
ExclusiveArch: %{rust_arches}
- rust-svg
ExclusiveArch: %{rust_arches}
- rust-svg_metadata
ExclusiveArch: %{rust_arches}
- rust-svgtypes
ExclusiveArch: %{rust_arches}
- rust-sxd-document
ExclusiveArch: %{rust_arches}
- rust-syn
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-syntect4
ExclusiveArch: %{rust_arches}
- rust-sys-info
ExclusiveArch: %{rust_arches}
- rust-sys-locale
ExclusiveArch: %{rust_arches}
- rust-sysctl
ExclusiveArch: %{rust_arches}
- rust-sysinfo
ExclusiveArch: %{rust_arches}
- rust-sysinfo0.19
ExclusiveArch: %{rust_arches}
- rust-syslog
ExclusiveArch: %{rust_arches}
- rust-system-deps
ExclusiveArch: %{rust_arches}
- rust-system76_ectool
ExclusiveArch: %{rust_arches}
- rust-tabular
ExclusiveArch: %{rust_arches}
- rust-tabwriter
ExclusiveArch: %{rust_arches}
- rust-take
ExclusiveArch: %{rust_arches}
- rust-take_mut
ExclusiveArch: %{rust_arches}
- rust-tap
ExclusiveArch: %{rust_arches}
- rust-tar
ExclusiveArch: %{rust_arches}
- rust-target
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-temp_testdir
ExclusiveArch: %{rust_arches}
- rust-tempdir
ExclusiveArch: %{rust_arches}
- rust-tempfile
ExclusiveArch: %{rust_arches}
- rust-temporary
ExclusiveArch: %{rust_arches}
- rust-temptree
ExclusiveArch: %{rust_arches}
- rust-tendril
ExclusiveArch: %{rust_arches}
- rust-tera
ExclusiveArch: %{rust_arches}
- rust-term
ExclusiveArch: %{rust_arches}
- rust-term0.6
ExclusiveArch: %{rust_arches}
- rust-term_grid
ExclusiveArch: %{rust_arches}
- rust-term_size
ExclusiveArch: %{rust_arches}
- rust-termbg
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-termwiz
ExclusiveArch: %{rust_arches}
- rust-test-assembler
ExclusiveArch: %{rust_arches}
- rust-test-case
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-textwrap0.14
ExclusiveArch: %{rust_arches}
- rust-thiserror
ExclusiveArch: %{rust_arches}
- rust-thiserror-impl
ExclusiveArch: %{rust_arches}
- rust-thread-id
ExclusiveArch: %{rust_arches}
- rust-thread-tree
ExclusiveArch: %{rust_arches}
- rust-thread_local
ExclusiveArch: %{rust_arches}
- rust-threadpool
ExclusiveArch: %{rust_arches}
- rust-tiff
ExclusiveArch: %{rust_arches}
- rust-tiger
ExclusiveArch: %{rust_arches}
- rust-time
ExclusiveArch: %{rust_arches}
- rust-time-macros
ExclusiveArch: %{rust_arches}
- rust-time-macros-impl
ExclusiveArch: %{rust_arches}
- rust-time-macros0.1
ExclusiveArch: %{rust_arches}
- rust-time0.1
ExclusiveArch: %{rust_arches}
- rust-time0.2
ExclusiveArch: %{rust_arches}
- rust-timebomb
ExclusiveArch: %{rust_arches}
- rust-timer
ExclusiveArch: %{rust_arches}
- rust-timerfd
ExclusiveArch: %{rust_arches}
- rust-tiny-keccak
ExclusiveArch: %{rust_arches}
- rust-tiny_http
ExclusiveArch: %{rust_arches}
- rust-tiny_http0.6
ExclusiveArch: %{rust_arches}
- rust-tinystr
ExclusiveArch: %{rust_arches}
- rust-tinytemplate
ExclusiveArch: %{rust_arches}
- rust-tinyvec
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-compat
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-macros
ExclusiveArch: %{rust_arches}
- rust-tokio-macros0.2
ExclusiveArch: %{rust_arches}
- rust-tokio-mock-task
ExclusiveArch: %{rust_arches}
- rust-tokio-native-tls
ExclusiveArch: %{rust_arches}
- rust-tokio-openssl
ExclusiveArch: %{rust_arches}
- rust-tokio-openssl0.4
ExclusiveArch: %{rust_arches}
- rust-tokio-reactor
ExclusiveArch: %{rust_arches}
- rust-tokio-rustls
ExclusiveArch: %{rust_arches}
- rust-tokio-socks
ExclusiveArch: %{rust_arches}
- rust-tokio-socks0.3
ExclusiveArch: %{rust_arches}
- rust-tokio-stream
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.3
ExclusiveArch: %{rust_arches}
- rust-tokio-util0.6
ExclusiveArch: %{rust_arches}
- rust-tokio0.1
ExclusiveArch: %{rust_arches}
- rust-tokio0.2
ExclusiveArch: %{rust_arches}
- rust-toml
ExclusiveArch: %{rust_arches}
- rust-toml0.4
ExclusiveArch: %{rust_arches}
- rust-toml_edit
ExclusiveArch: %{rust_arches}
- rust-totp-lite
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-tracing-log
ExclusiveArch: %{rust_arches}
- rust-traitobject
ExclusiveArch: %{rust_arches}
- rust-trash
ExclusiveArch: %{rust_arches}
- rust-tree-sitter
ExclusiveArch: %{rust_arches}
- rust-tree-sitter-cli
ExclusiveArch: %{rust_arches}
- rust-tree-sitter-config
ExclusiveArch: %{rust_arches}
- rust-tree-sitter-highlight
ExclusiveArch: %{rust_arches}
- rust-tree-sitter-loader
ExclusiveArch: %{rust_arches}
- rust-tree-sitter-tags
ExclusiveArch: %{rust_arches}
- rust-treebitmap
ExclusiveArch: %{rust_arches}
- rust-treeline
ExclusiveArch: %{rust_arches}
- rust-trust-dns-native-tls
ExclusiveArch: %{rust_arches}
- rust-trust-dns-native-tls0.19
ExclusiveArch: %{rust_arches}
- rust-trust-dns-openssl
ExclusiveArch: %{rust_arches}
- rust-trust-dns-openssl0.19
ExclusiveArch: %{rust_arches}
- rust-trust-dns-proto
ExclusiveArch: %{rust_arches}
- rust-trust-dns-proto0.19
ExclusiveArch: %{rust_arches}
- rust-trust-dns-proto0.20
ExclusiveArch: %{rust_arches}
- rust-trust-dns-resolver
ExclusiveArch: %{rust_arches}
- rust-trust-dns-resolver0.19
ExclusiveArch: %{rust_arches}
- rust-trust-dns-resolver0.20
ExclusiveArch: %{rust_arches}
- rust-try-lock
ExclusiveArch: %{rust_arches}
- rust-trybuild
ExclusiveArch: %{rust_arches}
- rust-tss-esapi
ExclusiveArch: %{rust_arches}
- rust-tss-esapi-sys
ExclusiveArch: %{rust_arches}
- rust-ttf-parser
ExclusiveArch: %{rust_arches}
- rust-ttf-parser0.12
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-twox-hash
ExclusiveArch: %{rust_arches}
- rust-type-map
ExclusiveArch: %{rust_arches}
- rust-typeable
ExclusiveArch: %{rust_arches}
- rust-typed-arena
ExclusiveArch: %{rust_arches}
- rust-typed-arena1
ExclusiveArch: %{rust_arches}
- rust-typed-builder
ExclusiveArch: %{rust_arches}
- rust-typemap
ExclusiveArch: %{rust_arches}
- rust-typenum
ExclusiveArch: %{rust_arches}
- rust-typetag
ExclusiveArch: %{rust_arches}
- rust-typetag-impl
ExclusiveArch: %{rust_arches}
- rust-tzfile
ExclusiveArch: %{rust_arches}
- rust-ubyte
ExclusiveArch: %{rust_arches}
- rust-ucd-parse
ExclusiveArch: %{rust_arches}
- rust-ucd-trie
ExclusiveArch: %{rust_arches}
- rust-ucd-util
ExclusiveArch: %{rust_arches}
- rust-uefi-run
ExclusiveArch: %{rust_arches}
- rust-umask
ExclusiveArch: %{rust_arches}
- rust-uncased
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-langid
ExclusiveArch: %{rust_arches}
- rust-unic-langid-impl
ExclusiveArch: %{rust_arches}
- rust-unic-langid-macros
ExclusiveArch: %{rust_arches}
- rust-unic-langid-macros-impl
ExclusiveArch: %{rust_arches}
- rust-unic-locale
ExclusiveArch: %{rust_arches}
- rust-unic-locale-impl
ExclusiveArch: %{rust_arches}
- rust-unic-locale-macros
ExclusiveArch: %{rust_arches}
- rust-unic-locale-macros-impl
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-ident
ExclusiveArch: %{rust_arches}
- rust-unicode-linebreak
ExclusiveArch: %{rust_arches}
- rust-unicode-normalization
ExclusiveArch: %{rust_arches}
- rust-unicode-segmentation
ExclusiveArch: %{rust_arches}
- rust-unicode-truncate
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-utf8-width
ExclusiveArch: %{rust_arches}
- rust-utf8parse
ExclusiveArch: %{rust_arches}
- rust-uucore_procs
ExclusiveArch: %{rust_arches}
- rust-uuid
ExclusiveArch: %{rust_arches}
- rust-uuid0.7
ExclusiveArch: %{rust_arches}
- rust-uuid0.8
ExclusiveArch: %{rust_arches}
- rust-v_frame
ExclusiveArch: %{rust_arches}
- rust-value-bag
ExclusiveArch: %{rust_arches}
- rust-varbincode
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-vcsgraph
ExclusiveArch: %{rust_arches}
- rust-vec_map
ExclusiveArch: %{rust_arches}
- rust-vergen
ExclusiveArch: %{rust_arches}
- rust-vergen3
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-versions
ExclusiveArch: %{rust_arches}
- rust-vhost
ExclusiveArch: %{rust_arches}
- rust-vhost-user-backend
ExclusiveArch: %{rust_arches}
- rust-virtio-bindings
ExclusiveArch: x86_64 aarch64 ppc64le
- rust-virtio-queue
ExclusiveArch: %{rust_arches}
- rust-vm-memory
ExclusiveArch: %{rust_arches}
- rust-vmm-sys-util
ExclusiveArch: x86_64 aarch64 ppc64le
- rust-vmw_backdoor
ExclusiveArch: %{rust_arches}
- rust-void
ExclusiveArch: %{rust_arches}
- rust-vsprintf
ExclusiveArch: %{rust_arches}
- rust-vte
ExclusiveArch: %{rust_arches}
- rust-vte_generate_state_changes
ExclusiveArch: %{rust_arches}
- rust-vtparse
ExclusiveArch: %{rust_arches}
- rust-wait-timeout
ExclusiveArch: %{rust_arches}
- rust-waker-fn
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-wasmer_enumset
ExclusiveArch: %{rust_arches}
- rust-wasmer_enumset_derive
ExclusiveArch: %{rust_arches}
- rust-watchman_client
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-webbrowser
ExclusiveArch: %{rust_arches}
- rust-webpki
ExclusiveArch: %{rust_arches}
- rust-webpki-roots
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-wide
ExclusiveArch: %{rust_arches}
- rust-wild
ExclusiveArch: %{rust_arches}
- rust-winit
ExclusiveArch: %{rust_arches}
- rust-ws
ExclusiveArch: %{rust_arches}
- rust-wyz
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-xi-unicode
ExclusiveArch: %{rust_arches}
- rust-xkbcommon
ExclusiveArch: %{rust_arches}
- rust-xml-rs
ExclusiveArch: %{rust_arches}
- rust-xml5ever
ExclusiveArch: %{rust_arches}
- rust-xmlparser
ExclusiveArch: %{rust_arches}
- rust-xmlwriter
ExclusiveArch: %{rust_arches}
- rust-xxhash-c-sys
ExclusiveArch: %{rust_arches}
- rust-xxhash-rust
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-yansi
ExclusiveArch: %{rust_arches}
- rust-ybaas
ExclusiveArch: %{rust_arches}
- rust-yubibomb
ExclusiveArch: %{rust_arches}
- rust-zbase32
ExclusiveArch: %{rust_arches}
- rust-zbus
ExclusiveArch: %{rust_arches}
- rust-zbus1
ExclusiveArch: %{rust_arches}
- rust-zbus_macros
ExclusiveArch: %{rust_arches}
- rust-zbus_macros1
ExclusiveArch: %{rust_arches}
- rust-zbus_names
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-zmq
ExclusiveArch: %{rust_arches}
- rust-zmq-sys
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-zvariant2
ExclusiveArch: %{rust_arches}
- rust-zvariant_derive
ExclusiveArch: %{rust_arches}
- rust-zvariant_derive2
ExclusiveArch: %{rust_arches}
- s390utils
ExclusiveArch: s390 s390x
- sac
ExclusiveArch: %{java_arches} noarch
- safetyblanket
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- sagemath
ExclusiveArch: aarch64 x86_64
- sat4j
ExclusiveArch: %{java_arches} noarch
- sbcl
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- sbd
ExclusiveArch: i686 x86_64 s390x aarch64 ppc64le
- sblim-cim-client
ExclusiveArch: %{java_arches} noarch
- sblim-cim-client2
ExclusiveArch: %{java_arches} noarch
- sbsigntools
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- scala
ExclusiveArch: %{java_arches} noarch
- scalacheck
ExclusiveArch: %{java_arches} noarch
- scannotation
ExclusiveArch: %{java_arches} noarch
- sdljava
ExclusiveArch: %{java_arches}
- sdsl-lite
ExclusiveArch: %{power64} x86_64 aarch64
- 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
- sequence-library
ExclusiveArch: %{java_arches} noarch
- serp
ExclusiveArch: %{java_arches} noarch
- servicelog
ExclusiveArch: ppc %{power64}
- sgabios
ExclusiveArch: %{ix86} x86_64
- shaman
ExclusiveArch: %{java_arches} noarch
- 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
- sisu
ExclusiveArch: %{java_arches} noarch
- sisu-mojos
ExclusiveArch: %{java_arches} noarch
- skopeo
ExclusiveArch: %{go_arches}
- skychart
ExclusiveArch: %{fpc_arches}
- slf4j
ExclusiveArch: %{java_arches} noarch
- snakeyaml
ExclusiveArch: %{java_arches} noarch
- snapd
ExclusiveArch: %{?golang_arches}%{!?golang_arches:%{ix86} x86_64 %{arm} aarch64 ppc64le s390x}
- snip
ExclusiveArch: %{java_arches} noarch
- soup-sharp
ExclusiveArch: %{mono_arches}
- sparkleshare
ExclusiveArch: %{mono_arches}
- spec-version-maven-plugin
ExclusiveArch: %{java_arches} noarch
- spicctrl
ExclusiveArch: %{ix86} x86_64
- spice
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- spice-parent
ExclusiveArch: %{java_arches} noarch
- springlobby
ExclusiveArch: %{ix86} x86_64
- sqljet
ExclusiveArch: %{java_arches} noarch
- 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}
ExclusiveArch: %{rust_arches}
- string-template-maven-plugin
ExclusiveArch: %{java_arches} noarch
- stringtemplate
ExclusiveArch: %{java_arches} noarch
- stringtemplate4
ExclusiveArch: %{java_arches} noarch
- stripesnoop
ExclusiveArch: %{ix86} x86_64
- supercollider
ExclusiveArch: %{qt5_qtwebengine_arches}
- supermin
ExclusiveArch: %{kernel_arches}
- svnkit
ExclusiveArch: %{java_arches} noarch
- svt-av1
ExclusiveArch: x86_64
- svt-vp9
ExclusiveArch: x86_64
- swift-lang
ExclusiveArch: x86_64 aarch64
- swing-layout
ExclusiveArch: %{java_arches} noarch
- sysbench
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64le s390x
- syslinux
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- system-rules
ExclusiveArch: %{java_arches} noarch
- system76-keyboard-configurator
ExclusiveArch: %{rust_arches}
- t-digest
ExclusiveArch: %{java_arches} noarch
- taggle
ExclusiveArch: %{java_arches} noarch
- taglib-sharp
ExclusiveArch: %{mono_arches}
- tagsoup
ExclusiveArch: %{java_arches} noarch
- tarantool
ExclusiveArch: %{ix86} x86_64
- tboot
ExclusiveArch: %{ix86} x86_64
- tdlib
ExclusiveArch: x86_64 aarch64
- templates_parser
ExclusiveArch: %GPRbuild_arches
- ternimal
ExclusiveArch: %{rust_arches}
- test-interface
ExclusiveArch: %{java_arches} noarch
- testcloud
ExclusiveArch: %{kernel_arches} noarch
- testng
ExclusiveArch: %{java_arches} noarch
- texlive
ExclusiveArch: %{java_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}
- tomboy
ExclusiveArch: %{mono_arches}
- tomcat
ExclusiveArch: %{java_arches} noarch
- tomcat-taglibs-parent
ExclusiveArch: %{java_arches} noarch
- tomcatjss
ExclusiveArch: %{java_arches} noarch
- torbrowser-launcher
ExclusiveArch: %{ix86} x86_64
- treelayout
ExclusiveArch: %{java_arches} noarch
- trilead-ssh2
ExclusiveArch: %{java_arches} noarch
- truth
ExclusiveArch: %{java_arches} noarch
- tuned-profiles-nfv-host-bin
ExclusiveArch: %{ix86} x86_64
- uClibc
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
- ucx
ExclusiveArch: aarch64 ppc64le x86_64
- uglify-js
ExclusiveArch: %{nodejs_arches} noarch
- unetbootin
ExclusiveArch: %{ix86} x86_64
- univocity-parsers
ExclusiveArch: %{java_arches} noarch
- ursa-major
ExclusiveArch: noarch aarch64 ppc64le s390x x86_64
- usd
ExclusiveArch: aarch64 x86_64
- v8-314
ExclusiveArch: %{ix86} x86_64 %{arm} mips mipsel ppc ppc64
- valgrind
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64
- vboot-utils
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- vecmath1.2
ExclusiveArch: %{java_arches} noarch
- velocity
ExclusiveArch: %{java_arches} noarch
- vim-go
ExclusiveArch: %{?golang_arches}%{!?golang_arches:%{ix86} x86_64 %{arm}}
- vim-syntastic
ExclusiveArch: %{java_arches} noarch
- virt-p2v
ExclusiveArch: x86_64
- virt-v2v
ExclusiveArch: x86_64
- virtiofsd
ExclusiveArch: %{rust_arches}
- virtualbox-guest-additions
ExclusiveArch: i686 x86_64
- vkd3d
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- vmaf
ExclusiveArch: x86_64
- vmemcache
ExclusiveArch: x86_64 ppc64 ppc64le s390x aarch64
- voms-api-java
ExclusiveArch: %{java_arches} noarch
- voms-clients-java
ExclusiveArch: %{java_arches} noarch
- vrq
ExclusiveArch: %{ix86} x86_64
- wangle
ExclusiveArch: x86_64 aarch64 ppc64le
- warsow
ExclusiveArch: %{ix86} x86_64 %{arm}
- warsow-data
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{ix86} x86_64 %{arm}
- wasmedge
ExclusiveArch: x86_64 aarch64
- watchman
ExclusiveArch: x86_64 aarch64 ppc64le
- wdt
ExclusiveArch: x86_64 aarch64 ppc64le
- webkit2-sharp
ExclusiveArch: %mono_arches
- weld-parent
ExclusiveArch: %{java_arches} noarch
- why3
ExclusiveArch: %{java_arches}
- wine
ExclusiveArch: %{ix86} x86_64 aarch64
ExclusiveArch: %{ix86}
- wine-dxvk
ExclusiveArch: %{ix86} x86_64
- winetricks
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- writer2latex
ExclusiveArch: %{java_arches}
- ws-commons-util
ExclusiveArch: %{java_arches} noarch
- wsdl4j
ExclusiveArch: %{java_arches} noarch
- wxMaxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
- x2goclient
ExclusiveArch: x86_64
- xalan-j2
ExclusiveArch: %{java_arches} noarch
- xbean
ExclusiveArch: %{java_arches} noarch
- xe-guest-utilities-latest
ExclusiveArch: %{ix86} x86_64
- xen
ExclusiveArch: x86_64 aarch64
- xerces-j2
ExclusiveArch: %{java_arches} noarch
- xjparse
ExclusiveArch: %{java_arches} noarch
- xml-commons-apis
ExclusiveArch: %{java_arches} noarch
- xml-commons-resolver
ExclusiveArch: %{java_arches} noarch
- xml-maven-plugin
ExclusiveArch: %{java_arches} noarch
- xmlada
ExclusiveArch: %{GPRbuild_arches}
- xmlgraphics-commons
ExclusiveArch: %{java_arches} noarch
- xmlpull
ExclusiveArch: %{java_arches} noarch
- xmlstreambuffer
ExclusiveArch: %{java_arches} noarch
- xmltool
ExclusiveArch: %{java_arches} noarch
- xmlunit
ExclusiveArch: %{java_arches} noarch
- xmpcore
ExclusiveArch: %{java_arches} noarch
- xmvn
ExclusiveArch: %{java_arches} noarch
- xmvn-connector-ivy
ExclusiveArch: %{java_arches} noarch
- 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
- xstream
ExclusiveArch: %{java_arches} noarch
- xz-java
ExclusiveArch: %{java_arches} noarch
- yarnpkg
ExclusiveArch: %{nodejs_arches} noarch
- yuicompressor
ExclusiveArch: %{java_arches} noarch
- zcfan
ExclusiveArch: x86_64
- zeal
ExclusiveArch: %{qt5_qtwebengine_arches}
- zenon
ExclusiveArch: %{java_arches}
- zeromq-ada
ExclusiveArch: %{GPRbuild_arches}
- zig
ExclusiveArch: %{zig_arches}
- zlib-ada
ExclusiveArch: %{GPRbuild_arches}
- zlib-ng
ExclusiveArch: aarch64 i686 ppc64le s390x x86_64
- zola
ExclusiveArch: %{rust_arches}
1 year, 10 months
Architecture specific change in rpms/mumble.git
by githook-noreply@fedoraproject.org
The package rpms/mumble.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/mumble.git/commit/?id=b9f51d73720...
https://src.fedoraproject.org/cgit/rpms/mumble.git/commit/?id=d6249fe8f77....
Change:
+ExcludeArch: %{ix86}
+%ifarch x86_64
Thanks.
Full change:
============
commit b9f51d73720d04b626588157f795f0271110bcd9
Author: Carl George <carl(a)george.computer>
Date: Tue Aug 9 19:53:23 2022 -0500
Drop i686 build
diff --git a/mumble.spec b/mumble.spec
index 9004b93..fa90852 100644
--- a/mumble.spec
+++ b/mumble.spec
@@ -141,6 +141,8 @@ Provides: bundled(qqbonjour)
# modified version of vorbis's smallft
Provides: bundled(smallft)
+ExcludeArch: %{ix86}
+
%global _privatelibs libcelt0[.]so.*
%global __provides_exclude ^(%{_privatelibs})$
%global __requires_exclude ^(%{_privatelibs})$
@@ -343,6 +345,7 @@ fi
- Rename mumur to mumble-server
- Create mumble-server user with sysusers
- Run test suite on x86_64
+- Drop i686 build
* Thu Jul 21 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 1.3.4-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
commit d6249fe8f770a03940b3e95d4191cb8634b8669c
Author: Carl George <carl(a)george.computer>
Date: Tue Aug 9 19:53:07 2022 -0500
Run test suite on x86_64
diff --git a/mumble.spec b/mumble.spec
index ee78529..9004b93 100644
--- a/mumble.spec
+++ b/mumble.spec
@@ -1,3 +1,9 @@
+# Test suite only works on x86_64
+# https://github.com/mumble-voip/mumble/issues/3845
+%ifarch x86_64
+%bcond_without tests
+%endif
+
%global build_number 230
Name: mumble
@@ -94,6 +100,11 @@ BuildRequires: pipewire-devel
BuildRequires: portaudio-devel
BuildRequires: pulseaudio-libs-devel
+%if %{with tests}
+# src/tests/CMakeLists.txt
+BuildRequires: cmake(Qt5Test)
+%endif
+
# multiple files in 3rdparty/celt-0.7.0-src
BuildRequires: libogg-devel
@@ -218,6 +229,7 @@ sed \
%build
%cmake \
-DBUILD_NUMBER=%{build_number} \
+ %{?with_tests:-Dtests=ON} \
-Dupdate=OFF \
-Dbundled-opus=OFF \
-Dbundled-speex=OFF \
@@ -256,6 +268,10 @@ ln -s %{_sysconfdir}/murmur.ini %{buildroot}%{_sysconfdir}/mumble-server.ini
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/org.mumble_voip.mumble.appdata.xml
desktop-file-validate %{buildroot}%{_datadir}/applications/org.mumble_voip.mumble.desktop
+%if %{with tests}
+%ctest
+%endif
+
%pre server
# relocation of config file
@@ -326,6 +342,7 @@ fi
- Move murmur config file from /etc/murmur/murmur.ini to /etc/murmur.ini
- Rename mumur to mumble-server
- Create mumble-server user with sysusers
+- Run test suite on x86_64
* Thu Jul 21 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 1.3.4-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
commit 988b3a6d25cffde1da21549559368e6df26b9bfc
Author: Carl George <carl(a)george.computer>
Date: Tue Aug 9 19:52:58 2022 -0500
Create mumble-server user with sysusers
diff --git a/mumble-server.sysusers b/mumble-server.sysusers
new file mode 100644
index 0000000..7204ae9
--- /dev/null
+++ b/mumble-server.sysusers
@@ -0,0 +1 @@
+u mumble-server - "Mumble server (murmur)" /var/lib/mumble-server /sbin/nologin
diff --git a/mumble.spec b/mumble.spec
index 7dbfca2..ee78529 100644
--- a/mumble.spec
+++ b/mumble.spec
@@ -14,6 +14,7 @@ License: BSD and 0BSD and GPLv2+
URL: https://www.mumble.info
Source: https://github.com/mumble-voip/mumble/releases/download/v%{version}/mumbl...
Source1: murmur.service
+Source2: mumble-server.sysusers
# patches from the upstream master branch
# https://github.com/mumble-voip/mumble/commit/f4cea62ed95e4967d8591f25e903...
@@ -154,11 +155,13 @@ BuildRequires: libcap-devel
BuildRequires: pkgconfig(avahi-compat-libdns_sd)
BuildRequires: cmake(Qt5DBus)
-Requires(pre): shadow-utils
+BuildRequires: systemd-rpm-macros
+
# To be able to announce the presence of the server via Bonjour.
Recommends: avahi
%{?systemd_requires}
+%{?sysusers_requires_compat}
%description server
@@ -235,6 +238,7 @@ install -p -m 0644 %{_vpath_builddir}/src/mumble/*.qm %{buildroot}%{_datadir}/mu
install -D -p -m 0664 scripts/murmur.ini %{buildroot}%{_sysconfdir}/murmur.ini
install -D -p -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/murmur.service
+install -D -p -m 0644 %{SOURCE2} %{buildroot}%{_sysusersdir}/mumble-server.conf
install -D -p -m 0755 scripts/mumble-server-user-wrapper %{buildroot}%{_bindir}/mumble-server-user-wrapper
# dir for mumble-server.sqlite
@@ -259,11 +263,7 @@ if [ -f %{_sysconfdir}/murmur/murmur.ini ]; then
mv %{_sysconfdir}/murmur/murmur.ini %{_sysconfdir}/murmur.ini
fi
-getent group mumble-server >/dev/null || groupadd -r mumble-server
-getent passwd mumble-server >/dev/null || \
- useradd -r -g mumble-server -d %{_localstatedir}/lib/mumble-server/ -s /sbin/nologin \
- -c "Mumble-server (murmur) user" mumble-server
-exit 0
+%sysusers_create_compat %{SOURCE3}
%post server
@@ -302,6 +302,7 @@ exit 0
%{_mandir}/man1/mumble-server-user-wrapper.1*
%{_sbindir}/murmurd
%{_unitdir}/murmur.service
+%{_sysusersdir}/mumble-server.conf
%config(noreplace) %attr(664,mumble-server,mumble-server) %{_sysconfdir}/murmur.ini
%{_sysconfdir}/murmur/murmur.ini
%{_sysconfdir}/mumble-server.ini
@@ -324,6 +325,7 @@ exit 0
- Latest upstream, resolves rhbz#2036444
- Move murmur config file from /etc/murmur/murmur.ini to /etc/murmur.ini
- Rename mumur to mumble-server
+- Create mumble-server user with sysusers
* Thu Jul 21 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 1.3.4-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
commit c4ac1424f241ea796bb6c45c9216695e99f4fc5c
Author: Carl George <carl(a)george.computer>
Date: Tue Aug 9 19:52:40 2022 -0500
Rename mumur to mumble-server
diff --git a/mumble.spec b/mumble.spec
index a34099d..7dbfca2 100644
--- a/mumble.spec
+++ b/mumble.spec
@@ -139,9 +139,14 @@ Mumble is an Open Source, low-latency and high-quality voice-chat program
written on top of Qt and Opus.
-%package -n murmur
+%package server
Summary: Mumble voice chat server
-Provides: mumble-server = %{version}-%{release}
+
+# Renamed from murmur to mumble-server, per upstream preference. Obsoletes
+# added in F37, can be removed in F39.
+# https://github.com/mumble-voip/mumble/issues/5436#issuecomment-1084917505
+Provides: murmur = %{version}-%{release}
+Obsoletes: murmur < 1.3.4-10
# src/murmur/CMakeLists.txt
BuildRequires: cmake(Qt5Sql)
@@ -156,9 +161,9 @@ Recommends: avahi
%{?systemd_requires}
-%description -n murmur
-Murmur(also called mumble-server) is part of the VoIP suite Mumble primarily
-aimed at gamers. Murmur is the server component of the suite.
+%description server
+mumble-server (also called murmur) is part of the VoIP suite Mumble primarily
+aimed at gamers.
%package plugins
@@ -248,7 +253,7 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/org.mumble_voi
desktop-file-validate %{buildroot}%{_datadir}/applications/org.mumble_voip.mumble.desktop
-%pre -n murmur
+%pre server
# relocation of config file
if [ -f %{_sysconfdir}/murmur/murmur.ini ]; then
mv %{_sysconfdir}/murmur/murmur.ini %{_sysconfdir}/murmur.ini
@@ -261,15 +266,15 @@ getent passwd mumble-server >/dev/null || \
exit 0
-%post -n murmur
+%post server
%systemd_post murmur.service
-%preun -n murmur
+%preun server
%systemd_preun murmur.service
-%postun -n murmur
+%postun server
%systemd_postun_with_restart murmur.service
@@ -288,7 +293,7 @@ exit 0
%{_libdir}/mumble/libcelt0.so.0.7.0
-%files -n murmur
+%files server
%license LICENSE
%doc README.md CHANGES
%{_bindir}/mumble-server
@@ -318,6 +323,7 @@ exit 0
* Tue Aug 09 2022 Carl George <carl(a)george.computer> - 1.4.230-1
- Latest upstream, resolves rhbz#2036444
- Move murmur config file from /etc/murmur/murmur.ini to /etc/murmur.ini
+- Rename mumur to mumble-server
* Thu Jul 21 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 1.3.4-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
commit 01a80884b4ceb7e624672907d9286dff8cc8ee74
Author: Carl George <carl(a)george.computer>
Date: Tue Aug 9 19:51:50 2022 -0500
Move murmur config file from /etc/murmur/murmur.ini to /etc/murmur.ini
diff --git a/mumble.spec b/mumble.spec
index 4f67ca8..a34099d 100644
--- a/mumble.spec
+++ b/mumble.spec
@@ -228,7 +228,7 @@ sed \
install -d -m 0755 %{buildroot}%{_datadir}/mumble/translations
install -p -m 0644 %{_vpath_builddir}/src/mumble/*.qm %{buildroot}%{_datadir}/mumble/translations
-install -D -p -m 0664 scripts/murmur.ini %{buildroot}%{_sysconfdir}/murmur/murmur.ini
+install -D -p -m 0664 scripts/murmur.ini %{buildroot}%{_sysconfdir}/murmur.ini
install -D -p -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/murmur.service
install -D -p -m 0755 scripts/mumble-server-user-wrapper %{buildroot}%{_bindir}/mumble-server-user-wrapper
@@ -238,7 +238,9 @@ mkdir -p %{buildroot}%{_localstatedir}/lib/mumble-server/
# compatibility symlinks
mkdir -p %{buildroot}%{_sbindir}
ln -s %{_bindir}/mumble-server %{buildroot}%{_sbindir}/murmurd
-ln -s murmur/murmur.ini %{buildroot}%{_sysconfdir}/mumble-server.ini
+mkdir -p %{buildroot}%{_sysconfdir}/murmur
+ln -s %{_sysconfdir}/murmur.ini %{buildroot}%{_sysconfdir}/murmur/murmur.ini
+ln -s %{_sysconfdir}/murmur.ini %{buildroot}%{_sysconfdir}/mumble-server.ini
%check
@@ -247,6 +249,11 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.mumble_voip.mumbl
%pre -n murmur
+# relocation of config file
+if [ -f %{_sysconfdir}/murmur/murmur.ini ]; then
+ mv %{_sysconfdir}/murmur/murmur.ini %{_sysconfdir}/murmur.ini
+fi
+
getent group mumble-server >/dev/null || groupadd -r mumble-server
getent passwd mumble-server >/dev/null || \
useradd -r -g mumble-server -d %{_localstatedir}/lib/mumble-server/ -s /sbin/nologin \
@@ -290,7 +297,8 @@ exit 0
%{_mandir}/man1/mumble-server-user-wrapper.1*
%{_sbindir}/murmurd
%{_unitdir}/murmur.service
-%config(noreplace) %attr(664,mumble-server,mumble-server) %{_sysconfdir}/murmur/murmur.ini
+%config(noreplace) %attr(664,mumble-server,mumble-server) %{_sysconfdir}/murmur.ini
+%{_sysconfdir}/murmur/murmur.ini
%{_sysconfdir}/mumble-server.ini
%dir %attr(-,mumble-server,mumble-server) %{_localstatedir}/lib/mumble-server/
@@ -309,6 +317,7 @@ exit 0
%changelog
* Tue Aug 09 2022 Carl George <carl(a)george.computer> - 1.4.230-1
- Latest upstream, resolves rhbz#2036444
+- Move murmur config file from /etc/murmur/murmur.ini to /etc/murmur.ini
* Thu Jul 21 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 1.3.4-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
diff --git a/murmur.service b/murmur.service
index 440500c..d6b3b1d 100644
--- a/murmur.service
+++ b/murmur.service
@@ -7,7 +7,7 @@ After=network.target
User=mumble-server
Group=mumble-server
Type=exec
-ExecStart=/usr/bin/mumble-server -fg -ini /etc/murmur/murmur.ini
+ExecStart=/usr/bin/mumble-server -fg -ini /etc/murmur.ini
Restart=always
PrivateDevices=true
PrivateTmp=true
commit 89615466e8a7839848b0222fc84d37ca01289a64
Author: Carl George <carl(a)george.computer>
Date: Tue Aug 9 19:47:16 2022 -0500
Latest upstream, resolves rhbz#2036444
diff --git a/0001-Added-DBus-calls-to-activate-and-deactivate-push-to-talk.patch b/0001-Added-DBus-calls-to-activate-and-deactivate-push-to-talk.patch
deleted file mode 100644
index 151cbb3..0000000
--- a/0001-Added-DBus-calls-to-activate-and-deactivate-push-to-talk.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 03dbea56f650bba4f1aa0c54d02b6e8c3639d04f Mon Sep 17 00:00:00 2001
-From: Robby Zampino <robozman(a)gmail.com>
-Date: Mon, 22 Apr 2019 22:04:36 -0600
-Subject: [PATCH] Added DBus calls to activate and deactivate push to talk
-
----
- src/mumble/DBus.cpp | 8 ++++++++
- src/mumble/DBus.h | 2 ++
- 2 files changed, 10 insertions(+)
-
-diff --git a/src/mumble/DBus.cpp b/src/mumble/DBus.cpp
-index 6fcde04b..5260e1b2 100644
---- a/src/mumble/DBus.cpp
-+++ b/src/mumble/DBus.cpp
-@@ -97,3 +97,11 @@ bool MumbleDBus::isSelfMuted() {
- bool MumbleDBus::isSelfDeaf() {
- return g.s.bDeaf;
- }
-+
-+void MumbleDBus::startTalking() {
-+ g.mw->on_PushToTalk_triggered(true, QVariant());
-+}
-+
-+void MumbleDBus::stopTalking () {
-+ g.mw->on_PushToTalk_triggered(false, QVariant());
-+}
-diff --git a/src/mumble/DBus.h b/src/mumble/DBus.h
-index 1505017c..bd28e5f0 100644
---- a/src/mumble/DBus.h
-+++ b/src/mumble/DBus.h
-@@ -28,6 +28,8 @@ class MumbleDBus : public QDBusAbstractAdaptor {
- void setSelfDeaf(bool deafen);
- bool isSelfMuted();
- bool isSelfDeaf();
-+ void startTalking();
-+ void stopTalking();
- };
-
- #endif
---
-2.26.2
-
diff --git a/0001-BUILD-crypto-Migrate-to-OpenSSL-3.0-compatible-API.patch b/0001-BUILD-crypto-Migrate-to-OpenSSL-3.0-compatible-API.patch
new file mode 100644
index 0000000..3615182
--- /dev/null
+++ b/0001-BUILD-crypto-Migrate-to-OpenSSL-3.0-compatible-API.patch
@@ -0,0 +1,555 @@
+From 026d36eba37cd3611f19002def92a92275009ebf Mon Sep 17 00:00:00 2001
+From: Terry Geng <terry(a)terriex.com>
+Date: Mon, 6 Dec 2021 10:45:11 -0500
+Subject: [PATCH 1/9] BUILD(crypto): Migrate to OpenSSL 3.0-compatible API
+
+OpenSSL 3.0 deprecated several low-level APIs and the usage of them
+caused errors/warnings that prevent the binary from being built against
+OpenSSL 3.0.
+Some primitive efforts have been made in #5317 but were incomplete.
+This commit follows https://www.openssl.org/docs/man3.0/man7/migration_guide.html,
+https://code.woboq.org/qt6/qtopcua/src/opcua/x509/qopcuakeypair_openssl.cpp.html,
+and clears all errors/warnings related to the usage of deprecated APIs.
+
+Fixes #5277
+Fixes #4266
+
+(cherry picked from commit f4cea62ed95e4967d8591f25e903f5e8fc2e2a30)
+---
+ src/SelfSignedCertificate.cpp | 235 +++++++++++-----------------------
+ src/SelfSignedCertificate.h | 5 +
+ src/crypto/CryptStateOCB2.cpp | 53 +++++---
+ src/crypto/CryptStateOCB2.h | 9 +-
+ 4 files changed, 121 insertions(+), 181 deletions(-)
+
+diff --git a/src/SelfSignedCertificate.cpp b/src/SelfSignedCertificate.cpp
+index a77e5fad9..ea0dec4cc 100644
+--- a/src/SelfSignedCertificate.cpp
++++ b/src/SelfSignedCertificate.cpp
+@@ -5,8 +5,6 @@
+
+ #include "SelfSignedCertificate.h"
+
+-#include <openssl/x509v3.h>
+-
+ #define SSL_STRING(x) QString::fromLatin1(x).toUtf8().data()
+
+ static int add_ext(X509 *crt, int nid, char *value) {
+@@ -28,108 +26,86 @@ static int add_ext(X509 *crt, int nid, char *value) {
+ return 1;
+ }
+
+-bool SelfSignedCertificate::generate(CertificateType certificateType, QString clientCertName, QString clientCertEmail,
+- QSslCertificate &qscCert, QSslKey &qskKey) {
+- bool ok = true;
+- X509 *x509 = nullptr;
+- EVP_PKEY *pkey = nullptr;
+- RSA *rsa = nullptr;
+- BIGNUM *e = nullptr;
+- X509_NAME *name = nullptr;
+- ASN1_INTEGER *serialNumber = nullptr;
+- ASN1_TIME *notBefore = nullptr;
+- ASN1_TIME *notAfter = nullptr;
+- QString commonName;
+- bool isServerCert = certificateType == CertificateTypeServerCertificate;
+-
+- if (CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON) == -1) {
+- ok = false;
+- goto out;
++EVP_PKEY *SelfSignedCertificate::generate_rsa_keypair() {
++ EVP_PKEY *pkey = EVP_PKEY_new();
++ if (!pkey) {
++ return nullptr;
+ }
+
+- x509 = X509_new();
+- if (!x509) {
+- ok = false;
+- goto out;
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ EVP_PKEY_CTX *ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_RSA, nullptr);
++ if (!ctx) {
++ return nullptr;
+ }
+-
+- pkey = EVP_PKEY_new();
+- if (!pkey) {
+- ok = false;
+- goto out;
++ if (EVP_PKEY_keygen_init(ctx) <= 0) {
++ return nullptr;
+ }
+-
+- rsa = RSA_new();
++ if (EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, 2048) <= 0) {
++ return nullptr;
++ }
++ if (EVP_PKEY_keygen(ctx, &pkey) <= 0) {
++ return nullptr;
++ }
++ EVP_PKEY_CTX_free(ctx);
++#else
++ RSA *rsa = RSA_new();
++ BIGNUM *e = BN_new();
+ if (!rsa) {
+- ok = false;
+- goto out;
++ return nullptr;
+ }
+-
+- e = BN_new();
+ if (!e) {
+- ok = false;
+- goto out;
++ return nullptr;
+ }
+ if (BN_set_word(e, 65537) == 0) {
+- ok = false;
+- goto out;
++ return nullptr;
+ }
+-
+ if (RSA_generate_key_ex(rsa, 2048, e, nullptr) == 0) {
+- ok = false;
+- goto out;
++ return nullptr;
+ }
+-
+ if (EVP_PKEY_assign_RSA(pkey, rsa) == 0) {
+- ok = false;
+- goto out;
++ return nullptr;
+ }
++ BN_free(e);
++ RSA_free(rsa);
++#endif
++ return pkey;
++}
+
+- if (X509_set_version(x509, 2) == 0) {
+- ok = false;
+- goto out;
++#define CHECK(statement) \
++ if (!(statement)) { \
++ ok = false; \
++ goto out; \
+ }
+
+- serialNumber = X509_get_serialNumber(x509);
+- if (!serialNumber) {
+- ok = false;
+- goto out;
+- }
+- if (ASN1_INTEGER_set(serialNumber, 1) == 0) {
+- ok = false;
+- goto out;
+- }
+
+- notBefore = X509_get_notBefore(x509);
+- if (!notBefore) {
+- ok = false;
+- goto out;
+- }
+- if (!X509_gmtime_adj(notBefore, 0)) {
+- ok = false;
+- goto out;
+- }
++bool SelfSignedCertificate::generate(CertificateType certificateType, QString clientCertName, QString clientCertEmail,
++ QSslCertificate &qscCert, QSslKey &qskKey) {
++ bool ok = true;
++ EVP_PKEY *pkey = nullptr;
++ X509 *x509 = nullptr;
++ X509_NAME *name = nullptr;
++ ASN1_INTEGER *serialNumber = nullptr;
++ ASN1_TIME *notBefore = nullptr;
++ ASN1_TIME *notAfter = nullptr;
++ QString commonName;
++ bool isServerCert = certificateType == CertificateTypeServerCertificate;
+
+- notAfter = X509_get_notAfter(x509);
+- if (!notAfter) {
+- ok = false;
+- goto out;
+- }
+- if (!X509_gmtime_adj(notAfter, 60 * 60 * 24 * 365 * 20)) {
+- ok = false;
+- goto out;
+- }
++ // In Qt 5.15, a class was added to wrap up the procedures of generating a self-signed certificate.
++ // See https://doc.qt.io/qt-5/qopcuax509certificatesigningrequest.html.
++ // We should consider migrating to this class after switching to Qt 5.15.
+
+- if (X509_set_pubkey(x509, pkey) == 0) {
+- ok = false;
+- goto out;
+- }
++ CHECK(pkey = generate_rsa_keypair());
+
+- name = X509_get_subject_name(x509);
+- if (!name) {
+- ok = false;
+- goto out;
+- }
++ CHECK(x509 = X509_new());
++ CHECK(X509_set_version(x509, 2));
++ CHECK(serialNumber = X509_get_serialNumber(x509));
++ CHECK(ASN1_INTEGER_set(serialNumber, 1));
++ CHECK(notBefore = X509_get_notBefore(x509));
++ CHECK(X509_gmtime_adj(notBefore, 0));
++ CHECK(notAfter = X509_get_notAfter(x509));
++ CHECK(X509_gmtime_adj(notAfter, 60 * 60 * 24 * 365 * 20))
++ CHECK(X509_set_pubkey(x509, pkey));
++ CHECK(name = X509_get_subject_name(x509));
+
+ if (isServerCert) {
+ commonName = QLatin1String("Murmur Autogenerated Certificate v2");
+@@ -141,120 +117,63 @@ bool SelfSignedCertificate::generate(CertificateType certificateType, QString cl
+ }
+ }
+
+- if (X509_NAME_add_entry_by_txt(name, "CN", MBSTRING_UTF8,
+- reinterpret_cast< unsigned char * >(commonName.toUtf8().data()), -1, -1, 0)
+- == 0) {
+- ok = false;
+- goto out;
+- }
++ CHECK(X509_NAME_add_entry_by_txt(name, "CN", MBSTRING_UTF8,
++ reinterpret_cast< unsigned char * >(commonName.toUtf8().data()), -1, -1, 0));
+
+- if (X509_set_issuer_name(x509, name) == 0) {
+- ok = false;
+- goto out;
+- }
++ CHECK(X509_set_issuer_name(x509, name));
+
+- if (add_ext(x509, NID_basic_constraints, SSL_STRING("critical,CA:FALSE")) == 0) {
+- ok = false;
+- goto out;
+- }
++ CHECK(add_ext(x509, NID_basic_constraints, SSL_STRING("critical,CA:FALSE")));
+
+ if (isServerCert) {
+- if (add_ext(x509, NID_ext_key_usage, SSL_STRING("serverAuth,clientAuth")) == 0) {
+- ok = false;
+- goto out;
+- }
++ CHECK(add_ext(x509, NID_ext_key_usage, SSL_STRING("serverAuth,clientAuth")))
+ } else {
+- if (add_ext(x509, NID_ext_key_usage, SSL_STRING("clientAuth")) == 0) {
+- ok = false;
+- goto out;
+- }
++ CHECK(add_ext(x509, NID_ext_key_usage, SSL_STRING("clientAuth")));
+ }
+
+- if (add_ext(x509, NID_subject_key_identifier, SSL_STRING("hash")) == 0) {
+- ok = false;
+- goto out;
+- }
++ CHECK(add_ext(x509, NID_subject_key_identifier, SSL_STRING("hash")));
+
+ if (isServerCert) {
+- if (add_ext(x509, NID_netscape_comment, SSL_STRING("Generated from murmur")) == 0) {
+- ok = false;
+- goto out;
+- }
++ CHECK(add_ext(x509, NID_netscape_comment, SSL_STRING("Generated from murmur")));
+ } else {
+- if (add_ext(x509, NID_netscape_comment, SSL_STRING("Generated by Mumble")) == 0) {
+- ok = false;
+- goto out;
+- }
++ CHECK(add_ext(x509, NID_netscape_comment, SSL_STRING("Generated by Mumble")));
+ }
+
+ if (!isServerCert) {
+ if (!clientCertEmail.trimmed().isEmpty()) {
+- if (add_ext(x509, NID_subject_alt_name,
+- QString::fromLatin1("email:%1").arg(clientCertEmail).toUtf8().data())
+- == 0) {
+- ok = false;
+- goto out;
+- }
++ CHECK(add_ext(x509, NID_subject_alt_name,
++ QString::fromLatin1("email:%1").arg(clientCertEmail).toUtf8().data()));
+ }
+ }
+
+- if (X509_sign(x509, pkey, EVP_sha1()) == 0) {
+- ok = false;
+- goto out;
+- }
++ CHECK(X509_sign(x509, pkey, EVP_sha1()));
+
+ {
+ QByteArray crt;
+ int len = i2d_X509(x509, nullptr);
+- if (len <= 0) {
+- ok = false;
+- goto out;
+- }
++ CHECK(len > 0);
+ crt.resize(len);
+
+ unsigned char *dptr = reinterpret_cast< unsigned char * >(crt.data());
+- if (i2d_X509(x509, &dptr) != len) {
+- ok = false;
+- goto out;
+- }
++ CHECK(i2d_X509(x509, &dptr) == len);
+
+ qscCert = QSslCertificate(crt, QSsl::Der);
+- if (qscCert.isNull()) {
+- ok = false;
+- goto out;
+- }
++ CHECK(!qscCert.isNull());
+ }
+
+ {
+ QByteArray key;
+ int len = i2d_PrivateKey(pkey, nullptr);
+- if (len <= 0) {
+- ok = false;
+- goto out;
+- }
++ CHECK(len > 0);
+ key.resize(len);
+
+ unsigned char *dptr = reinterpret_cast< unsigned char * >(key.data());
+- if (i2d_PrivateKey(pkey, &dptr) != len) {
+- ok = false;
+- goto out;
+- }
++ CHECK(i2d_PrivateKey(pkey, &dptr) == len);
+
+ qskKey = QSslKey(key, QSsl::Rsa, QSsl::Der);
+- if (qskKey.isNull()) {
+- ok = false;
+- goto out;
+- }
++ CHECK(!qskKey.isNull());
+ }
+
+ out:
+- if (e) {
+- BN_free(e);
+- }
+- // We only need to free the pkey pointer,
+- // not the RSA pointer. We have assigned
+- // our RSA key to pkey, and it will be freed
+- // once we free pkey.
+ if (pkey) {
+ EVP_PKEY_free(pkey);
+ }
+diff --git a/src/SelfSignedCertificate.h b/src/SelfSignedCertificate.h
+index b85a8752b..7c5f59e9c 100644
+--- a/src/SelfSignedCertificate.h
++++ b/src/SelfSignedCertificate.h
+@@ -6,6 +6,10 @@
+ #ifndef MUMBLE_SELFSIGNEDCERTIFICATE_H_
+ #define MUMBLE_SELFSIGNEDCERTIFICATE_H_
+
++#include <openssl/evp.h>
++#include <openssl/rsa.h>
++#include <openssl/x509v3.h>
++
+ #include <QtCore/QString>
+ #include <QtNetwork/QSslCertificate>
+ #include <QtNetwork/QSslKey>
+@@ -16,6 +20,7 @@ class SelfSignedCertificate {
+ private:
+ static bool generate(CertificateType certificateType, QString clientCertName, QString clientCertEmail,
+ QSslCertificate &qscCert, QSslKey &qskKey);
++ static EVP_PKEY *generate_rsa_keypair();
+
+ public:
+ static bool generateMumbleCertificate(QString name, QString email, QSslCertificate &qscCert, QSslKey &qskKey);
+diff --git a/src/crypto/CryptStateOCB2.cpp b/src/crypto/CryptStateOCB2.cpp
+index 2176d6488..640fdedac 100644
+--- a/src/crypto/CryptStateOCB2.cpp
++++ b/src/crypto/CryptStateOCB2.cpp
+@@ -30,7 +30,7 @@
+ #include <cstring>
+ #include <openssl/rand.h>
+
+-CryptStateOCB2::CryptStateOCB2() : CryptState() {
++CryptStateOCB2::CryptStateOCB2() : CryptState(), enc_ctx(EVP_CIPHER_CTX_new()), dec_ctx(EVP_CIPHER_CTX_new()) {
+ for (int i = 0; i < 0x100; i++)
+ decrypt_history[i] = 0;
+ memset(raw_key, 0, AES_KEY_SIZE_BYTES);
+@@ -38,6 +38,11 @@ CryptStateOCB2::CryptStateOCB2() : CryptState() {
+ memset(decrypt_iv, 0, AES_BLOCK_SIZE);
+ }
+
++CryptStateOCB2::~CryptStateOCB2() noexcept {
++ EVP_CIPHER_CTX_free(enc_ctx);
++ EVP_CIPHER_CTX_free(dec_ctx);
++}
++
+ bool CryptStateOCB2::isValid() const {
+ return bInit;
+ }
+@@ -46,8 +51,6 @@ void CryptStateOCB2::genKey() {
+ CryptographicRandom::fillBuffer(raw_key, AES_KEY_SIZE_BYTES);
+ CryptographicRandom::fillBuffer(encrypt_iv, AES_BLOCK_SIZE);
+ CryptographicRandom::fillBuffer(decrypt_iv, AES_BLOCK_SIZE);
+- AES_set_encrypt_key(raw_key, AES_KEY_SIZE_BITS, &encrypt_key);
+- AES_set_decrypt_key(raw_key, AES_KEY_SIZE_BITS, &decrypt_key);
+ bInit = true;
+ }
+
+@@ -56,8 +59,6 @@ bool CryptStateOCB2::setKey(const std::string &rkey, const std::string &eiv, con
+ memcpy(raw_key, rkey.data(), AES_KEY_SIZE_BYTES);
+ memcpy(encrypt_iv, eiv.data(), AES_BLOCK_SIZE);
+ memcpy(decrypt_iv, div.data(), AES_BLOCK_SIZE);
+- AES_set_encrypt_key(raw_key, AES_KEY_SIZE_BITS, &encrypt_key);
+- AES_set_decrypt_key(raw_key, AES_KEY_SIZE_BITS, &decrypt_key);
+ bInit = true;
+ return true;
+ }
+@@ -256,10 +257,24 @@ static void inline ZERO(keyblock &block) {
+ block[i] = 0;
+ }
+
+-#define AESencrypt(src, dst, key) \
+- AES_encrypt(reinterpret_cast< const unsigned char * >(src), reinterpret_cast< unsigned char * >(dst), key);
+-#define AESdecrypt(src, dst, key) \
+- AES_decrypt(reinterpret_cast< const unsigned char * >(src), reinterpret_cast< unsigned char * >(dst), key);
++#define AESencrypt(src, dst, key) \
++ { \
++ int outlen = 0; \
++ EVP_EncryptInit_ex(enc_ctx, EVP_aes_128_ecb(), NULL, key, NULL); \
++ EVP_CIPHER_CTX_set_padding(enc_ctx, 0); \
++ EVP_EncryptUpdate(enc_ctx, reinterpret_cast< unsigned char * >(dst), &outlen, \
++ reinterpret_cast< const unsigned char * >(src), AES_BLOCK_SIZE); \
++ EVP_EncryptFinal_ex(enc_ctx, reinterpret_cast< unsigned char * >(dst + outlen), &outlen); \
++ }
++#define AESdecrypt(src, dst, key) \
++ { \
++ int outlen = 0; \
++ EVP_DecryptInit_ex(dec_ctx, EVP_aes_128_ecb(), NULL, key, NULL); \
++ EVP_CIPHER_CTX_set_padding(dec_ctx, 0); \
++ EVP_DecryptUpdate(dec_ctx, reinterpret_cast< unsigned char * >(dst), &outlen, \
++ reinterpret_cast< const unsigned char * >(src), AES_BLOCK_SIZE); \
++ EVP_DecryptFinal_ex(dec_ctx, reinterpret_cast< unsigned char * >(dst + outlen), &outlen); \
++ }
+
+ bool CryptStateOCB2::ocb_encrypt(const unsigned char *plain, unsigned char *encrypted, unsigned int len,
+ const unsigned char *nonce, unsigned char *tag, bool modifyPlainOnXEXStarAttack) {
+@@ -267,7 +282,7 @@ bool CryptStateOCB2::ocb_encrypt(const unsigned char *plain, unsigned char *encr
+ bool success = true;
+
+ // Initialize
+- AESencrypt(nonce, delta, &encrypt_key);
++ AESencrypt(nonce, delta, raw_key);
+ ZERO(checksum);
+
+ while (len > AES_BLOCK_SIZE) {
+@@ -299,7 +314,7 @@ bool CryptStateOCB2::ocb_encrypt(const unsigned char *plain, unsigned char *encr
+ if (flipABit) {
+ *reinterpret_cast< unsigned char * >(tmp) ^= 1;
+ }
+- AESencrypt(tmp, tmp, &encrypt_key);
++ AESencrypt(tmp, tmp, raw_key);
+ XOR(reinterpret_cast< subblock * >(encrypted), delta, tmp);
+ XOR(checksum, checksum, reinterpret_cast< const subblock * >(plain));
+ if (flipABit) {
+@@ -315,7 +330,7 @@ bool CryptStateOCB2::ocb_encrypt(const unsigned char *plain, unsigned char *encr
+ ZERO(tmp);
+ tmp[BLOCKSIZE - 1] = SWAPPED(len * 8);
+ XOR(tmp, tmp, delta);
+- AESencrypt(tmp, pad, &encrypt_key);
++ AESencrypt(tmp, pad, raw_key);
+ memcpy(tmp, plain, len);
+ memcpy(reinterpret_cast< unsigned char * >(tmp) + len, reinterpret_cast< const unsigned char * >(pad) + len,
+ AES_BLOCK_SIZE - len);
+@@ -325,7 +340,7 @@ bool CryptStateOCB2::ocb_encrypt(const unsigned char *plain, unsigned char *encr
+
+ S3(delta);
+ XOR(tmp, delta, checksum);
+- AESencrypt(tmp, tag, &encrypt_key);
++ AESencrypt(tmp, tag, raw_key);
+
+ return success;
+ }
+@@ -336,13 +351,13 @@ bool CryptStateOCB2::ocb_decrypt(const unsigned char *encrypted, unsigned char *
+ bool success = true;
+
+ // Initialize
+- AESencrypt(nonce, delta, &encrypt_key);
++ AESencrypt(nonce, delta, raw_key);
+ ZERO(checksum);
+
+ while (len > AES_BLOCK_SIZE) {
+ S2(delta);
+ XOR(tmp, delta, reinterpret_cast< const subblock * >(encrypted));
+- AESdecrypt(tmp, tmp, &decrypt_key);
++ AESdecrypt(tmp, tmp, raw_key);
+ XOR(reinterpret_cast< subblock * >(plain), delta, tmp);
+ XOR(checksum, checksum, reinterpret_cast< const subblock * >(plain));
+ len -= AES_BLOCK_SIZE;
+@@ -354,7 +369,7 @@ bool CryptStateOCB2::ocb_decrypt(const unsigned char *encrypted, unsigned char *
+ ZERO(tmp);
+ tmp[BLOCKSIZE - 1] = SWAPPED(len * 8);
+ XOR(tmp, tmp, delta);
+- AESencrypt(tmp, pad, &encrypt_key);
++ AESencrypt(tmp, pad, raw_key);
+ memset(tmp, 0, AES_BLOCK_SIZE);
+ memcpy(tmp, encrypted, len);
+ XOR(tmp, tmp, pad);
+@@ -372,7 +387,7 @@ bool CryptStateOCB2::ocb_decrypt(const unsigned char *encrypted, unsigned char *
+
+ S3(delta);
+ XOR(tmp, delta, checksum);
+- AESencrypt(tmp, tag, &encrypt_key);
++ AESencrypt(tmp, tag, raw_key);
+
+ return success;
+ }
+@@ -381,5 +396,5 @@ bool CryptStateOCB2::ocb_decrypt(const unsigned char *encrypted, unsigned char *
+ #undef SHIFTBITS
+ #undef SWAPPED
+ #undef HIGHBIT
+-#undef AES_encrypt
+-#undef AES_decrypt
++#undef AESencrypt
++#undef AESdecrypt
+diff --git a/src/crypto/CryptStateOCB2.h b/src/crypto/CryptStateOCB2.h
+index 53d4b4b6a..cc3f1c0bc 100644
+--- a/src/crypto/CryptStateOCB2.h
++++ b/src/crypto/CryptStateOCB2.h
+@@ -8,8 +8,9 @@
+
+ #include "CryptState.h"
+
+-#include <openssl/aes.h>
++#include <openssl/evp.h>
+
++#define AES_BLOCK_SIZE 16
+ #define AES_KEY_SIZE_BITS 128
+ #define AES_KEY_SIZE_BYTES (AES_KEY_SIZE_BITS / 8)
+
+@@ -17,7 +18,7 @@
+ class CryptStateOCB2 : public CryptState {
+ public:
+ CryptStateOCB2();
+- ~CryptStateOCB2(){};
++ ~CryptStateOCB2() noexcept override;
+
+ virtual bool isValid() const Q_DECL_OVERRIDE;
+ virtual void genKey() Q_DECL_OVERRIDE;
+@@ -43,8 +44,8 @@ private:
+ unsigned char decrypt_iv[AES_BLOCK_SIZE];
+ unsigned char decrypt_history[0x100];
+
+- AES_KEY encrypt_key;
+- AES_KEY decrypt_key;
++ EVP_CIPHER_CTX *enc_ctx;
++ EVP_CIPHER_CTX *dec_ctx;
+ };
+
+
+--
+2.35.3
+
diff --git a/0001-FIX-client-Update-rnnoise-src-submodule.patch b/0001-FIX-client-Update-rnnoise-src-submodule.patch
deleted file mode 100644
index 5c2b866..0000000
--- a/0001-FIX-client-Update-rnnoise-src-submodule.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 503c2b8c41161abd35813f9cec9723059da1d841 Mon Sep 17 00:00:00 2001
-From: Davide Beatrici <git(a)davidebeatrici.dev>
-Date: Thu, 11 Mar 2021 20:19:42 +0100
-Subject: [PATCH] FIX(client): Update rnnoise-src submodule
-
-This fixes a heap corruption that was originally discovered by PaulDana on #mumble-dev.
-
-In addition to that, all upstream changes are integrated.
-
-Fixes #4842.
----
- src/mumble/AudioInput.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/mumble/AudioInput.cpp b/src/mumble/AudioInput.cpp
-index e3b631af6..646d9f357 100644
---- a/src/mumble/AudioInput.cpp
-+++ b/src/mumble/AudioInput.cpp
-@@ -106,7 +106,7 @@ AudioInput::AudioInput() : opusBuffer(g.s.iFramesPerPacket * (SAMPLE_RATE / 100)
- #endif
-
- #ifdef USE_RNNOISE
-- denoiseState = rnnoise_create();
-+ denoiseState = rnnoise_create(nullptr);
- #endif
-
- qWarning("AudioInput: %d bits/s, %d hz, %d sample", iAudioQuality, iSampleRate, iFrameSize);
---
-2.30.2
-
diff --git a/0002-FIX-crypto-Sharing-EVP-context-between-threads-crush.patch b/0002-FIX-crypto-Sharing-EVP-context-between-threads-crush.patch
new file mode 100644
index 0000000..b696d62
--- /dev/null
+++ b/0002-FIX-crypto-Sharing-EVP-context-between-threads-crush.patch
@@ -0,0 +1,140 @@
+From f904130935f251e246fa6a5e62c146e3dc494ab0 Mon Sep 17 00:00:00 2001
+From: Terry Geng <terry(a)terriex.com>
+Date: Sun, 12 Dec 2021 22:39:38 -0500
+Subject: [PATCH 2/9] FIX(crypto): Sharing EVP context between threads crushes
+ Mumble
+
+Functions ocb_encrypt and ocb_decrypt share the same set
+of encrypt and decrypt contexts. However, they are invoked
+in different threads (audio input thread and server
+handler thread).
+This may lead to conflicts that would crash Mumble.
+This patch separates contexts used in these two functions
+to avoid such conflicts.
+
+Fixes #5361
+
+(cherry picked from commit f8d47db318f302f5a7d343f15c9936c7030c49c4)
+---
+ src/crypto/CryptStateOCB2.cpp | 55 ++++++++++++++++++++++-------------
+ src/crypto/CryptStateOCB2.h | 6 ++--
+ 2 files changed, 38 insertions(+), 23 deletions(-)
+
+diff --git a/src/crypto/CryptStateOCB2.cpp b/src/crypto/CryptStateOCB2.cpp
+index 640fdedac..3b3473ffe 100644
+--- a/src/crypto/CryptStateOCB2.cpp
++++ b/src/crypto/CryptStateOCB2.cpp
+@@ -30,7 +30,9 @@
+ #include <cstring>
+ #include <openssl/rand.h>
+
+-CryptStateOCB2::CryptStateOCB2() : CryptState(), enc_ctx(EVP_CIPHER_CTX_new()), dec_ctx(EVP_CIPHER_CTX_new()) {
++CryptStateOCB2::CryptStateOCB2()
++ : CryptState(), enc_ctx_ocb_enc(EVP_CIPHER_CTX_new()), dec_ctx_ocb_enc(EVP_CIPHER_CTX_new()),
++ enc_ctx_ocb_dec(EVP_CIPHER_CTX_new()), dec_ctx_ocb_dec(EVP_CIPHER_CTX_new()) {
+ for (int i = 0; i < 0x100; i++)
+ decrypt_history[i] = 0;
+ memset(raw_key, 0, AES_KEY_SIZE_BYTES);
+@@ -39,8 +41,10 @@ CryptStateOCB2::CryptStateOCB2() : CryptState(), enc_ctx(EVP_CIPHER_CTX_new()),
+ }
+
+ CryptStateOCB2::~CryptStateOCB2() noexcept {
+- EVP_CIPHER_CTX_free(enc_ctx);
+- EVP_CIPHER_CTX_free(dec_ctx);
++ EVP_CIPHER_CTX_free(enc_ctx_ocb_enc);
++ EVP_CIPHER_CTX_free(dec_ctx_ocb_enc);
++ EVP_CIPHER_CTX_free(enc_ctx_ocb_dec);
++ EVP_CIPHER_CTX_free(dec_ctx_ocb_dec);
+ }
+
+ bool CryptStateOCB2::isValid() const {
+@@ -257,25 +261,28 @@ static void inline ZERO(keyblock &block) {
+ block[i] = 0;
+ }
+
+-#define AESencrypt(src, dst, key) \
+- { \
+- int outlen = 0; \
+- EVP_EncryptInit_ex(enc_ctx, EVP_aes_128_ecb(), NULL, key, NULL); \
+- EVP_CIPHER_CTX_set_padding(enc_ctx, 0); \
+- EVP_EncryptUpdate(enc_ctx, reinterpret_cast< unsigned char * >(dst), &outlen, \
+- reinterpret_cast< const unsigned char * >(src), AES_BLOCK_SIZE); \
+- EVP_EncryptFinal_ex(enc_ctx, reinterpret_cast< unsigned char * >(dst + outlen), &outlen); \
++#define AESencrypt_ctx(src, dst, key, enc_ctx) \
++ { \
++ int outlen = 0; \
++ EVP_EncryptInit_ex(enc_ctx, EVP_aes_128_ecb(), NULL, key, NULL); \
++ EVP_CIPHER_CTX_set_padding(enc_ctx, 0); \
++ EVP_EncryptUpdate(enc_ctx, reinterpret_cast< unsigned char * >(dst), &outlen, \
++ reinterpret_cast< const unsigned char * >(src), AES_BLOCK_SIZE); \
++ EVP_EncryptFinal_ex(enc_ctx, reinterpret_cast< unsigned char * >((dst) + outlen), &outlen); \
+ }
+-#define AESdecrypt(src, dst, key) \
+- { \
+- int outlen = 0; \
+- EVP_DecryptInit_ex(dec_ctx, EVP_aes_128_ecb(), NULL, key, NULL); \
+- EVP_CIPHER_CTX_set_padding(dec_ctx, 0); \
+- EVP_DecryptUpdate(dec_ctx, reinterpret_cast< unsigned char * >(dst), &outlen, \
+- reinterpret_cast< const unsigned char * >(src), AES_BLOCK_SIZE); \
+- EVP_DecryptFinal_ex(dec_ctx, reinterpret_cast< unsigned char * >(dst + outlen), &outlen); \
++#define AESdecrypt_ctx(src, dst, key, dec_ctx) \
++ { \
++ int outlen = 0; \
++ EVP_DecryptInit_ex(dec_ctx, EVP_aes_128_ecb(), NULL, key, NULL); \
++ EVP_CIPHER_CTX_set_padding(dec_ctx, 0); \
++ EVP_DecryptUpdate(dec_ctx, reinterpret_cast< unsigned char * >(dst), &outlen, \
++ reinterpret_cast< const unsigned char * >(src), AES_BLOCK_SIZE); \
++ EVP_DecryptFinal_ex(dec_ctx, reinterpret_cast< unsigned char * >((dst) + outlen), &outlen); \
+ }
+
++#define AESencrypt(src, dst, key) AESencrypt_ctx(src, dst, key, enc_ctx_ocb_enc)
++#define AESdecrypt(src, dst, key) AESdecrypt_ctx(src, dst, key, dec_ctx_ocb_enc)
++
+ bool CryptStateOCB2::ocb_encrypt(const unsigned char *plain, unsigned char *encrypted, unsigned int len,
+ const unsigned char *nonce, unsigned char *tag, bool modifyPlainOnXEXStarAttack) {
+ keyblock checksum, delta, tmp, pad;
+@@ -345,6 +352,12 @@ bool CryptStateOCB2::ocb_encrypt(const unsigned char *plain, unsigned char *encr
+ return success;
+ }
+
++#undef AESencrypt
++#undef AESdecrypt
++
++#define AESencrypt(src, dst, key) AESencrypt_ctx(src, dst, key, enc_ctx_ocb_dec)
++#define AESdecrypt(src, dst, key) AESdecrypt_ctx(src, dst, key, dec_ctx_ocb_dec)
++
+ bool CryptStateOCB2::ocb_decrypt(const unsigned char *encrypted, unsigned char *plain, unsigned int len,
+ const unsigned char *nonce, unsigned char *tag) {
+ keyblock checksum, delta, tmp, pad;
+@@ -392,9 +405,9 @@ bool CryptStateOCB2::ocb_decrypt(const unsigned char *encrypted, unsigned char *
+ return success;
+ }
+
++#undef AESencrypt
++#undef AESdecrypt
+ #undef BLOCKSIZE
+ #undef SHIFTBITS
+ #undef SWAPPED
+ #undef HIGHBIT
+-#undef AESencrypt
+-#undef AESdecrypt
+diff --git a/src/crypto/CryptStateOCB2.h b/src/crypto/CryptStateOCB2.h
+index cc3f1c0bc..0fd3000ad 100644
+--- a/src/crypto/CryptStateOCB2.h
++++ b/src/crypto/CryptStateOCB2.h
+@@ -44,8 +44,10 @@ private:
+ unsigned char decrypt_iv[AES_BLOCK_SIZE];
+ unsigned char decrypt_history[0x100];
+
+- EVP_CIPHER_CTX *enc_ctx;
+- EVP_CIPHER_CTX *dec_ctx;
++ EVP_CIPHER_CTX *enc_ctx_ocb_enc;
++ EVP_CIPHER_CTX *dec_ctx_ocb_enc;
++ EVP_CIPHER_CTX *enc_ctx_ocb_dec;
++ EVP_CIPHER_CTX *dec_ctx_ocb_dec;
+ };
+
+
+--
+2.35.3
+
diff --git a/0003-FIX-client-Fix-PipeWire-not-being-usable-in-Flatpaks.patch b/0003-FIX-client-Fix-PipeWire-not-being-usable-in-Flatpaks.patch
new file mode 100644
index 0000000..8511f28
--- /dev/null
+++ b/0003-FIX-client-Fix-PipeWire-not-being-usable-in-Flatpaks.patch
@@ -0,0 +1,41 @@
+From fbce11400cdb8141301df22ab6143e3571f1b090 Mon Sep 17 00:00:00 2001
+From: Gert <Gert-dev(a)users.noreply.github.com>
+Date: Thu, 27 Jan 2022 20:38:08 +0100
+Subject: [PATCH 3/9] FIX(client): Fix PipeWire not being usable in Flatpaks
+
+PipeWire is correctly built and enabled in a Flatpak runtime, but does
+not properly intialize because the .so filename of the library is named
+slightly differently there.
+
+See also https://github.com/flathub/info.mumble.Mumble/issues/19#issuecomment-1023...
+
+(cherry picked from commit 29eb97cf1defd6fce90fe5db5df4879663aceea6)
+(cherry picked from commit 200e6ee7536bf4804ab221ba5a96aee73956f8e8)
+---
+ src/mumble/PipeWire.cpp | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/src/mumble/PipeWire.cpp b/src/mumble/PipeWire.cpp
+index 79f5a9483..a06087585 100644
+--- a/src/mumble/PipeWire.cpp
++++ b/src/mumble/PipeWire.cpp
+@@ -128,7 +128,15 @@ void PipeWireInit::destroy() {
+ static PipeWireInit pwi;
+
+ PipeWireSystem::PipeWireSystem() : m_ok(false), m_users(0) {
+- const QStringList names{ "libpipewire.so", "libpipewire-0.3.so" };
++ // clang-format off
++ const QStringList names {
++ // Common names used by Linux distributions.
++ "libpipewire.so",
++ "libpipewire-0.3.so",
++ // Name used by the Flatpak FreeDesktop runtime.
++ "libpipewire-0.3.so.0"
++ };
++ // clang-format on
+
+ for (const auto &name : names) {
+ m_lib.setFileName(name);
+--
+2.35.3
+
diff --git a/0004-BUILD-positional-audio-Fix-missing-memory-include.patch b/0004-BUILD-positional-audio-Fix-missing-memory-include.patch
new file mode 100644
index 0000000..6150f7f
--- /dev/null
+++ b/0004-BUILD-positional-audio-Fix-missing-memory-include.patch
@@ -0,0 +1,39 @@
+From ed84e5f2e23a1eaef440ffd05a905d9f18d6bbb7 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyich(a)gmail.com>
+Date: Sun, 27 Feb 2022 10:59:57 +0000
+Subject: [PATCH 4/9] BUILD(positional-audio): Fix missing <memory> include
+
+Without the change the build fails on upcoming gcc-12 as:
+
+ /build/mumble/plugins/gtav/gtav.cpp:13:13:
+ error: 'unique_ptr' in namespace 'std' does not name a template type
+ 13 | static std::unique_ptr< Game > game;
+ | ^~~~~~~~~~
+ /build/mumble/plugins/gtav/gtav.cpp:12:1:
+ note: 'std::unique_ptr' is defined in header '<memory>';
+ did you forget to '#include <memory>'?
+ 11 | #include <cstring>
+ +++ |+#include <memory>
+ 12 |
+
+(cherry picked from commit 36398fb3b293fc889bbc38df29665359f5c2a0ca)
+(cherry picked from commit a2a2aabdf535cb7f09dfa1c2d4e10566246b06a9)
+---
+ plugins/gtav/gtav.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/plugins/gtav/gtav.cpp b/plugins/gtav/gtav.cpp
+index 0402f65b6..9134c5e57 100644
+--- a/plugins/gtav/gtav.cpp
++++ b/plugins/gtav/gtav.cpp
+@@ -9,6 +9,7 @@
+ #include "mumble_positional_audio_utils.h"
+
+ #include <cstring>
++#include <memory>
+
+ static std::unique_ptr< Game > game;
+
+--
+2.35.3
+
diff --git a/0005-BUILD-client-RNNoise-Support-linking-against-the-sys.patch b/0005-BUILD-client-RNNoise-Support-linking-against-the-sys.patch
new file mode 100644
index 0000000..8a034a9
--- /dev/null
+++ b/0005-BUILD-client-RNNoise-Support-linking-against-the-sys.patch
@@ -0,0 +1,108 @@
+From 017dfd5e44b6b322b8ea5e221258d962e7c91041 Mon Sep 17 00:00:00 2001
+From: Klemens Nanni <klemens(a)posteo.de>
+Date: Thu, 13 Jan 2022 08:52:42 +0100
+Subject: [PATCH 5/9] BUILD(client): RNNoise: Support linking against the
+ system library
+
+OS packages (at least on Linux and BSDs) prefer prepackaged libraries to
+bundled/statically linked versions where possible.
+
+Introduce `rnnoise` (default `ON`) and make `bundled-rnnoise` default to
+it's value; this retains current behaviour.
+
+This way, `rnnoise=OFF` disables use of RNNoise completely and a simple
+`bundled-rnnoise=OFF` requires the system's library.
+
+Tested on OpenBSD 7.0-CURRENT.
+
+(cherry picked from commit 96e644a37d43aa26600e0078836ca686c48d6883)
+---
+ docs/dev/build-instructions/cmake_options.md | 7 +++-
+ src/mumble/CMakeLists.txt | 34 ++++++++++++--------
+ 2 files changed, 27 insertions(+), 14 deletions(-)
+
+diff --git a/docs/dev/build-instructions/cmake_options.md b/docs/dev/build-instructions/cmake_options.md
+index e86218426..7a710629b 100644
+--- a/docs/dev/build-instructions/cmake_options.md
++++ b/docs/dev/build-instructions/cmake_options.md
+@@ -39,6 +39,11 @@ Build the included version of CELT instead of looking for one on the system.
+ Build the included version of Opus instead of looking for one on the system.
+ (Default: ON)
+
++### bundled-rnnoise
++
++Build the included version of RNNoise instead of looking for one on the system.
++(Default: ${rnnoise})
++
+ ### bundled-speex
+
+ Build the included version of Speex instead of looking for one on the system.
+@@ -196,7 +201,7 @@ Build redacted (outdated) plugins as well
+
+ ### rnnoise
+
+-Build RNNoise for machine learning noise reduction
++Use RNNoise for machine learning noise reduction.
+ (Default: ON)
+
+ ### server
+diff --git a/src/mumble/CMakeLists.txt b/src/mumble/CMakeLists.txt
+index 8b3293281..4530dc753 100644
+--- a/src/mumble/CMakeLists.txt
++++ b/src/mumble/CMakeLists.txt
+@@ -25,7 +25,8 @@ option(bundle-qt-translations "Bundle Qt's translations as well" ${static})
+ option(bundled-opus "Build the included version of Opus instead of looking for one on the system." ON)
+ option(bundled-celt "Build the included version of CELT instead of looking for one on the system." ON)
+ option(bundled-speex "Build the included version of Speex instead of looking for one on the system." ON)
+-option(rnnoise "Build RNNoise for machine learning noise reduction" ON)
++option(rnnoise "Use RNNoise for machine learning noise reduction." ON)
++option(bundled-rnnoise "Build the included version of RNNoise instead of looking for one on the system." ${rnnoise})
+
+ option(manual-plugin "Include the built-in \"manual\" positional audio plugin." ON)
+
+@@ -703,23 +704,30 @@ else()
+ endif()
+
+ if(rnnoise)
+- add_subdirectory("${3RDPARTY_DIR}/rnnoise-build" "${CMAKE_CURRENT_BINARY_DIR}/rnnoise")
++ target_compile_definitions(mumble PRIVATE "USE_RNNOISE")
+
+- # Disable all warnings that the RNNoise code may emit
+- disable_warnings_for_all_targets_in("${3RDPARTY_DIR}/rnnoise-build")
++ if(bundled-rnnoise)
++ add_subdirectory("${3RDPARTY_DIR}/rnnoise-build" "${CMAKE_CURRENT_BINARY_DIR}/rnnoise")
+
+- target_compile_definitions(mumble PRIVATE "USE_RNNOISE")
+- target_link_libraries(mumble PRIVATE rnnoise)
++ # Disable all warnings that the RNNoise code may emit
++ disable_warnings_for_all_targets_in("${3RDPARTY_DIR}/rnnoise-build")
+
+- if(WIN32)
+- # Shared library on Windows (e.g. ".dll")
+- set_target_properties(rnnoise PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
++ target_link_libraries(mumble PRIVATE rnnoise)
++
++ if(WIN32)
++ # Shared library on Windows (e.g. ".dll")
++ set_target_properties(rnnoise PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
++ else()
++ # Shared library on UNIX (e.g. ".so")
++ set_target_properties(rnnoise PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
++ endif()
++
++ install_library(rnnoise mumble_client)
+ else()
+- # Shared library on UNIX (e.g. ".so")
+- set_target_properties(rnnoise PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
+- endif()
++ find_pkg(rnnoise REQUIRED)
+
+- install_library(rnnoise mumble_client)
++ target_link_libraries(mumble PRIVATE ${rnnoise_LIBRARIES})
++ endif()
+ endif()
+
+ if(qtspeech)
+--
+2.35.3
+
diff --git a/0006-MAINT-manpages-Replace-murmur-with-mumble-server.patch b/0006-MAINT-manpages-Replace-murmur-with-mumble-server.patch
new file mode 100644
index 0000000..3f40791
--- /dev/null
+++ b/0006-MAINT-manpages-Replace-murmur-with-mumble-server.patch
@@ -0,0 +1,240 @@
+From 94339ff47431c1134774bc00a5202dd02d739b8a Mon Sep 17 00:00:00 2001
+From: Felix Singer <felixsinger(a)posteo.net>
+Date: Sun, 6 Feb 2022 22:18:31 +0100
+Subject: [PATCH 6/9] MAINT(manpages): Replace `murmur` with `mumble-server`
+
+The name `murmur` is deprecated and shouldn't be used anymore, as
+decided by the Mumble project. While the server binary already uses the
+"new" name, the man pages don't. Thus, rework the man pages so that its
+successor `mumble-server` instead `murmur` is used and rename the
+filenames of the man pages accordingly.
+
+Also, rename the script `murmur-user-wrapper` to
+`mumble-server-user-wrapper`, since also its man page is renamed.
+
+Signed-off-by: Felix Singer <felixsinger(a)posteo.net>
+(cherry picked from commit 9326037e8388cdfd97a4a81ef6a2682bf3d5b67a)
+---
+ ...wrapper.1 => mumble-server-user-wrapper.1} | 28 +++++-----
+ man/{murmurd.1 => mumble-server.1} | 52 +++++++++----------
+ ...ser-wrapper => mumble-server-user-wrapper} | 0
+ src/murmur/CMakeLists.txt | 4 +-
+ 4 files changed, 42 insertions(+), 42 deletions(-)
+ rename man/{murmur-user-wrapper.1 => mumble-server-user-wrapper.1} (53%)
+ rename man/{murmurd.1 => mumble-server.1} (65%)
+ rename scripts/{murmur-user-wrapper => mumble-server-user-wrapper} (100%)
+
+diff --git a/man/murmur-user-wrapper.1 b/man/mumble-server-user-wrapper.1
+similarity index 53%
+rename from man/murmur-user-wrapper.1
+rename to man/mumble-server-user-wrapper.1
+index fdbdfe2fb..8afd9d70f 100644
+--- a/man/murmur-user-wrapper.1
++++ b/man/mumble-server-user-wrapper.1
+@@ -1,23 +1,23 @@
+-.TH murmur\-user\-wrapper 1 "2015 December 27"
++.TH mumble\-server\-user\-wrapper 1 "2015 December 27"
+ .SH NAME
+-murmur\-user\-wrapper \- User wrapper for murmurd.
++mumble\-server\-user\-wrapper \- User wrapper for mumble\-server.
+ .SH SYNOPSIS
+-.B murmur\-user\-wrapper
++.B mumble\-server\-user\-wrapper
+ .RI [ options ]
+ .SH DESCRIPTION
+-Murmur is the server component of Mumble, a low\-latency, high quality VoIP
+-application. Murmur\-wrapper is a wrapper script to make it easier for normal
+-users to set up their own, private murmur server.
++mumble\-server is the server component of Mumble, a low\-latency, high quality VoIP
++application. mumble\-server\-wrapper is a wrapper script to make it easier for normal
++users to set up their own, private Mumble server.
+ .SH OPTIONS
+ .TP
+ .BI \-d \ "directory"
+ Set directory to use. By default, the wrapper script uses $HOME/murmur
+ .TP
+ .B \-s
+-Check if murmur process is running.
++Check if mumble\-server process is running.
+ .TP
+ .B \-k
+-Terminate running murmur process.
++Terminate running mumble\-server process.
+ .TP
+ .B \-i
+ Initialize only, do not start the server.
+@@ -29,26 +29,26 @@ restrictions.
+ .SH NOTES
+ To create your own private server, you first want to run
+ .IP
+-murmur\-user\-wrapper \-i
++mumble\-server\-user\-wrapper \-i
+ .LP
+ Then edit ~/murmur/murmur.ini to set the various configuration settings. The
+-most important is probably the port; unless you're the only murmur process
++most important is probably the port; unless you're the only mumble\-server process
+ running on this server, you'll need to change it.
+
+ When you're happy with your settings, you need to set the password for
+ SuperUser, which is your administrator account.
+ .IP
+-murmur\-user\-wrapper \-p
++mumble\-server\-user\-wrapper \-p
+ .I "<password>"
+ .LP
+
+ Once this is done, simply run
+ .IP
+-murmur\-user\-wrapper
++mumble\-server\-user\-wrapper
+ .LP
+ to start the server.
+ .SH SEE ALSO
+-.BR murmurd (1).
++.BR mumble\-server (1).
+ .br
+ .SH AUTHORS
+-mumble and murmurd were written by The Mumble Developers.
++mumble and mumble\-server were written by The Mumble Developers.
+diff --git a/man/murmurd.1 b/man/mumble-server.1
+similarity index 65%
+rename from man/murmurd.1
+rename to man/mumble-server.1
+index ab1975aeb..72cb902b0 100644
+--- a/man/murmurd.1
++++ b/man/mumble-server.1
+@@ -1,37 +1,37 @@
+-.TH murmurd 1 "2016 May 9"
++.TH mumble\-server 1 "2016 May 9"
+ .SH NAME
+-murmurd - VoIP server.
++mumble\-server - VoIP server.
+ .SH SYNOPSIS
+-.B murmurd
++.B mumble\-server
+ [\fB-ini \fIinifile\fR] [\fB-fg\fR] [\fB-v\fR]
+ .br
+-.B murmurd \-supw\fR \fIpassword\fR [\fIserverid\fR]
++.B mumble\-server \-supw\fR \fIpassword\fR [\fIserverid\fR]
+ .br
+-.B murmurd \-readsupw\fR [\fIserverid\fR]
++.B mumble\-server \-readsupw\fR [\fIserverid\fR]
+ .br
+-.B murmurd \-disablesu\fR [\fIserverid\fR]
++.B mumble\-server \-disablesu\fR [\fIserverid\fR]
+ .br
+-.B murmurd \-limits
++.B mumble\-server \-limits
+ .br
+-.B murmurd \-wipessl
++.B mumble\-server \-wipessl
+ .br
+-.B murmurd \-wipelogs
++.B mumble\-server \-wipelogs
+ .br
+-.B murmurd \-loggroups
++.B mumble\-server \-loggroups
+ .br
+-.B murmurd \-logacls
++.B mumble\-server \-logacls
+ .br
+-.B murmurd \-license
++.B mumble\-server \-license
+ .br
+-.B murmurd \-authors
++.B mumble\-server \-authors
+ .br
+-.B murmurd \-third\-party\-licenses
++.B mumble\-server \-third\-party\-licenses
+ .br
+-.B murmurd \-version\fR|\fB\-\-version
++.B mumble\-server \-version\fR|\fB\-\-version
+ .br
+-.B murmurd \-h\fR|\fB\-help\fR|\fB\-\-help
++.B mumble\-server \-h\fR|\fB\-help\fR|\fB\-\-help
+ .SH DESCRIPTION
+-Murmur is the server component of Mumble, a low-latency, high quality VoIP
++mumble\-server is the server component of Mumble, a low-latency, high quality VoIP
+ application.
+ .SH OPTIONS
+ .TP
+@@ -39,7 +39,7 @@ application.
+ Show a summary of the options.
+ .TP
+ .B \-ini \fIinifile
+-Specify which ini file to use. Without this option, murmur will search for
++Specify which ini file to use. Without this option, mumble\-server will search for
+ a murmur.ini file and will fall back to builtin defaults if one isn't found.
+ .TP
+ .B \-fg
+@@ -68,8 +68,8 @@ until a new password is set. You can set a new SuperUser password with the
+ .TP
+ .B \-limits
+ Tests and shows how many file descriptors and threads can be created. The
+-purpose of this option is to test how many clients Murmur can handle. Murmur
+-will exit after this test.
++purpose of this option is to test how many clients the server can handle. The
++server will exit after this test.
+ .TP
+ .B \-wipessl
+ Remove SSL certificates from database.
+@@ -84,13 +84,13 @@ Turns on logging for group changes for all servers.
+ Turns on logging for ACL changes for all servers.
+ .TP
+ .B \-license
+-Show Murmur's license.
++Show mumble\-server's license.
+ .TP
+ .B \-authors
+-Show Murmur's authors.
++Show mumble\-server's authors.
+ .TP
+ .B \-third\-party\-licenses
+-Show licenses for third-party software used by Murmur.
++Show licenses for third-party software used by mumble\-server.
+ .TP
+ .B \-version, \-\-version
+ Show version information.
+@@ -98,12 +98,12 @@ Show version information.
+ .TP
+ .BR SIGHUP
+ Perform a log rotation.
+-This causes murmurd to re-open its log file.
++This causes mumble\-server to re-open its log file.
+ .TP
+ .BR SIGUSR1
+ Gracefully reload the TLS settings specified in murmur.ini without interrupting service.
+
+-When this signal is received, Murmur will apply the new TLS settings (certificate,
++When this signal is received, the server will apply the new TLS settings (certificate,
+ private key, and Diffie-Hellman parameters) to all virtual servers that use the TLS settings
+ from murmur.ini.
+
+@@ -114,4 +114,4 @@ be affected by this signal. Those servers can be updated using the updateCertifi
+ .BR murmur\-user\-wrapper (1).
+ .br
+ .SH AUTHORS
+-mumble and murmurd were written by The Mumble Developers.
++mumble and mumble\-server were written by The Mumble Developers.
+diff --git a/scripts/murmur-user-wrapper b/scripts/mumble-server-user-wrapper
+similarity index 100%
+rename from scripts/murmur-user-wrapper
+rename to scripts/mumble-server-user-wrapper
+diff --git a/src/murmur/CMakeLists.txt b/src/murmur/CMakeLists.txt
+index 112c919c0..f4aa3ea57 100644
+--- a/src/murmur/CMakeLists.txt
++++ b/src/murmur/CMakeLists.txt
+@@ -338,8 +338,8 @@ file(COPY "${CMAKE_SOURCE_DIR}/scripts/murmur.ini" DESTINATION ${CMAKE_BINARY_DI
+
+ if(UNIX)
+ # Install Murmur man files
+- install(FILES "${CMAKE_SOURCE_DIR}/man/murmurd.1" DESTINATION "${MUMBLE_INSTALL_MANDIR}" COMPONENT doc)
+- install(FILES "${CMAKE_SOURCE_DIR}/man/murmur-user-wrapper.1" DESTINATION "${MUMBLE_INSTALL_MANDIR}" COMPONENT doc)
++ install(FILES "${CMAKE_SOURCE_DIR}/man/mumble-server.1" DESTINATION "${MUMBLE_INSTALL_MANDIR}" COMPONENT doc)
++ install(FILES "${CMAKE_SOURCE_DIR}/man/mumble-server-user-wrapper.1" DESTINATION "${MUMBLE_INSTALL_MANDIR}" COMPONENT doc)
+ endif()
+
+ if(packaging)
+--
+2.35.3
+
diff --git a/0007-BUILD-cmake-Find-and-link-Poco-XML.patch b/0007-BUILD-cmake-Find-and-link-Poco-XML.patch
new file mode 100644
index 0000000..c7bef83
--- /dev/null
+++ b/0007-BUILD-cmake-Find-and-link-Poco-XML.patch
@@ -0,0 +1,44 @@
+From 6d54bacf7bc98e3e0341e47b741cb5c41457f0da Mon Sep 17 00:00:00 2001
+From: Carl George <carl(a)george.computer>
+Date: Tue, 5 Apr 2022 18:49:13 -0500
+Subject: [PATCH 7/9] BUILD(cmake): Find and link Poco::XML
+
+Without this, building against the latest poco snapshot results in
+errors like:
+
+/usr/bin/ld: /builddir/build/BUILD/mumble-1.4.230.src/src/mumble/PluginManifest.cpp:72: undefined reference to `typeinfo for Poco::XML::Element'
+
+(cherry picked from commit fefdd79ebcd53a3035967789d004938ee39e2030)
+
+# Conflicts:
+# src/mumble/CMakeLists.txt
+(cherry picked from commit 5e0962474cbed1dbfea34afd8eeb6cd71dc518d3)
+---
+ src/mumble/CMakeLists.txt | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/src/mumble/CMakeLists.txt b/src/mumble/CMakeLists.txt
+index 4530dc753..be37fd674 100644
+--- a/src/mumble/CMakeLists.txt
++++ b/src/mumble/CMakeLists.txt
+@@ -384,11 +384,16 @@ target_include_directories(mumble
+ "${PLUGINS_DIR}"
+ )
+
+-find_pkg(Poco COMPONENTS Zip)
++find_pkg(Poco
++ COMPONENTS
++ XML
++ Zip
++)
+
+ if(TARGET Poco::Zip)
+ target_link_libraries(mumble
+ PRIVATE
++ Poco::XML
+ Poco::Zip
+ )
+ else()
+--
+2.35.3
+
diff --git a/0008-CHANGE-server-Default-to-system-crypto-policy.patch b/0008-CHANGE-server-Default-to-system-crypto-policy.patch
new file mode 100644
index 0000000..ccc9c03
--- /dev/null
+++ b/0008-CHANGE-server-Default-to-system-crypto-policy.patch
@@ -0,0 +1,40 @@
+From 3309af97f598b5bf72c3ffe46f1b00e29c49afc6 Mon Sep 17 00:00:00 2001
+From: Carl George <carl(a)george.computer>
+Date: Wed, 6 Apr 2022 19:31:23 -0500
+Subject: [PATCH 8/9] CHANGE(server): Default to system crypto policy
+
+https://docs.fedoraproject.org/en-US/packaging-guidelines/CryptoPolicies/
+---
+ scripts/murmur.ini | 2 +-
+ src/SSL.cpp | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/scripts/murmur.ini b/scripts/murmur.ini
+index de224847b..91ab67d64 100644
+--- a/scripts/murmur.ini
++++ b/scripts/murmur.ini
+@@ -303,7 +303,7 @@ allowping=true
+ ; Note: Changing this option may impact the backwards compatibility of your
+ ; Murmur server, and can remove the ability for older Mumble clients to be able
+ ; to connect to it.
+-;sslCiphers=EECDH+AESGCM:EDH+aRSA+AESGCM:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:AES256-SHA:AES128-SHA
++;sslCiphers="PROFILE=SYSTEM"
+
+ ; If Murmur is started as root, which user should it switch to?
+ ; This option is ignored if Murmur isn't started with root privileges.
+diff --git a/src/SSL.cpp b/src/SSL.cpp
+index 0d1e526be..04f554ffc 100644
+--- a/src/SSL.cpp
++++ b/src/SSL.cpp
+@@ -43,7 +43,7 @@ void MumbleSSL::destroy() {
+ }
+
+ QString MumbleSSL::defaultOpenSSLCipherString() {
+- return QLatin1String("EECDH+AESGCM:EDH+aRSA+AESGCM:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:AES256-SHA:AES128-SHA");
++ return QLatin1String("PROFILE=SYSTEM");
+ }
+
+ QList< QSslCipher > MumbleSSL::ciphersFromOpenSSLCipherString(QString cipherString) {
+--
+2.35.3
+
diff --git a/0009-FIX-client-Avoid-loading-unversioned-libraries.patch b/0009-FIX-client-Avoid-loading-unversioned-libraries.patch
new file mode 100644
index 0000000..7728277
--- /dev/null
+++ b/0009-FIX-client-Avoid-loading-unversioned-libraries.patch
@@ -0,0 +1,67 @@
+From 8e905af93415577496967f4560f0121b038fbc84 Mon Sep 17 00:00:00 2001
+From: Carl George <carl(a)george.computer>
+Date: Wed, 6 Apr 2022 20:07:28 -0500
+Subject: [PATCH 9/9] FIX(client): Avoid loading unversioned libraries
+
+---
+ src/mumble/JackAudio.cpp | 1 -
+ src/mumble/PAAudio.cpp | 1 -
+ src/mumble/PipeWire.cpp | 4 ----
+ src/mumble/PulseAudio.cpp | 2 +-
+ 4 files changed, 1 insertion(+), 7 deletions(-)
+
+diff --git a/src/mumble/JackAudio.cpp b/src/mumble/JackAudio.cpp
+index cd1072218..0c5132fda 100644
+--- a/src/mumble/JackAudio.cpp
++++ b/src/mumble/JackAudio.cpp
+@@ -199,7 +199,6 @@ JackAudioSystem::JackAudioSystem() : bAvailable(false), users(0), client(nullptr
+ alternatives << QLatin1String("libjack.dylib");
+ alternatives << QLatin1String("libjack.0.dylib");
+ #else
+- alternatives << QLatin1String("libjack.so");
+ alternatives << QLatin1String("libjack.so.0");
+ #endif
+ for (const QString &lib : alternatives) {
+diff --git a/src/mumble/PAAudio.cpp b/src/mumble/PAAudio.cpp
+index cdcfd12d8..b1c6960b9 100644
+--- a/src/mumble/PAAudio.cpp
++++ b/src/mumble/PAAudio.cpp
+@@ -127,7 +127,6 @@ PortAudioSystem::PortAudioSystem() : bOk(false) {
+ alternatives << QLatin1String("libportaudio.dylib");
+ alternatives << QLatin1String("libportaudio.2.dylib");
+ #else
+- alternatives << QLatin1String("libportaudio.so");
+ alternatives << QLatin1String("libportaudio.so.2");
+ #endif
+ for (const auto &lib : alternatives) {
+diff --git a/src/mumble/PipeWire.cpp b/src/mumble/PipeWire.cpp
+index a06087585..206d61330 100644
+--- a/src/mumble/PipeWire.cpp
++++ b/src/mumble/PipeWire.cpp
+@@ -130,10 +130,6 @@ static PipeWireInit pwi;
+ PipeWireSystem::PipeWireSystem() : m_ok(false), m_users(0) {
+ // clang-format off
+ const QStringList names {
+- // Common names used by Linux distributions.
+- "libpipewire.so",
+- "libpipewire-0.3.so",
+- // Name used by the Flatpak FreeDesktop runtime.
+ "libpipewire-0.3.so.0"
+ };
+ // clang-format on
+diff --git a/src/mumble/PulseAudio.cpp b/src/mumble/PulseAudio.cpp
+index 521ea1e73..3da9e1957 100644
+--- a/src/mumble/PulseAudio.cpp
++++ b/src/mumble/PulseAudio.cpp
+@@ -1008,7 +1008,7 @@ void PulseAudioOutput::run() {
+ }
+
+ PulseAudio::PulseAudio() : m_ok(false) {
+- const QStringList alternatives{ QLatin1String("libpulse.so"), QLatin1String("libpulse.so.0") };
++ const QStringList alternatives{ QLatin1String("libpulse.so.0") };
+
+ for (const QString &alternative : alternatives) {
+ m_lib.setFileName(alternative);
+--
+2.35.3
+
diff --git a/mumble-1.3.0-fedora-crypto-policy-cipher-list.patch b/mumble-1.3.0-fedora-crypto-policy-cipher-list.patch
deleted file mode 100644
index 1d173c5..0000000
--- a/mumble-1.3.0-fedora-crypto-policy-cipher-list.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up mumble-1.3.0/scripts/murmur.ini.fedora-crypto-policy-cipher-list mumble-1.3.0/scripts/murmur.ini
---- mumble-1.3.0/scripts/murmur.ini.fedora-crypto-policy-cipher-list 2019-10-24 13:55:41.505251692 +0200
-+++ mumble-1.3.0/scripts/murmur.ini 2019-10-24 13:56:38.853142219 +0200
-@@ -246,6 +246,7 @@ allowping=true
- ; Murmur server, and can remove the ability for older Mumble clients to be able
- ; to connect to it.
- ;sslCiphers=EECDH+AESGCM:EDH+aRSA+AESGCM:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:AES256-SHA:AES128-SHA
-+sslCiphers="PROFILE=SYSTEM"
-
- ; If Murmur is started as root, which user should it switch to?
- ; This option is ignored if Murmur isn't started with root privileges.
diff --git a/mumble.appdata.xml b/mumble.appdata.xml
deleted file mode 100644
index 467d068..0000000
--- a/mumble.appdata.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<application>
- <id type="desktop">mumble.desktop</id>
- <metadata_license>CC0-1.0</metadata_license>
- <project_license>BSD-3-Clause</project_license>
- <title>Mumble</title>
- <summary>Voice Chat Software</summary>
- <description>
- <p>Mumble is an open source, low-latency, high quality voice chat software primarily intended for use while gaming.</p>
- </description>
- <url type="homepage">https://wiki.mumble.info</url>
- <screenshots>
- <screenshot type="default">
- <image>https://screenshots.debian.net/screenshots/000/001/906/large.png</image>
- </screenshot>
- </screenshots>
-</application>
diff --git a/mumble.spec b/mumble.spec
index 30623c7..4f67ca8 100644
--- a/mumble.spec
+++ b/mumble.spec
@@ -1,62 +1,99 @@
+%global build_number 230
+
Name: mumble
-Version: 1.3.4
-Release: 9%{?dist}
+Version: 1.4.%{build_number}
+Release: 1%{?dist}
Summary: Low-latency and high-quality voice-chat program
# The main source code is BSD licensed.
# The bundled libraries used are licensed as follows:
-# - arc4random: ISC
-# - celt-*: BSD, except for tools/getopt* files which are GPLv2+
+# - arc4random: 0BSD
+# - celt: BSD, except for tools/getopt* files which are GPLv2+
# - qqbonjour: BSD
# - smallft: BSD
-License: BSD and ISC and GPLv2+
+License: BSD and 0BSD and GPLv2+
URL: https://www.mumble.info
-Source0: https://github.com/mumble-voip/mumble/releases/download/%{version}/mumble...
-Source2: murmur.service
-Source3: mumble.appdata.xml
-
-# downstream only patch
+Source: https://github.com/mumble-voip/mumble/releases/download/v%{version}/mumbl...
+Source1: murmur.service
+
+# patches from the upstream master branch
+# https://github.com/mumble-voip/mumble/commit/f4cea62ed95e4967d8591f25e903...
+Patch: 0001-BUILD-crypto-Migrate-to-OpenSSL-3.0-compatible-API.patch
+# https://github.com/mumble-voip/mumble/commit/f8d47db318f302f5a7d343f15c99...
+Patch: 0002-FIX-crypto-Sharing-EVP-context-between-threads-crush.patch
+
+# patches from the upstream 1.4.x branch
+# https://github.com/mumble-voip/mumble/commit/200e6ee7536bf4804ab221ba5a96...
+Patch: 0003-FIX-client-Fix-PipeWire-not-being-usable-in-Flatpaks.patch
+# https://github.com/mumble-voip/mumble/commit/a2a2aabdf535cb7f09dfa1c2d4e1...
+Patch: 0004-BUILD-positional-audio-Fix-missing-memory-include.patch
+# https://github.com/mumble-voip/mumble/commit/96e644a37d43aa26600e0078836c...
+Patch: 0005-BUILD-client-RNNoise-Support-linking-against-the-sys.patch
+# https://github.com/mumble-voip/mumble/commit/9326037e8388cdfd97a4a81ef6a2...
+Patch: 0006-MAINT-manpages-Replace-murmur-with-mumble-server.patch
+# https://github.com/mumble-voip/mumble/commit/5e0962474cbed1dbfea34afd8eeb...
+Patch: 0007-BUILD-cmake-Find-and-link-Poco-XML.patch
+
+# downstream-only patches
# https://docs.fedoraproject.org/en-US/packaging-guidelines/CryptoPolicies/
-Patch0: mumble-1.3.0-fedora-crypto-policy-cipher-list.patch
-
-# https://github.com/mumble-voip/mumble/pull/3675
-Patch1: 0001-Added-DBus-calls-to-activate-and-deactivate-push-to-talk.patch
-
-# https://github.com/mumble-voip/mumble/commit/a8e0797f51877db699d01c37d962...
-Patch2: 0001-FIX-client-Update-rnnoise-src-submodule.patch
+Patch: 0008-CHANGE-server-Default-to-system-crypto-policy.patch
+Patch: 0009-FIX-client-Avoid-loading-unversioned-libraries.patch
+
+BuildRequires: cmake
+BuildRequires: gcc-c++
+
+# Referencing build requirements:
+#
+# - Find instances of find_pkg in the mumble source code.
+# - Check if anything provides cmake(<name>). If found use that.
+# - Check the modules from cmake-data (/usr/share/cmake/Modules/) to see if any
+# locate it by a file path. If found use exact package name.
+# - Check if anything provides pkgconfig(<name>). If found, use that.
+#
+# That should cover all scenarios. If you are working on this spec file and
+# find another scenario, please add it to this list.
+
+# cmake/os.cmake
+BuildRequires: pkgconfig(openssl)
+BuildRequires: cmake(Qt5)
+
+# cmake/qt-utils.cmake
+BuildRequires: cmake(Qt5LinguistTools)
+BuildRequires: python3
-BuildRequires: make
-BuildRequires: qt5-qtbase-devel
-# qmake/lrelease.pri
-BuildRequires: qt5-linguist
-# qmake/openssl.pri
-BuildRequires: pkgconfig(openssl) < 3
-# qmake/protobuf.pri
+# src/CMakeLists.txt
+BuildRequires: cmake(Qt5Core)
+BuildRequires: cmake(Qt5Network)
+BuildRequires: cmake(Qt5Xml)
+BuildRequires: pkgconfig(libcrypto)
+BuildRequires: pkgconfig(libssl)
BuildRequires: pkgconfig(protobuf)
-# qmake/protoc.pri
-BuildRequires: protobuf-compiler
-# qmake/python.pri
-BuildRequires: python3
-# src/mumble/AudioInput.cpp
-BuildRequires: rnnoise-devel
-# src/mumble/GlobalShortcut_unix.h
-BuildRequires: libXi-devel
-# src/mumble/main.cpp
-BuildRequires: qt5-qtsvg-devel
-# src/mumble/mumble_pch.hpp
+
+# src/mumble/CMakeLists.txt
+BuildRequires: cmake(Qt5Concurrent)
+BuildRequires: cmake(Qt5Sql)
+BuildRequires: cmake(Qt5Svg)
+BuildRequires: cmake(Qt5Widgets)
+BuildRequires: cmake(PocoXML)
+BuildRequires: cmake(PocoZip)
+BuildRequires: pkgconfig(sndfile)
BuildRequires: boost-devel
-# src/mumble/mumble.pro
+BuildRequires: libXext-devel
+BuildRequires: libXi-devel
+BuildRequires: glibc-devel
+BuildRequires: pkgconfig(opus)
BuildRequires: pkgconfig(speex)
BuildRequires: pkgconfig(speexdsp)
-BuildRequires: pkgconfig(opus)
-BuildRequires: pkgconfig(sndfile)
-BuildRequires: pkgconfig(x11)
-BuildRequires: pkgconfig(alsa)
-BuildRequires: pkgconfig(libpulse)
-BuildRequires: pkgconfig(avahi-compat-libdns_sd)
-BuildRequires: pkgconfig(avahi-client)
+BuildRequires: pkgconfig(rnnoise)
BuildRequires: pkgconfig(speech-dispatcher)
+BuildRequires: cmake(Qt5DBus)
+BuildRequires: pkgconfig(avahi-compat-libdns_sd)
+BuildRequires: alsa-lib-devel
+BuildRequires: pipewire-jack-audio-connection-kit-devel
+BuildRequires: pipewire-devel
+BuildRequires: portaudio-devel
+BuildRequires: pulseaudio-libs-devel
-# multiple files in 3rdparty/celt-0.7.0-src and 3rdparty/celt-0.11.0-src
+# multiple files in 3rdparty/celt-0.7.0-src
BuildRequires: libogg-devel
# appstream-util in %%check
@@ -64,12 +101,38 @@ BuildRequires: libappstream-glib
# desktop-file-validate in %%check
BuildRequires: desktop-file-utils
+# There are multiple available audio backends which are opened at runtime.
+# They aren't linked against, but they are opened by the library name.
+# https://github.com/mumble-voip/mumble/issues/3794
+%if 0%{?__isa_bits} == 32
+%global libsymbolsuffix %{nil}
+%else
+%global libsymbolsuffix ()(%{__isa_bits}bit)
+%endif
+# src/mumble/JackAudio.cpp
+Recommends: libjack.so.0%{libsymbolsuffix}
+# to prefer the pipewire implementation of libjack
+Suggests: pipewire-jack-audio-connection-kit
+# src/mumble/PAAudio.cpp
+Recommends: libportaudio.so.2%{libsymbolsuffix}
+# src/mumble/PipeWire.cpp
+Recommends: libpipewire-0.3.so.0%{libsymbolsuffix}
+# src/mumble/PulseAudio.cpp
+Recommends: libpulse.so.0%{libsymbolsuffix}
+
+# modified version of OpenBSD's arc4random
Provides: bundled(arc4random)
+# old version of celt for compatibility
Provides: bundled(celt) = 0.7.0
-Provides: bundled(celt) = 0.11.0
+# modified version of Qt Quarterly example code
Provides: bundled(qqbonjour)
+# modified version of vorbis's smallft
Provides: bundled(smallft)
+%global _privatelibs libcelt0[.]so.*
+%global __provides_exclude ^(%{_privatelibs})$
+%global __requires_exclude ^(%{_privatelibs})$
+
%description
Mumble is an Open Source, low-latency and high-quality voice-chat program
@@ -79,8 +142,13 @@ written on top of Qt and Opus.
%package -n murmur
Summary: Mumble voice chat server
Provides: mumble-server = %{version}-%{release}
-# src/murmur/murmur_pch.h
+
+# src/murmur/CMakeLists.txt
+BuildRequires: cmake(Qt5Sql)
BuildRequires: libcap-devel
+BuildRequires: pkgconfig(avahi-compat-libdns_sd)
+BuildRequires: cmake(Qt5DBus)
+
Requires(pre): shadow-utils
# To be able to announce the presence of the server via Bonjour.
Recommends: avahi
@@ -115,90 +183,67 @@ starting your game with this script will enable an ingame Mumble overlay.
%prep
-%autosetup -p 1
+%autosetup -p 1 -n mumble-%{version}.src
pushd 3rdparty
# remove bundled libraries that we have system copies of
-rm -r opus-src rnnoise-src speex-src speexdsp-src
+rm -r jack opus pipewire portaudio pulseaudio rnnoise* speex*
# remove bundled libraries for windows
-rm -r GL minhook-src xinputcheck-src
+rm -r GL minhook xinputcheck*
# remove bundled libraries for mac
-rm -r mach-override-src
+rm -r mach-override*
popd
-# fix https://github.com/mumble-voip/mumble/issues/4857
-sed -e '/VERSION = / s/1\.3\.3/1.3.4/' -i overlay_gl/overlay_gl.pro
+# use system headers for audio backends
+sed \
+ -e 's|"${3RDPARTY_DIR}/jack"|"%{_includedir}/jack"|' \
+ -e 's|"${3RDPARTY_DIR}/portaudio"|"%{_includedir}"|' \
+ -e 's|"${3RDPARTY_DIR}/pipewire"|"%{_includedir}/pipewire-0.3" "%{_includedir}/spa-0.2"|' \
+ -e 's|"${3RDPARTY_DIR}/pulseaudio"|"%{_includedir}/pulse"|' \
+ -i src/mumble/CMakeLists.txt
%build
-%{qmake_qt5} \
-CONFIG+=no-bundled-speex \
-CONFIG+=no-bundled-opus \
-CONFIG+=no-bundled-rnnoise \
-CONFIG+=no-g15 \
-CONFIG+=no-oss \
-CONFIG+=no-update \
-CONFIG+=no-embed-qt-translations \
-CONFIG+=no-ice \
-CONFIG+=packaged \
-CONFIG+=c++11 \
-CONFIG+=no-pch \
-DEFINES+="PLUGIN_PATH=%{_libdir}/mumble" \
-main.pro
-
-%make_build release
+%cmake \
+ -DBUILD_NUMBER=%{build_number} \
+ -Dupdate=OFF \
+ -Dbundled-opus=OFF \
+ -Dbundled-speex=OFF \
+ -Dbundled-rnnoise=OFF \
+ -Dice=OFF \
+ -Doverlay-xcompile=OFF \
+ -DCMAKE_BUILD_TYPE=Release
+
+%cmake_build
%install
-install -D -p -m 0755 release/mumble %{buildroot}%{_bindir}/mumble
-install -D -p -m 0755 release/murmurd %{buildroot}%{_sbindir}/murmurd
-ln -s murmurd %{buildroot}%{_sbindir}/mumble-server
+%cmake_install
# translations
install -d -m 0755 %{buildroot}%{_datadir}/mumble/translations
-install -p -m 0644 src/mumble/*.qm %{buildroot}%{_datadir}/mumble/translations
-
-# libraries
-install -d -m 0755 %{buildroot}%{_libdir}/mumble
-for f in release/*.so* release/plugins/*.so; do
- if [[ -L "$f" ]]; then
- cp -P "$f" %{buildroot}%{_libdir}/mumble/
- else
- install -p -m 0755 "$f" %{buildroot}%{_libdir}/mumble/
- fi
-done
+install -p -m 0644 %{_vpath_builddir}/src/mumble/*.qm %{buildroot}%{_datadir}/mumble/translations
install -D -p -m 0664 scripts/murmur.ini %{buildroot}%{_sysconfdir}/murmur/murmur.ini
-ln -s murmur/murmur.ini %{buildroot}%{_sysconfdir}/mumble-server.ini
-install -D -p -m 0644 %{SOURCE2} %{buildroot}%{_unitdir}/murmur.service
-
-install -D -p -m 0755 scripts/mumble-overlay %{buildroot}%{_bindir}/mumble-overlay
-
-# man pages
-install -D -p -m 0644 man/mumble.1 %{buildroot}%{_mandir}/man1/mumble.1
-install -D -p -m 0644 man/murmurd.1 %{buildroot}%{_mandir}/man1/murmurd.1
-install -D -p -m 0644 man/mumble-overlay.1 %{buildroot}%{_mandir}/man1/mumble-overlay.1
-
-# icons
-install -D -p -m 0644 icons/mumble.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/mumble.svg
-
-# desktop file
-install -D -p -m 0644 scripts/mumble.desktop %{buildroot}%{_datadir}/applications/mumble.desktop
-
-# appdata
-install -D -p -m 0644 %{SOURCE3} %{buildroot}%{_metainfodir}/mumble.appdata.xml
+install -D -p -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/murmur.service
+install -D -p -m 0755 scripts/mumble-server-user-wrapper %{buildroot}%{_bindir}/mumble-server-user-wrapper
# dir for mumble-server.sqlite
mkdir -p %{buildroot}%{_localstatedir}/lib/mumble-server/
+# compatibility symlinks
+mkdir -p %{buildroot}%{_sbindir}
+ln -s %{_bindir}/mumble-server %{buildroot}%{_sbindir}/murmurd
+ln -s murmur/murmur.ini %{buildroot}%{_sysconfdir}/mumble-server.ini
+
%check
-appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/mumble.appdata.xml
-desktop-file-validate %{buildroot}%{_datadir}/applications/mumble.desktop
+appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/org.mumble_voip.mumble.appdata.xml
+desktop-file-validate %{buildroot}%{_datadir}/applications/org.mumble_voip.mumble.desktop
%pre -n murmur
@@ -223,48 +268,48 @@ exit 0
%files
%license LICENSE
-%doc README README.Linux CHANGES
+%doc README.md CHANGES
%{_bindir}/mumble
%{_mandir}/man1/mumble.1*
+%{_datadir}/icons/hicolor/256x256/apps/mumble.png
%{_datadir}/icons/hicolor/scalable/apps/mumble.svg
-%{_datadir}/applications/mumble.desktop
-%{_metainfodir}/mumble.appdata.xml
+%{_datadir}/applications/org.mumble_voip.mumble.desktop
+%{_metainfodir}/org.mumble_voip.mumble.appdata.xml
%{_datadir}/mumble/
-%dir %{_libdir}/mumble
+%dir %{_libdir}/mumble/
%{_libdir}/mumble/libcelt0.so
-%{_libdir}/mumble/libcelt0.so.0
-%{_libdir}/mumble/libcelt0.so.0.7*
-%{_libdir}/mumble/libcelt0.so.0.11*
+%{_libdir}/mumble/libcelt0.so.0.7.0
%files -n murmur
%license LICENSE
-%doc README README.Linux CHANGES
+%doc README.md CHANGES
+%{_bindir}/mumble-server
+%{_bindir}/mumble-server-user-wrapper
+%{_mandir}/man1/mumble-server.1*
+%{_mandir}/man1/mumble-server-user-wrapper.1*
%{_sbindir}/murmurd
%{_unitdir}/murmur.service
-%{_sbindir}/mumble-server
%config(noreplace) %attr(664,mumble-server,mumble-server) %{_sysconfdir}/murmur/murmur.ini
-%config(noreplace) %{_sysconfdir}/mumble-server.ini
-%{_mandir}/man1/murmurd.1*
+%{_sysconfdir}/mumble-server.ini
%dir %attr(-,mumble-server,mumble-server) %{_localstatedir}/lib/mumble-server/
%files plugins
-%{_libdir}/mumble/libl4d2.so
-%{_libdir}/mumble/liblink.so
-%{_libdir}/mumble/librl.so
+%{_libdir}/mumble/plugins/
%files overlay
%{_bindir}/mumble-overlay
-%{_libdir}/mumble/libmumble.so
-%{_libdir}/mumble/libmumble.so.1
-%{_libdir}/mumble/libmumble.so.1.3
-%{_libdir}/mumble/libmumble.so.%{version}
%{_mandir}/man1/mumble-overlay.1*
+%{_libdir}/mumble/libmumbleoverlay.so
+%{_libdir}/mumble/libmumbleoverlay.so.%{version}
%changelog
+* Tue Aug 09 2022 Carl George <carl(a)george.computer> - 1.4.230-1
+- Latest upstream, resolves rhbz#2036444
+
* Thu Jul 21 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 1.3.4-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
diff --git a/murmur.service b/murmur.service
index 5d8ac8d..440500c 100644
--- a/murmur.service
+++ b/murmur.service
@@ -1,14 +1,13 @@
[Unit]
-Description=Mumble Daemon - VoIP Server
+Description=Mumble Daemon
Documentation=man:murmurd(1) http://www.mumble.info
-After=network.target mysqld.service
+After=network.target
[Service]
User=mumble-server
Group=mumble-server
-Type=simple
-ExecStart=/usr/sbin/murmurd -fg -ini /etc/murmur/murmur.ini
-RestartSec=2100msec
+Type=exec
+ExecStart=/usr/bin/mumble-server -fg -ini /etc/murmur/murmur.ini
Restart=always
PrivateDevices=true
PrivateTmp=true
diff --git a/sources b/sources
index bdb2a94..aedf555 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (mumble-1.3.4.tar.gz) = e2dde5aad30d1a931e7acd8d7db0b8c785d3a268d0b8cf5626fa03953a51bcadb719c6682c440d02524e83beee13d73d8f5bb3fdf98ab1c82d3ecf824cc25f68
+SHA512 (mumble-1.4.230.tar.gz) = 6cffc7a95d88b33876f4093b99266468210f5c14f190fbd2fbe4991bef91a567e55296e7c8c6cc99e19c054853211085cc3cc08109e367e6776afb70766b3a53
1 year, 10 months
Architecture specific change in rpms/rust-data-encoding-macro-internal.git
by githook-noreply@fedoraproject.org
The package rpms/rust-data-encoding-macro-internal.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/rust-data-encoding-macro-internal....
Change:
+ExclusiveArch: %{rust_arches}
Thanks.
Full change:
============
commit c322551cf5d4570c3575cba92c7ecbebc0a45d30
Author: Davide Cavalca <dcavalca(a)fedoraproject.org>
Date: Tue Aug 9 12:16:47 2022 -0500
Initial import; Fixes: RHBZ#2107944
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0f9e481
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/data-encoding-macro-internal-0.1.10.crate
diff --git a/rust-data-encoding-macro-internal.spec b/rust-data-encoding-macro-internal.spec
new file mode 100644
index 0000000..2fd47ab
--- /dev/null
+++ b/rust-data-encoding-macro-internal.spec
@@ -0,0 +1,71 @@
+# Generated by rust2rpm 21
+%bcond_without check
+%global debug_package %{nil}
+
+%global crate data-encoding-macro-internal
+
+Name: rust-%{crate}
+Version: 0.1.10
+Release: %autorelease
+Summary: Internal library for data-encoding-macro
+
+# Upstream license specification: MIT
+License: MIT
+URL: https://crates.io/crates/data-encoding-macro-internal
+Source: %{crates_source}
+
+ExclusiveArch: %{rust_arches}
+
+BuildRequires: rust-packaging >= 21
+
+%global _description %{expand:
+Internal library for data-encoding-macro.}
+
+%description %{_description}
+
+%package devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description devel %{_description}
+
+This package contains library source intended for building other packages which
+use the "%{crate}" crate.
+
+%files devel
+%license %{crate_instdir}/LICENSE
+%doc %{crate_instdir}/README.md
+%{crate_instdir}/
+
+%package -n %{name}+default-devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description -n %{name}+default-devel %{_description}
+
+This package contains library source intended for building other packages which
+use the "default" feature of the "%{crate}" crate.
+
+%files -n %{name}+default-devel
+%ghost %{crate_instdir}/Cargo.toml
+
+%prep
+%autosetup -n %{crate}-%{version_no_tilde} -p1
+%cargo_prep
+
+%generate_buildrequires
+%cargo_generate_buildrequires
+
+%build
+%cargo_build
+
+%install
+%cargo_install
+
+%if %{with check}
+%check
+%cargo_test
+%endif
+
+%changelog
+%autochangelog
diff --git a/sources b/sources
new file mode 100644
index 0000000..ea7c3c3
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (data-encoding-macro-internal-0.1.10.crate) = fd98100d95644c081cde3cd9f6c86206dc0e0ea369266b198a8b63ac20e146802ff019da8e19b632418c619fbfc29ac662a95285051072e508b71b7c9c2019c0
1 year, 10 months
Architecture specific change in rpms/uwsgi.git
by githook-noreply@fedoraproject.org
The package rpms/uwsgi.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/uwsgi.git/commit/?id=6d410724c068....
Change:
+%ifarch %{mono_arches}
Thanks.
Full change:
============
commit a3b3307d31f54e455d5732477802af503349a759
Author: Ralf Ertzinger <ralf(a)skytale.net>
Date: Tue Aug 9 22:05:51 2022 +0200
Fix PHP 8.1 support
diff --git a/uwsgi.spec b/uwsgi.spec
index 150b288..0cc77f1 100644
--- a/uwsgi.spec
+++ b/uwsgi.spec
@@ -187,7 +187,7 @@
Name: uwsgi
Version: 2.0.20
-Release: 8%{?dist}
+Release: 9%{?dist}
Summary: Fast, self-healing, application container server
# uwsgi is licensed under GPLv2 with a linking exception
# docs are licensed under MIT
@@ -217,6 +217,8 @@ Patch13: uwsgi_fix_chroot_chdir.patch
Patch14: uwsgi_fix_php_arginfo.patch
Patch15: uwsgi_fix_python_py_ssize_t.patch
Patch16: uwsgi_python311.patch
+# https://github.com/unbit/uwsgi/pull/2400
+Patch17: uwsgi_fix_php81_filename_zend_string.patch
BuildRequires: curl, libxml2-devel, libuuid-devel, jansson-devel
BuildRequires: libyaml-devel, ruby-devel
@@ -1241,6 +1243,7 @@ cp -p %{SOURCE5} README.Fedora
%patch14 -p1
%patch15 -p1
%patch16 -p1
+%patch17 -p1
%if %{with perl} && (%{with python3} || %{with python3_other}) && %{with perlcoro}
%{__python} -m lib2to3 --write --nobackups plugins/coroae/uwsgiplugin.py
@@ -1835,6 +1838,9 @@ exit 0
%changelog
+* Tue Aug 09 2022 Ralf Ertzinger <ralf(a)skytale.net> - 2.0.20-9
+- Fix PHP 8.1 support
+
* Sat Jul 23 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.0.20-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
diff --git a/uwsgi_fix_php81_filename_zend_string.patch b/uwsgi_fix_php81_filename_zend_string.patch
new file mode 100644
index 0000000..81d9025
--- /dev/null
+++ b/uwsgi_fix_php81_filename_zend_string.patch
@@ -0,0 +1,42 @@
+From 8ca18da9a01eee19156243c5c0d28d2572698e4a Mon Sep 17 00:00:00 2001
+From: Riccardo Magliocchetti <riccardo.magliocchetti(a)gmail.com>
+Date: Sun, 30 Jan 2022 14:31:50 +0100
+Subject: [PATCH] plugins/php: handle php8.1 zend_file_handle signature change
+
+filename is now a zend_string.
+
+Refs #2394
+---
+ plugins/php/php_plugin.c | 17 +++++++++++------
+ 1 file changed, 11 insertions(+), 6 deletions(-)
+
+diff --git a/plugins/php/php_plugin.c b/plugins/php/php_plugin.c
+index d336adddc..8b5a24156 100644
+--- a/plugins/php/php_plugin.c
++++ b/plugins/php/php_plugin.c
+@@ -1096,14 +1096,19 @@ int uwsgi_php_request(struct wsgi_request *wsgi_req) {
+
+ SG(request_info).path_translated = wsgi_req->file;
+
+- memset(&file_handle, 0, sizeof(zend_file_handle));
+- file_handle.type = ZEND_HANDLE_FILENAME;
+- file_handle.filename = real_filename;
++#if PHP_VERSION_ID >= 80100
++ zend_string *handle_filename = zend_string_init(real_filename, real_filename_len, 0);
++#else
++ const char *handle_filename = real_filename;
++#endif
++ memset(&file_handle, 0, sizeof(zend_file_handle));
++ file_handle.type = ZEND_HANDLE_FILENAME;
++ file_handle.filename = handle_filename;
+
+- if (php_request_startup() == FAILURE) {
++ if (php_request_startup() == FAILURE) {
+ uwsgi_500(wsgi_req);
+- return -1;
+- }
++ return -1;
++ }
+
+ struct uwsgi_string_list *usl=NULL;
+
commit 061e65645fbde5372b1a64e5becd0eef077aa5ea
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Sat Jul 23 11:37:12 2022 +0000
Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/uwsgi.spec b/uwsgi.spec
index 016d6a8..150b288 100644
--- a/uwsgi.spec
+++ b/uwsgi.spec
@@ -187,7 +187,7 @@
Name: uwsgi
Version: 2.0.20
-Release: 7%{?dist}
+Release: 8%{?dist}
Summary: Fast, self-healing, application container server
# uwsgi is licensed under GPLv2 with a linking exception
# docs are licensed under MIT
@@ -1835,6 +1835,9 @@ exit 0
%changelog
+* Sat Jul 23 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.0.20-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+
* Thu Jun 30 2022 Victor Stinner <vstinner(a)python.org> - 2.0.20-7
- Add Python 3.11 support (rhbz#2099185)
commit 703b4ef92df1f0058bc07543fde9754de2fecc95
Author: Victor Stinner <vstinner(a)python.org>
Date: Thu Jun 30 10:31:35 2022 +0000
Add Python 3.11 support
Resolves: rhbz#2099185
diff --git a/uwsgi.spec b/uwsgi.spec
index e4063f8..016d6a8 100644
--- a/uwsgi.spec
+++ b/uwsgi.spec
@@ -187,7 +187,7 @@
Name: uwsgi
Version: 2.0.20
-Release: 6%{?dist}
+Release: 7%{?dist}
Summary: Fast, self-healing, application container server
# uwsgi is licensed under GPLv2 with a linking exception
# docs are licensed under MIT
@@ -216,6 +216,7 @@ Patch13: uwsgi_fix_chroot_chdir.patch
# https://github.com/unbit/uwsgi/issues/2356
Patch14: uwsgi_fix_php_arginfo.patch
Patch15: uwsgi_fix_python_py_ssize_t.patch
+Patch16: uwsgi_python311.patch
BuildRequires: curl, libxml2-devel, libuuid-devel, jansson-devel
BuildRequires: libyaml-devel, ruby-devel
@@ -1239,6 +1240,7 @@ cp -p %{SOURCE5} README.Fedora
%patch13 -p1
%patch14 -p1
%patch15 -p1
+%patch16 -p1
%if %{with perl} && (%{with python3} || %{with python3_other}) && %{with perlcoro}
%{__python} -m lib2to3 --write --nobackups plugins/coroae/uwsgiplugin.py
@@ -1833,6 +1835,9 @@ exit 0
%changelog
+* Thu Jun 30 2022 Victor Stinner <vstinner(a)python.org> - 2.0.20-7
+- Add Python 3.11 support (rhbz#2099185)
+
* Mon Jun 13 2022 Python Maint <python-maint(a)redhat.com> - 2.0.20-6
- Rebuilt for Python 3.11
diff --git a/uwsgi_python311.patch b/uwsgi_python311.patch
new file mode 100644
index 0000000..ddf0a3d
--- /dev/null
+++ b/uwsgi_python311.patch
@@ -0,0 +1,174 @@
+Add Python 3.11 support
+
+Backport of https://github.com/unbit/uwsgi/pull/2453
+
+Resolves: rhbz#2099185
+
+diff --git a/plugins/python/profiler.c b/plugins/python/profiler.c
+index 92bc3da..2a7e1cc 100644
+--- a/plugins/python/profiler.c
++++ b/plugins/python/profiler.c
+@@ -13,6 +13,14 @@ int PyFrame_GetLineNumber(PyFrameObject *frame) {
+ }
+ #endif
+
++#if PY_VERSION_HEX < 0x030900B1
++PyCodeObject* PyFrame_GetCode(PyFrameObject *frame)
++{
++ Py_INCREF(frame->f_code);
++ return frame->f_code;
++}
++#endif
++
+ #ifdef PYTHREE
+ #undef PyString_AsString
+ static char *PyString_AsString(PyObject *o) {
+@@ -27,27 +35,32 @@ int uwsgi_python_profiler_call(PyObject *obj, PyFrameObject *frame, int what, Py
+ static uint64_t last_ts = 0;
+ uint64_t now = uwsgi_micros();
+ uint64_t delta = 0;
++ PyCodeObject *code;
+
+ switch(what) {
+ case PyTrace_CALL:
+ if (last_ts == 0) delta = 0;
+ else delta = now - last_ts;
+ last_ts = now;
++ code = PyFrame_GetCode(frame);
+ uwsgi_log("[uWSGI Python profiler %llu] CALL: %s (line %d) -> %s %d args, stacksize %d\n",
+ (unsigned long long) delta,
+- PyString_AsString(frame->f_code->co_filename),
++ PyString_AsString(code->co_filename),
+ PyFrame_GetLineNumber(frame),
+- PyString_AsString(frame->f_code->co_name), frame->f_code->co_argcount, frame->f_code->co_stacksize);
++ PyString_AsString(code->co_name), code->co_argcount, code->co_stacksize);
++ Py_DECREF(code);
+ break;
+ case PyTrace_C_CALL:
+ if (last_ts == 0) delta = 0;
+ else delta = now - last_ts;
+ last_ts = now;
++ code = PyFrame_GetCode(frame);
+ uwsgi_log("[uWSGI Python profiler %llu] C CALL: %s (line %d) -> %s %d args, stacksize %d\n",
+ (unsigned long long) delta,
+- PyString_AsString(frame->f_code->co_filename),
++ PyString_AsString(code->co_filename),
+ PyFrame_GetLineNumber(frame),
+- PyEval_GetFuncName(arg), frame->f_code->co_argcount, frame->f_code->co_stacksize);
++ PyEval_GetFuncName(arg), code->co_argcount, code->co_stacksize);
++ Py_DECREF(code);
+ break;
+ }
+
+@@ -68,7 +81,9 @@ int uwsgi_python_tracer(PyObject *obj, PyFrameObject *frame, int what, PyObject
+ delta = now - last_ts;
+ }
+ last_ts = now;
+- uwsgi_log("[uWSGI Python profiler %llu] file %s line %d: %s argc:%d\n", (unsigned long long)delta, PyString_AsString(frame->f_code->co_filename), PyFrame_GetLineNumber(frame), PyString_AsString(frame->f_code->co_name), frame->f_code->co_argcount);
++ PyCodeObject *code = PyFrame_GetCode(frame);
++ uwsgi_log("[uWSGI Python profiler %llu] file %s line %d: %s argc:%d\n", (unsigned long long)delta, PyString_AsString(code->co_filename), PyFrame_GetLineNumber(frame), PyString_AsString(code->co_name), code->co_argcount);
++ Py_DECREF(code);
+ }
+
+ return 0;
+diff --git a/plugins/python/python_plugin.c b/plugins/python/python_plugin.c
+index 6834f84..1d21c0d 100644
+--- a/plugins/python/python_plugin.c
++++ b/plugins/python/python_plugin.c
+@@ -1137,9 +1137,13 @@ void uwsgi_python_init_apps() {
+ }
+
+ // prepare for stack suspend/resume
+- if (uwsgi.async > 1) {
++ if (uwsgi.async > 0) {
++#ifdef UWSGI_PY311
++ up.current_recursion_remaining = uwsgi_malloc(sizeof(int)*uwsgi.async);
++#else
+ up.current_recursion_depth = uwsgi_malloc(sizeof(int)*uwsgi.async);
+- up.current_frame = uwsgi_malloc(sizeof(struct _frame)*uwsgi.async);
++#endif
++ up.current_frame = uwsgi_malloc(sizeof(up.current_frame[0])*uwsgi.async);
+ }
+
+ // setup app loaders
+@@ -1530,12 +1534,22 @@ void uwsgi_python_suspend(struct wsgi_request *wsgi_req) {
+ PyGILState_Release(pgst);
+
+ if (wsgi_req) {
++#ifdef UWSGI_PY311
++ up.current_recursion_remaining[wsgi_req->async_id] = tstate->recursion_remaining;
++ up.current_frame[wsgi_req->async_id] = tstate->cframe;
++#else
+ up.current_recursion_depth[wsgi_req->async_id] = tstate->recursion_depth;
+ up.current_frame[wsgi_req->async_id] = tstate->frame;
++#endif
+ }
+ else {
++#ifdef UWSGI_PY311
++ up.current_main_recursion_remaining = tstate->recursion_remaining;
++ up.current_main_frame = tstate->cframe;
++#else
+ up.current_main_recursion_depth = tstate->recursion_depth;
+ up.current_main_frame = tstate->frame;
++#endif
+ }
+
+ }
+@@ -1763,12 +1777,22 @@ void uwsgi_python_resume(struct wsgi_request *wsgi_req) {
+ PyGILState_Release(pgst);
+
+ if (wsgi_req) {
++#ifdef UWSGI_PY311
++ tstate->recursion_remaining = up.current_recursion_remaining[wsgi_req->async_id];
++ tstate->cframe = up.current_frame[wsgi_req->async_id];
++#else
+ tstate->recursion_depth = up.current_recursion_depth[wsgi_req->async_id];
+ tstate->frame = up.current_frame[wsgi_req->async_id];
++#endif
+ }
+ else {
++#ifdef UWSGI_PY311
++ tstate->recursion_remaining = up.current_main_recursion_remaining;
++ tstate->cframe = up.current_main_frame;
++#else
+ tstate->recursion_depth = up.current_main_recursion_depth;
+ tstate->frame = up.current_main_frame;
++#endif
+ }
+
+ }
+diff --git a/plugins/python/uwsgi_python.h b/plugins/python/uwsgi_python.h
+index 357d731..6c6f7a4 100644
+--- a/plugins/python/uwsgi_python.h
++++ b/plugins/python/uwsgi_python.h
+@@ -18,6 +18,10 @@
+ #define UWSGI_PYTHON_OLD
+ #endif
+
++#if (PY_VERSION_HEX >= 0x030b0000)
++# define UWSGI_PY311
++#endif
++
+ #if PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION < 7
+ #define HAS_NOT_PyMemoryView_FromBuffer
+ #endif
+@@ -165,11 +169,19 @@ struct uwsgi_python {
+
+ char *callable;
+
++#ifdef UWSGI_PY311
++ int *current_recursion_remaining;
++ _PyCFrame **current_frame;
++
++ int current_main_recursion_remaining;
++ _PyCFrame *current_main_frame;
++#else
+ int *current_recursion_depth;
+ struct _frame **current_frame;
+
+ int current_main_recursion_depth;
+ struct _frame *current_main_frame;
++#endif
+
+ void (*swap_ts)(struct wsgi_request *, struct uwsgi_app *);
+ void (*reset_ts)(struct wsgi_request *, struct uwsgi_app *);
commit 35a88dd5f8f1f586c587f789bade370743af4847
Author: Python Maint <python-maint(a)redhat.com>
Date: Mon Jun 13 19:54:20 2022 +0200
Rebuilt for Python 3.11
diff --git a/uwsgi.spec b/uwsgi.spec
index e590ac8..e4063f8 100644
--- a/uwsgi.spec
+++ b/uwsgi.spec
@@ -187,7 +187,7 @@
Name: uwsgi
Version: 2.0.20
-Release: 5%{?dist}
+Release: 6%{?dist}
Summary: Fast, self-healing, application container server
# uwsgi is licensed under GPLv2 with a linking exception
# docs are licensed under MIT
@@ -1833,6 +1833,9 @@ exit 0
%changelog
+* Mon Jun 13 2022 Python Maint <python-maint(a)redhat.com> - 2.0.20-6
+- Rebuilt for Python 3.11
+
* Wed Jun 01 2022 Jitka Plesnikova <jplesnik(a)redhat.com> - 2.0.20-5
- Perl 5.36 rebuild
commit 927b0ea2f07930b9da36aa32a658049fd3e6d442
Author: Jitka Plesnikova <jplesnik(a)redhat.com>
Date: Wed Jun 1 08:39:30 2022 +0200
Perl 5.36 rebuild
diff --git a/uwsgi.spec b/uwsgi.spec
index 14dd844..e590ac8 100644
--- a/uwsgi.spec
+++ b/uwsgi.spec
@@ -187,7 +187,7 @@
Name: uwsgi
Version: 2.0.20
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: Fast, self-healing, application container server
# uwsgi is licensed under GPLv2 with a linking exception
# docs are licensed under MIT
@@ -1833,6 +1833,9 @@ exit 0
%changelog
+* Wed Jun 01 2022 Jitka Plesnikova <jplesnik(a)redhat.com> - 2.0.20-5
+- Perl 5.36 rebuild
+
* Fri Mar 04 2022 Ralf Ertzinger <ralf(a)skytale.net> - 2.0.20-4
- Add support for EPEL9
commit 6d410724c0684c789612d977f96367bfcfa80f6a
Author: Ralf Ertzinger <ralf(a)skytale.net>
Date: Fri Mar 4 20:09:54 2022 +0100
Add support for EPEL9
diff --git a/fedora.ini b/fedora.ini
index 7811aab..951846b 100644
--- a/fedora.ini
+++ b/fedora.ini
@@ -11,7 +11,6 @@ malloc_implementation = libc
embedded_plugins = corerouter, echo, ping
plugins = airbrake,
alarm_curl,
- alarm_xmpp,
cache,
carbon,
cgi,
@@ -23,7 +22,6 @@ plugins = airbrake,
emperor_amqp,
fastrouter,
forkptyrouter,
- geoip,
graylog2,
http,
ldap,
diff --git a/uwsgi.spec b/uwsgi.spec
index 9bf000d..14dd844 100644
--- a/uwsgi.spec
+++ b/uwsgi.spec
@@ -14,9 +14,12 @@
%bcond_without tuntap
%bcond_without zeromq
%bcond_without perl
+%bcond_without perlcoro
%bcond_without glusterfs
%bcond_without php
%bcond_without pq
+%bcond_without gloox
+%bcond_without geoip
# javapackages-tools retired (apache-ivy orphanage)
%bcond_with java
# Fedora httpd includes mod_proxy_uwsgi
@@ -49,6 +52,8 @@
%bcond_without python2
%bcond_without python3
%bcond_without python3_other
+%bcond_without gloox
+%bcond_without geoip
# This only exists on EL7
%bcond_without tcp_wrappers
# el7 doesn't have zeromq
@@ -60,6 +65,7 @@
# el7 does have perl-PSGI
# el7 does have perl-Coro
%bcond_without perl
+%bcond_without perlcoro
# el7 httpd does not include mod_proxy_uwsgi
%bcond_without mod_proxy_uwsgi
# el7 can now build glusterfs but only on x86_64
@@ -82,9 +88,12 @@
%bcond_without tuntap
%bcond_without zeromq
%bcond_without perl
+%bcond_without perlcoro
%bcond_without glusterfs
%bcond_without php
%bcond_without pq
+%bcond_without gloox
+%bcond_without geoip
# javapackages-tools retired (apache-ivy orphanage)
%bcond_with java
# Fedora httpd includes mod_proxy_uwsgi
@@ -110,6 +119,49 @@
#EL8 endif
%endif
+%if 0%{?rhel} == 9
+%bcond_without go
+%bcond_without python3
+%bcond_without ruby19
+%bcond_without tuntap
+# EPEL9 doesn't have zeromq yet
+%bcond_with zeromq
+%bcond_without perl
+# EPEL9 doesn't have perl-Coro yet
+%bcond_with perlcoro
+# EPEL9 doesn't have glusterfs yet
+%bcond_with glusterfs
+%bcond_without php
+%bcond_without pq
+# EPEL9 doesn't have gloox yet
+%bcond_with gloox
+# EPEL9 doesn't have GeoIP yet
+%bcond_with geoip
+# javapackages-tools retired (apache-ivy orphanage)
+%bcond_with java
+# Fedora httpd includes mod_proxy_uwsgi
+# https://bugzilla.redhat.com/show_bug.cgi?id=1574335
+%bcond_with mod_proxy_uwsgi
+#mono
+%ifarch %{mono_arches}
+%bcond_without mono
+%else
+%bcond_with mono
+%endif
+# mongodblibs
+# mongo-cxx-driver-legacy broken in rawhide rhbz#1675407
+%bcond_with mongodblibs
+# v8-314 retired
+%bcond_with v8
+#mongodblibs dependency
+%if %{without mongodblibs}
+%bcond_with gridfs
+%else
+%bcond_without gridfs
+%endif
+#EL9 endif
+%endif
+
%global manual_py_compile 1
# Turn off byte compilation so it doesn't try
@@ -135,7 +187,7 @@
Name: uwsgi
Version: 2.0.20
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: Fast, self-healing, application container server
# uwsgi is licensed under GPLv2 with a linking exception
# docs are licensed under MIT
@@ -195,12 +247,21 @@ BuildRequires: openssl-devel
BuildRequires: bzip2-devel, gmp-devel, pam-devel
BuildRequires: sqlite-devel, libcap-devel
BuildRequires: httpd-devel, libcurl-devel
-BuildRequires: gloox-devel, libstdc++-devel
-BuildRequires: GeoIP-devel, libevent-devel, zlib-devel
+BuildRequires: libstdc++-devel
+%if %{with gloox}
+BuildRequires: gloox-devel
+%endif
+BuildRequires: libevent-devel, zlib-devel
+%if %{with geoip}
+BuildRequires: GeoIP-devel
+%endif
BuildRequires: openldap-devel, boost-devel
BuildRequires: libattr-devel, libxslt-devel
%if %{with perl}
-BuildRequires: perl-devel, perl-ExtUtils-Embed, perl-Coro
+BuildRequires: perl-devel, perl-ExtUtils-Embed
+%if %{with perlcoro}
+BuildRequires: perl-Coro
+%endif
%endif
%if %{with zeromq}
BuildRequires: zeromq-devel
@@ -371,12 +432,14 @@ Requires: uwsgi-plugin-common = %{version}-%{release}
%description -n uwsgi-alarm-curl
This package contains the alarm_curl alarm plugin for uWSGI
+%if %{with gloox}
%package -n uwsgi-alarm-xmpp
Summary: uWSGI - Curl alarm plugin
-Requires: uwsgi-plugin-common = %{version}-%{release}, gloox
+Requires: uwsgi-plugin-common = %{version}-%{release}
%description -n uwsgi-alarm-xmpp
This package contains the alarm_xmpp alarm plugin for uWSGI
+%endif
# Transformations
@@ -555,6 +618,7 @@ Requires: perl-PSGI, uwsgi-plugin-common = %{version}-%{release}
%description -n uwsgi-plugin-psgi
This package contains the PSGI plugin for uWSGI
+%if %{with perlcoro}
%package -n uwsgi-plugin-coroae
Summary: uWSGI - Plugin for PERL Coro support
Requires: uwsgi-plugin-common = %{version}-%{release}, uwsgi-plugin-psgi = %{version}-%{release}, perl-Coro
@@ -562,6 +626,7 @@ Requires: uwsgi-plugin-common = %{version}-%{release}, uwsgi-plugin-psgi = %{ver
%description -n uwsgi-plugin-coroae
This package contains the coroae plugin for uWSGI
%endif
+%endif
%package -n uwsgi-plugin-cheaper-busyness
Summary: uWSGI - Plugin for Cheaper Busyness algos
@@ -614,12 +679,14 @@ Requires: uwsgi-plugin-common = %{version}-%{release}
This package contains the gccgo plugin for uWSGI
%endif
+%if %{with geoip}
%package -n uwsgi-plugin-geoip
Summary: uWSGI - Plugin for GeoIP support
-Requires: uwsgi-plugin-common = %{version}-%{release}, GeoIP
+Requires: uwsgi-plugin-common = %{version}-%{release}
%description -n uwsgi-plugin-geoip
This package contains the geoip plugin for uWSGI
+%endif
%if %{with python2}
%package -n uwsgi-plugin-python2-gevent
@@ -1173,7 +1240,7 @@ cp -p %{SOURCE5} README.Fedora
%patch14 -p1
%patch15 -p1
-%if %{with perl} && (%{with python3} || %{with python3_other})
+%if %{with perl} && (%{with python3} || %{with python3_other}) && %{with perlcoro}
%{__python} -m lib2to3 --write --nobackups plugins/coroae/uwsgiplugin.py
%endif
@@ -1225,8 +1292,10 @@ CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --v
%endif
%if %{with perl}
CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --verbose --plugin plugins/psgi fedora
+%if %{with perlcoro}
CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --verbose --plugin plugins/coroae fedora
%endif
+%endif
%if %{with zeromq}
CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --verbose --plugin plugins/logzmq fedora
CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --verbose --plugin plugins/mongrel2 fedora
@@ -1249,6 +1318,12 @@ CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --v
CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --verbose --plugin plugins/jwsgi fedora
CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --verbose --plugin plugins/ring fedora
%endif
+%if %{with gloox}
+CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --verbose --plugin plugins/alarm_xmpp fedora
+%endif
+%if %{with geoip}
+CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --verbose --plugin plugins/geoip fedora
+%endif
%if %{with tcp_wrappers}
CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --verbose --plugin plugins/router_access fedora
%endif
@@ -1391,8 +1466,10 @@ exit 0
%files -n uwsgi-alarm-curl
%{_libdir}/uwsgi/alarm_curl_plugin.so
+%if %{with gloox}
%files -n uwsgi-alarm-xmpp
%{_libdir}/uwsgi/alarm_xmpp_plugin.so
+%endif
# Transformations
@@ -1471,9 +1548,11 @@ exit 0
%files -n uwsgi-plugin-psgi
%{_libdir}/uwsgi/psgi_plugin.so
+%if %{with perlcoro}
%files -n uwsgi-plugin-coroae
%{_libdir}/uwsgi/coroae_plugin.so
%endif
+%endif
%files -n uwsgi-plugin-cheaper-busyness
%{_libdir}/uwsgi/cheaper_busyness_plugin.so
@@ -1500,8 +1579,10 @@ exit 0
%{_libdir}/uwsgi/gccgo_plugin.so
%endif
+%if %{with geoip}
%files -n uwsgi-plugin-geoip
%{_libdir}/uwsgi/geoip_plugin.so
+%endif
%if %{with python2}
%files -n uwsgi-plugin-python2-gevent
@@ -1752,6 +1833,12 @@ exit 0
%changelog
+* Fri Mar 04 2022 Ralf Ertzinger <ralf(a)skytale.net> - 2.0.20-4
+- Add support for EPEL9
+
+* Wed Mar 02 2022 Ralf Ertzinger <ralf(a)skytale.net> - 2.0.20-3
+- Add build support for EPEL9
+
* Sat Feb 19 2022 Ralf Ertzinger <ralf(a)skytale.net> - 2.0.20-3
- Fix errors in uwsgi python module when building against python3.10 or higher
commit 73fd0c25da5b20398b5da6051cdcb3140ae2011c
Author: Ralf Ertzinger <ralf(a)skytale.net>
Date: Wed Feb 23 20:13:29 2022 +0100
Clean up %post, %preun and %postun scripts
diff --git a/uwsgi.spec b/uwsgi.spec
index 3db1e53..9bf000d 100644
--- a/uwsgi.spec
+++ b/uwsgi.spec
@@ -1320,36 +1320,13 @@ getent passwd uwsgi >/dev/null || \
exit 0
%post
-%if 0%{?systemd_post:1}
- %systemd_post uwsgi.service
-%else
- if [ $1 -eq 1 ] ; then
- # Initial installation
- /bin/systemctl daemon-reload >/dev/null 2>&1 || :
- fi
-%endif
+%systemd_post uwsgi.service
%preun
-%if 0%{?systemd_preun:1}
- %systemd_preun uwsgi.service
-%else
- if [ $1 -eq 0 ] ; then
- # Package removal, not upgrade
- /bin/systemctl --no-reload disable uwsgi.service > /dev/null 2>&1 || :
- /bin/systemctl stop uwsgi.service > /dev/null 2>&1 || :
- fi
-%endif
+%systemd_preun uwsgi.service
%postun
-%if 0%{?systemd_postun:1}
- %systemd_postun uwsgi.service
-%else
- /bin/systemctl daemon-reload >/dev/null 2>&1 || :
- if [ $1 -ge 1 ] ; then
- # Package upgrade, not uninstall
- /bin/systemctl try-restart uwsgi.service >/dev/null 2>&1 || :
- fi
-%endif
+%systemd_postun uwsgi.service
%files
1 year, 10 months
Architecture specific change in rpms/freecad.git
by githook-noreply@fedoraproject.org
The package rpms/freecad.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/freecad.git/commit/?id=13906588ec....
Change:
+ExcludeArch: i686
Thanks.
Full change:
============
commit 13906588ec4783d7383d8003990f3cefb260cbce
Author: Richard Shaw <hobbes1069(a)gmail.com>
Date: Tue Aug 9 10:08:12 2022 -0500
Exclude i686 arch on Fedora 37 and higher.
diff --git a/freecad.spec b/freecad.spec
index e2c5e1c..ae860e9 100644
--- a/freecad.spec
+++ b/freecad.spec
@@ -32,6 +32,11 @@ Source102: freecad.1
Patch0: freecad-unbundled-pycxx.patch
+# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
+%if 0%{?fedora} > 36
+ExcludeArch: i686
+%endif
+
# Utilities
BuildRequires: cmake gcc-c++ gettext dos2unix
BuildRequires: doxygen swig graphviz
commit 4966647c2516d333df862d36f1a43e402de63e04
Author: Richard Shaw <hobbes1069(a)gmail.com>
Date: Tue Aug 9 07:45:26 2022 -0500
Update to 0.20.1.
diff --git a/.gitignore b/.gitignore
index 9a944bf..21aaced 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,3 +19,4 @@
/FreeCAD-0.19.3.tar.gz
/FreeCAD-0.19.4.tar.gz
/FreeCAD-0.20.tar.gz
+/FreeCAD-0.20.1.tar.gz
diff --git a/1ae55905ba.patch b/1ae55905ba.patch
deleted file mode 100644
index d543806..0000000
--- a/1ae55905ba.patch
+++ /dev/null
@@ -1,214 +0,0 @@
-From 1ae55905ba7e89278bf656ebcc57ea1088e8fa44 Mon Sep 17 00:00:00 2001
-From: wmayer <wmayer(a)users.sourceforge.net>
-Date: Fri, 1 Jul 2022 17:54:50 +0200
-Subject: [PATCH] Py: make FreeCAD to compile with Py3.11
-
----
- src/Base/ConsoleObserver.cpp | 6 ++++
- src/Base/Interpreter.cpp | 56 ++++++++++++++++++++++++++++++++++++
- src/Base/PyObjectBase.cpp | 4 +++
- src/Base/PyTools.c | 10 ++++++-
- src/Gui/Command.cpp | 7 +++++
- src/Gui/PythonDebugger.cpp | 17 +++++++++--
- 6 files changed, 97 insertions(+), 3 deletions(-)
-
-diff --git a/src/Base/ConsoleObserver.cpp b/src/Base/ConsoleObserver.cpp
-index c6428a7f18be..ab3b3e9157b1 100644
---- a/src/Base/ConsoleObserver.cpp
-+++ b/src/Base/ConsoleObserver.cpp
-@@ -266,7 +266,13 @@ std::stringstream &LogLevel::prefix(std::stringstream &str, const char *src, int
- PyFrameObject* frame = PyEval_GetFrame();
- if (frame) {
- line = PyFrame_GetLineNumber(frame);
-+#if PY_VERSION_HEX < 0x030b0000
- src = PyUnicode_AsUTF8(frame->f_code->co_filename);
-+#else
-+ PyCodeObject* code = PyFrame_GetCode(frame);
-+ src = PyUnicode_AsUTF8(code->co_filename);
-+ Py_DECREF(code);
-+#endif
- }
- }
- if (print_src && src && src[0]) {
-diff --git a/src/Base/Interpreter.cpp b/src/Base/Interpreter.cpp
-index 2bacea30cbb7..5a476094b749 100644
---- a/src/Base/Interpreter.cpp
-+++ b/src/Base/Interpreter.cpp
-@@ -523,6 +523,7 @@ void InterpreterSingleton::addPythonPath(const char* Path)
- list.append(Py::String(Path));
- }
-
-+#if PY_VERSION_HEX < 0x030b0000
- const char* InterpreterSingleton::init(int argc,char *argv[])
- {
- if (!Py_IsInitialized()) {
-@@ -565,6 +566,61 @@ const char* InterpreterSingleton::init(int argc,char *argv[])
- PyGILStateLocker lock;
- return Py_EncodeLocale(Py_GetPath(),nullptr);
- }
-+#else
-+namespace {
-+void initInterpreter(int argc,char *argv[])
-+{
-+ PyStatus status;
-+ PyConfig config;
-+ PyConfig_InitPythonConfig(&config);
-+
-+ status = PyConfig_SetBytesArgv(&config, argc, argv);
-+ if (PyStatus_Exception(status)) {
-+ throw Base::RuntimeError("Failed to set config");
-+ }
-+
-+ status = Py_InitializeFromConfig(&config);
-+ if (PyStatus_Exception(status)) {
-+ throw Base::RuntimeError("Failed to init from config");
-+ }
-+
-+ PyConfig_Clear(&config);
-+
-+ Py_Initialize();
-+ const char* virtualenv = getenv("VIRTUAL_ENV");
-+ if (virtualenv) {
-+ PyRun_SimpleString(
-+ "# Check for virtualenv, and activate if present.\n"
-+ "# See https://virtualenv.pypa.io/en/latest/userguide/#using-virtualenv-without-..."
-+ "import os\n"
-+ "import sys\n"
-+ "base_path = os.getenv(\"VIRTUAL_ENV\")\n"
-+ "if not base_path is None:\n"
-+ " activate_this = os.path.join(base_path, \"bin\", \"activate_this.py\")\n"
-+ " exec(open(activate_this).read(), {'__file__':activate_this})\n"
-+ );
-+ }
-+}
-+}
-+const char* InterpreterSingleton::init(int argc,char *argv[])
-+{
-+ try {
-+ if (!Py_IsInitialized()) {
-+ initInterpreter(argc, argv);
-+
-+ PythonStdOutput::init_type();
-+ this->_global = PyEval_SaveThread();
-+ }
-+
-+ PyGILStateLocker lock;
-+ return Py_EncodeLocale(Py_GetPath(),nullptr);
-+ }
-+ catch (const Base::Exception& e) {
-+ e.ReportException();
-+ throw;
-+ }
-+}
-+#endif
-
- void InterpreterSingleton::replaceStdOutput()
- {
-diff --git a/src/Base/PyObjectBase.cpp b/src/Base/PyObjectBase.cpp
-index 773a61b259b3..343ab26999f6 100644
---- a/src/Base/PyObjectBase.cpp
-+++ b/src/Base/PyObjectBase.cpp
-@@ -60,7 +60,11 @@ PyObjectBase::PyObjectBase(void* p,PyTypeObject *T)
- , baseProxy(nullptr)
- , attrDict(nullptr)
- {
-+#if PY_VERSION_HEX < 0x030b0000
- Py_TYPE(this) = T;
-+#else
-+ Py_SET_TYPE(this, T);
-+#endif
- _Py_NewReference(this);
- #ifdef FC_LOGPYOBJECTS
- Base::Console().Log("PyO+: %s (%p)\n",T->tp_name, this);
-diff --git a/src/Base/PyTools.c b/src/Base/PyTools.c
-index 71569e26a200..492d0c8563a4 100644
---- a/src/Base/PyTools.c
-+++ b/src/Base/PyTools.c
-@@ -15,8 +15,10 @@ is provided on an as is basis, without warranties of any kind.
- #include <string.h>
- #include <assert.h>
- #include <compile.h>
--#include <eval.h>
- #include <frameobject.h>
-+#if PY_VERSION_HEX < 0x030b0000
-+#include <eval.h>
-+#endif
-
-
- /*****************************************************************************
-@@ -310,7 +312,13 @@ void PP_Fetch_Error_Text()
- if(!frame)
- return;
- int line = PyFrame_GetLineNumber(frame);
-+#if PY_VERSION_HEX < 0x030b0000
- const char *file = PyUnicode_AsUTF8(frame->f_code->co_filename);
-+#else
-+ PyCodeObject* code = PyFrame_GetCode(frame);
-+ const char *file = PyUnicode_AsUTF8(code->co_filename);
-+ Py_DECREF(code);
-+#endif
- #ifdef FC_OS_WIN32
- const char *_f = strstr(file, "\\src\\");
- #else
-diff --git a/src/Gui/Command.cpp b/src/Gui/Command.cpp
-index c9568e8f0e69..cf555439fcd2 100644
---- a/src/Gui/Command.cpp
-+++ b/src/Gui/Command.cpp
-@@ -657,8 +657,15 @@ void Command::printPyCaller() {
- if(!frame)
- return;
- int line = PyFrame_GetLineNumber(frame);
-+#if PY_VERSION_HEX < 0x030b0000
- const char *file = PyUnicode_AsUTF8(frame->f_code->co_filename);
- printCaller(file?file:"<no file>",line);
-+#else
-+ PyCodeObject* code = PyFrame_GetCode(frame);
-+ const char* file = PyUnicode_AsUTF8(code->co_filename);
-+ printCaller(file?file:"<no file>",line);
-+ Py_DECREF(code);
-+#endif
- }
-
- void Command::printCaller(const char *file, int line) {
-diff --git a/src/Gui/PythonDebugger.cpp b/src/Gui/PythonDebugger.cpp
-index 7e731a9dd6af..cd44e9b1c233 100644
---- a/src/Gui/PythonDebugger.cpp
-+++ b/src/Gui/PythonDebugger.cpp
-@@ -563,6 +563,14 @@ void PythonDebugger::hideDebugMarker(const QString& fn)
- }
- }
-
-+#if PY_VERSION_HEX < 0x030900B1
-+static PyCodeObject* PyFrame_GetCode(PyFrameObject *frame)
-+{
-+ Py_INCREF(frame->f_code);
-+ return frame->f_code;
-+}
-+#endif
-+
- // http://www.koders.com/cpp/fidBA6CD8A0FE5F41F1464D74733D9A711DA257D20B.asp...
- // http://code.google.com/p/idapython/source/browse/trunk/python.cpp
- // http://www.koders.com/cpp/fid191F7B13CF73133935A7A2E18B7BF43ACC6D1784.asp...
-@@ -578,7 +586,9 @@ int PythonDebugger::tracer_callback(PyObject *obj, PyFrameObject *frame, int wha
-
- //no = frame->f_tstate->recursion_depth;
- //std::string funcname = PyString_AsString(frame->f_code->co_name);
-- QString file = QString::fromUtf8(PyUnicode_AsUTF8(frame->f_code->co_filename));
-+ PyCodeObject* code = PyFrame_GetCode(frame);
-+ QString file = QString::fromUtf8(PyUnicode_AsUTF8(code->co_filename));
-+ Py_DECREF(code);
- switch (what) {
- case PyTrace_CALL:
- self->depth++;
-@@ -592,7 +602,10 @@ int PythonDebugger::tracer_callback(PyObject *obj, PyFrameObject *frame, int wha
- //PyObject *str;
- //str = PyObject_Str(frame->f_code->co_filename);
- //no = frame->f_lineno;
-- int line = PyCode_Addr2Line(frame->f_code, frame->f_lasti);
-+ PyCodeObject* f_code = PyFrame_GetCode(frame);
-+ int f_lasti = PyFrame_GetLineNumber(frame);
-+ int line = PyCode_Addr2Line(f_code, f_lasti);
-+ Py_DECREF(f_code);
- //if (str) {
- // Base::Console().Message("PROFILING: %s:%d\n", PyString_AsString(str), frame->f_lineno);
- // Py_DECREF(str);
diff --git a/4916.patch b/4916.patch
deleted file mode 100644
index 2fc56d7..0000000
--- a/4916.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 196813abe2a349fb2b87133aa5c71febb971810e Mon Sep 17 00:00:00 2001
-From: Bernd Waibel <waebbl-gentoo(a)posteo.net>
-Date: Sun, 11 Jul 2021 15:29:03 +0200
-Subject: [PATCH] improve search for VTK-9
-
-Improve the find_package calls with vtk-9 cmake config files.
-In this version, the variable VTK_MODULES_ENABLED has been
-replaced by VTK_AVAILABLE_COMPONENTS.
-
-The additional change of the components names, which have their
-'vtk' prefix removed in vtk-9 is not covered by this patch for
-compatibility reasons.
-
-See the forum thread noted below for a description of this:
-https://forum.freecadweb.org/viewtopic.php?f=4&t=60068
-
-Signed-off-by: Bernd Waibel <waebbl-gentoo(a)posteo.net>
----
- cMake/FreeCAD_Helpers/SetupSalomeSMESH.cmake | 25 ++++++++++++++------
- 1 file changed, 18 insertions(+), 7 deletions(-)
-
-diff --git a/cMake/FreeCAD_Helpers/SetupSalomeSMESH.cmake b/cMake/FreeCAD_Helpers/SetupSalomeSMESH.cmake
-index c83f83265400..5cf36329dfa3 100644
---- a/cMake/FreeCAD_Helpers/SetupSalomeSMESH.cmake
-+++ b/cMake/FreeCAD_Helpers/SetupSalomeSMESH.cmake
-@@ -27,13 +27,24 @@ macro(SetupSalomeSMESH)
- # check which modules are available
- if(UNIX OR WIN32)
- find_package(VTK COMPONENTS vtkCommonCore REQUIRED NO_MODULE)
-- list(APPEND VTK_COMPONENTS vtkIOMPIParallel vtkParallelMPI vtkhdf5 vtkFiltersParallelDIY2 vtkRenderingCore vtkInteractionStyle vtkRenderingFreeType vtkRenderingOpenGL2)
-- foreach(_module ${VTK_COMPONENTS})
-- list (FIND VTK_MODULES_ENABLED ${_module} _index)
-- if (${_index} GREATER -1)
-- list(APPEND AVAILABLE_VTK_COMPONENTS ${_module})
-- endif()
-- endforeach()
-+ if(${VTK_MAJOR_VERSION} LESS 9)
-+ list(APPEND VTK_COMPONENTS vtkIOMPIParallel vtkParallelMPI vtkhdf5 vtkFiltersParallelDIY2 vtkRenderingCore vtkInteractionStyle vtkRenderingFreeType vtkRenderingOpenGL2)
-+ foreach(_module ${VTK_COMPONENTS})
-+ list (FIND VTK_MODULES_ENABLED ${_module} _index)
-+ if(${_index} GREATER -1)
-+ list(APPEND AVAILABLE_VTK_COMPONENTS ${_module})
-+ endif()
-+ endforeach()
-+ else()
-+ set(VTK_COMPONENTS "CommonCore;CommonDataModel;FiltersVerdict;IOXML;FiltersCore;FiltersGeneral;IOLegacy;FiltersExtraction;FiltersSources;FiltersGeometry")
-+ list(APPEND VTK_COMPONENTS "IOMPIParallel;ParallelMPI;hdf5;FiltersParallelDIY2;RenderingCore;InteractionStyle;RenderingFreeType;RenderingOpenGL2")
-+ foreach(_module ${VTK_COMPONENTS})
-+ list (FIND VTK_AVAILABLE_COMPONENTS ${_module} _index)
-+ if(${_index} GREATER -1)
-+ list(APPEND AVAILABLE_VTK_COMPONENTS ${_module})
-+ endif()
-+ endforeach()
-+ endif()
- endif()
-
- # don't check VERSION 6 as this would exclude VERSION 7
diff --git a/6820e0a9ec.patch b/6820e0a9ec.patch
deleted file mode 100644
index 3f7db40..0000000
--- a/6820e0a9ec.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 6820e0a9ec85203a6f342ca72a2ff8fd417beaf1 Mon Sep 17 00:00:00 2001
-From: wmayer <wmayer(a)users.sourceforge.net>
-Date: Sat, 2 Jul 2022 19:36:27 +0200
-Subject: [PATCH] Py3: properly port to Py3.11
-
----
- src/Base/PyObjectBase.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/Base/PyObjectBase.cpp b/src/Base/PyObjectBase.cpp
-index 343ab26999f..a8e1b327809 100644
---- a/src/Base/PyObjectBase.cpp
-+++ b/src/Base/PyObjectBase.cpp
-@@ -63,7 +63,7 @@ PyObjectBase::PyObjectBase(void* p,PyTypeObject *T)
- #if PY_VERSION_HEX < 0x030b0000
- Py_TYPE(this) = T;
- #else
-- Py_SET_TYPE(this, T);
-+ this->ob_type = T;
- #endif
- _Py_NewReference(this);
- #ifdef FC_LOGPYOBJECTS
diff --git a/freecad-0.14-Version_h.patch b/freecad-0.14-Version_h.patch
deleted file mode 100644
index 74e978d..0000000
--- a/freecad-0.14-Version_h.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -1,4 +1,6 @@
--add_subdirectory(Build)
-+if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/Build/Version.h)
-+ add_subdirectory(Build)
-+endif()
- add_subdirectory(3rdParty)
- add_subdirectory(Base)
- add_subdirectory(App)
diff --git a/freecad-0.15-zipios.patch b/freecad-0.15-zipios.patch
deleted file mode 100644
index c9e9f32..0000000
--- a/freecad-0.15-zipios.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Index: FreeCAD-a50ae33557e1992a938542b319cacb8b09d7fb08/src/Base/CMakeLists.txt
-===================================================================
---- FreeCAD-a50ae33557e1992a938542b319cacb8b09d7fb08.orig/src/Base/CMakeLists.txt
-+++ FreeCAD-a50ae33557e1992a938542b319cacb8b09d7fb08/src/Base/CMakeLists.txt
-@@ -377,9 +377,11 @@ ENDIF(MSVC)
- # Use external zipios++ if specified.
- if(FREECAD_USE_EXTERNAL_ZIPIOS)
- find_library(ZIPIOS_LIBRARY zipios)
-- find_path(ZIPIOS_INCLUDES zipios++/zipios-config.h)
-+ find_path(ZIPIOS_INCLUDES NAMES
-+ zipios++/zipios-config.h
-+ zipios++/zipios-config.hpp)
- if(ZIPIOS_LIBRARY)
-- message(STATUS "Found zipios++: ${ZIPIOS}")
-+ message(STATUS "Found zipios++: ${ZIPIOS_LIBRARY}")
- endif()
- if(ZIPIOS_INCLUDES)
- message(STATUS "Found zipios++ headers.")
diff --git a/freecad-boost.patch b/freecad-boost.patch
deleted file mode 100644
index 5b51837..0000000
--- a/freecad-boost.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Index: FreeCAD-0.19.2/CMakeLists.txt
-===================================================================
---- FreeCAD-0.19.2.orig/CMakeLists.txt
-+++ FreeCAD-0.19.2/CMakeLists.txt
-@@ -46,6 +46,7 @@ if(NOT FREECAD_LIBPACK_USE OR FREECAD_LI
- SetupPCL()
- SetupPybind11()
- SetupBoost()
-+ set(Boost_LIBRARIES_App ${Boost_LIBRARIES})
- SetupXercesC()
- find_package(ZLIB REQUIRED)
- find_package(PyCXX REQUIRED)
-Index: FreeCAD-0.19.2/src/App/CMakeLists.txt
-===================================================================
---- FreeCAD-0.19.2.orig/src/App/CMakeLists.txt
-+++ FreeCAD-0.19.2/src/App/CMakeLists.txt
-@@ -59,7 +59,7 @@ include_directories(
-
- set(FreeCADApp_LIBS
- FreeCADBase
-- ${Boost_LIBRARIES}
-+ ${Boost_LIBRARIES_App}
- )
-
- if (BUILD_QT5)
diff --git a/freecad-memory_h.patch b/freecad-memory_h.patch
deleted file mode 100644
index ed25b90..0000000
--- a/freecad-memory_h.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Index: FreeCAD-0.19.4/src/Mod/Part/App/BRepOffsetAPI_MakeFillingPyImp.cpp
-===================================================================
---- FreeCAD-0.19.4.orig/src/Mod/Part/App/BRepOffsetAPI_MakeFillingPyImp.cpp
-+++ FreeCAD-0.19.4/src/Mod/Part/App/BRepOffsetAPI_MakeFillingPyImp.cpp
-@@ -30,6 +30,9 @@
- # include <TopoDS_Face.hxx>
- #endif
-
-+// For std::unique_ptr
-+#include <memory>
-+
- #include "BRepOffsetAPI_MakeFillingPy.h"
- #include "BRepOffsetAPI_MakeFillingPy.cpp"
- #include "TopoShapeEdgePy.h"
-Index: FreeCAD-0.19.4/src/Mod/Part/App/ShapeUpgrade/UnifySameDomainPyImp.cpp
-===================================================================
---- FreeCAD-0.19.4.orig/src/Mod/Part/App/ShapeUpgrade/UnifySameDomainPyImp.cpp
-+++ FreeCAD-0.19.4/src/Mod/Part/App/ShapeUpgrade/UnifySameDomainPyImp.cpp
-@@ -29,6 +29,8 @@
-
- // Needed for OCCT 7.5.2
- #include <TopoDS_Edge.hxx>
-+// Needed for std::unique_ptr
-+#include <memory>
-
- #include "ShapeUpgrade/UnifySameDomainPy.h"
- #include "ShapeUpgrade/UnifySameDomainPy.cpp"
diff --git a/freecad-vtk9.patch b/freecad-vtk9.patch
deleted file mode 100644
index 74568f4..0000000
--- a/freecad-vtk9.patch
+++ /dev/null
@@ -1,827 +0,0 @@
-From bb9bcbd51df7c3cb76c5823038e4ea0f7e25a9ff Mon Sep 17 00:00:00 2001
-From: wmayer <wmayer(a)users.sourceforge.net>
-Date: Mon, 12 Oct 2020 17:56:03 +0200
-Subject: [PATCH] Make smesh compile with vtk9
-
----
- .../salomesmesh/inc/SMDS_MeshElement.hxx | 9 +++-
- .../salomesmesh/inc/SMDS_UnstructuredGrid.hxx | 4 ++
- .../salomesmesh/src/SMDS/SMDS_BallElement.cpp | 9 +++-
- .../salomesmesh/src/SMDS/SMDS_Downward.cpp | 44 +++++++++----------
- .../salomesmesh/src/SMDS/SMDS_Mesh.cpp | 6 ++-
- .../src/SMDS/SMDS_Mesh0DElement.cpp | 12 +++++
- .../salomesmesh/src/SMDS/SMDS_MeshNode.cpp | 10 ++---
- .../src/SMDS/SMDS_UnstructuredGrid.cpp | 35 +++++++++++++--
- .../src/SMDS/SMDS_VtkCellIterator.cpp | 7 +--
- .../salomesmesh/src/SMDS/SMDS_VtkEdge.cpp | 19 +++++++-
- .../salomesmesh/src/SMDS/SMDS_VtkFace.cpp | 29 ++++++++++--
- .../salomesmesh/src/SMDS/SMDS_VtkVolume.cpp | 38 +++++++++++-----
- .../src/SMESH/SMESH_MeshEditor.cpp | 8 ++--
- src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp | 7 ++-
- 14 files changed, 179 insertions(+), 58 deletions(-)
-
-Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx
-===================================================================
---- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx
-+++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx
-@@ -40,11 +40,16 @@
-
- #include <vtkType.h>
- #include <vtkCellType.h>
-+#include <vtkCellArray.h>
-
- //typedef unsigned short UShortType;
- typedef short ShortType;
- typedef int LongType;
--
-+#ifdef VTK_CELL_ARRAY_V2
-+typedef const vtkIdType* vtkIdTypePtr;
-+#else
-+typedef vtkIdType* vtkIdTypePtr;
-+#endif
- class SMDS_MeshNode;
- class SMDS_MeshEdge;
- class SMDS_MeshFace;
-@@ -192,7 +197,7 @@ protected:
- //! Element index in vector SMDS_Mesh::myNodes or SMDS_Mesh::myCells
- int myID;
- //! index in vtkUnstructuredGrid
-- int myVtkID;
-+ vtkIdType myVtkID;
- //! SMDS_Mesh identification in SMESH
- ShortType myMeshId;
- //! SubShape and SubMesh identification in SMESHDS
-Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx
-===================================================================
---- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx
-+++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx
-@@ -95,7 +95,11 @@ public:
- std::map<int, std::map<long,int> >& nodeQuadDomains);
- vtkCellLinks* GetLinks()
- {
-+#ifdef VTK_CELL_ARRAY_V2
-+ return static_cast<vtkCellLinks*>(GetCellLinks());
-+#else
- return Links;
-+#endif
- }
- SMDS_Downward* getDownArray(unsigned char vtkType)
- {
-Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp
-===================================================================
---- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp
-+++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp
-@@ -67,10 +67,16 @@ void SMDS_BallElement::SetDiameter(doubl
- bool SMDS_BallElement::ChangeNode (const SMDS_MeshNode * node)
- {
- vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
-+#ifdef VTK_CELL_ARRAY_V2
-+ vtkNew<vtkIdList> cellPoints;
-+ grid->GetCellPoints(myVtkID, cellPoints.GetPointer());
-+ cellPoints->SetId(0, node->getVtkId());
-+#else
- vtkIdType npts = 0;
- vtkIdType* pts = 0;
- grid->GetCellPoints(myVtkID, npts, pts);
- pts[0] = node->getVtkId();
-+#endif
- SMDS_Mesh::_meshList[myMeshId]->setMyModified();
- return true;
- }
-@@ -83,7 +89,8 @@ void SMDS_BallElement::Print (std::ostre
- const SMDS_MeshNode* SMDS_BallElement::GetNode (const int ind) const
- {
- vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
-- vtkIdType npts, *pts;
-+ vtkIdType npts;
-+ vtkIdTypePtr pts;
- grid->GetCellPoints( myVtkID, npts, pts );
- return SMDS_Mesh::_meshList[myMeshId]->FindNodeVtk( pts[ 0 ]);
- }
-Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_Downward.cpp
-===================================================================
---- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/src/SMDS/SMDS_Downward.cpp
-+++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_Downward.cpp
-@@ -303,7 +303,7 @@ int SMDS_Down1D::getNodeSet(int cellId,
- void SMDS_Down1D::setNodes(int cellId, int vtkId)
- {
- vtkIdType npts = 0;
-- vtkIdType *pts; // will refer to the point id's of the face
-+ vtkIdTypePtr pts; // will refer to the point id's of the face
- _grid->GetCellPoints(vtkId, npts, pts);
- // MESSAGE(vtkId << " " << npts << " " << _nbDownCells);
- //ASSERT(npts == _nbDownCells);
-@@ -357,7 +357,7 @@ int SMDS_Down1D::computeVtkCells(int *pt
- {
- vtkIdType point = pts[i];
- int numCells = _grid->GetLinks()->GetNcells(point);
-- vtkIdType *cells = _grid->GetLinks()->GetCells(point);
-+ vtkIdTypePtr cells = _grid->GetLinks()->GetCells(point);
- for (int j = 0; j < numCells; j++)
- {
- int vtkCellId = cells[j];
-@@ -532,7 +532,7 @@ int SMDS_Down2D::computeVolumeIds(int ce
- // --- find point id's of the face
-
- vtkIdType npts = 0;
-- vtkIdType *pts; // will refer to the point id's of the face
-+ vtkIdTypePtr pts; // will refer to the point id's of the face
- _grid->GetCellPoints(cellId, npts, pts);
- vector<int> nodes;
- for (int i = 0; i < npts; i++)
-@@ -577,7 +577,7 @@ int SMDS_Down2D::computeVolumeIdsFromNod
- vtkIdType point = pts[i];
- int numCells = _grid->GetLinks()->GetNcells(point);
- //MESSAGE("cells pour " << i << " " << numCells);
-- vtkIdType *cells = _grid->GetLinks()->GetCells(point);
-+ vtkIdTypePtr cells = _grid->GetLinks()->GetCells(point);
- for (int j = 0; j < numCells; j++)
- {
- int vtkCellId = cells[j];
-@@ -627,7 +627,7 @@ int SMDS_Down2D::computeVolumeIdsFromNod
- void SMDS_Down2D::setTempNodes(int cellId, int vtkId)
- {
- vtkIdType npts = 0;
-- vtkIdType *pts; // will refer to the point id's of the face
-+ vtkIdTypePtr pts; // will refer to the point id's of the face
- _grid->GetCellPoints(vtkId, npts, pts);
- // MESSAGE(vtkId << " " << npts << " " << _nbNodes);
- //ASSERT(npts == _nbNodes);
-@@ -795,7 +795,7 @@ void SMDS_Down3D::getNodeIds(int cellId,
- {
- int vtkId = this->_vtkCellIds[cellId];
- vtkIdType npts = 0;
-- vtkIdType *nodes; // will refer to the point id's of the volume
-+ vtkIdTypePtr nodes; // will refer to the point id's of the volume
- _grid->GetCellPoints(vtkId, npts, nodes);
- for (int i = 0; i < npts; i++)
- nodeSet.insert(nodes[i]);
-@@ -1126,7 +1126,7 @@ void SMDS_DownTetra::getOrderedNodesOfFa
- //MESSAGE("cellId = " << cellId);
-
- vtkIdType npts = 0;
-- vtkIdType *nodes; // will refer to the point id's of the volume
-+ vtkIdTypePtr nodes; // will refer to the point id's of the volume
- _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
-
- set<int> tofind;
-@@ -1178,7 +1178,7 @@ void SMDS_DownTetra::computeFacesWithNod
- // --- find point id's of the volume
-
- vtkIdType npts = 0;
-- vtkIdType *nodes; // will refer to the point id's of the volume
-+ vtkIdTypePtr nodes; // will refer to the point id's of the volume
- _grid->GetCellPoints(cellId, npts, nodes);
-
- // --- create all the ordered list of node id's for each face
-@@ -1234,7 +1234,7 @@ void SMDS_DownQuadTetra::getOrderedNodes
- //MESSAGE("cellId = " << cellId);
-
- vtkIdType npts = 0;
-- vtkIdType *nodes; // will refer to the point id's of the volume
-+ vtkIdTypePtr nodes; // will refer to the point id's of the volume
- _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
-
- set<int> tofind;
-@@ -1288,7 +1288,7 @@ void SMDS_DownQuadTetra::computeFacesWit
- // --- find point id's of the volume
-
- vtkIdType npts = 0;
-- vtkIdType *nodes; // will refer to the point id's of the volume
-+ vtkIdTypePtr nodes; // will refer to the point id's of the volume
- _grid->GetCellPoints(cellId, npts, nodes);
-
- // --- create all the ordered list of node id's for each face
-@@ -1357,7 +1357,7 @@ void SMDS_DownPyramid::getOrderedNodesOf
- //MESSAGE("cellId = " << cellId);
-
- vtkIdType npts = 0;
-- vtkIdType *nodes; // will refer to the point id's of the volume
-+ vtkIdTypePtr nodes; // will refer to the point id's of the volume
- _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
-
- set<int> tofind;
-@@ -1435,7 +1435,7 @@ void SMDS_DownPyramid::computeFacesWithN
- // --- find point id's of the volume
-
- vtkIdType npts = 0;
-- vtkIdType *nodes; // will refer to the point id's of the volume
-+ vtkIdTypePtr nodes; // will refer to the point id's of the volume
- _grid->GetCellPoints(cellId, npts, nodes);
-
- // --- create all the ordered list of node id's for each face
-@@ -1500,7 +1500,7 @@ void SMDS_DownQuadPyramid::getOrderedNod
- //MESSAGE("cellId = " << cellId);
-
- vtkIdType npts = 0;
-- vtkIdType *nodes; // will refer to the point id's of the volume
-+ vtkIdTypePtr nodes; // will refer to the point id's of the volume
- _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
-
- set<int> tofind;
-@@ -1580,7 +1580,7 @@ void SMDS_DownQuadPyramid::computeFacesW
- // --- find point id's of the volume
-
- vtkIdType npts = 0;
-- vtkIdType *nodes; // will refer to the point id's of the volume
-+ vtkIdTypePtr nodes; // will refer to the point id's of the volume
- _grid->GetCellPoints(cellId, npts, nodes);
-
- // --- create all the ordered list of node id's for each face
-@@ -1660,7 +1660,7 @@ void SMDS_DownPenta::getOrderedNodesOfFa
- //MESSAGE("cellId = " << cellId);
-
- vtkIdType npts = 0;
-- vtkIdType *nodes; // will refer to the point id's of the volume
-+ vtkIdTypePtr nodes; // will refer to the point id's of the volume
- _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
-
- set<int> tofind;
-@@ -1744,7 +1744,7 @@ void SMDS_DownPenta::computeFacesWithNod
- // --- find point id's of the volume
-
- vtkIdType npts = 0;
-- vtkIdType *nodes; // will refer to the point id's of the volume
-+ vtkIdTypePtr nodes; // will refer to the point id's of the volume
- _grid->GetCellPoints(cellId, npts, nodes);
-
- // --- create all the ordered list of node id's for each face
-@@ -1810,7 +1810,7 @@ void SMDS_DownQuadPenta::getOrderedNodes
- //MESSAGE("cellId = " << cellId);
-
- vtkIdType npts = 0;
-- vtkIdType *nodes; // will refer to the point id's of the volume
-+ vtkIdTypePtr nodes; // will refer to the point id's of the volume
- _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
-
- set<int> tofind;
-@@ -1896,7 +1896,7 @@ void SMDS_DownQuadPenta::computeFacesWit
- // --- find point id's of the volume
-
- vtkIdType npts = 0;
-- vtkIdType *nodes; // will refer to the point id's of the volume
-+ vtkIdTypePtr nodes; // will refer to the point id's of the volume
- _grid->GetCellPoints(cellId, npts, nodes);
-
- // --- create all the ordered list of node id's for each face
-@@ -1981,7 +1981,7 @@ void SMDS_DownHexa::getOrderedNodesOfFac
- //MESSAGE("cellId = " << cellId);
-
- vtkIdType npts = 0;
-- vtkIdType *nodes; // will refer to the point id's of the volume
-+ vtkIdTypePtr nodes; // will refer to the point id's of the volume
- _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
-
- set<int> tofind;
-@@ -2036,7 +2036,7 @@ void SMDS_DownHexa::computeFacesWithNode
- // --- find point id's of the volume
-
- vtkIdType npts = 0;
-- vtkIdType *nodes; // will refer to the point id's of the volume
-+ vtkIdTypePtr nodes; // will refer to the point id's of the volume
- _grid->GetCellPoints(cellId, npts, nodes);
-
- // --- create all the ordered list of node id's for each face
-@@ -2112,7 +2112,7 @@ void SMDS_DownQuadHexa::getOrderedNodesO
- //MESSAGE("cellId = " << cellId);
-
- vtkIdType npts = 0;
-- vtkIdType *nodes; // will refer to the point id's of the volume
-+ vtkIdTypePtr nodes; // will refer to the point id's of the volume
- _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
-
- set<int> tofind;
-@@ -2167,7 +2167,7 @@ void SMDS_DownQuadHexa::computeFacesWith
- // --- find point id's of the volume
-
- vtkIdType npts = 0;
-- vtkIdType *nodes; // will refer to the point id's of the volume
-+ vtkIdTypePtr nodes; // will refer to the point id's of the volume
- _grid->GetCellPoints(cellId, npts, nodes);
-
- // --- create all the ordered list of node id's for each face
-Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh.cpp
-===================================================================
---- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh.cpp
-+++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh.cpp
-@@ -4768,7 +4768,11 @@ void SMDS_Mesh::dumpGrid(string ficdump)
- ficcon << endl;
- }
- ficcon << "-------------------------------- connectivity " << nbPoints << endl;
-- vtkCellLinks *links = myGrid->GetCellLinks();
-+#ifdef VTK_CELL_ARRAY_V2
-+ vtkCellLinks *links = static_cast<vtkCellLinks*>(myGrid->GetCellLinks());
-+#else
-+ vtkCellLinks *links = myGrid->GetCellLinks();
-+#endif
- for (int i=0; i<nbPoints; i++)
- {
- int ncells = links->GetNcells(i);
-Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp
-===================================================================
---- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp
-+++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp
-@@ -146,6 +146,17 @@ bool SMDS_Mesh0DElement::ChangeNodes(con
- if ( nbNodes == 1 )
- {
- vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
-+#ifdef VTK_CELL_ARRAY_V2
-+ vtkNew<vtkIdList> cellPoints;
-+ grid->GetCellPoints(myVtkID, cellPoints.GetPointer());
-+ if (nbNodes != cellPoints->GetNumberOfIds())
-+ {
-+ MESSAGE("ChangeNodes problem: not the same number of nodes " << cellPoints->GetNumberOfIds() << " -> " << nbNodes);
-+ return false;
-+ }
-+ myNode = nodes[0];
-+ cellPoints->SetId(0, myNode->getVtkId());
-+#else
- vtkIdType npts = 0;
- vtkIdType* pts = 0;
- grid->GetCellPoints(myVtkID, npts, pts);
-@@ -156,6 +167,7 @@ bool SMDS_Mesh0DElement::ChangeNodes(con
- }
- myNode = nodes[0];
- pts[0] = myNode->getVtkId();
-+#endif
-
- SMDS_Mesh::_meshList[myMeshId]->setMyModified();
- return true;
-Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp
-===================================================================
---- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp
-+++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp
-@@ -191,7 +191,7 @@ public:
- SMDS_ElemIteratorPtr SMDS_MeshNode::
- GetInverseElementIterator(SMDSAbs_ElementType type) const
- {
-- vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID);
-+ vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID);
- //MESSAGE("myID " << myID << " ncells " << l.ncells);
- return SMDS_ElemIteratorPtr(new SMDS_MeshNode_MyInvIterator(SMDS_Mesh::_meshList[myMeshId], l.cells, l.ncells, type));
- }
-@@ -251,7 +251,7 @@ elementsIterator(SMDSAbs_ElementType typ
- return SMDS_MeshElement::elementsIterator(SMDSAbs_Node);
- else
- {
-- vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID);
-+ vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID);
- return SMDS_ElemIteratorPtr(new SMDS_MeshNode_MyIterator(SMDS_Mesh::_meshList[myMeshId], l.cells, l.ncells, type));
- }
- }
-@@ -350,7 +350,7 @@ void SMDS_MeshNode::AddInverseElement(co
- const SMDS_MeshCell *cell = dynamic_cast<const SMDS_MeshCell*> (ME);
- assert(cell);
- SMDS_UnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
-- vtkCellLinks *Links = grid->GetCellLinks();
-+ vtkCellLinks *Links = static_cast<vtkCellLinks*>(grid->GetCellLinks());
- Links->ResizeCellList(myVtkID, 1);
- Links->AddCellReference(cell->getVtkId(), myVtkID);
- }
-@@ -366,7 +366,7 @@ void SMDS_MeshNode::ClearInverseElements
-
- bool SMDS_MeshNode::emptyInverseElements()
- {
-- vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID);
-+ vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID);
- return (l.ncells == 0);
- }
-
-@@ -378,7 +378,7 @@ bool SMDS_MeshNode::emptyInverseElements
-
- int SMDS_MeshNode::NbInverseElements(SMDSAbs_ElementType type) const
- {
-- vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID);
-+ vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID);
-
- if ( type == SMDSAbs_All )
- return l.ncells;
-Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp
-===================================================================
---- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp
-+++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp
-@@ -139,8 +139,8 @@ int SMDS_UnstructuredGrid::InsertNextLin
- for (; it != setOfNodes.end(); ++it)
- {
- //MESSAGE("reverse link for node " << *it << " cell " << cellid);
-- this->Links->ResizeCellList(*it, 1);
-- this->Links->AddCellReference(cellid, *it);
-+ this->GetLinks()->ResizeCellList(*it, 1);
-+ this->GetLinks()->AddCellReference(cellid, *it);
- }
-
- return cellid;
-@@ -332,9 +332,13 @@ void SMDS_UnstructuredGrid::copyBloc(vtk
- {
- newTypes->SetValue(alreadyCopied, this->Types->GetValue(j));
- idCellsOldToNew[j] = alreadyCopied; // old vtkId --> new vtkId
-+#ifdef VTK_CELL_ARRAY_V2
-+ vtkIdType oldLoc = this->GetCellLocationsArray()->GetValue(j);
-+#else
- vtkIdType oldLoc = this->Locations->GetValue(j);
-+#endif
- vtkIdType nbpts;
-- vtkIdType *oldPtsCell = 0;
-+ vtkIdTypePtr oldPtsCell = 0;
- this->Connectivity->GetCell(oldLoc, nbpts, oldPtsCell);
- assert(nbpts < NBMAXNODESINCELL);
- //MESSAGE(j << " " << alreadyCopied << " " << (int)this->Types->GetValue(j) << " " << oldLoc << " " << nbpts );
-@@ -952,6 +956,21 @@ void SMDS_UnstructuredGrid::GetNodeIds(s
- */
- void SMDS_UnstructuredGrid::ModifyCellNodes(int vtkVolId, std::map<int, int> localClonedNodeIds)
- {
-+#ifdef VTK_CELL_ARRAY_V2
-+ vtkNew<vtkIdList> cellPoints;
-+ this->GetCellPoints(vtkVolId, cellPoints.GetPointer());
-+ for (vtkIdType i = 0; i < cellPoints->GetNumberOfIds(); i++)
-+ {
-+ if (localClonedNodeIds.count(cellPoints->GetId(i)))
-+ {
-+ vtkIdType oldpt = cellPoints->GetId(i);
-+ cellPoints->SetId(i, localClonedNodeIds[oldpt]);
-+ //MESSAGE(oldpt << " --> " << pts[i]);
-+ //this->RemoveReferenceToCell(oldpt, vtkVolId);
-+ //this->AddReferenceToCell(pts[i], vtkVolId);
-+ }
-+ }
-+#else
- vtkIdType npts = 0;
- vtkIdType *pts; // will refer to the point id's of the face
- this->GetCellPoints(vtkVolId, npts, pts);
-@@ -966,6 +985,7 @@ void SMDS_UnstructuredGrid::ModifyCellNo
- //this->AddReferenceToCell(pts[i], vtkVolId);
- }
- }
-+#endif
- }
-
- /*! reorder the nodes of a face
-@@ -995,11 +1015,20 @@ void SMDS_UnstructuredGrid::BuildLinks()
- this->Links->UnRegister(this);
- }
-
-+#ifdef VTK_CELL_ARRAY_V2
-+ this->Links = SMDS_CellLinks::New();
-+ GetLinks()->Allocate(this->GetNumberOfPoints());
-+ GetLinks()->Register(this);
-+//FIXME: vtk9
-+ GetLinks()->BuildLinks(this);
-+ GetLinks()->Delete();
-+#else
- this->Links = SMDS_CellLinks::New();
- this->Links->Allocate(this->GetNumberOfPoints());
- this->Links->Register(this);
- this->Links->BuildLinks(this, this->Connectivity);
- this->Links->Delete();
-+#endif
- }
-
- /*! Create a volume (prism or hexahedron) by duplication of a face.
-Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp
-===================================================================
---- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp
-+++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp
-@@ -33,7 +33,8 @@ SMDS_VtkCellIterator::SMDS_VtkCellIterat
- }
- else
- {
-- vtkIdType npts, *pts;
-+ vtkIdType npts;
-+ vtkIdTypePtr pts;
- grid->GetCellPoints( _cellId, npts, pts );
- _vtkIdList->SetNumberOfIds( _nbNodes = npts );
- for (int i = 0; i < _nbNodes; i++)
-@@ -67,7 +68,7 @@ SMDS_VtkCellIteratorToUNV::SMDS_VtkCellI
- //MESSAGE("SMDS_VtkCellInterlacedIterator (UNV)" << _type);
-
- _vtkIdList = vtkIdList::New();
-- vtkIdType* pts;
-+ vtkIdTypePtr pts;
- vtkIdType npts;
- vtkUnstructuredGrid* grid = _mesh->getGrid();
- grid->GetCellPoints((vtkIdType)_cellId, npts, pts);
-@@ -182,7 +183,7 @@ SMDS_VtkCellIteratorPolyH::SMDS_VtkCellI
- {
- //MESSAGE("SMDS_VtkCellIterator Polyhedra");
- vtkIdType nFaces = 0;
-- vtkIdType* ptIds = 0;
-+ vtkIdTypePtr ptIds = 0;
- grid->GetFaceStream(_cellId, nFaces, ptIds);
- int id = 0;
- _nbNodesInFaces = 0;
-Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp
-===================================================================
---- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp
-+++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp
-@@ -67,6 +67,19 @@ bool SMDS_VtkEdge::ChangeNodes(const SMD
- bool SMDS_VtkEdge::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes)
- {
- vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
-+#ifdef VTK_CELL_ARRAY_V2
-+ vtkNew<vtkIdList> cellPoints;
-+ grid->GetCellPoints(myVtkID, cellPoints.GetPointer());
-+ if (nbNodes != cellPoints->GetNumberOfIds())
-+ {
-+ MESSAGE("ChangeNodes problem: not the same number of nodes " << cellPoints->GetNumberOfIds() << " -> " << nbNodes);
-+ return false;
-+ }
-+ for (int i = 0; i < nbNodes; i++)
-+ {
-+ cellPoints->SetId(i, nodes[i]->getVtkId());
-+ }
-+#else
- vtkIdType npts = 0;
- vtkIdType* pts = 0;
- grid->GetCellPoints(myVtkID, npts, pts);
-@@ -79,6 +92,7 @@ bool SMDS_VtkEdge::ChangeNodes(const SMD
- {
- pts[i] = nodes[i]->getVtkId();
- }
-+#endif
- SMDS_Mesh::_meshList[myMeshId]->setMyModified();
- return true;
- }
-@@ -87,7 +101,7 @@ bool SMDS_VtkEdge::IsMediumNode(const SM
- {
- vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
- vtkIdType npts = 0;
-- vtkIdType* pts = 0;
-+ vtkIdTypePtr pts = 0;
- grid->GetCellPoints(myVtkID, npts, pts);
- //MESSAGE("IsMediumNode " << npts << " " << (node->getVtkId() == pts[npts-1]));
- return ((npts == 3) && (node->getVtkId() == pts[2]));
-@@ -137,7 +151,8 @@ const SMDS_MeshNode*
- SMDS_VtkEdge::GetNode(const int ind) const
- {
- vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
-- vtkIdType npts, *pts;
-+ vtkIdType npts;
-+ vtkIdTypePtr pts;
- grid->GetCellPoints( this->myVtkID, npts, pts );
- return SMDS_Mesh::_meshList[myMeshId]->FindNodeVtk( pts[ ind ]);
- }
-Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkFace.cpp
-===================================================================
---- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkFace.cpp
-+++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkFace.cpp
-@@ -101,6 +101,19 @@ void SMDS_VtkFace::initQuadPoly(const st
- bool SMDS_VtkFace::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes)
- {
- vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
-+#ifdef VTK_CELL_ARRAY_V2
-+ vtkNew<vtkIdList> cellPoints;
-+ grid->GetCellPoints(myVtkID, cellPoints.GetPointer());
-+ if (nbNodes != cellPoints->GetNumberOfIds())
-+ {
-+ MESSAGE("ChangeNodes problem: not the same number of nodes " << cellPoints->GetNumberOfIds() << " -> " << nbNodes);
-+ return false;
-+ }
-+ for (int i = 0; i < nbNodes; i++)
-+ {
-+ cellPoints->SetId(i, nodes[i]->getVtkId());
-+ }
-+#else
- vtkIdType npts = 0;
- vtkIdType* pts = 0;
- grid->GetCellPoints(myVtkID, npts, pts);
-@@ -113,6 +126,7 @@ bool SMDS_VtkFace::ChangeNodes(const SMD
- {
- pts[i] = nodes[i]->getVtkId();
- }
-+#endif
- SMDS_Mesh::_meshList[myMeshId]->setMyModified();
- return true;
- }
-@@ -173,7 +187,8 @@ const SMDS_MeshNode*
- SMDS_VtkFace::GetNode(const int ind) const
- {
- vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
-- vtkIdType npts, *pts;
-+ vtkIdType npts;
-+ vtkIdTypePtr pts;
- grid->GetCellPoints( this->myVtkID, npts, pts );
- return SMDS_Mesh::_meshList[myMeshId]->FindNodeVtk( pts[ ind ]);
- }
-@@ -186,7 +201,8 @@ SMDS_VtkFace::GetNode(const int ind) con
- int SMDS_VtkFace::GetNodeIndex( const SMDS_MeshNode* node ) const
- {
- vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
-- vtkIdType npts, *pts;
-+ vtkIdType npts;
-+ vtkIdTypePtr pts;
- grid->GetCellPoints( this->myVtkID, npts, pts );
- for ( vtkIdType i = 0; i < npts; ++i )
- if ( pts[i] == node->getVtkId() )
-@@ -251,7 +267,7 @@ bool SMDS_VtkFace::IsMediumNode(const SM
- return false;
- }
- vtkIdType npts = 0;
-- vtkIdType* pts = 0;
-+ vtkIdTypePtr pts = 0;
- grid->GetCellPoints(myVtkID, npts, pts);
- vtkIdType nodeId = node->getVtkId();
- for (int rank = 0; rank < npts; rank++)
-@@ -356,11 +372,18 @@ SMDS_NodeIteratorPtr SMDS_VtkFace::inter
- void SMDS_VtkFace::ChangeApex(SMDS_MeshNode* node)
- {
- vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
-+#ifdef VTK_CELL_ARRAY_V2
-+ vtkNew<vtkIdList> cellPoints;
-+ grid->GetCellPoints(myVtkID, cellPoints.GetPointer());
-+ grid->RemoveReferenceToCell(cellPoints->GetId(0), myVtkID);
-+ cellPoints->SetId(0, node->getVtkId());
-+#else
- vtkIdType npts = 0;
- vtkIdType* pts = 0;
- grid->GetCellPoints(myVtkID, npts, pts);
- grid->RemoveReferenceToCell(pts[0], myVtkID);
- pts[0] = node->getVtkId();
-+#endif
- node->AddInverseElement(this),
- SMDS_Mesh::_meshList[myMeshId]->setMyModified();
- }
-Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkVolume.cpp
-===================================================================
---- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkVolume.cpp
-+++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkVolume.cpp
-@@ -133,6 +133,19 @@ void SMDS_VtkVolume::initPoly(const std:
- bool SMDS_VtkVolume::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes)
- {
- vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
-+#ifdef VTK_CELL_ARRAY_V2
-+ vtkNew<vtkIdList> cellPoints;
-+ grid->GetCellPoints(myVtkID, cellPoints.GetPointer());
-+ if (nbNodes != cellPoints->GetNumberOfIds())
-+ {
-+ MESSAGE("ChangeNodes problem: not the same number of nodes " << cellPoints->GetNumberOfIds() << " -> " << nbNodes);
-+ return false;
-+ }
-+ for (int i = 0; i < nbNodes; i++)
-+ {
-+ cellPoints->SetId(i, nodes[i]->getVtkId());
-+ }
-+#else
- vtkIdType npts = 0;
- vtkIdType* pts = 0;
- grid->GetCellPoints(myVtkID, npts, pts);
-@@ -145,6 +158,7 @@ bool SMDS_VtkVolume::ChangeNodes(const S
- {
- pts[i] = nodes[i]->getVtkId();
- }
-+#endif
- SMDS_Mesh::_meshList[myMeshId]->setMyModified();
- return true;
- }
-@@ -207,7 +221,7 @@ int SMDS_VtkVolume::NbFaces() const
- case VTK_POLYHEDRON:
- {
- vtkIdType nFaces = 0;
-- vtkIdType* ptIds = 0;
-+ vtkIdTypePtr ptIds = 0;
- grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
- nbFaces = nFaces;
- break;
-@@ -236,7 +250,7 @@ int SMDS_VtkVolume::NbNodes() const
- else
- {
- vtkIdType nFaces = 0;
-- vtkIdType* ptIds = 0;
-+ vtkIdTypePtr ptIds = 0;
- grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
- int id = 0;
- for (int i = 0; i < nFaces; i++)
-@@ -276,7 +290,7 @@ int SMDS_VtkVolume::NbEdges() const
- case VTK_POLYHEDRON:
- {
- vtkIdType nFaces = 0;
-- vtkIdType* ptIds = 0;
-+ vtkIdTypePtr ptIds = 0;
- grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
- nbEdges = 0;
- int id = 0;
-@@ -312,7 +326,7 @@ int SMDS_VtkVolume::NbFaceNodes(const in
- if (aVtkType == VTK_POLYHEDRON)
- {
- vtkIdType nFaces = 0;
-- vtkIdType* ptIds = 0;
-+ vtkIdTypePtr ptIds = 0;
- grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
- int id = 0;
- for (int i = 0; i < nFaces; i++)
-@@ -342,7 +356,7 @@ const SMDS_MeshNode* SMDS_VtkVolume::Get
- if (aVtkType == VTK_POLYHEDRON)
- {
- vtkIdType nFaces = 0;
-- vtkIdType* ptIds = 0;
-+ vtkIdTypePtr ptIds = 0;
- grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
- int id = 0;
- for (int i = 0; i < nFaces; i++)
-@@ -372,7 +386,7 @@ std::vector<int> SMDS_VtkVolume::GetQuan
- if (aVtkType == VTK_POLYHEDRON)
- {
- vtkIdType nFaces = 0;
-- vtkIdType* ptIds = 0;
-+ vtkIdTypePtr ptIds = 0;
- grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
- int id = 0;
- for (int i = 0; i < nFaces; i++)
-@@ -430,7 +444,7 @@ const SMDS_MeshNode* SMDS_VtkVolume::Get
- if ( aVtkType == VTK_POLYHEDRON)
- {
- vtkIdType nFaces = 0;
-- vtkIdType* ptIds = 0;
-+ vtkIdTypePtr ptIds = 0;
- grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
- int id = 0, nbPoints = 0;
- for (int i = 0; i < nFaces; i++)
-@@ -443,7 +457,8 @@ const SMDS_MeshNode* SMDS_VtkVolume::Get
- }
- return 0;
- }
-- vtkIdType npts, *pts;
-+ vtkIdType npts;
-+ vtkIdTypePtr pts;
- grid->GetCellPoints( this->myVtkID, npts, pts );
- const std::vector<int>& interlace = SMDS_MeshCell::fromVtkOrder( VTKCellType( aVtkType ));
- return SMDS_Mesh::_meshList[myMeshId]->FindNodeVtk( pts[ interlace.empty() ? ind : interlace[ind]] );
-@@ -460,7 +475,7 @@ int SMDS_VtkVolume::GetNodeIndex( const
- if ( aVtkType == VTK_POLYHEDRON)
- {
- vtkIdType nFaces = 0;
-- vtkIdType* ptIds = 0;
-+ vtkIdTypePtr ptIds = 0;
- grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
- int id = 0;
- for (int iF = 0; iF < nFaces; iF++)
-@@ -473,7 +488,8 @@ int SMDS_VtkVolume::GetNodeIndex( const
- }
- return -1;
- }
-- vtkIdType npts, *pts;
-+ vtkIdType npts;
-+ vtkIdTypePtr pts;
- grid->GetCellPoints( this->myVtkID, npts, pts );
- for ( vtkIdType i = 0; i < npts; ++i )
- if ( pts[i] == node->getVtkId() )
-@@ -534,7 +550,7 @@ bool SMDS_VtkVolume::IsMediumNode(const
- return false;
- }
- vtkIdType npts = 0;
-- vtkIdType* pts = 0;
-+ vtkIdTypePtr pts = 0;
- grid->GetCellPoints(myVtkID, npts, pts);
- vtkIdType nodeId = node->getVtkId();
- for (int rank = 0; rank < npts; rank++)
-Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp
-===================================================================
---- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp
-+++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp
-@@ -11348,7 +11348,7 @@ bool SMESH_MeshEditor::DoubleNodesOnGrou
- {
- int oldId = *itn;
- //MESSAGE(" node " << oldId);
-- vtkCellLinks::Link l = grid->GetCellLinks()->GetLink(oldId);
-+ vtkCellLinks::Link l = static_cast<vtkCellLinks*>(grid->GetCellLinks())->GetLink(oldId);
- for (int i=0; i<l.ncells; i++)
- {
- int vtkId = l.cells[i];
-@@ -11527,7 +11527,7 @@ bool SMESH_MeshEditor::DoubleNodesOnGrou
- //MESSAGE(" domain " << idom << " volume " << elem->GetID());
- double values[3];
- vtkIdType npts = 0;
-- vtkIdType* pts = 0;
-+ vtkIdTypePtr pts = 0;
- grid->GetCellPoints(vtkVolIds[ivol], npts, pts);
- SMDS_VtkVolume::gravityCenter(grid, pts, npts, values);
- if (id ==0)
-@@ -11708,7 +11708,7 @@ bool SMESH_MeshEditor::DoubleNodesOnGrou
- {
- int oldId = itnod->first;
- //MESSAGE(" node " << oldId);
-- vtkCellLinks::Link l = grid->GetCellLinks()->GetLink(oldId);
-+ vtkCellLinks::Link l = static_cast<vtkCellLinks*>(grid->GetCellLinks())->GetLink(oldId);
- for (int i = 0; i < l.ncells; i++)
- {
- int vtkId = l.cells[i];
-@@ -12165,7 +12165,7 @@ void SMESH_MeshEditor::CreateHoleSkin(do
- MESSAGE("volume to check, vtkId " << vtkId << " smdsId " << meshDS->fromVtkToSmds(vtkId));
- bool volInside = false;
- vtkIdType npts = 0;
-- vtkIdType* pts = 0;
-+ vtkIdTypePtr pts = 0;
- grid->GetCellPoints(vtkId, npts, pts);
- for (int i=0; i<npts; i++)
- {
-Index: FreeCAD-0.19.2/src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp
-===================================================================
---- FreeCAD-0.19.2.orig/src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp
-+++ FreeCAD-0.19.2/src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp
-@@ -20,7 +20,6 @@
- * *
- ***************************************************************************/
-
--
- #include "PreCompiled.h"
-
- #ifndef _PreComp_
diff --git a/freecad.spec b/freecad.spec
index c26094d..e2c5e1c 100644
--- a/freecad.spec
+++ b/freecad.spec
@@ -20,8 +20,8 @@
Name: freecad
Epoch: 1
-Version: 0.20
-Release: 2%{?dist}
+Version: 0.20.1
+Release: 1%{?dist}
Summary: A general purpose 3D CAD modeler
License: GPLv2+
@@ -30,16 +30,7 @@ Source0: https://github.com/FreeCAD/FreeCAD/archive/%{version}%{?pre:_pre
#Source0: https://github.com/FreeCAD/FreeCAD/archive/%{commit}/FreeCAD-%{version}.%...
Source102: freecad.1
-#Patch0: freecad-0.15-zipios.patch
-#Patch1: freecad-0.14-Version_h.patch
-Patch2: freecad-unbundled-pycxx.patch
-#Patch3: freecad-vtk9.patch
-#Patch4: freecad-boost.patch
-#Patch5: 4916.patch
-Patch6: freecad-memory_h.patch
-# Python 3.11 compatibility patches
-Patch7: https://github.com/FreeCAD/FreeCAD/commit/1ae55905ba.patch
-Patch8: https://github.com/FreeCAD/FreeCAD/commit/6820e0a9ec.patch
+Patch0: freecad-unbundled-pycxx.patch
# Utilities
BuildRequires: cmake gcc-c++ gettext dos2unix
@@ -245,6 +236,9 @@ desktop-file-validate \
%changelog
+* Tue Aug 09 2022 Richard Shaw <hobbes1069(a)gmail.com> - 1:0.20.1-1
+- Update to 0.20.1.
+
* Thu Jul 21 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 1:0.20-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
diff --git a/sources b/sources
index d1359b4..ee8b846 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (FreeCAD-0.20.tar.gz) = b1d91efa873f180bf635f6006d6c4b7a33b64b630955c639fe923bb340ce8104474688e05eea151d1ac1557388947ae81618cfc8a578f14706aa07b5cdc45cda
+SHA512 (FreeCAD-0.20.1.tar.gz) = 4e4422cfb4f887f5d501b24b8af8efa1428b91e20ff87257f361e86a7328f3fc53b4a8b00f93b911b73cb2a31d6951e12f53561ef9e83a9b0c5987eb4b0dbb02
commit 6f32db7766a58ca463294209befcaeaed6a79e28
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Thu Jul 21 03:33:49 2022 +0000
Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/freecad.spec b/freecad.spec
index abdbad6..c26094d 100644
--- a/freecad.spec
+++ b/freecad.spec
@@ -21,7 +21,7 @@
Name: freecad
Epoch: 1
Version: 0.20
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A general purpose 3D CAD modeler
License: GPLv2+
@@ -245,6 +245,9 @@ desktop-file-validate \
%changelog
+* Thu Jul 21 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 1:0.20-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+
* Wed Jun 29 2022 Richard Shaw <hobbes1069(a)gmail.com> - 1:0.20-1
- Update to 0.20.
1 year, 10 months
Architecture specific change in rpms/rust-data-encoding-macro-internal.git
by githook-noreply@fedoraproject.org
The package rpms/rust-data-encoding-macro-internal.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/rust-data-encoding-macro-internal....
Change:
+ExclusiveArch: %{rust_arches}
Thanks.
Full change:
============
commit c322551cf5d4570c3575cba92c7ecbebc0a45d30
Author: Davide Cavalca <dcavalca(a)fedoraproject.org>
Date: Tue Aug 9 12:16:47 2022 -0500
Initial import; Fixes: RHBZ#2107944
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0f9e481
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/data-encoding-macro-internal-0.1.10.crate
diff --git a/rust-data-encoding-macro-internal.spec b/rust-data-encoding-macro-internal.spec
new file mode 100644
index 0000000..2fd47ab
--- /dev/null
+++ b/rust-data-encoding-macro-internal.spec
@@ -0,0 +1,71 @@
+# Generated by rust2rpm 21
+%bcond_without check
+%global debug_package %{nil}
+
+%global crate data-encoding-macro-internal
+
+Name: rust-%{crate}
+Version: 0.1.10
+Release: %autorelease
+Summary: Internal library for data-encoding-macro
+
+# Upstream license specification: MIT
+License: MIT
+URL: https://crates.io/crates/data-encoding-macro-internal
+Source: %{crates_source}
+
+ExclusiveArch: %{rust_arches}
+
+BuildRequires: rust-packaging >= 21
+
+%global _description %{expand:
+Internal library for data-encoding-macro.}
+
+%description %{_description}
+
+%package devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description devel %{_description}
+
+This package contains library source intended for building other packages which
+use the "%{crate}" crate.
+
+%files devel
+%license %{crate_instdir}/LICENSE
+%doc %{crate_instdir}/README.md
+%{crate_instdir}/
+
+%package -n %{name}+default-devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description -n %{name}+default-devel %{_description}
+
+This package contains library source intended for building other packages which
+use the "default" feature of the "%{crate}" crate.
+
+%files -n %{name}+default-devel
+%ghost %{crate_instdir}/Cargo.toml
+
+%prep
+%autosetup -n %{crate}-%{version_no_tilde} -p1
+%cargo_prep
+
+%generate_buildrequires
+%cargo_generate_buildrequires
+
+%build
+%cargo_build
+
+%install
+%cargo_install
+
+%if %{with check}
+%check
+%cargo_test
+%endif
+
+%changelog
+%autochangelog
diff --git a/sources b/sources
new file mode 100644
index 0000000..ea7c3c3
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (data-encoding-macro-internal-0.1.10.crate) = fd98100d95644c081cde3cd9f6c86206dc0e0ea369266b198a8b63ac20e146802ff019da8e19b632418c619fbfc29ac662a95285051072e508b71b7c9c2019c0
1 year, 10 months