Architecture specific change in rpms/qt5-qtwebengine.git
by githook-noreply@fedoraproject.org
The package rpms/qt5-qtwebengine.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/qt5-qtwebengine.git/commit/?id=09....
Change:
-%ifarch %{ix86} x86_64
Thanks.
Full change:
============
commit f523d61a98f04bdecf0f6c3c2835524ae00fe0c8
Author: Kevin Kofler <Kevin(a)tigcc.ticalc.org>
Date: Sun Jan 23 17:33:16 2022 +0100
Fix Provides: bundled(*), remove no longer used BR pkgconfig(protobuf).
* Sun Jan 23 2022 Kevin Kofler <Kevin(a)tigcc.ticalc.org> - 5.15.8-2
- Update Provides: bundled(*) version numbers, remove ones dropped upstream
- Restore Provides: bundled(protobuf), unbundling support dropped years ago
- Remove no longer used BuildRequires: yasm and pkgconfig(protobuf)
diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec
index b4d7110..b7caa59 100644
--- a/qt5-qtwebengine.spec
+++ b/qt5-qtwebengine.spec
@@ -56,7 +56,7 @@
Summary: Qt5 - QtWebEngine components
Name: qt5-qtwebengine
Version: 5.15.8
-Release: 1%{?dist}
+Release: 2%{?dist}
# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details
# See also http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html
@@ -162,7 +162,6 @@ BuildRequires: pkgconfig(libwebp) >= 0.6.0
BuildRequires: pkgconfig(harfbuzz)
BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(opus)
-BuildRequires: pkgconfig(protobuf)
BuildRequires: pkgconfig(libevent)
BuildRequires: pkgconfig(poppler-cpp)
BuildRequires: pkgconfig(zlib)
@@ -231,6 +230,13 @@ Provides: bundled(chromium) = 87.0.4280.144
# Bundled in src/3rdparty/chromium/third_party:
# Check src/3rdparty/chromium/third_party/*/README.chromium for version numbers,
# except where specified otherwise.
+# Note that many of those libraries are git snapshots, so version numbers are
+# necessarily approximate.
+# Also note that the list is probably not complete anymore due to Chromium
+# adding more and more bundled stuff at every release, some of which (but not
+# all) is actually built in QtWebEngine.
+# src/3rdparty/chromium/third_party/angle/doc/ChoosingANGLEBranch.md points to
+# http://omahaproxy.appspot.com/deps.json?version=87.0.4280.144 chromium_branch
Provides: bundled(angle) = 2422
# Google's fork of OpenSSL
# We cannot build against NSS instead because it no longer works with NSS 3.21:
@@ -252,11 +258,11 @@ Provides: bundled(iccjpeg)
# bundled as "khronos", headers only
Provides: bundled(khronos_headers)
# bundled as "leveldatabase"
-Provides: bundled(leveldb) = 1.20
+Provides: bundled(leveldb) = 1.22
# bundled as "libjingle_xmpp"
Provides: bundled(libjingle)
# see src/3rdparty/chromium/third_party/libsrtp/CHANGES for the version number
-Provides: bundled(libsrtp) = 2.1.0
+Provides: bundled(libsrtp) = 2.2.0
%if !0%{?use_system_libvpx}
Provides: bundled(libvpx) = 1.8.2
%endif
@@ -272,12 +278,10 @@ Provides: bundled(libxslt) = 1.1.34
Provides: bundled(libXNVCtrl) = 302.17
Provides: bundled(libyuv) = 1768
Provides: bundled(modp_b64)
-Provides: bundled(openmax_dl) = 1.0.2
Provides: bundled(ots)
# see src/3rdparty/chromium/third_party/protobuf/CHANGES.txt for the version
-#Provides: bundled(protobuf) = 3.0.0-0.1.beta3
+Provides: bundled(protobuf) = 3.9.0
Provides: bundled(qcms) = 4
-Provides: bundled(sfntly)
Provides: bundled(skia)
# bundled as "smhasher"
Provides: bundled(SMHasher) = 0-147
@@ -294,7 +298,6 @@ Provides: bundled(x86inc)
# Bundled in src/3rdparty/chromium/base/third_party:
# Check src/3rdparty/chromium/third_party/base/*/README.chromium for version
# numbers, except where specified otherwise.
-Provides: bundled(dmg_fp)
Provides: bundled(dynamic_annotations) = 4384
Provides: bundled(superfasthash) = 0
Provides: bundled(symbolize)
@@ -319,7 +322,7 @@ Provides: bundled(nsURLParsers)
# Bundled outside of third_party, apparently not considered as such by Chromium:
Provides: bundled(mojo)
# see src/3rdparty/chromium/v8/include/v8_version.h for the version number
-Provides: bundled(v8) = 6.1.534.44
+Provides: bundled(v8) = 8.7.220.35
# bundled by v8 (src/3rdparty/chromium/v8/src/base/ieee754.cc)
# The version number is 5.3, the last version that upstream released, years ago:
# http://www.netlib.org/fdlibm/readme
@@ -614,6 +617,11 @@ done
%changelog
+* Sun Jan 23 2022 Kevin Kofler <Kevin(a)tigcc.ticalc.org> - 5.15.8-2
+- Update Provides: bundled(*) version numbers, remove ones dropped upstream
+- Restore Provides: bundled(protobuf), unbundling support dropped years ago
+- Remove no longer used BuildRequires: yasm and pkgconfig(protobuf)
+
* Tue Jan 11 2022 Rex Dieter <rdieter(a)fedoraproject.org> - 5.15.8-1
- 5.15.8
- %%undefine _package_note_file (#2043178)
commit 09d69c316abdda8cc0dcc436d4f64bf909292d57
Author: Kevin Kofler <Kevin(a)tigcc.ticalc.org>
Date: Sun Jan 23 17:01:02 2022 +0100
Remove no longer used BuildRequires: yasm.
diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec
index 16ec784..b4d7110 100644
--- a/qt5-qtwebengine.spec
+++ b/qt5-qtwebengine.spec
@@ -144,9 +144,6 @@ BuildRequires: nodejs
BuildRequires: re2-devel
%endif
BuildRequires: snappy-devel
-%ifarch %{ix86} x86_64
-BuildRequires: yasm
-%endif
BuildRequires: pkgconfig(expat)
BuildRequires: pkgconfig(gobject-2.0)
BuildRequires: pkgconfig(glib-2.0)
commit 9aa6750784e697d9f976823baf754b63169ace43
Author: Kevin Kofler <Kevin(a)tigcc.ticalc.org>
Date: Sun Jan 23 16:36:40 2022 +0100
Delete qtwebengine-everywhere-src-5.10.0-linux-pri.patch.
The yasm part is obsolete because QtWebEngine uses nasm now (but
currently a bundled copy, that needs to be fixed).
The libpci part seems obsolete as well, -lpci is getting linked already.
Also restore an AWOL patch comment.
diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec
index e76dc3d..16ec784 100644
--- a/qt5-qtwebengine.spec
+++ b/qt5-qtwebengine.spec
@@ -79,9 +79,6 @@ Source10: macros.qt5-qtwebengine
# pulseaudio headers
Source20: pulseaudio-12.2-headers.tar.gz
-# some tweaks to linux.pri (system yasm, link libpci, run unbundling script)
-# FIXME/TODO: review, I *think* this is no longer needed -- rdieter
-Patch0: qtwebengine-everywhere-src-5.10.0-linux-pri.patch
# quick hack to avoid checking for the nonexistent icudtl.dat and silence the
# resulting warnings - not upstreamable as is because it removes the fallback
# mechanism for the ICU data directory (which is not used in our builds because
@@ -104,6 +101,7 @@ Patch7: chromium-hunspell-nullptr.patch
Patch24: qtwebengine-everywhere-src-5.11.3-aarch64-new-stat.patch
# Use Python2
Patch26: qtwebengine-everywhere-5.15.5-use-python2.patch
+# FTBFS TRUE/FALSE undeclared
Patch31: qtwebengine-everywhere-src-5.15.5-TRUE.patch
## Upstream patches:
@@ -392,7 +390,6 @@ mv pulse src/3rdparty/chromium/
pushd src/3rdparty/chromium
popd
-#patch0 -p1 -b .linux-pri
%if 0%{?use_system_libicu}
%patch1 -p1 -b .no-icudtl-dat
%endif
diff --git a/qtwebengine-everywhere-src-5.10.0-linux-pri.patch b/qtwebengine-everywhere-src-5.10.0-linux-pri.patch
deleted file mode 100644
index 8d88773..0000000
--- a/qtwebengine-everywhere-src-5.10.0-linux-pri.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/src/buildtools/config/linux.pri b/src/buildtools/config/linux.pri
-index 56c18bd..cb17c7a 100644
---- a/src/buildtools/config/linux.pri
-+++ b/src/buildtools/config/linux.pri
-@@ -176,3 +176,19 @@ host_build {
- }
- gn_args += use_glib=false
- }
-+
-+# yasm is only used on x86, and passing use_system_yasm makes the build fail on
-+# other architectures (e.g., ARM), so make it conditional on the architecture
-+#contains(QT_ARCH, "x86_64")|contains(QT_ARCH, "i386") {
-+# gn_args += use_system_yasm=true
-+#}
-+
-+# link libpci instead of dlopening it, our Qt packaging depends on it anyway
-+gn_args += linux_link_libpci=true
-+
-+# run the unbundling script Chromium provides
-+CHROMIUM_SRC_DIR = "$$QTWEBENGINE_ROOT/$$getChromiumSrcDir()"
-+R_G_F_PY = "$$CHROMIUM_SRC_DIR/build/linux/unbundle/replace_gn_files.py"
-+R_G_F_PY_ARGS = "--system-libraries yasm"
-+log("Running python2 $$R_G_F_PY $$R_G_F_PY_ARGS$${EOL}")
-+!system("python2 $$R_G_F_PY $$R_G_F_PY_ARGS"): error("-- unbundling failed")
commit c7db84b88585ea6c0a7e5c3e52682c7b2af3c7d7
Author: Kevin Kofler <Kevin(a)tigcc.ticalc.org>
Date: Sun Jan 23 16:22:27 2022 +0100
Include qtwebengine-release.sh as Source1.
(and increment the Source numbers of the cleanup scripts by 1)
diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec
index 2d8765b..e76dc3d 100644
--- a/qt5-qtwebengine.spec
+++ b/qt5-qtwebengine.spec
@@ -63,14 +63,16 @@ Release: 1%{?dist}
# The other licenses are from Chromium and the code it bundles
License: (LGPLv2 with exceptions or GPLv3 with exceptions) and BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
URL: http://www.qt.io
-# leaned tarball with patent-encumbered codecs removed from the bundled FFmpeg
-# wget http://download.qt.io/official_releases/qt/5.15/5.15.1/submodules/qtweben...
+# cleaned tarball with patent-encumbered codecs removed from the bundled FFmpeg
+# ./qtwebengine-release.sh
# ./clean_qtwebengine.sh 5.15.1
Source0: qtwebengine-everywhere-src-%{version}-clean.tar.xz
+# release script used above
+Source1: qtwebengine-release.sh
# cleanup scripts used above
-Source1: clean_qtwebengine.sh
-Source2: clean_ffmpeg.sh
-Source3: get_free_ffmpeg_source_files.py
+Source2: clean_qtwebengine.sh
+Source3: clean_ffmpeg.sh
+Source4: get_free_ffmpeg_source_files.py
# macros
Source10: macros.qt5-qtwebengine
commit e3cb59b44a87a6c9dfabc3432bfc460fb479891f
Author: Kevin Kofler <Kevin(a)tigcc.ticalc.org>
Date: Sun Jan 23 16:01:12 2022 +0100
Mark qtwebengine-release.sh executable.
diff --git a/qtwebengine-release.sh b/qtwebengine-release.sh
old mode 100644
new mode 100755
commit 9ae22d8d063baaa00144ec6c2538c96454e8bdc3
Author: Kevin Kofler <Kevin(a)tigcc.ticalc.org>
Date: Sat Jan 22 23:49:21 2022 +0100
%undefine _package_note_file (#2043178).
diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec
index e02237d..2d8765b 100644
--- a/qt5-qtwebengine.spec
+++ b/qt5-qtwebengine.spec
@@ -2,8 +2,8 @@
%global _hardened_build 1
-# This package uses the gold linker.
-%global _package_notes_linker gold
+# package-notes causes FTBFS (#2043178)
+%undefine _package_note_file
# define to build docs, may need to undef this for bootstrapping
# where qt5-qttools (qt5-doctools) builds are not yet available
@@ -620,7 +620,7 @@ done
%changelog
* Tue Jan 11 2022 Rex Dieter <rdieter(a)fedoraproject.org> - 5.15.8-1
- 5.15.8
-- Set "%%global _package_notes_linker gold" (#2043178)
+- %%undefine _package_note_file (#2043178)
* Sat Jan 08 2022 Miro Hrončok <mhroncok(a)redhat.com> - 5.15.6-3
- Rebuilt for libre2.so.9
commit 6d39634c0ea5d1d08e51a9816bc8be3af944603f
Author: Kevin Kofler <Kevin(a)tigcc.ticalc.org>
Date: Sat Jan 22 16:09:01 2022 +0100
Set "%%global _package_notes_linker gold" (#2043178).
diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec
index bed58ec..e02237d 100644
--- a/qt5-qtwebengine.spec
+++ b/qt5-qtwebengine.spec
@@ -2,6 +2,9 @@
%global _hardened_build 1
+# This package uses the gold linker.
+%global _package_notes_linker gold
+
# define to build docs, may need to undef this for bootstrapping
# where qt5-qttools (qt5-doctools) builds are not yet available
%global docs 1
@@ -617,6 +620,7 @@ done
%changelog
* Tue Jan 11 2022 Rex Dieter <rdieter(a)fedoraproject.org> - 5.15.8-1
- 5.15.8
+- Set "%%global _package_notes_linker gold" (#2043178)
* Sat Jan 08 2022 Miro Hrončok <mhroncok(a)redhat.com> - 5.15.6-3
- Rebuilt for libre2.so.9
@@ -637,7 +641,7 @@ done
- 5.15.5
* Wed Jun 16 2021 Rex Dieter <rdieter(a)fedoraproject.org> - 5.15.2-12
-- workaround SIGSTKSZ FTBFS (#19455950
+- workaround SIGSTKSZ FTBFS (#1945595)
- workaround 'TRUE'/'FALSE' was not declared in this scope
* Thu May 20 2021 Pete Walter <pwalter(a)fedoraproject.org> - 5.15.2-11
commit f6a6f07c22c61f1bc8fc1f9fb598043c85fb1835
Author: Kevin Kofler <Kevin(a)tigcc.ticalc.org>
Date: Sat Jan 22 16:06:22 2022 +0100
Revert "Drop "use_gold_linker" (see #2043178)."
This reverts commit b36104f4bb5c9ac82056c46249d5a404a6b4b228.
This fails to build on i686 due to ffmpeg text relocations (which
produce a warning from ld.bfd, and -Wl,--fatal-warnings gets passed):
https://bugzilla.redhat.com/show_bug.cgi?id=2043178#c14
diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec
index d2f4a89..bed58ec 100644
--- a/qt5-qtwebengine.spec
+++ b/qt5-qtwebengine.spec
@@ -458,7 +458,7 @@ export NINJA_PATH=%{__ninja}
%{qmake_qt5} \
%{?debug_config:CONFIG+="%{debug_config}}" \
- CONFIG+="link_pulseaudio" \
+ CONFIG+="link_pulseaudio use_gold_linker" \
%{?use_system_libicu:QMAKE_EXTRA_ARGS+="-system-webengine-icu"} \
QMAKE_EXTRA_ARGS+="-webengine-kerberos" \
.
@@ -617,7 +617,6 @@ done
%changelog
* Tue Jan 11 2022 Rex Dieter <rdieter(a)fedoraproject.org> - 5.15.8-1
- 5.15.8
-- drop "use_gold_linker" (see #2043178)
* Sat Jan 08 2022 Miro Hrončok <mhroncok(a)redhat.com> - 5.15.6-3
- Rebuilt for libre2.so.9
@@ -638,7 +637,7 @@ done
- 5.15.5
* Wed Jun 16 2021 Rex Dieter <rdieter(a)fedoraproject.org> - 5.15.2-12
-- workaround SIGSTKSZ FTBFS (#1945595)
+- workaround SIGSTKSZ FTBFS (#19455950
- workaround 'TRUE'/'FALSE' was not declared in this scope
* Thu May 20 2021 Pete Walter <pwalter(a)fedoraproject.org> - 5.15.2-11
commit b36104f4bb5c9ac82056c46249d5a404a6b4b228
Author: Kevin Kofler <Kevin(a)tigcc.ticalc.org>
Date: Sat Jan 22 13:47:09 2022 +0100
Drop "use_gold_linker" (see #2043178).
diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec
index bed58ec..d2f4a89 100644
--- a/qt5-qtwebengine.spec
+++ b/qt5-qtwebengine.spec
@@ -458,7 +458,7 @@ export NINJA_PATH=%{__ninja}
%{qmake_qt5} \
%{?debug_config:CONFIG+="%{debug_config}}" \
- CONFIG+="link_pulseaudio use_gold_linker" \
+ CONFIG+="link_pulseaudio" \
%{?use_system_libicu:QMAKE_EXTRA_ARGS+="-system-webengine-icu"} \
QMAKE_EXTRA_ARGS+="-webengine-kerberos" \
.
@@ -617,6 +617,7 @@ done
%changelog
* Tue Jan 11 2022 Rex Dieter <rdieter(a)fedoraproject.org> - 5.15.8-1
- 5.15.8
+- drop "use_gold_linker" (see #2043178)
* Sat Jan 08 2022 Miro Hrončok <mhroncok(a)redhat.com> - 5.15.6-3
- Rebuilt for libre2.so.9
@@ -637,7 +638,7 @@ done
- 5.15.5
* Wed Jun 16 2021 Rex Dieter <rdieter(a)fedoraproject.org> - 5.15.2-12
-- workaround SIGSTKSZ FTBFS (#19455950
+- workaround SIGSTKSZ FTBFS (#1945595)
- workaround 'TRUE'/'FALSE' was not declared in this scope
* Thu May 20 2021 Pete Walter <pwalter(a)fedoraproject.org> - 5.15.2-11
commit 0c04e957df90a03a3abefa9178719fd057d1ecb2
Author: Kevin Kofler <Kevin(a)tigcc.ticalc.org>
Date: Sat Jan 22 13:45:54 2022 +0100
Fix Provides: bundled(chromium).
diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec
index 16a7895..bed58ec 100644
--- a/qt5-qtwebengine.spec
+++ b/qt5-qtwebengine.spec
@@ -226,12 +226,7 @@ BuildRequires: pkgconfig(vpx) >= 1.8.0
# Of course, Chromium itself is bundled. It cannot be unbundled because it is
# not a library, but forked (modified) application code.
-# rdieter: unsure, chrome/VERSION says:
-#MAJOR=87
-#MINOR=0
-#BUILD=4280
-#PATCH=144
-Provides: bundled(chromium) = 90.0.44.30.228
+Provides: bundled(chromium) = 87.0.4280.144
# Bundled in src/3rdparty/chromium/third_party:
# Check src/3rdparty/chromium/third_party/*/README.chromium for version numbers,
commit c36afa25bff3a32acf943218aeb274afc37b9ba2
Author: Rex Dieter <rdieter(a)gmail.com>
Date: Wed Jan 19 17:10:14 2022 -0600
one more nullptr.patch (hunspell)
diff --git a/chromium-hunspell-nullptr.patch b/chromium-hunspell-nullptr.patch
new file mode 100644
index 0000000..b215049
--- /dev/null
+++ b/chromium-hunspell-nullptr.patch
@@ -0,0 +1,12 @@
+diff -up qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/hunspell/src/hunspell/hunspell.cxx.nullptr qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/hunspell/src/hunspell/hunspell.cxx
+--- qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/hunspell/src/hunspell/hunspell.cxx.nullptr 2021-12-15 10:09:27.000000000 -0600
++++ qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/hunspell/src/hunspell/hunspell.cxx 2022-01-19 10:30:40.845051982 -0600
+@@ -1725,7 +1725,7 @@ std::string HunspellImpl::get_xml_par(co
+ if (end == '>')
+ end = '<';
+ else if (end != '\'' && end != '"')
+- return 0; // bad XML
++ return dest; // bad XML
+ for (par++; *par != '\0' && *par != end; ++par) {
+ dest.push_back(*par);
+ }
diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec
index bbbf040..16a7895 100644
--- a/qt5-qtwebengine.spec
+++ b/qt5-qtwebengine.spec
@@ -94,6 +94,7 @@ Patch4: qtwebengine-SIOCGSTAMP.patch
Patch5: qtwebengine-5.15.0-QT_DEPRECATED_VERSION.patch
# gcc-12 FTBFS "use of deleted function"
Patch6: chromium-angle-nullptr.patch
+Patch7: chromium-hunspell-nullptr.patch
# Fix/workaround FTBFS on aarch64 with newer glibc
Patch24: qtwebengine-everywhere-src-5.11.3-aarch64-new-stat.patch
# Use Python2
@@ -401,7 +402,8 @@ popd
%endif
%patch4 -p1 -b .SIOCGSTAMP
%patch5 -p1 -b .QT_DEPRECATED_VERSION
-%patch6 -p1 -b .nullptr
+%patch6 -p1 -b .angle_nullptr
+%patch7 -p1 -b .hunspell_nullptr
## upstream patches
%patch24 -p1 -b .aarch64-new-stat
commit 02956c858dbe7b2d21d3143ed51805c65066947d
Author: Rex Dieter <rdieter(a)gmail.com>
Date: Wed Jan 19 09:36:28 2022 -0600
commit awol nullptr.patch
diff --git a/chromium-angle-nullptr.patch b/chromium-angle-nullptr.patch
new file mode 100644
index 0000000..78ae389
--- /dev/null
+++ b/chromium-angle-nullptr.patch
@@ -0,0 +1,12 @@
+diff -up qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/angle/src/common/utilities.cpp.nullptr qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/angle/src/common/utilities.cpp
+--- qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/angle/src/common/utilities.cpp.nullptr 2021-12-15 10:09:27.000000000 -0600
++++ qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/angle/src/common/utilities.cpp 2022-01-19 08:52:02.659577615 -0600
+@@ -254,7 +254,7 @@ std::string GetGLSLTypeString(GLenum typ
+ return "mat4";
+ default:
+ UNREACHABLE();
+- return nullptr;
++ return "";
+ }
+ }
+
commit 2126c351306f374b7b3cfe811174e1f47306aecc
Author: Rex Dieter <rdieter(a)gmail.com>
Date: Wed Jan 19 09:35:51 2022 -0600
update bundle versions, nullptr gcc12 ftbfs fix
diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec
index 918083d..bbbf040 100644
--- a/qt5-qtwebengine.spec
+++ b/qt5-qtwebengine.spec
@@ -92,6 +92,8 @@ Patch3: qtwebengine-opensource-src-5.9.0-no-neon.patch
Patch4: qtwebengine-SIOCGSTAMP.patch
# fix build when using qt < 5.14
Patch5: qtwebengine-5.15.0-QT_DEPRECATED_VERSION.patch
+# gcc-12 FTBFS "use of deleted function"
+Patch6: chromium-angle-nullptr.patch
# Fix/workaround FTBFS on aarch64 with newer glibc
Patch24: qtwebengine-everywhere-src-5.11.3-aarch64-new-stat.patch
# Use Python2
@@ -223,6 +225,11 @@ BuildRequires: pkgconfig(vpx) >= 1.8.0
# Of course, Chromium itself is bundled. It cannot be unbundled because it is
# not a library, but forked (modified) application code.
+# rdieter: unsure, chrome/VERSION says:
+#MAJOR=87
+#MINOR=0
+#BUILD=4280
+#PATCH=144
Provides: bundled(chromium) = 90.0.44.30.228
# Bundled in src/3rdparty/chromium/third_party:
@@ -243,7 +250,7 @@ Provides: bundled(brotli)
# out. See clean_qtwebengine.sh, clean_ffmpeg.sh, and
# get_free_ffmpeg_source_files.py.
# see src/3rdparty/chromium/third_party/ffmpeg/Changelog for the version number
-Provides: bundled(ffmpeg) = 3.3
+Provides: bundled(ffmpeg) = 4.3
Provides: bundled(hunspell) = 1.6.0
Provides: bundled(iccjpeg)
# bundled as "khronos", headers only
@@ -255,20 +262,19 @@ Provides: bundled(libjingle)
# see src/3rdparty/chromium/third_party/libsrtp/CHANGES for the version number
Provides: bundled(libsrtp) = 2.1.0
%if !0%{?use_system_libvpx}
-# claims "Version: 1.6.0", but according to the fine print, this is actually a
-# snapshot from master from after the 1.6.1 release
-Provides: bundled(libvpx) = 1.6.1
+Provides: bundled(libvpx) = 1.8.2
%endif
%if !0%{?use_system_libwebp}
-Provides: bundled(libwebp) = 0.6.0
+Provides: bundled(libwebp) = 1.1.0-28-g55a080e5
%endif
# bundled as "libxml"
# see src/3rdparty/chromium/third_party/libxml/linux/include/libxml/xmlversion.h
-Provides: bundled(libxml2) = 2.9.4
+# post 2.9.9 snapshot?, 2.9.9-0b3c64d9f2f3e9ce1a98d8f19ee7a763c87e27d5
+Provides: bundled(libxml2) = 2.9.10
# see src/3rdparty/chromium/third_party/libxslt/linux/config.h for version
-Provides: bundled(libxslt) = 1.1.29
+Provides: bundled(libxslt) = 1.1.34
Provides: bundled(libXNVCtrl) = 302.17
-Provides: bundled(libyuv) = 1658
+Provides: bundled(libyuv) = 1768
Provides: bundled(modp_b64)
Provides: bundled(openmax_dl) = 1.0.2
Provides: bundled(ots)
@@ -278,8 +284,8 @@ Provides: bundled(qcms) = 4
Provides: bundled(sfntly)
Provides: bundled(skia)
# bundled as "smhasher"
-Provides: bundled(SMHasher) = 0-0.1.svn147
-Provides: bundled(sqlite) = 3.20
+Provides: bundled(SMHasher) = 0-147
+Provides: bundled(sqlite) = 3.35.5
Provides: bundled(usrsctp)
Provides: bundled(webrtc) = 90
@@ -395,9 +401,9 @@ popd
%endif
%patch4 -p1 -b .SIOCGSTAMP
%patch5 -p1 -b .QT_DEPRECATED_VERSION
+%patch6 -p1 -b .nullptr
## upstream patches
-
%patch24 -p1 -b .aarch64-new-stat
%patch26 -p1 -b .use-python2
%patch31 -p1 -b .TRUE
commit 2ea927dfdbc273e71d339ff2024455dd99dd522a
Author: Rex Dieter <rdieter(a)gmail.com>
Date: Wed Jan 19 08:55:49 2022 -0600
drop old/unused patches
diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec
index c31a399..918083d 100644
--- a/qt5-qtwebengine.spec
+++ b/qt5-qtwebengine.spec
@@ -92,27 +92,11 @@ Patch3: qtwebengine-opensource-src-5.9.0-no-neon.patch
Patch4: qtwebengine-SIOCGSTAMP.patch
# fix build when using qt < 5.14
Patch5: qtwebengine-5.15.0-QT_DEPRECATED_VERSION.patch
-# remove Android dependencies from openmax_dl ARM NEON detection (detect.c)
-Patch10: qtwebengine-opensource-src-5.9.0-openmax-dl-neon.patch
# Fix/workaround FTBFS on aarch64 with newer glibc
Patch24: qtwebengine-everywhere-src-5.11.3-aarch64-new-stat.patch
# Use Python2
Patch26: qtwebengine-everywhere-5.15.5-use-python2.patch
-# Fix sandbox issue breaking text rendering with glibc >= 2.33 (#1904652)
-# https://bugs.chromium.org/p/chromium/issues/detail?id=1164975
-Patch28: qtwebengine-everywhere-src-5.15.5-#1904652.patch
-# Fix sandbox issue on 32-bit architectures with glibc >= 2.31 (from Debian)
-Patch29: qtwebengine-everywhere-src-5.15.5-sandbox-time64-syscalls.patch
-# don't assume type-ness of SIGSTKSZ,
-# https://bugzilla.redhat.com/show_bug.cgi?id=1945595
-Patch30: qtwebengine-everywhere-src-5.15.5-SIGSTKSZ.patch
-# FTBFS TRUE/FALSE undeclared
Patch31: qtwebengine-everywhere-src-5.15.5-TRUE.patch
-# Issue 1213452: Sandbox doesn't work with clone3
-# https://bugs.chromium.org/p/chromium/issues/detail?id=1213452
-Patch32: qtwebengine-everywhere-src-5.15.6-clone3.patch
-# Fix use of deprecated harfbuzz api's
-Patch33: qtwebengine-harfbuzz.patch
## Upstream patches:
@@ -414,16 +398,9 @@ popd
## upstream patches
-#patch10 -p1 -b .openmax-dl-neon
%patch24 -p1 -b .aarch64-new-stat
%patch26 -p1 -b .use-python2
-#patch28 -p1 -b .rh#1904652
-#patch29 -p1 -b .sandbox-time64-syscalls
-#patch30 -p1 -b .SIGSTKSZ
%patch31 -p1 -b .TRUE
-#patch32 -p1 -b .clone3
-## may need porting
-#patch33 -p1 -b .harfbuzz
# delete all "toolprefix = " lines from build/toolchain/linux/BUILD.gn, as we
# never cross-compile in native Fedora RPMs, fixes ARM and aarch64 FTBFS
diff --git a/qtwebengine-everywhere-src-5.15.5-#1904652.patch b/qtwebengine-everywhere-src-5.15.5-#1904652.patch
deleted file mode 100644
index 7951e6b..0000000
--- a/qtwebengine-everywhere-src-5.15.5-#1904652.patch
+++ /dev/null
@@ -1,141 +0,0 @@
-diff -up qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc.rh#1904652 qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
---- qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc.rh#1904652 2021-05-28 07:05:45.000000000 -0500
-+++ qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc 2021-06-24 08:34:07.566783935 -0500
-@@ -257,6 +257,18 @@ ResultExpr EvaluateSyscallImpl(int fs_de
- return RestrictKillTarget(current_pid, sysno);
- }
-
-+#if defined(__NR_newfstatat)
-+ if (sysno == __NR_newfstatat) {
-+ return RewriteFstatatSIGSYS();
-+ }
-+#endif
-+
-+#if defined(__NR_fstatat64)
-+ if (sysno == __NR_fstatat64) {
-+ return RewriteFstatatSIGSYS();
-+ }
-+#endif
-+
- if (SyscallSets::IsFileSystem(sysno) ||
- SyscallSets::IsCurrentDirectory(sysno)) {
- return Error(fs_denied_errno);
-diff -up qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc.rh#1904652 qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc
---- qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc.rh#1904652 2021-05-28 07:05:45.000000000 -0500
-+++ qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc 2021-06-24 08:40:08.552334787 -0500
-@@ -6,6 +6,8 @@
-
- #include "sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h"
-
-+#include <errno.h>
-+#include <fcntl.h>
- #include <stddef.h>
- #include <stdint.h>
- #include <string.h>
-@@ -355,6 +357,35 @@ intptr_t SIGSYSSchedHandler(const struct
- return -ENOSYS;
- }
-
-+intptr_t SIGSYSFstatatHandler(const struct arch_seccomp_data& args,
-+ void* aux) {
-+ switch (args.nr) {
-+#if defined(__NR_newfstatat)
-+ case __NR_newfstatat:
-+#endif
-+#if defined(__NR_fstatat64)
-+ case __NR_fstatat64:
-+#endif
-+#if defined(__NR_newfstatat) || defined(__NR_fstatat64)
-+ if (*reinterpret_cast<const char *>(args.args[1]) == '\0'
-+ && args.args[3] == static_cast<uint64_t>(AT_EMPTY_PATH)) {
-+ return sandbox::sys_fstat64(static_cast<int>(args.args[0]),
-+ reinterpret_cast<struct stat64 *>(args.args[2]));
-+ } else {
-+ errno = EACCES;
-+ return -1;
-+ }
-+ break;
-+#endif
-+ }
-+
-+ CrashSIGSYS_Handler(args, aux);
-+
-+ // Should never be reached.
-+ RAW_CHECK(false);
-+ return -ENOSYS;
-+}
-+
- bpf_dsl::ResultExpr CrashSIGSYS() {
- return bpf_dsl::Trap(CrashSIGSYS_Handler, NULL);
- }
-@@ -387,6 +418,10 @@ bpf_dsl::ResultExpr RewriteSchedSIGSYS()
- return bpf_dsl::Trap(SIGSYSSchedHandler, NULL);
- }
-
-+bpf_dsl::ResultExpr RewriteFstatatSIGSYS() {
-+ return bpf_dsl::Trap(SIGSYSFstatatHandler, NULL);
-+}
-+
- void AllocateCrashKeys() {
- #if !defined(OS_NACL_NONSFI)
- if (seccomp_crash_key)
-diff -up qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h.rh#1904652 qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h
---- qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h.rh#1904652 2021-05-28 07:05:45.000000000 -0500
-+++ qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h 2021-06-24 08:39:31.205174337 -0500
-@@ -62,6 +62,10 @@ SANDBOX_EXPORT intptr_t SIGSYSPtraceFail
- // sched_setparam(), sched_setscheduler()
- SANDBOX_EXPORT intptr_t SIGSYSSchedHandler(const arch_seccomp_data& args,
- void* aux);
-+// If the fstatat syscall is actually a disguised fstat, calls the regular fstat
-+// syscall, otherwise, crashes in the same way as CrashSIGSYS_Handler.
-+SANDBOX_EXPORT intptr_t
-+ SIGSYSFstatatHandler(const struct arch_seccomp_data& args, void* aux);
-
- // Variants of the above functions for use with bpf_dsl.
- SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYS();
-@@ -72,6 +76,7 @@ SANDBOX_EXPORT bpf_dsl::ResultExpr Crash
- SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSFutex();
- SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSPtrace();
- SANDBOX_EXPORT bpf_dsl::ResultExpr RewriteSchedSIGSYS();
-+SANDBOX_EXPORT bpf_dsl::ResultExpr RewriteFstatatSIGSYS();
-
- // Allocates a crash key so that Seccomp information can be recorded.
- void AllocateCrashKeys();
-diff -up qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.cc.rh#1904652 qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.cc
---- qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.cc.rh#1904652 2021-05-28 07:05:45.000000000 -0500
-+++ qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.cc 2021-06-24 08:34:07.567783940 -0500
-@@ -261,4 +261,13 @@ int sys_sigaction(int signum,
-
- #endif // defined(MEMORY_SANITIZER)
-
-+SANDBOX_EXPORT int sys_fstat64(int fd, struct stat64 *buf)
-+{
-+#if defined(__NR_fstat64)
-+ return syscall(__NR_fstat64, fd, buf);
-+#else
-+ return syscall(__NR_fstat, fd, buf);
-+#endif
-+}
-+
- } // namespace sandbox
-diff -up qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.h.rh#1904652 qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.h
---- qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.h.rh#1904652 2021-05-28 07:05:45.000000000 -0500
-+++ qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.h 2021-06-24 08:34:07.568783944 -0500
-@@ -17,6 +17,7 @@ struct sock_fprog;
- struct rlimit64;
- struct cap_hdr;
- struct cap_data;
-+struct stat64;
-
- namespace sandbox {
-
-@@ -84,6 +85,9 @@ SANDBOX_EXPORT int sys_sigaction(int sig
- const struct sigaction* act,
- struct sigaction* oldact);
-
-+// Recent glibc rewrites fstat to fstatat.
-+SANDBOX_EXPORT int sys_fstat64(int fd, struct stat64 *buf);
-+
- } // namespace sandbox
-
- #endif // SANDBOX_LINUX_SERVICES_SYSCALL_WRAPPERS_H_
diff --git a/qtwebengine-everywhere-src-5.15.5-SIGSTKSZ.patch b/qtwebengine-everywhere-src-5.15.5-SIGSTKSZ.patch
deleted file mode 100644
index 2f32049..0000000
--- a/qtwebengine-everywhere-src-5.15.5-SIGSTKSZ.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc.SIGSTKSZ qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc
---- qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc.SIGSTKSZ 2021-05-28 07:05:45.000000000 -0500
-+++ qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc 2021-06-24 09:14:27.365186590 -0500
-@@ -135,7 +135,7 @@ static bool SetupAlternateStackOnce() {
- #else
- const size_t page_mask = sysconf(_SC_PAGESIZE) - 1;
- #endif
-- size_t stack_size = (std::max(SIGSTKSZ, 65536) + page_mask) & ~page_mask;
-+ size_t stack_size = (std::max<size_t>(SIGSTKSZ, 65536) + page_mask) & ~page_mask;
- #if defined(ABSL_HAVE_ADDRESS_SANITIZER) || \
- defined(ABSL_HAVE_MEMORY_SANITIZER) || defined(ABSL_HAVE_THREAD_SANITIZER)
- // Account for sanitizer instrumentation requiring additional stack space.
-diff -up qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc.SIGSTKSZ qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
---- qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc.SIGSTKSZ 2021-05-28 07:05:45.000000000 -0500
-+++ qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc 2021-06-24 09:15:54.012558815 -0500
-@@ -138,7 +138,7 @@ void InstallAlternateStackLocked() {
- // SIGSTKSZ may be too small to prevent the signal handlers from overrunning
- // the alternative stack. Ensure that the size of the alternative stack is
- // large enough.
-- static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ);
-+ static const unsigned kSigStackSize = std::max<unsigned>(16384, SIGSTKSZ);
-
- // Only set an alternative stack if there isn't already one, or if the current
- // one is too small.
diff --git a/qtwebengine-everywhere-src-5.15.5-sandbox-time64-syscalls.patch b/qtwebengine-everywhere-src-5.15.5-sandbox-time64-syscalls.patch
deleted file mode 100644
index 1a14bc9..0000000
--- a/qtwebengine-everywhere-src-5.15.5-sandbox-time64-syscalls.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-diff -up qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc.sandbox-time64-syscalls qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
---- qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc.sandbox-time64-syscalls 2021-06-24 10:36:45.687826522 -0500
-+++ qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc 2021-06-24 10:36:45.692826524 -0500
-@@ -157,7 +157,14 @@ ResultExpr EvaluateSyscallImpl(int fs_de
- return Allow();
- #endif
-
-- if (sysno == __NR_clock_gettime || sysno == __NR_clock_nanosleep) {
-+ if (sysno == __NR_clock_gettime || sysno == __NR_clock_nanosleep
-+#if defined(__NR_clock_gettime64)
-+ || sysno == __NR_clock_gettime64
-+#endif
-+#if defined(__NR_clock_nanosleep_time64)
-+ || sysno == __NR_clock_nanosleep_time64
-+#endif
-+ ) {
- return RestrictClockID();
- }
-
-diff -up qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc.sandbox-time64-syscalls qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc
---- qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc.sandbox-time64-syscalls 2021-05-28 07:05:45.000000000 -0500
-+++ qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc 2021-06-24 10:36:45.692826524 -0500
-@@ -60,6 +60,12 @@ class RestrictClockIdPolicy : public bpf
- case __NR_clock_gettime:
- case __NR_clock_getres:
- case __NR_clock_nanosleep:
-+#if defined(__NR_clock_nanosleep_time64)
-+ case __NR_clock_nanosleep_time64:
-+#endif
-+#if defined(__NR_clock_gettime64)
-+ case __NR_clock_gettime64:
-+#endif
- return RestrictClockID();
- default:
- return Allow();
-diff -up qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc.sandbox-time64-syscalls qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
---- qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc.sandbox-time64-syscalls 2021-05-28 07:05:45.000000000 -0500
-+++ qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc 2021-06-24 10:36:45.693826524 -0500
-@@ -39,6 +39,12 @@ bool SyscallSets::IsAllowedGettime(int s
- // filtered by RestrictClokID().
- case __NR_clock_gettime: // Parameters filtered by RestrictClockID().
- case __NR_clock_nanosleep: // Parameters filtered by RestrictClockID().
-+#if defined(__NR_clock_gettime64)
-+ case __NR_clock_gettime64: // Parameters filtered by RestrictClockID().
-+#endif
-+#if defined(__NR_clock_nanosleep_time64)
-+ case __NR_clock_nanosleep_time64: // Parameters filtered by RestrictClockID().
-+#endif
- case __NR_clock_settime: // Privileged.
- #if defined(__i386__) || \
- (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
-diff -up qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h.sandbox-time64-syscalls qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h
---- qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h.sandbox-time64-syscalls 2021-06-24 10:36:45.694826524 -0500
-+++ qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h 2021-06-24 10:37:50.383852263 -0500
-@@ -1441,6 +1441,14 @@
- #define __NR_io_pgetevents (__NR_SYSCALL_BASE+399)
- #endif
-
-+#if !defined(__NR_clock_gettime64)
-+#define __NR_clock_gettime64 (__NR_SYSCALL_BASE+403)
-+#endif
-+
-+#if !defined(__NR_clock_nanosleep_time64)
-+#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE+407)
-+#endif
-+
- // ARM private syscalls.
- #if !defined(__ARM_NR_BASE)
- #define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0xF0000)
-diff -up qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/system_headers/mips_linux_syscalls.h.sandbox-time64-syscalls qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/system_headers/mips_linux_syscalls.h
---- qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/system_headers/mips_linux_syscalls.h.sandbox-time64-syscalls 2021-05-28 07:05:45.000000000 -0500
-+++ qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/sandbox/linux/system_headers/mips_linux_syscalls.h 2021-06-24 10:36:45.695826525 -0500
-@@ -1433,4 +1433,12 @@
- #define __NR_memfd_create (__NR_Linux + 354)
- #endif
-
-+#if !defined(__NR_clock_gettime64)
-+#define __NR_clock_gettime64 (__NR_Linux + 403)
-+#endif
-+
-+#if !defined(__NR_clock_nanosleep_time64)
-+#define __NR_clock_nanosleep_time64 (__NR_Linux + 407)
-+#endif
-+
- #endif // SANDBOX_LINUX_SYSTEM_HEADERS_MIPS_LINUX_SYSCALLS_H_
diff --git a/qtwebengine-everywhere-src-5.15.6-clone3.patch b/qtwebengine-everywhere-src-5.15.6-clone3.patch
deleted file mode 100644
index a89a363..0000000
--- a/qtwebengine-everywhere-src-5.15.6-clone3.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -up qtwebengine-everywhere-src-5.15.6/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc.1213452 qtwebengine-everywhere-src-5.15.6/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
---- qtwebengine-everywhere-src-5.15.6/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc.1213452 2021-09-03 10:35:33.069779845 -0500
-+++ qtwebengine-everywhere-src-5.15.6/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc 2021-09-03 10:36:43.891325411 -0500
-@@ -172,6 +172,12 @@ ResultExpr EvaluateSyscallImpl(int fs_de
- return RestrictCloneToThreadsAndEPERMFork();
- }
-
-+ // clone3 takes a pointer argument which we cannot examine, so return ENOSYS
-+ // to force the libc to use clone. See https://crbug.com/1213452.
-+ if (sysno == __NR_clone3) {
-+ return Error(ENOSYS);
-+ }
-+
- if (sysno == __NR_fcntl)
- return RestrictFcntlCommands();
-
diff --git a/qtwebengine-harfbuzz.patch b/qtwebengine-harfbuzz.patch
deleted file mode 100644
index cedfd16..0000000
--- a/qtwebengine-harfbuzz.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff --git a/src/3rdparty/chromium/components/paint_preview/common/subset_font.cc b/src/3rdparty/chromium/components/paint_preview/common/subset_font.cc
-index ba5391708..f5fad4148 100644
---- a/src/3rdparty/chromium/components/paint_preview/common/subset_font.cc
-+++ b/src/3rdparty/chromium/components/paint_preview/common/subset_font.cc
-@@ -71,9 +71,9 @@ sk_sp<SkData> SubsetFont(SkTypeface* typeface, const GlyphUsage& usage) {
- hb_set_t* glyphs =
- hb_subset_input_glyph_set(input.get()); // Owned by |input|.
- usage.ForEach(base::BindRepeating(&AddGlyphs, base::Unretained(glyphs)));
-- hb_subset_input_set_retain_gids(input.get(), true);
-+ hb_subset_input_set_flags(input.get(), HB_SUBSET_FLAGS_RETAIN_GIDS);
-
-- HbScoped<hb_face_t> subset_face(hb_subset(face.get(), input.get()));
-+ HbScoped<hb_face_t> subset_face(hb_subset_or_fail(face.get(), input.get()));
- HbScoped<hb_blob_t> subset_blob(hb_face_reference_blob(subset_face.get()));
- if (!subset_blob)
- return nullptr;
-diff --git a/src/3rdparty/chromium/third_party/skia/src/pdf/SkPDFSubsetFont.cpp b/src/3rdparty/chromium/third_party/skia/src/pdf/SkPDFSubsetFont.cpp
-index 81c37eef3..1581fb8a9 100644
---- a/src/3rdparty/chromium/third_party/skia/src/pdf/SkPDFSubsetFont.cpp
-+++ b/src/3rdparty/chromium/third_party/skia/src/pdf/SkPDFSubsetFont.cpp
-@@ -71,11 +71,10 @@ static sk_sp<SkData> subset_harfbuzz(sk_sp<SkData> fontData,
- hb_set_t* glyphs = hb_subset_input_glyph_set(input.get());
- glyphUsage.getSetValues([&glyphs](unsigned gid) { hb_set_add(glyphs, gid);});
-
-- hb_subset_input_set_retain_gids(input.get(), true);
- // TODO: When possible, check if a font is 'tricky' with FT_IS_TRICKY.
- // If it isn't known if a font is 'tricky', retain the hints.
-- hb_subset_input_set_drop_hints(input.get(), false);
-- HBFace subset(hb_subset(face.get(), input.get()));
-+ hb_subset_input_set_flags(input.get(), HB_SUBSET_FLAGS_RETAIN_GIDS | HB_SUBSET_FLAGS_NO_HINTING);
-+ HBFace subset(hb_subset_or_fail(face.get(), input.get()));
- HBBlob result(hb_face_reference_blob(subset.get()));
- return to_data(std::move(result));
- }
diff --git a/qtwebengine-opensource-src-5.9.0-openmax-dl-neon.patch b/qtwebengine-opensource-src-5.9.0-openmax-dl-neon.patch
deleted file mode 100644
index 09803b2..0000000
--- a/qtwebengine-opensource-src-5.9.0-openmax-dl-neon.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-diff --git a/src/3rdparty/chromium/third_party/openmax_dl/dl/BUILD.gn b/src/3rdparty/chromium/third_party/openmax_dl/dl/BUILD.gn
-index 96a59c7c7..d5470f284 100644
---- a/src/3rdparty/chromium/third_party/openmax_dl/dl/BUILD.gn
-+++ b/src/3rdparty/chromium/third_party/openmax_dl/dl/BUILD.gn
-@@ -208,12 +208,6 @@ if (current_cpu == "arm") {
- ]
- if (arm_optionally_use_neon) {
- # Run-time NEON detection.
-- deps = [
-- "//third_party/android_tools:cpu_features",
-- ]
--
-- # To get the __android_log_print routine
-- libs = [ "log" ]
-
- # Detection routine
- sources += [ "sp/src/arm/detect.c" ]
-diff --git a/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c b/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c
-index 57bfe4089..94a3f7ddc 100644
---- a/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c
-+++ b/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c
-@@ -9,13 +9,57 @@
- *
- */
-
--#include <cpu-features.h>
--
--#include "android/log.h"
- #include "dl/sp/api/omxSP.h"
-
-+// For ArmCpuCaps()
-+#include <stdio.h>
-+#include <string.h>
-+
-+// based on libvpx arm_cpudetect.c
-+static int ArmCpuCaps(const char* cpuinfo_name) {
-+ char cpuinfo_line[512];
-+ FILE* f = fopen(cpuinfo_name, "r");
-+ if (!f) {
-+ // Assume Neon if /proc/cpuinfo is unavailable.
-+ // This will occur for Chrome sandbox for Pepper or Render process.
-+ return 1;
-+ }
-+ while (fgets(cpuinfo_line, sizeof(cpuinfo_line) - 1, f)) {
-+ if (memcmp(cpuinfo_line, "Features", 8) == 0) {
-+ char* p = strstr(cpuinfo_line, " neon");
-+ if (p && (p[5] == ' ' || p[5] == '\n')) {
-+ fclose(f);
-+ return 1;
-+ }
-+ // aarch64 uses asimd for Neon.
-+ p = strstr(cpuinfo_line, " asimd");
-+ if (p && (p[6] == ' ' || p[6] == '\n')) {
-+ fclose(f);
-+ return 1;
-+ }
-+ }
-+ }
-+ fclose(f);
-+ return 0;
-+}
-+
- int omxSP_HasArmNeon() {
-- return (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) != 0;
-+#if defined(__arm__) || defined(__aarch64__)
-+// gcc -mfpu=neon defines __ARM_NEON__
-+// __ARM_NEON__ generates code that requires Neon. NaCL also requires Neon.
-+// For Linux, /proc/cpuinfo can be tested but without that assume Neon.
-+#if defined(__ARM_NEON__) || defined(__native_client__) || !defined(__linux__)
-+ return 1;
-+// For aarch64(arm64), /proc/cpuinfo's feature is not complete, e.g. no neon
-+// flag in it.
-+// So for aarch64, neon enabling is hard coded here.
-+#elif defined(__aarch64__)
-+ return 1;
-+#else
-+ // Linux arm parse text file for neon detect.
-+ return ArmCpuCaps("/proc/cpuinfo");
-+#endif
-+#endif // __arm__
- }
-
- static void SetFFTRoutines() {
-@@ -24,13 +68,9 @@ static void SetFFTRoutines() {
- * forward and inverse FFTs
- */
- if (omxSP_HasArmNeon()) {
-- __android_log_print(ANDROID_LOG_INFO, "OpenMAX DL FFT",
-- "Using NEON FFT");
- omxSP_FFTFwd_RToCCS_F32 = omxSP_FFTFwd_RToCCS_F32_Sfs;
- omxSP_FFTInv_CCSToR_F32 = omxSP_FFTInv_CCSToR_F32_Sfs;
- } else {
-- __android_log_print(ANDROID_LOG_INFO, "OpenMAX DL FFT",
-- "Using non-NEON FFT");
- omxSP_FFTFwd_RToCCS_F32 = omxSP_FFTFwd_RToCCS_F32_Sfs_vfp;
- omxSP_FFTInv_CCSToR_F32 = omxSP_FFTInv_CCSToR_F32_Sfs_vfp;
- }
commit b20c6739c1f612f0336ebef019b74d3f46014dc2
Author: Rex Dieter <rdieter(a)gmail.com>
Date: Tue Jan 18 14:31:59 2022 -0600
5.15.8
diff --git a/.gitignore b/.gitignore
index d9f03a1..f3ee4f9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,18 +1,2 @@
-/qtwebengine-everywhere-src-5.11.1-clean.tar.xz
-/qtwebengine-everywhere-src-5.11.2-clean.tar.xz
-/qtwebengine-everywhere-src-5.11.3-clean.tar.xz
-/qtwebengine-everywhere-src-5.12.1-clean.tar.xz
-/qtwebengine-everywhere-src-5.12.2-clean.tar.xz
-/qtwebengine-everywhere-src-5.12.3-clean.tar.xz
-/qtwebengine-everywhere-src-5.12.4-clean.tar.xz
/pulseaudio-12.2-headers.tar.gz
-/qtwebengine-everywhere-src-5.12.5-clean.tar.xz
-/qtwebengine-everywhere-src-5.12.6-clean.tar.xz
-/qtwebengine-everywhere-src-5.13.2-clean.tar.xz
-/qtwebengine-everywhere-src-5.14.1-clean.tar.xz
-/qtwebengine-everywhere-src-5.14.2-clean.tar.xz
-/qtwebengine-everywhere-src-5.15.0-clean.tar.xz
-/qtwebengine-everywhere-src-5.15.1-clean.tar.xz
-/qtwebengine-everywhere-src-5.15.2-clean.tar.xz
-/qtwebengine-everywhere-src-5.15.5-clean.tar.xz
-/qtwebengine-everywhere-src-5.15.6-clean.tar.xz
+/qtwebengine-everywhere-src-5.15.8-clean.tar.xz
diff --git a/clean_qtwebengine.sh b/clean_qtwebengine.sh
index bc462b8..17f77fa 100755
--- a/clean_qtwebengine.sh
+++ b/clean_qtwebengine.sh
@@ -21,7 +21,7 @@
if [ -z "$1" ] ; then
echo "usage: ./clean_qtwebengine.sh VERSION"
- echo "e.g.: ./clean_qtwebengine.sh 5.14.1"
+ echo "e.g.: ./clean_qtwebengine.sh 5.15.8"
exit 1
fi
@@ -61,7 +61,7 @@ echo "ripping out openh264 sources"
rm -rf "$DIRNAME/src/3rdparty/chromium/third_party/openh264/src" || exit $?
echo "repacking as $DIRNAME-clean.tar.xz"
-XZ_OPT="-9 -T 4" tar cJf "$DIRNAME-clean.tar.xz" "$DIRNAME" || exit $?
+XZ_OPT="-8 -T 2" tar cJf "$DIRNAME-clean.tar.xz" "$DIRNAME" || exit $?
echo "removing $DIRNAME"
rm -rf "$DIRNAME" || exit $?
diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec
index 91f41ea..c31a399 100644
--- a/qt5-qtwebengine.spec
+++ b/qt5-qtwebengine.spec
@@ -52,8 +52,8 @@
Summary: Qt5 - QtWebEngine components
Name: qt5-qtwebengine
-Version: 5.15.6
-Release: 3%{?dist}
+Version: 5.15.8
+Release: 1%{?dist}
# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details
# See also http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html
@@ -417,12 +417,13 @@ popd
#patch10 -p1 -b .openmax-dl-neon
%patch24 -p1 -b .aarch64-new-stat
%patch26 -p1 -b .use-python2
-%patch28 -p1 -b .rh#1904652
-%patch29 -p1 -b .sandbox-time64-syscalls
-%patch30 -p1 -b .SIGSTKSZ
+#patch28 -p1 -b .rh#1904652
+#patch29 -p1 -b .sandbox-time64-syscalls
+#patch30 -p1 -b .SIGSTKSZ
%patch31 -p1 -b .TRUE
-%patch32 -p1 -b .clone3
-%patch33 -p1 -b .harfbuzz
+#patch32 -p1 -b .clone3
+## may need porting
+#patch33 -p1 -b .harfbuzz
# delete all "toolprefix = " lines from build/toolchain/linux/BUILD.gn, as we
# never cross-compile in native Fedora RPMs, fixes ARM and aarch64 FTBFS
@@ -634,6 +635,9 @@ done
%changelog
+* Tue Jan 11 2022 Rex Dieter <rdieter(a)fedoraproject.org> - 5.15.8-1
+- 5.15.8
+
* Sat Jan 08 2022 Miro Hrončok <mhroncok(a)redhat.com> - 5.15.6-3
- Rebuilt for libre2.so.9
diff --git a/qtwebengine-release.sh b/qtwebengine-release.sh
index 027cfc8..a05c100 100644
--- a/qtwebengine-release.sh
+++ b/qtwebengine-release.sh
@@ -1,6 +1,6 @@
#!/bin/sh
set -x
-VERSION=5.15.6
+VERSION=5.15.8
CHROMIUMHASH=`wget https://code.qt.io/cgit/qt/qtwebengine.git/tree/src/3rdparty?h=$VERSION -q --content-on-error -O - | grep "Bad object name: " | sed 's/^.*Bad object name: \([0-9a-f]\{40\}\).*$/\1/g'`
rm -rf qtwebengine-$VERSION qtwebengine-$VERSION.tar.gz qtwebengine-chromium-$CHROMIUMHASH qtwebengine-chromium-$CHROMIUMHASH.tar.gz qtwebengine-everywhere-src-$VERSION
wget https://github.com/qt/qtwebengine/archive/$VERSION.tar.gz -O qtwebengine-$VERSION.tar.gz || exit $?
diff --git a/sources b/sources
index 9431908..71b9125 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (pulseaudio-12.2-headers.tar.gz) = a5a9bcbb16030b3bc83cc0cc8f5e7f90e0723d3e83258a5c77eacb32eaa267118a73fa7814fbcc99a24e4907916a2b371ebb6dedc4f45541c3acf6c834fd35be
-SHA512 (qtwebengine-everywhere-src-5.15.6-clean.tar.xz) = 7c05934769bbfef181c591b65916c456449a3dd6e653d80b6e601a5b4e22904a2256538edd771453e31dceae56b2075c88c19b00cfab234e561ed6ca72bb143e
+SHA512 (qtwebengine-everywhere-src-5.15.8-clean.tar.xz) = 0ded6ec6106a79e66796fa65b9574debf59e602aecbfdd0cdf0aeb6d17530177c0a8650078402c426abfebcd40c97d1501f4277541c86f2c576543052f627c04
commit a8dd1a7a5855837bc20c964fd75d92ad198747f3
Author: Miro Hrončok <miro(a)hroncok.cz>
Date: Sat Jan 8 11:41:46 2022 +0100
Rebuilt for libre2.so.9
diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec
index a7d8154..91f41ea 100644
--- a/qt5-qtwebengine.spec
+++ b/qt5-qtwebengine.spec
@@ -53,7 +53,7 @@
Summary: Qt5 - QtWebEngine components
Name: qt5-qtwebengine
Version: 5.15.6
-Release: 2%{?dist}
+Release: 3%{?dist}
# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details
# See also http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html
@@ -634,6 +634,9 @@ done
%changelog
+* Sat Jan 08 2022 Miro Hrončok <mhroncok(a)redhat.com> - 5.15.6-3
+- Rebuilt for libre2.so.9
+
* Mon Sep 20 2021 Rex Dieter <rdieter(a)fedoraproject.org> - 5.15.6-2
- patch use of deprecated harfbuzz apis
commit 1442be6d398979c09a98a49935c4a4961b0c9053
Author: Rex Dieter <rdieter(a)gmail.com>
Date: Tue Sep 21 09:45:06 2021 -0500
respin harfbuzz.patch
diff --git a/qtwebengine-harfbuzz.patch b/qtwebengine-harfbuzz.patch
index 327874f..cedfd16 100644
--- a/qtwebengine-harfbuzz.patch
+++ b/qtwebengine-harfbuzz.patch
@@ -1,5 +1,5 @@
diff --git a/src/3rdparty/chromium/components/paint_preview/common/subset_font.cc b/src/3rdparty/chromium/components/paint_preview/common/subset_font.cc
-index ba5391708..8565b67e3 100644
+index ba5391708..f5fad4148 100644
--- a/src/3rdparty/chromium/components/paint_preview/common/subset_font.cc
+++ b/src/3rdparty/chromium/components/paint_preview/common/subset_font.cc
@@ -71,9 +71,9 @@ sk_sp<SkData> SubsetFont(SkTypeface* typeface, const GlyphUsage& usage) {
@@ -10,7 +10,7 @@ index ba5391708..8565b67e3 100644
+ hb_subset_input_set_flags(input.get(), HB_SUBSET_FLAGS_RETAIN_GIDS);
- HbScoped<hb_face_t> subset_face(hb_subset(face.get(), input.get()));
-+ HbFace subset_face(hb_subset_or_fail(face.get(), input.get()));
++ HbScoped<hb_face_t> subset_face(hb_subset_or_fail(face.get(), input.get()));
HbScoped<hb_blob_t> subset_blob(hb_face_reference_blob(subset_face.get()));
if (!subset_blob)
return nullptr;
commit db3b70b97f7ae84aa82a1ed241a969f72fefa911
Author: Rex Dieter <rdieter(a)gmail.com>
Date: Tue Sep 21 08:58:51 2021 -0500
patch use of deprecated harfbuzz apis
diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec
index 1f22fa7..a7d8154 100644
--- a/qt5-qtwebengine.spec
+++ b/qt5-qtwebengine.spec
@@ -111,6 +111,8 @@ Patch31: qtwebengine-everywhere-src-5.15.5-TRUE.patch
# Issue 1213452: Sandbox doesn't work with clone3
# https://bugs.chromium.org/p/chromium/issues/detail?id=1213452
Patch32: qtwebengine-everywhere-src-5.15.6-clone3.patch
+# Fix use of deprecated harfbuzz api's
+Patch33: qtwebengine-harfbuzz.patch
## Upstream patches:
@@ -420,6 +422,7 @@ popd
%patch30 -p1 -b .SIGSTKSZ
%patch31 -p1 -b .TRUE
%patch32 -p1 -b .clone3
+%patch33 -p1 -b .harfbuzz
# delete all "toolprefix = " lines from build/toolchain/linux/BUILD.gn, as we
# never cross-compile in native Fedora RPMs, fixes ARM and aarch64 FTBFS
@@ -632,7 +635,7 @@ done
%changelog
* Mon Sep 20 2021 Rex Dieter <rdieter(a)fedoraproject.org> - 5.15.6-2
-- rebuild (harfbuzz)
+- patch use of deprecated harfbuzz apis
* Fri Sep 03 2021 Rex Dieter <rdieter(a)fedoraproject.org> - 5.15.6-1
- 5.15.6
diff --git a/qtwebengine-harfbuzz.patch b/qtwebengine-harfbuzz.patch
new file mode 100644
index 0000000..327874f
--- /dev/null
+++ b/qtwebengine-harfbuzz.patch
@@ -0,0 +1,34 @@
+diff --git a/src/3rdparty/chromium/components/paint_preview/common/subset_font.cc b/src/3rdparty/chromium/components/paint_preview/common/subset_font.cc
+index ba5391708..8565b67e3 100644
+--- a/src/3rdparty/chromium/components/paint_preview/common/subset_font.cc
++++ b/src/3rdparty/chromium/components/paint_preview/common/subset_font.cc
+@@ -71,9 +71,9 @@ sk_sp<SkData> SubsetFont(SkTypeface* typeface, const GlyphUsage& usage) {
+ hb_set_t* glyphs =
+ hb_subset_input_glyph_set(input.get()); // Owned by |input|.
+ usage.ForEach(base::BindRepeating(&AddGlyphs, base::Unretained(glyphs)));
+- hb_subset_input_set_retain_gids(input.get(), true);
++ hb_subset_input_set_flags(input.get(), HB_SUBSET_FLAGS_RETAIN_GIDS);
+
+- HbScoped<hb_face_t> subset_face(hb_subset(face.get(), input.get()));
++ HbFace subset_face(hb_subset_or_fail(face.get(), input.get()));
+ HbScoped<hb_blob_t> subset_blob(hb_face_reference_blob(subset_face.get()));
+ if (!subset_blob)
+ return nullptr;
+diff --git a/src/3rdparty/chromium/third_party/skia/src/pdf/SkPDFSubsetFont.cpp b/src/3rdparty/chromium/third_party/skia/src/pdf/SkPDFSubsetFont.cpp
+index 81c37eef3..1581fb8a9 100644
+--- a/src/3rdparty/chromium/third_party/skia/src/pdf/SkPDFSubsetFont.cpp
++++ b/src/3rdparty/chromium/third_party/skia/src/pdf/SkPDFSubsetFont.cpp
+@@ -71,11 +71,10 @@ static sk_sp<SkData> subset_harfbuzz(sk_sp<SkData> fontData,
+ hb_set_t* glyphs = hb_subset_input_glyph_set(input.get());
+ glyphUsage.getSetValues([&glyphs](unsigned gid) { hb_set_add(glyphs, gid);});
+
+- hb_subset_input_set_retain_gids(input.get(), true);
+ // TODO: When possible, check if a font is 'tricky' with FT_IS_TRICKY.
+ // If it isn't known if a font is 'tricky', retain the hints.
+- hb_subset_input_set_drop_hints(input.get(), false);
+- HBFace subset(hb_subset(face.get(), input.get()));
++ hb_subset_input_set_flags(input.get(), HB_SUBSET_FLAGS_RETAIN_GIDS | HB_SUBSET_FLAGS_NO_HINTING);
++ HBFace subset(hb_subset_or_fail(face.get(), input.get()));
+ HBBlob result(hb_face_reference_blob(subset.get()));
+ return to_data(std::move(result));
+ }
commit 09d1fc370fd9943063b594bc77fc073f4de9f62b
Author: Rex Dieter <rdieter(a)gmail.com>
Date: Mon Sep 20 15:51:37 2021 -0500
rebuild (harfbuzz)
diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec
index 6f764b1..1f22fa7 100644
--- a/qt5-qtwebengine.spec
+++ b/qt5-qtwebengine.spec
@@ -53,7 +53,7 @@
Summary: Qt5 - QtWebEngine components
Name: qt5-qtwebengine
Version: 5.15.6
-Release: 1%{?dist}
+Release: 2%{?dist}
# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details
# See also http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html
@@ -631,6 +631,9 @@ done
%changelog
+* Mon Sep 20 2021 Rex Dieter <rdieter(a)fedoraproject.org> - 5.15.6-2
+- rebuild (harfbuzz)
+
* Fri Sep 03 2021 Rex Dieter <rdieter(a)fedoraproject.org> - 5.15.6-1
- 5.15.6
2 years, 3 months
Architecture specific change in rpms/cantera.git
by githook-noreply@fedoraproject.org
The package rpms/cantera.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/cantera.git/commit/?id=cce51dc5b3....
Change:
+ExcludeArch: ppc64le # Rawhide build failure - BZ #2044054
Thanks.
Full change:
============
commit b9eb4bbfc1d1e44c7daaaa7f58d01a87912ac0ee
Author: Mark E. Fuller <mark.e.fuller(a)gmx.de>
Date: Mon Jan 24 00:06:45 2022 +0200
initial import (fedora#2037645) - add tarball
diff --git a/main.tar.gz b/main.tar.gz
new file mode 100644
index 0000000..183d77d
Binary files /dev/null and b/main.tar.gz differ
commit cce51dc5b3ff051980c5532f67cc329d027395d2
Author: Mark E. Fuller <mark.e.fuller(a)gmx.de>
Date: Sun Jan 23 23:56:52 2022 +0200
initial import (fedora#2037645)
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/cantera.spec b/cantera.spec
new file mode 100644
index 0000000..65146b9
--- /dev/null
+++ b/cantera.spec
@@ -0,0 +1,190 @@
+%global fork Cantera
+%global branch main
+
+Name: cantera
+Version: 2.6.0
+Release: 0.7.a4%{?dist}
+Summary: Chemical kinetics, thermodynamics, and transport tool suite
+License: BSD
+URL: https://github.com/%{fork}/%{name}/
+Source0: %{url}archive/%{branch}.tar.gz
+
+BuildRequires: boost-devel
+BuildRequires: eigen3-devel
+BuildRequires: fmt-devel
+BuildRequires: gcc
+BuildRequires: gcc-c++
+BuildRequires: git
+BuildRequires: gmock-devel
+BuildRequires: gtest-devel
+BuildRequires: python3
+BuildRequires: python3-Cython
+BuildRequires: python3-devel
+BuildRequires: python3-numpy
+BuildRequires: python3-pytest
+BuildRequires: python3-ruamel-yaml
+BuildRequires: python3-scons
+BuildRequires: sundials-devel
+BuildRequires: yaml-cpp-devel
+
+%if 0%{?fedora}
+BuildRequires: gcc-fortran
+%else
+BuildRequires: gcc-gfortran
+%endif
+
+%global scons scons%{?rhel:-3}
+
+
+ExcludeArch: s390x # YAML test failures - BZ #2044056
+
+%if 0%{?fedora} >= 36
+ExcludeArch: ppc64le # Rawhide build failure - BZ #2044054
+%endif
+
+
+%global common_description %{expand: \
+ Cantera is a suite of object-oriented software tools for solving problems
+ involving chemical kinetics, thermodynamics, and/or transport processes.
+ Cantera can be used for simulating time-dependent or steady reactor
+ networks and one-dimensional reacting flows. Thermodynamic models for
+ ideal gases, aqueous electrolytes, plasmas, and multiphase substances
+ are provided.}
+
+%description
+%{common_description}
+
+
+%package common
+Summary: Common files needed for all Cantera interfaces
+%description common
+%{common_description}
+ .
+ This package includes programs for parsing and converting chemical
+ mechanisms, a set of common mechanism files, and several sample problems.
+
+
+%package -n python3-%{name}
+Requires: %{name}-common%{_isa} = %{version}-%{release}
+Summary: Python 3 user interface for Cantera
+%description -n python3-%{name}
+%{common_description}
+ .
+ This package includes the Cantera Python 3 module.
+
+
+%package devel
+Requires: %{name}-common%{_isa} = %{version}-%{release}
+Summary: Header files and shared object libraries for Cantera
+%description devel
+%{common_description}
+ .
+ This package contains the header files and shared object libraries needed to
+ develop applications with the C++ and Fortran interfaces of Cantera.
+
+
+%package static
+Requires: %{name}-common%{_isa} = %{version}-%{release}
+Summary: Static libraries for Cantera
+%description static
+%{common_description}
+ .
+ This package contains the static libraries for the C++ and Fortran
+ interfaces of Cantera.
+
+
+%prep
+%autosetup -n %{name}-%{branch}
+
+
+%build
+%set_build_flags
+
+%scons build prefix=%{_prefix} libdirname=%{_lib} system_sundials=y f90_interface=y renamed_shared_libraries=n python_package=full system_eigen=y extra_inc_dirs=/usr/include/eigen3 system_fmt=y
+
+
+%install
+%scons install prefix=%{_prefix} libdirname=%{_lib} stage_dir=%{buildroot}
+
+
+%check
+%scons test
+
+
+%files common
+%license %{_datadir}/%{name}/doc/LICENSE.txt
+
+%doc AUTHORS README.rst
+%doc %{_mandir}/man1/ck2cti.1.gz
+%doc %{_mandir}/man1/ck2yaml.1.gz
+%doc %{_mandir}/man1/cti2yaml.1.gz
+%doc %{_mandir}/man1/ctml2yaml.1.gz
+%doc %{_mandir}/man1/ctml_writer.1.gz
+
+%{_bindir}/ck2cti
+%{_bindir}/ck2yaml
+%{_bindir}/cti2yaml
+%{_bindir}/ctml2yaml
+%{_bindir}/ctml_writer
+
+%{_datadir}/%{name}
+
+
+%files -n python3-%{name}
+%{python3_sitearch}/Cantera-%{version}a4-py%{python3_version}.egg-info/
+%{python3_sitearch}/%{name}/
+
+
+%files devel
+%{_includedir}/%{name}
+
+%{_libdir}/pkgconfig/cantera.pc
+%{_libdir}/libcantera.so
+%{_libdir}/libcantera.so.2
+%{_libdir}/libcantera.so.%{version}
+%{_libdir}/libcantera_fortran.so
+%{_libdir}/libcantera_fortran.so.2
+%{_libdir}/libcantera_fortran.so.%{version}
+
+%{_bindir}/setup_cantera
+%{_bindir}/setup_cantera.csh
+
+
+%files static
+%{_libdir}/libcantera.a
+%{_libdir}/libcantera_fortran.a
+
+
+%changelog
+* Sun Jan 23 2022 Mark E. Fuller <mark.e.fuller(a)gmx.de> - 2.6.0-0.7.a4
+- first real Fedora deploy
+
+* Sun Jan 23 2022 Mark E. Fuller <mark.e.fuller(a)gmx.de> - 2.6.0-0.6.a4
+- Final revisions for Fedora approval
+- Remove workaround fixed by #1172 (Issue #1149)
+- Version for first Fedora builds
+- Exclude s390x due to failing tests
+- Exclude ppc64le in Rawhide due to build segfaults
+- Rename Python package to follow Fedora standards
+
+* Thu Jan 13 2022 Mark E. Fuller <mark.e.fuller(a)gmx.de> - 2.6.0-0.5.a4
+- Move static libraries from devel to static subpackage
+
+* Thu Jan 06 2022 Mark E. Fuller <mark.e.fuller(a)gmx.de> - 2.6.0-0.4.a4
+- Cleanup spec per Fedora package review
+
+* Sun Jan 02 2022 Mark E. Fuller <fuller(a)fedoraproject.org> - 2.6.0-0.3.a4
+- Bump dist to a4
+
+* Thu Dec 23 2021 Mark E. Fuller <fuller(a)fedoraproject.org> - 2.6.0-0.2.a3
+- Bump dist to reflect many merged commits in a3 since October
+
+* Tue Nov 30 2021 Mark E. Fuller <fuller(a)fedoraproject.org> - 2.6.0-0.1.a3
+- Introduced distro-specific IF to build on both Fedora and RHEL
+
+* Thu Nov 18 2021 Mark E. Fuller <fuller(a)fedoraproject.org> - 2.6.0-0.1.a3
+- Moved "setup_cantera*" to devel
+- Make all included files explicit
+
+* Thu Oct 14 2021 Mark E. Fuller <fuller(a)fedoraproject.org> - 2.6.0-0.1.a3
+- first attempt versions of spec file and packaging
diff --git a/sources b/sources
new file mode 100644
index 0000000..e69de29
2 years, 3 months
Architecture specific change in rpms/cantera.git
by githook-noreply@fedoraproject.org
The package rpms/cantera.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/cantera.git/commit/?id=cce51dc5b3....
Change:
+ExcludeArch: ppc64le # Rawhide build failure - BZ #2044054
Thanks.
Full change:
============
commit b9eb4bbfc1d1e44c7daaaa7f58d01a87912ac0ee
Author: Mark E. Fuller <mark.e.fuller(a)gmx.de>
Date: Mon Jan 24 00:06:45 2022 +0200
initial import (fedora#2037645) - add tarball
diff --git a/main.tar.gz b/main.tar.gz
new file mode 100644
index 0000000..183d77d
Binary files /dev/null and b/main.tar.gz differ
commit cce51dc5b3ff051980c5532f67cc329d027395d2
Author: Mark E. Fuller <mark.e.fuller(a)gmx.de>
Date: Sun Jan 23 23:56:52 2022 +0200
initial import (fedora#2037645)
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/cantera.spec b/cantera.spec
new file mode 100644
index 0000000..65146b9
--- /dev/null
+++ b/cantera.spec
@@ -0,0 +1,190 @@
+%global fork Cantera
+%global branch main
+
+Name: cantera
+Version: 2.6.0
+Release: 0.7.a4%{?dist}
+Summary: Chemical kinetics, thermodynamics, and transport tool suite
+License: BSD
+URL: https://github.com/%{fork}/%{name}/
+Source0: %{url}archive/%{branch}.tar.gz
+
+BuildRequires: boost-devel
+BuildRequires: eigen3-devel
+BuildRequires: fmt-devel
+BuildRequires: gcc
+BuildRequires: gcc-c++
+BuildRequires: git
+BuildRequires: gmock-devel
+BuildRequires: gtest-devel
+BuildRequires: python3
+BuildRequires: python3-Cython
+BuildRequires: python3-devel
+BuildRequires: python3-numpy
+BuildRequires: python3-pytest
+BuildRequires: python3-ruamel-yaml
+BuildRequires: python3-scons
+BuildRequires: sundials-devel
+BuildRequires: yaml-cpp-devel
+
+%if 0%{?fedora}
+BuildRequires: gcc-fortran
+%else
+BuildRequires: gcc-gfortran
+%endif
+
+%global scons scons%{?rhel:-3}
+
+
+ExcludeArch: s390x # YAML test failures - BZ #2044056
+
+%if 0%{?fedora} >= 36
+ExcludeArch: ppc64le # Rawhide build failure - BZ #2044054
+%endif
+
+
+%global common_description %{expand: \
+ Cantera is a suite of object-oriented software tools for solving problems
+ involving chemical kinetics, thermodynamics, and/or transport processes.
+ Cantera can be used for simulating time-dependent or steady reactor
+ networks and one-dimensional reacting flows. Thermodynamic models for
+ ideal gases, aqueous electrolytes, plasmas, and multiphase substances
+ are provided.}
+
+%description
+%{common_description}
+
+
+%package common
+Summary: Common files needed for all Cantera interfaces
+%description common
+%{common_description}
+ .
+ This package includes programs for parsing and converting chemical
+ mechanisms, a set of common mechanism files, and several sample problems.
+
+
+%package -n python3-%{name}
+Requires: %{name}-common%{_isa} = %{version}-%{release}
+Summary: Python 3 user interface for Cantera
+%description -n python3-%{name}
+%{common_description}
+ .
+ This package includes the Cantera Python 3 module.
+
+
+%package devel
+Requires: %{name}-common%{_isa} = %{version}-%{release}
+Summary: Header files and shared object libraries for Cantera
+%description devel
+%{common_description}
+ .
+ This package contains the header files and shared object libraries needed to
+ develop applications with the C++ and Fortran interfaces of Cantera.
+
+
+%package static
+Requires: %{name}-common%{_isa} = %{version}-%{release}
+Summary: Static libraries for Cantera
+%description static
+%{common_description}
+ .
+ This package contains the static libraries for the C++ and Fortran
+ interfaces of Cantera.
+
+
+%prep
+%autosetup -n %{name}-%{branch}
+
+
+%build
+%set_build_flags
+
+%scons build prefix=%{_prefix} libdirname=%{_lib} system_sundials=y f90_interface=y renamed_shared_libraries=n python_package=full system_eigen=y extra_inc_dirs=/usr/include/eigen3 system_fmt=y
+
+
+%install
+%scons install prefix=%{_prefix} libdirname=%{_lib} stage_dir=%{buildroot}
+
+
+%check
+%scons test
+
+
+%files common
+%license %{_datadir}/%{name}/doc/LICENSE.txt
+
+%doc AUTHORS README.rst
+%doc %{_mandir}/man1/ck2cti.1.gz
+%doc %{_mandir}/man1/ck2yaml.1.gz
+%doc %{_mandir}/man1/cti2yaml.1.gz
+%doc %{_mandir}/man1/ctml2yaml.1.gz
+%doc %{_mandir}/man1/ctml_writer.1.gz
+
+%{_bindir}/ck2cti
+%{_bindir}/ck2yaml
+%{_bindir}/cti2yaml
+%{_bindir}/ctml2yaml
+%{_bindir}/ctml_writer
+
+%{_datadir}/%{name}
+
+
+%files -n python3-%{name}
+%{python3_sitearch}/Cantera-%{version}a4-py%{python3_version}.egg-info/
+%{python3_sitearch}/%{name}/
+
+
+%files devel
+%{_includedir}/%{name}
+
+%{_libdir}/pkgconfig/cantera.pc
+%{_libdir}/libcantera.so
+%{_libdir}/libcantera.so.2
+%{_libdir}/libcantera.so.%{version}
+%{_libdir}/libcantera_fortran.so
+%{_libdir}/libcantera_fortran.so.2
+%{_libdir}/libcantera_fortran.so.%{version}
+
+%{_bindir}/setup_cantera
+%{_bindir}/setup_cantera.csh
+
+
+%files static
+%{_libdir}/libcantera.a
+%{_libdir}/libcantera_fortran.a
+
+
+%changelog
+* Sun Jan 23 2022 Mark E. Fuller <mark.e.fuller(a)gmx.de> - 2.6.0-0.7.a4
+- first real Fedora deploy
+
+* Sun Jan 23 2022 Mark E. Fuller <mark.e.fuller(a)gmx.de> - 2.6.0-0.6.a4
+- Final revisions for Fedora approval
+- Remove workaround fixed by #1172 (Issue #1149)
+- Version for first Fedora builds
+- Exclude s390x due to failing tests
+- Exclude ppc64le in Rawhide due to build segfaults
+- Rename Python package to follow Fedora standards
+
+* Thu Jan 13 2022 Mark E. Fuller <mark.e.fuller(a)gmx.de> - 2.6.0-0.5.a4
+- Move static libraries from devel to static subpackage
+
+* Thu Jan 06 2022 Mark E. Fuller <mark.e.fuller(a)gmx.de> - 2.6.0-0.4.a4
+- Cleanup spec per Fedora package review
+
+* Sun Jan 02 2022 Mark E. Fuller <fuller(a)fedoraproject.org> - 2.6.0-0.3.a4
+- Bump dist to a4
+
+* Thu Dec 23 2021 Mark E. Fuller <fuller(a)fedoraproject.org> - 2.6.0-0.2.a3
+- Bump dist to reflect many merged commits in a3 since October
+
+* Tue Nov 30 2021 Mark E. Fuller <fuller(a)fedoraproject.org> - 2.6.0-0.1.a3
+- Introduced distro-specific IF to build on both Fedora and RHEL
+
+* Thu Nov 18 2021 Mark E. Fuller <fuller(a)fedoraproject.org> - 2.6.0-0.1.a3
+- Moved "setup_cantera*" to devel
+- Make all included files explicit
+
+* Thu Oct 14 2021 Mark E. Fuller <fuller(a)fedoraproject.org> - 2.6.0-0.1.a3
+- first attempt versions of spec file and packaging
diff --git a/sources b/sources
new file mode 100644
index 0000000..e69de29
2 years, 3 months
Architecture specific change in rpms/java-17-openjdk.git
by githook-noreply@fedoraproject.org
The package rpms/java-17-openjdk.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/java-17-openjdk.git/commit/?id=ea....
Change:
+%ifarch %{gdb_arches}
Thanks.
Full change:
============
commit 62652f81a66eb1e2d824c1b827cedb5abd1a764c
Author: Andrew John Hughes <gnu_andrew(a)member.fsf.org>
Date: Tue Jan 18 02:31:53 2022 +0000
Separate crypto policy initialisation from FIPS initialisation, now they are no longer interdependent
diff --git a/java-17-openjdk.spec b/java-17-openjdk.spec
index 34035d2..5c15daf 100644
--- a/java-17-openjdk.spec
+++ b/java-17-openjdk.spec
@@ -308,7 +308,7 @@
%global top_level_dir_name %{origin}
%global top_level_dir_name_backup %{top_level_dir_name}-backup
%global buildver 12
-%global rpmrelease 15
+%global rpmrelease 16
# Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit
%if %is_system_jdk
# Using 10 digits may overflow the int used for priority, so we combine the patch and build versions
@@ -1179,7 +1179,7 @@ Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
Name: java-17-%{origin}
Version: %{newjavaver}.%{buildver}
-Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}.1
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -1294,6 +1294,7 @@ Patch1013: rh1991003-enable_fips_keys_import.patch
# RH2021263: Resolve outstanding FIPS issues
Patch1014: rh2021263-fips_ensure_security_initialised.patch
Patch1015: rh2021263-fips_missing_native_returns.patch
+Patch1016: rh2021263-fips_separate_policy_and_fips_init.patch
#############################################
#
@@ -1715,6 +1716,7 @@ popd # openjdk
%patch1013
%patch1014
%patch1015
+%patch1016
%patch2000
@@ -2472,6 +2474,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Jan 24 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:17.0.1.0.12-16.rolling
+- Separate crypto policy initialisation from FIPS initialisation, now they are no longer interdependent
+
* Thu Jan 20 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 1:17.0.1.0.12-15.rolling.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
diff --git a/rh2021263-fips_separate_policy_and_fips_init.patch b/rh2021263-fips_separate_policy_and_fips_init.patch
new file mode 100644
index 0000000..b5351a8
--- /dev/null
+++ b/rh2021263-fips_separate_policy_and_fips_init.patch
@@ -0,0 +1,99 @@
+commit 0cd8cee94fe0f867b0b39890e00be620af1d9b07
+Author: Andrew Hughes <gnu.andrew(a)redhat.com>
+Date: Tue Jan 18 02:09:27 2022 +0000
+
+ RH2021263: Improve Security initialisation, now FIPS support no longer relies on crypto policy support
+
+diff --git openjdk.orig/src/java.base/share/classes/java/security/Security.java openjdk/src/java.base/share/classes/java/security/Security.java
+index 28ab1846173..f9726741afd 100644
+--- openjdk.orig/src/java.base/share/classes/java/security/Security.java
++++ openjdk/src/java.base/share/classes/java/security/Security.java
+@@ -61,10 +61,6 @@ public final class Security {
+ private static final Debug sdebug =
+ Debug.getInstance("properties");
+
+- /* System property file*/
+- private static final String SYSTEM_PROPERTIES =
+- "/etc/crypto-policies/back-ends/java.config";
+-
+ /* The java.security properties */
+ private static Properties props;
+
+@@ -206,22 +202,36 @@ public final class Security {
+ }
+ }
+
++ if (!loadedProps) {
++ initializeStatic();
++ if (sdebug != null) {
++ sdebug.println("unable to load security properties " +
++ "-- using defaults");
++ }
++ }
++
+ String disableSystemProps = System.getProperty("java.security.disableSystemPropertiesFile");
+ if ((disableSystemProps == null || "false".equalsIgnoreCase(disableSystemProps)) &&
+ "true".equalsIgnoreCase(props.getProperty("security.useSystemPropertiesFile"))) {
+- if (SystemConfigurator.configure(props)) {
+- loadedProps = true;
++ if (!SystemConfigurator.configureSysProps(props)) {
++ if (sdebug != null) {
++ sdebug.println("WARNING: System properties could not be loaded.");
++ }
+ }
+ }
+
+- if (!loadedProps) {
+- initializeStatic();
++ // FIPS support depends on the contents of java.security so
++ // ensure it has loaded first
++ if (loadedProps) {
++ boolean fipsEnabled = SystemConfigurator.configureFIPS(props);
+ if (sdebug != null) {
+- sdebug.println("unable to load security properties " +
+- "-- using defaults");
++ if (fipsEnabled) {
++ sdebug.println("FIPS support enabled.");
++ } else {
++ sdebug.println("FIPS support disabled.");
++ }
+ }
+ }
+-
+ }
+
+ /*
+diff --git openjdk.orig/src/java.base/share/classes/java/security/SystemConfigurator.java openjdk/src/java.base/share/classes/java/security/SystemConfigurator.java
+index 874c6221ebe..b7ed41acf0f 100644
+--- openjdk.orig/src/java.base/share/classes/java/security/SystemConfigurator.java
++++ openjdk/src/java.base/share/classes/java/security/SystemConfigurator.java
+@@ -76,7 +76,7 @@ final class SystemConfigurator {
+ * java.security.disableSystemPropertiesFile property is not set and
+ * security.useSystemPropertiesFile is true.
+ */
+- static boolean configure(Properties props) {
++ static boolean configureSysProps(Properties props) {
+ boolean loadedProps = false;
+
+ try (BufferedInputStream bis =
+@@ -96,11 +96,19 @@ final class SystemConfigurator {
+ e.printStackTrace();
+ }
+ }
++ return loadedProps;
++ }
++
++ /*
++ * Invoked at the end of java.security.Security initialisation
++ * if java.security properties have been loaded
++ */
++ static boolean configureFIPS(Properties props) {
++ boolean loadedProps = false;
+
+ try {
+ if (enableFips()) {
+ if (sdebug != null) { sdebug.println("FIPS mode detected"); }
+- loadedProps = false;
+ // Remove all security providers
+ Iterator<Entry<Object, Object>> i = props.entrySet().iterator();
+ while (i.hasNext()) {
commit e3a510910e42a87b6b3d8af9e005123b69e48a4b
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Thu Jan 20 13:40:37 2022 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/java-17-openjdk.spec b/java-17-openjdk.spec
index 9bac5c5..34035d2 100644
--- a/java-17-openjdk.spec
+++ b/java-17-openjdk.spec
@@ -1179,7 +1179,7 @@ Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
Name: java-17-%{origin}
Version: %{newjavaver}.%{buildver}
-Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}.1
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -2472,6 +2472,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Thu Jan 20 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 1:17.0.1.0.12-15.rolling.1
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
+
* Tue Jan 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:17.0.1.0.12-15.rolling
- Sync gdb test with java-1.8.0-openjdk and improve architecture restrictions.
- Disable on x86, x86_64, ppc64le & s390x while these are broken in rawhide.
commit eacad27bf1734cd2abb2b46acb385b0d86278d47
Author: Andrew John Hughes <gnu_andrew(a)member.fsf.org>
Date: Tue Jan 18 15:51:01 2022 +0000
Sync gdb test with java-1.8.0-openjdk and improve architecture restrictions.
Disable on x86, x86_64, ppc64le & s390x while these are broken in rawhide.
diff --git a/java-17-openjdk.spec b/java-17-openjdk.spec
index bf6aec3..9bac5c5 100644
--- a/java-17-openjdk.spec
+++ b/java-17-openjdk.spec
@@ -99,17 +99,20 @@
%global ppc64be ppc64 ppc64p7
# Set of architectures which support multiple ABIs
%global multilib_arches %{power64} sparc64 x86_64
-# Set of architectures for which we build debug builds
+# Set of architectures for which we build slowdebug builds
%global debug_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64} s390x
+# Set of architectures for which we build fastdebug builds
+%global fastdebug_arches x86_64 ppc64le aarch64
# Set of architectures with a Just-In-Time (JIT) compiler
%global jit_arches %{debug_arches} %{arm}
+# Set of architectures which use the Zero assembler port (!jit_arches)
+%global zero_arches ppc s390
# Set of architectures which run a full bootstrap cycle
%global bootstrap_arches %{jit_arches}
# Set of architectures which support SystemTap tapsets
%global systemtap_arches %{jit_arches}
# Set of architectures with a Ahead-Of-Time (AOT) compiler
%global aot_arches x86_64 %{aarch64}
-%global fastdebug_arches x86_64 ppc64le aarch64
# Set of architectures which support the serviceability agent
%global sa_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64} %{arm}
# Set of architectures which support class data sharing
@@ -124,6 +127,13 @@
%global ssbd_arches x86_64
# Set of architectures for which java has short vector math library (libsvml.so)
%global svml_arches x86_64
+# Set of architectures where we verify backtraces with gdb (ideally all)
+# Temporarily disable check on x86, x86_64, ppc64le and s390x as gdb crashes
+# ../../gdb/objfiles.h:510: internal-error: sect_index_data not initialized
+# A problem internal to GDB has been detected,
+# further debugging may prove unreliable.
+# See https://bugzilla.redhat.com/show_bug.cgi?id=2041970
+%global gdb_arches sparcv9 sparc64 %{aarch64} %{arm} %{zero_arches}
# By default, we build a debug build during main build on JIT architectures
%if %{with slowdebug}
@@ -298,7 +308,7 @@
%global top_level_dir_name %{origin}
%global top_level_dir_name_backup %{top_level_dir_name}-backup
%global buildver 12
-%global rpmrelease 14
+%global rpmrelease 15
# Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit
%if %is_system_jdk
# Using 10 digits may overflow the int used for priority, so we combine the patch and build versions
@@ -2069,20 +2079,16 @@ gdb -q "$JAVA_HOME/bin/java" <<EOF | tee gdb.out
handle SIGSEGV pass nostop noprint
handle SIGILL pass nostop noprint
set breakpoint pending on
-break javaCalls.cpp:1
+break javaCalls.cpp:58
commands 1
backtrace
quit
end
run -version
EOF
-%if 0%{?fedora} > 0
-# This fails on s390x for some reason. Disable for now. See:
-# https://koji.fedoraproject.org/koji/taskinfo?taskID=41499227
-%ifnarch s390x
+%ifarch %{gdb_arches}
grep 'JavaCallWrapper::JavaCallWrapper' gdb.out
%endif
-%endif
# Check src.zip has all sources. See RHBZ#1130490
$JAVA_HOME/bin/jar -tf $JAVA_HOME/lib/src.zip | grep 'sun.misc.Unsafe'
@@ -2466,6 +2472,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Tue Jan 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:17.0.1.0.12-15.rolling
+- Sync gdb test with java-1.8.0-openjdk and improve architecture restrictions.
+- Disable on x86, x86_64, ppc64le & s390x while these are broken in rawhide.
+
* Thu Jan 13 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:17.0.1.0.12-14.rolling
- Fix FIPS issues in native code and with initialisation of java.security.Security
commit bda1029633609d6e69564aa3a4aada67e4f6fe75
Author: Andrew John Hughes <gnu_andrew(a)member.fsf.org>
Date: Thu Jan 13 01:12:07 2022 +0000
Fix FIPS issues in native code and with initialisation of java.security.Security
diff --git a/java-17-openjdk.spec b/java-17-openjdk.spec
index 9b78b14..bf6aec3 100644
--- a/java-17-openjdk.spec
+++ b/java-17-openjdk.spec
@@ -298,7 +298,7 @@
%global top_level_dir_name %{origin}
%global top_level_dir_name_backup %{top_level_dir_name}-backup
%global buildver 12
-%global rpmrelease 13
+%global rpmrelease 14
# Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit
%if %is_system_jdk
# Using 10 digits may overflow the int used for priority, so we combine the patch and build versions
@@ -1281,6 +1281,9 @@ Patch1010: rh1996182-login_to_nss_software_token.patch
Patch1012: rh1996182-extend_security_policy.patch
# RH1991003: Allow plain key import unless com.redhat.fips.plainKeySupport is set to false
Patch1013: rh1991003-enable_fips_keys_import.patch
+# RH2021263: Resolve outstanding FIPS issues
+Patch1014: rh2021263-fips_ensure_security_initialised.patch
+Patch1015: rh2021263-fips_missing_native_returns.patch
#############################################
#
@@ -1700,6 +1703,9 @@ popd # openjdk
%patch1011
%patch1012
%patch1013
+%patch1014
+%patch1015
+
%patch2000
# Extract systemtap tapsets
@@ -2460,7 +2466,10 @@ cjc.mainProgram(args)
%endif
%changelog
-* Thu Dec 09 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:17.0.1.0.12-12.rolling
+* Thu Jan 13 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:17.0.1.0.12-14.rolling
+- Fix FIPS issues in native code and with initialisation of java.security.Security
+
+* Thu Dec 09 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:17.0.1.0.12-13.rolling
- Storing and restoring alterntives during update manually
- Fixing Bug 2001567 - update of JDK/JRE is removing its manually selected alterantives and select (as auto) system JDK/JRE
-- The move of alternatives creation to posttrans to fix:
@@ -2480,7 +2489,7 @@ cjc.mainProgram(args)
* Thu Dec 09 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:17.0.1.0.12-10.rolling
- replaced tabs by sets of spaces to make rpmlint happy
-* Mov Nov 29 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:17.0.1.0.12-9.rolling
+* Mon Nov 29 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:17.0.1.0.12-9.rolling
- Handle Fedora in distro conditionals that currently only pertain to RHEL.
* Thu Nov 18 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:17.0.0.0.35-8
diff --git a/rh2021263-fips_ensure_security_initialised.patch b/rh2021263-fips_ensure_security_initialised.patch
new file mode 100644
index 0000000..8dc0122
--- /dev/null
+++ b/rh2021263-fips_ensure_security_initialised.patch
@@ -0,0 +1,28 @@
+commit 4ac1a03b3ec73358988553fe9e200130847ea3b4
+Author: Andrew Hughes <gnu.andrew(a)redhat.com>
+Date: Mon Jan 10 20:19:40 2022 +0000
+
+ RH2021263: Make sure java.security.Security is initialised when retrieving JavaSecuritySystemConfiguratorAccess instance
+
+diff --git openjdk.orig/src/java.base/share/classes/jdk/internal/access/SharedSecrets.java openjdk/src/java.base/share/classes/jdk/internal/access/SharedSecrets.java
+index 5a2c9eb0c46..a1ee182d913 100644
+--- openjdk.orig/src/java.base/share/classes/jdk/internal/access/SharedSecrets.java
++++ openjdk/src/java.base/share/classes/jdk/internal/access/SharedSecrets.java
+@@ -39,6 +39,7 @@ import java.io.FilePermission;
+ import java.io.ObjectInputStream;
+ import java.io.RandomAccessFile;
+ import java.security.ProtectionDomain;
++import java.security.Security;
+ import java.security.Signature;
+
+ /** A repository of "shared secrets", which are a mechanism for
+@@ -449,6 +450,9 @@ public class SharedSecrets {
+ }
+
+ public static JavaSecuritySystemConfiguratorAccess getJavaSecuritySystemConfiguratorAccess() {
++ if (javaSecuritySystemConfiguratorAccess == null) {
++ ensureClassInitialized(Security.class);
++ }
+ return javaSecuritySystemConfiguratorAccess;
+ }
+ }
diff --git a/rh2021263-fips_missing_native_returns.patch b/rh2021263-fips_missing_native_returns.patch
new file mode 100644
index 0000000..5a056ce
--- /dev/null
+++ b/rh2021263-fips_missing_native_returns.patch
@@ -0,0 +1,24 @@
+commit 8f6e35dc9e9289aed290b36e260beeda76986bb5
+Author: Fridrich Strba <fstrba(a)suse.com>
+Date: Mon Jan 10 19:32:01 2022 +0000
+
+ RH2021263: Return in C code after having generated Java exception
+
+diff --git openjdk.orig/src/java.base/linux/native/libsystemconf/systemconf.c openjdk/src/java.base/linux/native/libsystemconf/systemconf.c
+index 38919d6bb0f..caf678a7dd6 100644
+--- openjdk.orig/src/java.base/linux/native/libsystemconf/systemconf.c
++++ openjdk/src/java.base/linux/native/libsystemconf/systemconf.c
+@@ -151,11 +151,13 @@ JNIEXPORT jboolean JNICALL Java_java_security_SystemConfigurator_getSystemFIPSEn
+ dbgPrint(env, "getSystemFIPSEnabled: reading " FIPS_ENABLED_PATH);
+ if ((fe = fopen(FIPS_ENABLED_PATH, "r")) == NULL) {
+ throwIOException(env, "Cannot open " FIPS_ENABLED_PATH);
++ return JNI_FALSE;
+ }
+ fips_enabled = fgetc(fe);
+ fclose(fe);
+ if (fips_enabled == EOF) {
+ throwIOException(env, "Cannot read " FIPS_ENABLED_PATH);
++ return JNI_FALSE;
+ }
+ msg_bytes = snprintf(msg, MSG_MAX_SIZE, "getSystemFIPSEnabled:" \
+ " read character is '%c'", fips_enabled);
commit 33cde0f7b63842fd24085d95036749005f6c7de0
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Jan 24 15:07:30 2022 +0100
Revert "- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild"
This reverts commit 7364be54874ce0dbad7306e6d96f361c1bf68288.
diff --git a/java-17-openjdk.spec b/java-17-openjdk.spec
index 69c0fee..9b78b14 100644
--- a/java-17-openjdk.spec
+++ b/java-17-openjdk.spec
@@ -1169,7 +1169,7 @@ Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
Name: java-17-%{origin}
Version: %{newjavaver}.%{buildver}
-Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}.1
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -2460,9 +2460,6 @@ cjc.mainProgram(args)
%endif
%changelog
-* Thu Jan 20 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 1:17.0.1.0.12-13.1
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
-
* Thu Dec 09 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:17.0.1.0.12-12.rolling
- Storing and restoring alterntives during update manually
- Fixing Bug 2001567 - update of JDK/JRE is removing its manually selected alterantives and select (as auto) system JDK/JRE
commit 7364be54874ce0dbad7306e6d96f361c1bf68288
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Thu Jan 20 13:40:02 2022 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/java-17-openjdk.spec b/java-17-openjdk.spec
index 9b78b14..69c0fee 100644
--- a/java-17-openjdk.spec
+++ b/java-17-openjdk.spec
@@ -1169,7 +1169,7 @@ Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
Name: java-17-%{origin}
Version: %{newjavaver}.%{buildver}
-Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}.1
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -2460,6 +2460,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Thu Jan 20 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 1:17.0.1.0.12-13.1
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
+
* Thu Dec 09 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:17.0.1.0.12-12.rolling
- Storing and restoring alterntives during update manually
- Fixing Bug 2001567 - update of JDK/JRE is removing its manually selected alterantives and select (as auto) system JDK/JRE
2 years, 3 months
Architecture specific change in rpms/java-17-openjdk.git
by githook-noreply@fedoraproject.org
The package rpms/java-17-openjdk.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/java-17-openjdk.git/commit/?id=ea....
Change:
+%ifarch %{gdb_arches}
Thanks.
Full change:
============
commit 62652f81a66eb1e2d824c1b827cedb5abd1a764c
Author: Andrew John Hughes <gnu_andrew(a)member.fsf.org>
Date: Tue Jan 18 02:31:53 2022 +0000
Separate crypto policy initialisation from FIPS initialisation, now they are no longer interdependent
diff --git a/java-17-openjdk.spec b/java-17-openjdk.spec
index 34035d2..5c15daf 100644
--- a/java-17-openjdk.spec
+++ b/java-17-openjdk.spec
@@ -308,7 +308,7 @@
%global top_level_dir_name %{origin}
%global top_level_dir_name_backup %{top_level_dir_name}-backup
%global buildver 12
-%global rpmrelease 15
+%global rpmrelease 16
# Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit
%if %is_system_jdk
# Using 10 digits may overflow the int used for priority, so we combine the patch and build versions
@@ -1179,7 +1179,7 @@ Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
Name: java-17-%{origin}
Version: %{newjavaver}.%{buildver}
-Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}.1
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -1294,6 +1294,7 @@ Patch1013: rh1991003-enable_fips_keys_import.patch
# RH2021263: Resolve outstanding FIPS issues
Patch1014: rh2021263-fips_ensure_security_initialised.patch
Patch1015: rh2021263-fips_missing_native_returns.patch
+Patch1016: rh2021263-fips_separate_policy_and_fips_init.patch
#############################################
#
@@ -1715,6 +1716,7 @@ popd # openjdk
%patch1013
%patch1014
%patch1015
+%patch1016
%patch2000
@@ -2472,6 +2474,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Jan 24 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:17.0.1.0.12-16.rolling
+- Separate crypto policy initialisation from FIPS initialisation, now they are no longer interdependent
+
* Thu Jan 20 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 1:17.0.1.0.12-15.rolling.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
diff --git a/rh2021263-fips_separate_policy_and_fips_init.patch b/rh2021263-fips_separate_policy_and_fips_init.patch
new file mode 100644
index 0000000..b5351a8
--- /dev/null
+++ b/rh2021263-fips_separate_policy_and_fips_init.patch
@@ -0,0 +1,99 @@
+commit 0cd8cee94fe0f867b0b39890e00be620af1d9b07
+Author: Andrew Hughes <gnu.andrew(a)redhat.com>
+Date: Tue Jan 18 02:09:27 2022 +0000
+
+ RH2021263: Improve Security initialisation, now FIPS support no longer relies on crypto policy support
+
+diff --git openjdk.orig/src/java.base/share/classes/java/security/Security.java openjdk/src/java.base/share/classes/java/security/Security.java
+index 28ab1846173..f9726741afd 100644
+--- openjdk.orig/src/java.base/share/classes/java/security/Security.java
++++ openjdk/src/java.base/share/classes/java/security/Security.java
+@@ -61,10 +61,6 @@ public final class Security {
+ private static final Debug sdebug =
+ Debug.getInstance("properties");
+
+- /* System property file*/
+- private static final String SYSTEM_PROPERTIES =
+- "/etc/crypto-policies/back-ends/java.config";
+-
+ /* The java.security properties */
+ private static Properties props;
+
+@@ -206,22 +202,36 @@ public final class Security {
+ }
+ }
+
++ if (!loadedProps) {
++ initializeStatic();
++ if (sdebug != null) {
++ sdebug.println("unable to load security properties " +
++ "-- using defaults");
++ }
++ }
++
+ String disableSystemProps = System.getProperty("java.security.disableSystemPropertiesFile");
+ if ((disableSystemProps == null || "false".equalsIgnoreCase(disableSystemProps)) &&
+ "true".equalsIgnoreCase(props.getProperty("security.useSystemPropertiesFile"))) {
+- if (SystemConfigurator.configure(props)) {
+- loadedProps = true;
++ if (!SystemConfigurator.configureSysProps(props)) {
++ if (sdebug != null) {
++ sdebug.println("WARNING: System properties could not be loaded.");
++ }
+ }
+ }
+
+- if (!loadedProps) {
+- initializeStatic();
++ // FIPS support depends on the contents of java.security so
++ // ensure it has loaded first
++ if (loadedProps) {
++ boolean fipsEnabled = SystemConfigurator.configureFIPS(props);
+ if (sdebug != null) {
+- sdebug.println("unable to load security properties " +
+- "-- using defaults");
++ if (fipsEnabled) {
++ sdebug.println("FIPS support enabled.");
++ } else {
++ sdebug.println("FIPS support disabled.");
++ }
+ }
+ }
+-
+ }
+
+ /*
+diff --git openjdk.orig/src/java.base/share/classes/java/security/SystemConfigurator.java openjdk/src/java.base/share/classes/java/security/SystemConfigurator.java
+index 874c6221ebe..b7ed41acf0f 100644
+--- openjdk.orig/src/java.base/share/classes/java/security/SystemConfigurator.java
++++ openjdk/src/java.base/share/classes/java/security/SystemConfigurator.java
+@@ -76,7 +76,7 @@ final class SystemConfigurator {
+ * java.security.disableSystemPropertiesFile property is not set and
+ * security.useSystemPropertiesFile is true.
+ */
+- static boolean configure(Properties props) {
++ static boolean configureSysProps(Properties props) {
+ boolean loadedProps = false;
+
+ try (BufferedInputStream bis =
+@@ -96,11 +96,19 @@ final class SystemConfigurator {
+ e.printStackTrace();
+ }
+ }
++ return loadedProps;
++ }
++
++ /*
++ * Invoked at the end of java.security.Security initialisation
++ * if java.security properties have been loaded
++ */
++ static boolean configureFIPS(Properties props) {
++ boolean loadedProps = false;
+
+ try {
+ if (enableFips()) {
+ if (sdebug != null) { sdebug.println("FIPS mode detected"); }
+- loadedProps = false;
+ // Remove all security providers
+ Iterator<Entry<Object, Object>> i = props.entrySet().iterator();
+ while (i.hasNext()) {
commit e3a510910e42a87b6b3d8af9e005123b69e48a4b
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Thu Jan 20 13:40:37 2022 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/java-17-openjdk.spec b/java-17-openjdk.spec
index 9bac5c5..34035d2 100644
--- a/java-17-openjdk.spec
+++ b/java-17-openjdk.spec
@@ -1179,7 +1179,7 @@ Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
Name: java-17-%{origin}
Version: %{newjavaver}.%{buildver}
-Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}.1
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -2472,6 +2472,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Thu Jan 20 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 1:17.0.1.0.12-15.rolling.1
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
+
* Tue Jan 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:17.0.1.0.12-15.rolling
- Sync gdb test with java-1.8.0-openjdk and improve architecture restrictions.
- Disable on x86, x86_64, ppc64le & s390x while these are broken in rawhide.
commit eacad27bf1734cd2abb2b46acb385b0d86278d47
Author: Andrew John Hughes <gnu_andrew(a)member.fsf.org>
Date: Tue Jan 18 15:51:01 2022 +0000
Sync gdb test with java-1.8.0-openjdk and improve architecture restrictions.
Disable on x86, x86_64, ppc64le & s390x while these are broken in rawhide.
diff --git a/java-17-openjdk.spec b/java-17-openjdk.spec
index bf6aec3..9bac5c5 100644
--- a/java-17-openjdk.spec
+++ b/java-17-openjdk.spec
@@ -99,17 +99,20 @@
%global ppc64be ppc64 ppc64p7
# Set of architectures which support multiple ABIs
%global multilib_arches %{power64} sparc64 x86_64
-# Set of architectures for which we build debug builds
+# Set of architectures for which we build slowdebug builds
%global debug_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64} s390x
+# Set of architectures for which we build fastdebug builds
+%global fastdebug_arches x86_64 ppc64le aarch64
# Set of architectures with a Just-In-Time (JIT) compiler
%global jit_arches %{debug_arches} %{arm}
+# Set of architectures which use the Zero assembler port (!jit_arches)
+%global zero_arches ppc s390
# Set of architectures which run a full bootstrap cycle
%global bootstrap_arches %{jit_arches}
# Set of architectures which support SystemTap tapsets
%global systemtap_arches %{jit_arches}
# Set of architectures with a Ahead-Of-Time (AOT) compiler
%global aot_arches x86_64 %{aarch64}
-%global fastdebug_arches x86_64 ppc64le aarch64
# Set of architectures which support the serviceability agent
%global sa_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64} %{arm}
# Set of architectures which support class data sharing
@@ -124,6 +127,13 @@
%global ssbd_arches x86_64
# Set of architectures for which java has short vector math library (libsvml.so)
%global svml_arches x86_64
+# Set of architectures where we verify backtraces with gdb (ideally all)
+# Temporarily disable check on x86, x86_64, ppc64le and s390x as gdb crashes
+# ../../gdb/objfiles.h:510: internal-error: sect_index_data not initialized
+# A problem internal to GDB has been detected,
+# further debugging may prove unreliable.
+# See https://bugzilla.redhat.com/show_bug.cgi?id=2041970
+%global gdb_arches sparcv9 sparc64 %{aarch64} %{arm} %{zero_arches}
# By default, we build a debug build during main build on JIT architectures
%if %{with slowdebug}
@@ -298,7 +308,7 @@
%global top_level_dir_name %{origin}
%global top_level_dir_name_backup %{top_level_dir_name}-backup
%global buildver 12
-%global rpmrelease 14
+%global rpmrelease 15
# Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit
%if %is_system_jdk
# Using 10 digits may overflow the int used for priority, so we combine the patch and build versions
@@ -2069,20 +2079,16 @@ gdb -q "$JAVA_HOME/bin/java" <<EOF | tee gdb.out
handle SIGSEGV pass nostop noprint
handle SIGILL pass nostop noprint
set breakpoint pending on
-break javaCalls.cpp:1
+break javaCalls.cpp:58
commands 1
backtrace
quit
end
run -version
EOF
-%if 0%{?fedora} > 0
-# This fails on s390x for some reason. Disable for now. See:
-# https://koji.fedoraproject.org/koji/taskinfo?taskID=41499227
-%ifnarch s390x
+%ifarch %{gdb_arches}
grep 'JavaCallWrapper::JavaCallWrapper' gdb.out
%endif
-%endif
# Check src.zip has all sources. See RHBZ#1130490
$JAVA_HOME/bin/jar -tf $JAVA_HOME/lib/src.zip | grep 'sun.misc.Unsafe'
@@ -2466,6 +2472,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Tue Jan 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:17.0.1.0.12-15.rolling
+- Sync gdb test with java-1.8.0-openjdk and improve architecture restrictions.
+- Disable on x86, x86_64, ppc64le & s390x while these are broken in rawhide.
+
* Thu Jan 13 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:17.0.1.0.12-14.rolling
- Fix FIPS issues in native code and with initialisation of java.security.Security
commit bda1029633609d6e69564aa3a4aada67e4f6fe75
Author: Andrew John Hughes <gnu_andrew(a)member.fsf.org>
Date: Thu Jan 13 01:12:07 2022 +0000
Fix FIPS issues in native code and with initialisation of java.security.Security
diff --git a/java-17-openjdk.spec b/java-17-openjdk.spec
index 9b78b14..bf6aec3 100644
--- a/java-17-openjdk.spec
+++ b/java-17-openjdk.spec
@@ -298,7 +298,7 @@
%global top_level_dir_name %{origin}
%global top_level_dir_name_backup %{top_level_dir_name}-backup
%global buildver 12
-%global rpmrelease 13
+%global rpmrelease 14
# Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit
%if %is_system_jdk
# Using 10 digits may overflow the int used for priority, so we combine the patch and build versions
@@ -1281,6 +1281,9 @@ Patch1010: rh1996182-login_to_nss_software_token.patch
Patch1012: rh1996182-extend_security_policy.patch
# RH1991003: Allow plain key import unless com.redhat.fips.plainKeySupport is set to false
Patch1013: rh1991003-enable_fips_keys_import.patch
+# RH2021263: Resolve outstanding FIPS issues
+Patch1014: rh2021263-fips_ensure_security_initialised.patch
+Patch1015: rh2021263-fips_missing_native_returns.patch
#############################################
#
@@ -1700,6 +1703,9 @@ popd # openjdk
%patch1011
%patch1012
%patch1013
+%patch1014
+%patch1015
+
%patch2000
# Extract systemtap tapsets
@@ -2460,7 +2466,10 @@ cjc.mainProgram(args)
%endif
%changelog
-* Thu Dec 09 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:17.0.1.0.12-12.rolling
+* Thu Jan 13 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:17.0.1.0.12-14.rolling
+- Fix FIPS issues in native code and with initialisation of java.security.Security
+
+* Thu Dec 09 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:17.0.1.0.12-13.rolling
- Storing and restoring alterntives during update manually
- Fixing Bug 2001567 - update of JDK/JRE is removing its manually selected alterantives and select (as auto) system JDK/JRE
-- The move of alternatives creation to posttrans to fix:
@@ -2480,7 +2489,7 @@ cjc.mainProgram(args)
* Thu Dec 09 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:17.0.1.0.12-10.rolling
- replaced tabs by sets of spaces to make rpmlint happy
-* Mov Nov 29 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:17.0.1.0.12-9.rolling
+* Mon Nov 29 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:17.0.1.0.12-9.rolling
- Handle Fedora in distro conditionals that currently only pertain to RHEL.
* Thu Nov 18 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:17.0.0.0.35-8
diff --git a/rh2021263-fips_ensure_security_initialised.patch b/rh2021263-fips_ensure_security_initialised.patch
new file mode 100644
index 0000000..8dc0122
--- /dev/null
+++ b/rh2021263-fips_ensure_security_initialised.patch
@@ -0,0 +1,28 @@
+commit 4ac1a03b3ec73358988553fe9e200130847ea3b4
+Author: Andrew Hughes <gnu.andrew(a)redhat.com>
+Date: Mon Jan 10 20:19:40 2022 +0000
+
+ RH2021263: Make sure java.security.Security is initialised when retrieving JavaSecuritySystemConfiguratorAccess instance
+
+diff --git openjdk.orig/src/java.base/share/classes/jdk/internal/access/SharedSecrets.java openjdk/src/java.base/share/classes/jdk/internal/access/SharedSecrets.java
+index 5a2c9eb0c46..a1ee182d913 100644
+--- openjdk.orig/src/java.base/share/classes/jdk/internal/access/SharedSecrets.java
++++ openjdk/src/java.base/share/classes/jdk/internal/access/SharedSecrets.java
+@@ -39,6 +39,7 @@ import java.io.FilePermission;
+ import java.io.ObjectInputStream;
+ import java.io.RandomAccessFile;
+ import java.security.ProtectionDomain;
++import java.security.Security;
+ import java.security.Signature;
+
+ /** A repository of "shared secrets", which are a mechanism for
+@@ -449,6 +450,9 @@ public class SharedSecrets {
+ }
+
+ public static JavaSecuritySystemConfiguratorAccess getJavaSecuritySystemConfiguratorAccess() {
++ if (javaSecuritySystemConfiguratorAccess == null) {
++ ensureClassInitialized(Security.class);
++ }
+ return javaSecuritySystemConfiguratorAccess;
+ }
+ }
diff --git a/rh2021263-fips_missing_native_returns.patch b/rh2021263-fips_missing_native_returns.patch
new file mode 100644
index 0000000..5a056ce
--- /dev/null
+++ b/rh2021263-fips_missing_native_returns.patch
@@ -0,0 +1,24 @@
+commit 8f6e35dc9e9289aed290b36e260beeda76986bb5
+Author: Fridrich Strba <fstrba(a)suse.com>
+Date: Mon Jan 10 19:32:01 2022 +0000
+
+ RH2021263: Return in C code after having generated Java exception
+
+diff --git openjdk.orig/src/java.base/linux/native/libsystemconf/systemconf.c openjdk/src/java.base/linux/native/libsystemconf/systemconf.c
+index 38919d6bb0f..caf678a7dd6 100644
+--- openjdk.orig/src/java.base/linux/native/libsystemconf/systemconf.c
++++ openjdk/src/java.base/linux/native/libsystemconf/systemconf.c
+@@ -151,11 +151,13 @@ JNIEXPORT jboolean JNICALL Java_java_security_SystemConfigurator_getSystemFIPSEn
+ dbgPrint(env, "getSystemFIPSEnabled: reading " FIPS_ENABLED_PATH);
+ if ((fe = fopen(FIPS_ENABLED_PATH, "r")) == NULL) {
+ throwIOException(env, "Cannot open " FIPS_ENABLED_PATH);
++ return JNI_FALSE;
+ }
+ fips_enabled = fgetc(fe);
+ fclose(fe);
+ if (fips_enabled == EOF) {
+ throwIOException(env, "Cannot read " FIPS_ENABLED_PATH);
++ return JNI_FALSE;
+ }
+ msg_bytes = snprintf(msg, MSG_MAX_SIZE, "getSystemFIPSEnabled:" \
+ " read character is '%c'", fips_enabled);
commit 33cde0f7b63842fd24085d95036749005f6c7de0
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Jan 24 15:07:30 2022 +0100
Revert "- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild"
This reverts commit 7364be54874ce0dbad7306e6d96f361c1bf68288.
diff --git a/java-17-openjdk.spec b/java-17-openjdk.spec
index 69c0fee..9b78b14 100644
--- a/java-17-openjdk.spec
+++ b/java-17-openjdk.spec
@@ -1169,7 +1169,7 @@ Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
Name: java-17-%{origin}
Version: %{newjavaver}.%{buildver}
-Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}.1
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -2460,9 +2460,6 @@ cjc.mainProgram(args)
%endif
%changelog
-* Thu Jan 20 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 1:17.0.1.0.12-13.1
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
-
* Thu Dec 09 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:17.0.1.0.12-12.rolling
- Storing and restoring alterntives during update manually
- Fixing Bug 2001567 - update of JDK/JRE is removing its manually selected alterantives and select (as auto) system JDK/JRE
commit 7364be54874ce0dbad7306e6d96f361c1bf68288
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Thu Jan 20 13:40:02 2022 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/java-17-openjdk.spec b/java-17-openjdk.spec
index 9b78b14..69c0fee 100644
--- a/java-17-openjdk.spec
+++ b/java-17-openjdk.spec
@@ -1169,7 +1169,7 @@ Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
Name: java-17-%{origin}
Version: %{newjavaver}.%{buildver}
-Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}.1
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -2460,6 +2460,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Thu Jan 20 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 1:17.0.1.0.12-13.1
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
+
* Thu Dec 09 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:17.0.1.0.12-12.rolling
- Storing and restoring alterntives during update manually
- Fixing Bug 2001567 - update of JDK/JRE is removing its manually selected alterantives and select (as auto) system JDK/JRE
2 years, 3 months
[Report] Packages Restricting Arches
by root
List of packages currently excluding arches (2352)
===========================================
- 0ad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- 90-Second-Portraits
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- GoldenCheetah
ExclusiveArch: %{qt5_qtwebengine_arches}
- GtkAda
ExclusiveArch: %{GPRbuild_arches}
- GtkAda3
ExclusiveArch: %{GPRbuild_arches}
- OpenColorIO
ExclusiveArch: x86_64 ppc64le
- OpenImageIO
ExclusiveArch: x86_64 ppc64le
- OpenMolcas
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- PragmARC
ExclusiveArch: %{GPRbuild_arches}
- R-V8
ExclusiveArch: %{nodejs_arches}
- RdRand
ExclusiveArch: %{ix86} x86_64
- RediSearch
ExclusiveArch: x86_64
- SLOF
ExclusiveArch: ppc64le
- YafaRay
ExclusiveArch: %{ix86} x86_64
- aboot
ExclusiveArch: alpha
- accel-config
ExclusiveArch: %{ix86} x86_64
- acpid
ExclusiveArch: ia64 x86_64 %{ix86} %{arm} aarch64
- ahven
ExclusiveArch: %{GPRbuild_arches}
- algobox
ExclusiveArch: %{qt5_qtwebengine_arches}
- alleyoop
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x %{arm} aarch64
- american-fuzzy-lop
ExclusiveArch: %{ix86} x86_64 s390x
- anet
ExclusiveArch: %{GPRbuild_arches}
- anki
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- apmd
ExclusiveArch: %{ix86}
- appstream-generator
ExclusiveArch: %{ldc_arches}
- arm-trusted-firmware
ExclusiveArch: aarch64
- aunit
ExclusiveArch: %GPRbuild_arches
- avgtime
ExclusiveArch: %{ldc_arches}
- aws
ExclusiveArch: %GPRbuild_arches
- bcal
ExclusiveArch: x86_64 aarch64 ia64 ppc64 ppc64le s390x
- bcc
ExclusiveArch: x86_64 %{power64} aarch64 s390x armv7hl
- bcm283x-firmware
ExclusiveArch: %{arm} aarch64
- berusky2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{mips}
- biosdevname
ExclusiveArch: %{ix86} x86_64
- blender
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- bless
ExclusiveArch: %mono_arches
- bpftrace
ExclusiveArch: x86_64 %{power64} aarch64 s390x
- calamares
ExclusiveArch: %{ix86} x86_64 aarch64
- calibre
ExclusiveArch: %{qt5_qtwebengine_arches}
- ccdciel
ExclusiveArch: %{fpc_arches}
- cdcollect
ExclusiveArch: %{mono_arches}
- ceph
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- chromium
ExclusiveArch: x86_64 i686
ExclusiveArch: x86_64 aarch64
ExclusiveArch: x86_64 i686 aarch64
- cjdns
ExclusiveArch: %{nodejs_arches}
- clevis-pin-tpm2
ExclusiveArch: %{rust_arches}
- cmospwd
ExclusiveArch: %{ix86} x86_64
- cmrt
ExclusiveArch: %{ix86} x86_64 ia64
- coffee-script
ExclusiveArch: %{nodejs_arches} noarch
- colorful
ExclusiveArch: %{fpc_arches}
- cpu-x
ExclusiveArch: i686 x86_64
- 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-tools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- criu
ExclusiveArch: x86_64 %{arm} ppc64le aarch64 s390x
- cryptlib
ExclusiveArch: x86_64 %{ix86} aarch64 ppc64 ppc64le
- cryptobone
ExclusiveArch: x86_64 %{ix86} ppc64 ppc64le aarch64
- csslint
ExclusiveArch: %{nodejs_arches} noarch
- 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
- deepin-daemon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- deepin-desktop-schemas
ExclusiveArch: %{go_arches}
- 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
- dotnet-build-reference-packages
ExclusiveArch: aarch64 x86_64
ExclusiveArch: x86_64
- dotnet3.1
ExclusiveArch: aarch64 x86_64
ExclusiveArch: x86_64
- dotnet5.0-build-reference-packages
ExclusiveArch: aarch64 x86_64
ExclusiveArch: x86_64
- 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
- eclipse-swt
ExclusiveArch: s390x x86_64 aarch64 ppc64le
- edk2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
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
- enki
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- envytools
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- eric
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- eth-tools
ExclusiveArch: x86_64
- extlinux-bootloader
ExclusiveArch: %{arm} aarch64
- fcitx-libpinyin
ExclusiveArch: %{qt5_qtwebengine_arches}
- fedora-dockerfiles
ExclusiveArch: %{go_arches}
- fes
ExclusiveArch: %{ix86} x86_64
- fkill-cli
ExclusiveArch: %{nodejs_arches} noarch
- florist
ExclusiveArch: %{GPRbuild_arches}
- fluent-bit
ExclusiveArch: x86_64 aarch64
- fpc
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64 ppc64le
- frescobaldi
ExclusiveArch: %{qt5_qtwebengine_arches}
- frysk
ExclusiveArch: %{ix86} x86_64 ppc64
- fwts
ExclusiveArch: x86_64 %{arm} aarch64 s390x riscv64 %{power64}
- fwupd-efi
ExclusiveArch: x86_64 aarch64
- fx
ExclusiveArch: %{nodejs_arches} noarch
- fx-completion
ExclusiveArch: %{nodejs_arches} noarch
- ga
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- gbrainy
ExclusiveArch: %mono_arches
- gdb-exploitable
ExclusiveArch: x86_64 i386
ExclusiveArch: x86_64 noarch
- gearhead1
ExclusiveArch: %{fpc_arches}
- gela-asis
ExclusiveArch: %GPRbuild_arches
- ghdl
ExclusiveArch: %{GNAT_arches}
- ghostwriter
ExclusiveArch: %{qt5_qtwebengine_arches}
- gio-sharp
ExclusiveArch: %mono_arches
- gir-to-d
ExclusiveArch: %{ldc_arches}
- git-octopus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- 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}
- go-rpm-macros
ExclusiveArch: %{golang_arches} %{gccgo_arches}
- godep
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang
ExclusiveArch: %{golang_arches}
- gomtree
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gotun
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: x86_64
- goverlay
ExclusiveArch: %{fpc_arches}
- gprbuild
ExclusiveArch: %{GPRbuild_arches} %{bootstrap_arch}
- gprolog
ExclusiveArch: x86_64 %{ix86} ppc alpha
- grafana
ExclusiveArch: %{grafana_arches}
- grafana-pcp
ExclusiveArch: %{grafanapcp_arches}
- gtk-sharp-beans
ExclusiveArch: %mono_arches
- gtk-sharp2
ExclusiveArch: %mono_arches
- gtk-sharp3
ExclusiveArch: %{mono_arches}
- gtkd
ExclusiveArch: %{ldc_arches}
- gudev-sharp
ExclusiveArch: %mono_arches
- guestfs-tools
ExclusiveArch: %{kernel_arches}
- hedgewars
ExclusiveArch: %{fpc_arches}
- hsakmt
ExclusiveArch: x86_64 aarch64
- hyena
ExclusiveArch: %{mono_arches}
- hyperscan
ExclusiveArch: x86_64
- hyperv-daemons
ExclusiveArch: i686 x86_64
- i3status-rs
ExclusiveArch: %{rust_arches}
- icaro
ExclusiveArch: %{ix86} x86_64 noarch
- imvirt
ExclusiveArch: %{ix86} x86_64 ia64
- indistarter
ExclusiveArch: %{fpc_arches}
- infinipath-psm
ExclusiveArch: x86_64
- intel-cm-compiler
ExclusiveArch: i686 x86_64
- intel-cmt-cat
ExclusiveArch: x86_64 i686 i586
ExclusiveArch: x86_64 i686 i586
- intel-gmmlib
ExclusiveArch: x86_64 i686
- 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
- java-1.8.0-openjdk-aarch32
ExclusiveArch: %{arm}
- jigawatts
ExclusiveArch: x86_64 %{arm} ppc64le aarch64 s390x
- kchmviewer
ExclusiveArch: %{qt5_qtwebengine_arches}
- keepass
ExclusiveArch: %{mono_arches}
- kernel
ExclusiveArch: noarch x86_64 s390x %{arm} aarch64 ppc64le
ExclusiveArch: noarch i386 i686 x86_64 s390x %{arm} aarch64 ppc64le
- 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}
- lazarus
ExclusiveArch: %{fpc_arches}
- lazpaint
ExclusiveArch: %{fpc_arches}
- ldc
ExclusiveArch: %{ldc_arches}
- libbsr
ExclusiveArch: %{power64}
- libclc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
- libcxl
ExclusiveArch: %{power64}
- libdfp
ExclusiveArch: ppc ppc64 ppc64le s390 s390x x86_64
- libdispatch
ExclusiveArch: x86_64 aarch64
- libguestfs
ExclusiveArch: %{kernel_arches}
- libica
ExclusiveArch: s390 s390x
- libipt
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- libkgapi
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- libnxz
ExclusiveArch: ppc64le
- libocxl
ExclusiveArch: ppc64le
- libpmemobj-cpp
ExclusiveArch: x86_64 ppc64le
- libpsm2
ExclusiveArch: x86_64
- libquentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- libretro-desmume2015
ExclusiveArch: i686 x86_64
- librtas
ExclusiveArch: %{power64}
- libservicelog
ExclusiveArch: ppc %{power64}
- libsmbios
ExclusiveArch: x86_64 %{ix86}
- libunwind
ExclusiveArch: %{arm} aarch64 hppa ia64 mips ppc %{power64} s390x %{ix86} x86_64
- libva-intel-hybrid-driver
ExclusiveArch: %{ix86} x86_64 ia64
- libvma
ExclusiveArch: x86_64 ppc64le ppc64 aarch64
- libvmi
ExclusiveArch: x86_64
- libvpd
ExclusiveArch: %{power64}
- libxsmm
ExclusiveArch: x86_64
- libzdnn
ExclusiveArch: s390x
- libzfcphbaapi
ExclusiveArch: s390 s390x
- lightdm
ExclusiveArch: x86_64 ppc64le
- llhttp
ExclusiveArch: %{nodejs_arches}
- 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
- marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- matreshka
ExclusiveArch: %GPRbuild_arches
- maxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- mbpfan
ExclusiveArch: x86_64
- mcelog
ExclusiveArch: i686 x86_64
- mdevctl
ExclusiveArch: %{rust_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} %{ix86} x86_64
- 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
- mod_mono
ExclusiveArch: %mono_arches
- module-build-service
ExclusiveArch: %{ix86} x86_64 noarch
- mokutil
ExclusiveArch: %{ix86} x86_64 aarch64 %{arm}
- mono
ExclusiveArch: %mono_arches
- mono-addins
ExclusiveArch: %mono_arches
- mono-basic
ExclusiveArch: %{mono_arches}
- mono-bouncycastle
ExclusiveArch: %mono_arches
- mono-cecil
ExclusiveArch: %mono_arches
- mono-cecil-flowanalysis
ExclusiveArch: %mono_arches
- mono-reflection
ExclusiveArch: %mono_arches
- mono-tools
ExclusiveArch: %mono_arches
- mono-zeroconf
ExclusiveArch: %mono_arches
- monobristol
ExclusiveArch: %{mono_arches}
- monodevelop
ExclusiveArch: %mono_arches
- monodevelop-debugger-gdb
ExclusiveArch: %{mono_arches}
- monosim
ExclusiveArch: %mono_arches
- mrrescue
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- msr-tools
ExclusiveArch: %{ix86} x86_64
- mustache-d
ExclusiveArch: %{ldc_arches}
- mysql-connector-net
ExclusiveArch: %{mono_arches}
- naev
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- 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}
- newsflash
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-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-svgo
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
- notify-sharp
ExclusiveArch: %{mono_arches}
- notify-sharp3
ExclusiveArch: %{mono_arches}
- npm-name-cli
ExclusiveArch: %{nodejs_arches} noarch
- nuget
ExclusiveArch: %{mono_arches}
- numatop
ExclusiveArch: x86_64 ppc64le
- nunit
ExclusiveArch: %{mono_arches}
- nunit2
ExclusiveArch: %{mono_arches}
- nvml
ExclusiveArch: x86_64 ppc64le
- nwchem
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- obs-service-rust2rpm
ExclusiveArch: %{rust_arches} noarch
- oci-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}
- onednn
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- onedrive
ExclusiveArch: %{ldc_arches}
- opae
ExclusiveArch: x86_64
- opal-prd
ExclusiveArch: ppc64le
- open-vm-tools
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64 aarch64
- openblas
ExclusiveArch: %{openblas_arches}
- openjfx
ExclusiveArch: x86_64
- openjfx8
ExclusiveArch: x86_64
- openlibm
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 %{power64}
- openni
ExclusiveArch: %{ix86} x86_64 %{arm}
- openni-primesense
ExclusiveArch: %{ix86} x86_64 %{arm}
- openshadinglanguage
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- openssl-ibmca
ExclusiveArch: s390 s390x
- origin
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- orion
ExclusiveArch: %{qt5_qtwebengine_arches}
- orthorobot
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- 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
- pcm
ExclusiveArch: %{ix86} x86_64
- pcmciautils
ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64 %{arm}
- pdbg
ExclusiveArch: ppc64le
- pdfmod
ExclusiveArch: %mono_arches
- perl-Dumbbench
ExclusiveArch: %{ix86} x86_64 noarch
- perl-Parse-DMIDecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- pesign
ExclusiveArch: %{ix86} x86_64 ia64 aarch64 %{arm}
- pesign-test-app
ExclusiveArch: x86_64
- pinta
ExclusiveArch: %mono_arches
- pioneer
ExclusiveArch: %{ix86} x86_64
- playonlinux
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- pmdk-convert
ExclusiveArch: x86_64
- pmemkv
ExclusiveArch: x86_64
- podman
ExclusiveArch: %{golang_arches}
- poppler-sharp
ExclusiveArch: %mono_arches
- popub
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- powerpc-utils
ExclusiveArch: ppc %{power64}
- ppc64-diag
ExclusiveArch: ppc %{power64}
- pveclib
ExclusiveArch: ppc %{power64}
- pvs-sbcl
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- pyqtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- python-cryptography
ExclusiveArch: %{rust_arches}
- python-etcd
ExclusiveArch: noarch %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- python-healpy
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-javabridge
ExclusiveArch: i686 x86_64
- python-openoffice
ExclusiveArch: noarch x86_64
- python-pymoc
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-setuptools-rust
ExclusiveArch: %{rust_arches}
- q4wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- qatzip
ExclusiveArch: x86_64
- qcint
ExclusiveArch: x86_64
- qclib
ExclusiveArch: s390 s390x
- qemu-sanity-check
ExclusiveArch: %{kernel_arches}
- qevercloud
ExclusiveArch: %{qt5_qtwebengine_arches}
- qmapshack
ExclusiveArch: %{qt5_qtwebengine_arches}
- qt4pas
ExclusiveArch: %{fpc_arches}
- qt5-qtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- quantum-espresso
ExclusiveArch: x86_64 %{ix86} aarch64 %{power64}
- quentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- rear
ExclusiveArch: %ix86 x86_64 ppc ppc64 ppc64le ia64
- reg
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- renderdoc
ExclusiveArch: x86_64
- reptyr
ExclusiveArch: %{ix86} x86_64 %{arm}
- rescene
ExclusiveArch: %{mono_arches}
- restool
ExclusiveArch: aarch64
- restsharp
ExclusiveArch: %{mono_arches}
- rhythmbox-alternative-toolbar
ExclusiveArch: %{ix86} %{arm} x86_64 ppc64 ppc64le
- rocm-runtime
ExclusiveArch: x86_64 aarch64
- rocminfo
ExclusiveArch: x86_64 aarch64
- rpg-cli
ExclusiveArch: %{rust_arches}
- rpm-ostree
ExclusiveArch: %{rust_arches}
- rr
ExclusiveArch: %{ix86} x86_64 aarch64
- rssguard
ExclusiveArch: %{qt5_qtwebengine_arches}
- rubygem-childprocess
ExclusiveArch: %{ix86} x86_64 noarch
- runc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le %{mips} s390x
- rust
ExclusiveArch: %{rust_arches}
- rust-Inflector
ExclusiveArch: %{rust_arches}
- rust-ab_glyph
ExclusiveArch: %{rust_arches}
- rust-ab_glyph_rasterizer
ExclusiveArch: %{rust_arches}
- rust-abomonation
ExclusiveArch: %{rust_arches}
- rust-actix
ExclusiveArch: %{rust_arches}
- rust-actix-codec
ExclusiveArch: %{rust_arches}
- rust-actix-connect
ExclusiveArch: %{rust_arches}
- rust-actix-http
ExclusiveArch: %{rust_arches}
- rust-actix-macros
ExclusiveArch: %{rust_arches}
- rust-actix-macros0.1
ExclusiveArch: %{rust_arches}
- rust-actix-router
ExclusiveArch: %{rust_arches}
- rust-actix-rt
ExclusiveArch: %{rust_arches}
- rust-actix-rt1
ExclusiveArch: %{rust_arches}
- rust-actix-server
ExclusiveArch: %{rust_arches}
- rust-actix-service
ExclusiveArch: %{rust_arches}
- rust-actix-testing
ExclusiveArch: %{rust_arches}
- rust-actix-threadpool
ExclusiveArch: %{rust_arches}
- rust-actix-tls
ExclusiveArch: %{rust_arches}
- rust-actix-utils
ExclusiveArch: %{rust_arches}
- rust-actix-web
ExclusiveArch: %{rust_arches}
- rust-actix-web-codegen
ExclusiveArch: %{rust_arches}
- rust-actix0.10
ExclusiveArch: %{rust_arches}
- rust-actix_derive
ExclusiveArch: %{rust_arches}
- rust-actix_derive0.5
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-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-alsa
ExclusiveArch: %{rust_arches}
- rust-alsa-sys
ExclusiveArch: %{rust_arches}
- rust-ambient-authority
ExclusiveArch: %{rust_arches}
- rust-ammonia
ExclusiveArch: %{rust_arches}
- rust-andrew
ExclusiveArch: %{rust_arches}
- rust-ansi_colours
ExclusiveArch: %{rust_arches}
- rust-ansi_term
ExclusiveArch: %{rust_arches}
- rust-ansi_term0.11
ExclusiveArch: %{rust_arches}
- rust-antidote
ExclusiveArch: %{rust_arches}
- rust-anyhow
ExclusiveArch: %{rust_arches}
- rust-aom-sys
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-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-article_scraper
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-assign
ExclusiveArch: %{rust_arches}
- rust-async-attributes
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-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-waker
ExclusiveArch: %{rust_arches}
- rust-attohttpc
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.11
ExclusiveArch: %{rust_arches}
- rust-base64_0.12
ExclusiveArch: %{rust_arches}
- rust-base64ct
ExclusiveArch: %{rust_arches}
- rust-bat
ExclusiveArch: %{rust_arches}
- rust-battery
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-bincode
ExclusiveArch: %{rust_arches}
- rust-bincode0.8
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-bitreader
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-modes
ExclusiveArch: %{rust_arches}
- rust-block-padding
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-bufsize
ExclusiveArch: %{rust_arches}
- rust-bufstream
ExclusiveArch: %{rust_arches}
- rust-bugreport
ExclusiveArch: %{rust_arches}
- rust-build-env
ExclusiveArch: %{rust_arches}
- rust-build_const
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-bytes0.4
ExclusiveArch: %{rust_arches}
- rust-bytes0.5
ExclusiveArch: %{rust_arches}
- rust-bytes0.6
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-calloop0.6
ExclusiveArch: %{rust_arches}
- rust-camino
ExclusiveArch: %{rust_arches}
- rust-cap-primitives
ExclusiveArch: %{rust_arches}
- rust-cap-rand
ExclusiveArch: %{rust_arches}
- rust-cap-std
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-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-cfg-expr
ExclusiveArch: %{rust_arches}
- rust-cfg-if
ExclusiveArch: %{rust_arches}
- rust-cfg-if0.1
ExclusiveArch: %{rust_arches}
- rust-cgmath
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-chlorine
ExclusiveArch: %{rust_arches}
- rust-choosier
ExclusiveArch: %{rust_arches}
- rust-chrono
ExclusiveArch: %{rust_arches}
- rust-chrono-humanize
ExclusiveArch: %{rust_arches}
- rust-chrono-tz
ExclusiveArch: %{rust_arches}
- rust-chunked_transfer
ExclusiveArch: %{rust_arches}
- rust-cipher
ExclusiveArch: %{rust_arches}
- rust-clang-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-claxon
ExclusiveArch: %{rust_arches}
- rust-clicolors-control
ExclusiveArch: %{rust_arches}
- rust-clipboard
ExclusiveArch: %{rust_arches}
- rust-clircle
ExclusiveArch: %{rust_arches}
- rust-cloudflare-zlib
ExclusiveArch: x86_64 aarch64
- rust-cloudflare-zlib-sys
ExclusiveArch: x86_64 aarch64
- 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-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-console_error_panic_hook
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-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-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-copyless
ExclusiveArch: %{rust_arches}
- rust-copypasta
ExclusiveArch: %{rust_arches}
- rust-cordic
ExclusiveArch: %{rust_arches}
- rust-coreos-installer
ExclusiveArch: %{rust_arches}
- rust-counted-array
ExclusiveArch: %{rust_arches}
- rust-cpal
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-cranelift-bforest
ExclusiveArch: %{rust_arches}
- rust-cranelift-codegen
ExclusiveArch: %{rust_arches}
- rust-cranelift-codegen-meta
ExclusiveArch: %{rust_arches}
- rust-cranelift-codegen-shared
ExclusiveArch: %{rust_arches}
- rust-cranelift-entity
ExclusiveArch: %{rust_arches}
- rust-cranelift-frontend
ExclusiveArch: %{rust_arches}
- rust-cranelift-native
ExclusiveArch: %{rust_arches}
- rust-cranelift-wasm
ExclusiveArch: %{rust_arches}
- rust-crates-io
ExclusiveArch: %{rust_arches}
- rust-crc
ExclusiveArch: %{rust_arches}
- rust-crc-any
ExclusiveArch: %{rust_arches}
- rust-crc-catalog
ExclusiveArch: %{rust_arches}
- rust-crc-core
ExclusiveArch: %{rust_arches}
- rust-crc1
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-hash
ExclusiveArch: %{rust_arches}
- rust-crypto-mac
ExclusiveArch: %{rust_arches}
- rust-crypto-mac0.8
ExclusiveArch: %{rust_arches}
- rust-cryptoki
ExclusiveArch: %{rust_arches}
- rust-cryptoki-sys
ExclusiveArch: %{rust_arches}
- rust-cryptovec
ExclusiveArch: %{rust_arches}
- rust-cssparser
ExclusiveArch: %{rust_arches}
- rust-cssparser-macros
ExclusiveArch: %{rust_arches}
- rust-cstr-argument
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-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-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-data-encoding
ExclusiveArch: %{rust_arches}
- rust-data-url
ExclusiveArch: %{rust_arches}
- rust-datetime
ExclusiveArch: %{rust_arches}
- rust-dav1d-sys
ExclusiveArch: %{rust_arches}
- rust-dbus
ExclusiveArch: %{rust_arches}
- rust-dbus-codegen
ExclusiveArch: %{rust_arches}
- rust-dbus-crossroads
ExclusiveArch: %{rust_arches}
- rust-dbus-tokio
ExclusiveArch: %{rust_arches}
- rust-dbus-tree
ExclusiveArch: %{rust_arches}
- rust-dbus0.8
ExclusiveArch: %{rust_arches}
- rust-debug-helper
ExclusiveArch: %{rust_arches}
- rust-decimal
ExclusiveArch: %{rust_arches}
- rust-defer-drop
ExclusiveArch: %{rust_arches}
- rust-deflate
ExclusiveArch: %{rust_arches}
- rust-defmac
ExclusiveArch: %{rust_arches}
- rust-delta_e
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-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-diesel_migrations
ExclusiveArch: %{rust_arches}
- rust-diff
ExclusiveArch: %{rust_arches}
- rust-difference
ExclusiveArch: %{rust_arches}
- rust-difflib
ExclusiveArch: %{rust_arches}
- rust-diffus
ExclusiveArch: %{rust_arches}
- rust-diffus-derive
ExclusiveArch: %{rust_arches}
- rust-digest
ExclusiveArch: %{rust_arches}
- rust-directories
ExclusiveArch: %{rust_arches}
- rust-directories-next
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-dlib0.4
ExclusiveArch: %{rust_arches}
- rust-dlv-list
ExclusiveArch: %{rust_arches}
- rust-dns-lookup
ExclusiveArch: %{rust_arches}
- rust-dns-parser
ExclusiveArch: %{rust_arches}
- rust-doc-comment
ExclusiveArch: %{rust_arches}
- rust-docmatic
ExclusiveArch: %{rust_arches}
- rust-docopt
ExclusiveArch: %{rust_arches}
- rust-dotenv
ExclusiveArch: %{rust_arches}
- rust-downcast
ExclusiveArch: %{rust_arches}
- rust-downcast-rs
ExclusiveArch: %{rust_arches}
- rust-drg
ExclusiveArch: %{rust_arches}
- rust-dtoa
ExclusiveArch: %{rust_arches}
- rust-dtoa-short
ExclusiveArch: %{rust_arches}
- rust-dua-cli
ExclusiveArch: %{rust_arches}
- rust-duct
ExclusiveArch: %{rust_arches}
- rust-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-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-entities
ExclusiveArch: %{rust_arches}
- rust-enum-as-inner
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-enum-repr
ExclusiveArch: %{rust_arches}
- rust-enum_primitive
ExclusiveArch: %{rust_arches}
- rust-enumflags2
ExclusiveArch: %{rust_arches}
- rust-enumflags2_derive
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-errln
ExclusiveArch: %{rust_arches}
- rust-errno
ExclusiveArch: %{rust_arches}
- rust-error-chain
ExclusiveArch: %{rust_arches}
- rust-escaper
ExclusiveArch: %{rust_arches}
- rust-escargot
ExclusiveArch: %{rust_arches}
- rust-euclid
ExclusiveArch: %{rust_arches}
- rust-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-extend
ExclusiveArch: %{rust_arches}
- rust-extprim
ExclusiveArch: %{rust_arches}
- rust-extprim_literals_macros
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-fallible_collections
ExclusiveArch: %{rust_arches}
- rust-fancy-regex
ExclusiveArch: %{rust_arches}
- rust-fastrand
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-coreos-pinger
ExclusiveArch: %{rust_arches}
- rust-fedora-update-feedback
ExclusiveArch: %{rust_arches}
- rust-feed-rs
ExclusiveArch: %{rust_arches}
- rust-feedbin_api
ExclusiveArch: %{rust_arches}
- rust-feedly_api
ExclusiveArch: %{rust_arches}
- rust-femme
ExclusiveArch: %{rust_arches}
- rust-fern
ExclusiveArch: %{rust_arches}
- rust-fever_api
ExclusiveArch: %{rust_arches}
- rust-ffsend
ExclusiveArch: %{rust_arches}
- rust-ffsend-api
ExclusiveArch: %{rust_arches}
- rust-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-fixed
ExclusiveArch: %{rust_arches}
- rust-fixedbitset
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-fragile
ExclusiveArch: %{rust_arches}
- rust-freetype
ExclusiveArch: %{rust_arches}
- rust-freetype-rs
ExclusiveArch: %{rust_arches}
- rust-freetype-sys
ExclusiveArch: %{rust_arches}
- rust-fs-set-times
ExclusiveArch: %{rust_arches}
- rust-fs2
ExclusiveArch: %{rust_arches}
- rust-fs_extra
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-genmesh
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-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-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-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-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.9
ExclusiveArch: %{rust_arches}
- rust-hashlink
ExclusiveArch: %{rust_arches}
- rust-headers
ExclusiveArch: %{rust_arches}
- rust-headers-core
ExclusiveArch: %{rust_arches}
- rust-headers-derive
ExclusiveArch: %{rust_arches}
- rust-heapsize
ExclusiveArch: %{rust_arches}
- rust-heatseeker
ExclusiveArch: %{rust_arches}
- rust-heck
ExclusiveArch: %{rust_arches}
- rust-heck0.3
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-hmac
ExclusiveArch: %{rust_arches}
- rust-home
ExclusiveArch: %{rust_arches}
- rust-horrorshow
ExclusiveArch: %{rust_arches}
- rust-hostname
ExclusiveArch: %{rust_arches}
- rust-hostname-validator
ExclusiveArch: %{rust_arches}
- rust-hound
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-ident_case
ExclusiveArch: %{rust_arches}
- rust-idna
ExclusiveArch: %{rust_arches}
- rust-idna0.1
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-image-roll
ExclusiveArch: %{rust_arches}
- rust-imgref
ExclusiveArch: %{rust_arches}
- rust-imgui
ExclusiveArch: %{rust_arches}
- rust-imgui-sys
ExclusiveArch: %{rust_arches}
- rust-imgui-winit-support
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-inferno
ExclusiveArch: %{rust_arches}
- rust-inflate
ExclusiveArch: %{rust_arches}
- rust-inotify
ExclusiveArch: %{rust_arches}
- rust-inotify-sys
ExclusiveArch: %{rust_arches}
- rust-input_buffer
ExclusiveArch: %{rust_arches}
- rust-insta
ExclusiveArch: %{rust_arches}
- rust-instant
ExclusiveArch: %{rust_arches}
- rust-interpolate_name
ExclusiveArch: %{rust_arches}
- rust-intervaltree
ExclusiveArch: %{rust_arches}
- rust-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-io-extras
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_debug
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-javascriptcore-rs
ExclusiveArch: %{rust_arches}
- rust-javascriptcore-rs-sys
ExclusiveArch: %{rust_arches}
- rust-jetscii
ExclusiveArch: %{rust_arches}
- rust-jieba-rs
ExclusiveArch: %{rust_arches}
- rust-jobserver
ExclusiveArch: %{rust_arches}
- rust-josekit
ExclusiveArch: %{rust_arches}
- rust-jpeg-decoder
ExclusiveArch: %{rust_arches}
- rust-jql
ExclusiveArch: %{rust_arches}
- rust-js-sys
ExclusiveArch: %{rust_arches}
- rust-js_int
ExclusiveArch: %{rust_arches}
- rust-json
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-kv-log-macro
ExclusiveArch: %{rust_arches}
- rust-lab
ExclusiveArch: %{rust_arches}
- rust-lalrpop
ExclusiveArch: %{rust_arches}
- rust-lalrpop-util
ExclusiveArch: %{rust_arches}
- rust-language-tags
ExclusiveArch: %{rust_arches}
- rust-lazy-init
ExclusiveArch: %{rust_arches}
- rust-lazy_static
ExclusiveArch: %{rust_arches}
- rust-lazycell
ExclusiveArch: %{rust_arches}
- rust-leb128
ExclusiveArch: %{rust_arches}
- rust-lewton
ExclusiveArch: %{rust_arches}
- rust-lexical-core
ExclusiveArch: %{rust_arches}
- rust-lexiclean
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-libdeflate-sys
ExclusiveArch: %{rust_arches}
- rust-libdeflater
ExclusiveArch: %{rust_arches}
- rust-libflate
ExclusiveArch: %{rust_arches}
- rust-libflate_lz77
ExclusiveArch: %{rust_arches}
- rust-libgit2-sys
ExclusiveArch: %{rust_arches}
- rust-libhandy
ExclusiveArch: %{rust_arches}
- rust-libhandy-sys
ExclusiveArch: %{rust_arches}
- rust-libloading
ExclusiveArch: %{rust_arches}
- rust-libloading0.6
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-libslirp
ExclusiveArch: %{rust_arches}
- rust-libslirp-sys
ExclusiveArch: %{rust_arches}
- rust-libsqlite3-sys
ExclusiveArch: %{rust_arches}
- rust-libssh2-sys
ExclusiveArch: %{rust_arches}
- rust-libsystemd
ExclusiveArch: %{rust_arches}
- rust-libsystemd-sys
ExclusiveArch: %{rust_arches}
- rust-libudev
ExclusiveArch: %{rust_arches}
- rust-libudev-sys
ExclusiveArch: %{rust_arches}
- rust-libwebp
ExclusiveArch: %{rust_arches}
- rust-libwebp-sys2
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-locale
ExclusiveArch: %{rust_arches}
- rust-locale_config
ExclusiveArch: %{rust_arches}
- rust-lock_api
ExclusiveArch: %{rust_arches}
- rust-lockfree
ExclusiveArch: %{rust_arches}
- rust-log
ExclusiveArch: %{rust_arches}
- rust-log-mdc
ExclusiveArch: %{rust_arches}
- rust-log-panics
ExclusiveArch: %{rust_arches}
- rust-log0.3
ExclusiveArch: %{rust_arches}
- rust-log4rs
ExclusiveArch: %{rust_arches}
- rust-loggerv
ExclusiveArch: %{rust_arches}
- rust-loopdev
ExclusiveArch: %{rust_arches}
- rust-lru-cache
ExclusiveArch: %{rust_arches}
- rust-lscolors
ExclusiveArch: %{rust_arches}
- rust-lsd
ExclusiveArch: %{rust_arches}
- rust-lzma-sys
ExclusiveArch: %{rust_arches}
- rust-lzw
ExclusiveArch: %{rust_arches}
- rust-mac
ExclusiveArch: %{rust_arches}
- rust-macro-attr
ExclusiveArch: %{rust_arches}
- rust-macroquad_macro
ExclusiveArch: %{rust_arches}
- rust-madvr_parse
ExclusiveArch: %{rust_arches}
- rust-magic-crypt
ExclusiveArch: %{rust_arches}
- rust-maildir
ExclusiveArch: %{rust_arches}
- rust-mailparse
ExclusiveArch: %{rust_arches}
- rust-man
ExclusiveArch: %{rust_arches}
- rust-maplit
ExclusiveArch: %{rust_arches}
- rust-markup5ever
ExclusiveArch: %{rust_arches}
- rust-markup5ever_rcdom
ExclusiveArch: %{rust_arches}
- rust-match_cfg
ExclusiveArch: %{rust_arches}
- rust-matches
ExclusiveArch: %{rust_arches}
- rust-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-md5
ExclusiveArch: %{rust_arches}
- rust-mdl
ExclusiveArch: %{rust_arches}
- rust-memchr
ExclusiveArch: %{rust_arches}
- rust-memmap
ExclusiveArch: %{rust_arches}
- rust-memmap2
ExclusiveArch: %{rust_arches}
- rust-memmap2_0.1
ExclusiveArch: %{rust_arches}
- rust-memoffset
ExclusiveArch: %{rust_arches}
- rust-memoffset0.5
ExclusiveArch: %{rust_arches}
- rust-memsec
ExclusiveArch: %{rust_arches}
- rust-migrations_internals
ExclusiveArch: %{rust_arches}
- rust-migrations_macros
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-miniflux_api
ExclusiveArch: %{rust_arches}
- rust-minify-html
ExclusiveArch: %{rust_arches}
- rust-minimal-lexical
ExclusiveArch: %{rust_arches}
- rust-minimp3
ExclusiveArch: %{rust_arches}
- rust-minimp3-sys
ExclusiveArch: %{rust_arches}
- rust-miniz-sys
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide0.3
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide_c_api
ExclusiveArch: %{rust_arches}
- rust-mint
ExclusiveArch: %{rust_arches}
- rust-mio
ExclusiveArch: %{rust_arches}
- rust-mio-extras
ExclusiveArch: %{rust_arches}
- rust-mio-uds
ExclusiveArch: %{rust_arches}
- rust-mio0.6
ExclusiveArch: %{rust_arches}
- rust-mktemp
ExclusiveArch: %{rust_arches}
- rust-mnt
ExclusiveArch: %{rust_arches}
- rust-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-mp4parse
ExclusiveArch: %{rust_arches}
- rust-msgbox
ExclusiveArch: %{rust_arches}
- rust-muldiv
ExclusiveArch: %{rust_arches}
- rust-multimap
ExclusiveArch: %{rust_arches}
- rust-multipart
ExclusiveArch: %{rust_arches}
- rust-mustache
ExclusiveArch: %{rust_arches}
- rust-nalgebra
ExclusiveArch: %{rust_arches}
- rust-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-news-flash
ExclusiveArch: %{rust_arches}
- rust-newsblur_api
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-no-panic
ExclusiveArch: %{rust_arches}
- rust-nodrop
ExclusiveArch: %{rust_arches}
- rust-nom
ExclusiveArch: %{rust_arches}
- rust-nom4
ExclusiveArch: %{rust_arches}
- rust-nom5
ExclusiveArch: %{rust_arches}
- rust-nom6
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-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-number_prefix
ExclusiveArch: %{rust_arches}
- rust-numtoa
ExclusiveArch: %{rust_arches}
- rust-oauth2
ExclusiveArch: %{rust_arches}
- rust-obfstr
ExclusiveArch: %{rust_arches}
- rust-obj
ExclusiveArch: %{rust_arches}
- rust-object
ExclusiveArch: %{rust_arches}
- rust-odds
ExclusiveArch: %{rust_arches}
- rust-ogg
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-probe
ExclusiveArch: %{rust_arches}
- rust-openssl-sys
ExclusiveArch: %{rust_arches}
- rust-opml
ExclusiveArch: %{rust_arches}
- rust-ord_subset
ExclusiveArch: %{rust_arches}
- rust-ordered-float
ExclusiveArch: %{rust_arches}
- rust-ordered-multimap
ExclusiveArch: %{rust_arches}
- rust-os_info
ExclusiveArch: %{rust_arches}
- rust-os_pipe
ExclusiveArch: %{rust_arches}
- rust-os_str_bytes
ExclusiveArch: %{rust_arches}
- rust-os_type
ExclusiveArch: %{rust_arches}
- rust-osmesa-sys
ExclusiveArch: %{rust_arches}
- rust-osstrtools
ExclusiveArch: %{rust_arches}
- rust-ostree
ExclusiveArch: %{rust_arches}
- rust-ostree-sys
ExclusiveArch: %{rust_arches}
- rust-ouroboros
ExclusiveArch: %{rust_arches}
- rust-ouroboros_macro
ExclusiveArch: %{rust_arches}
- rust-overload
ExclusiveArch: %{rust_arches}
- rust-owned-alloc
ExclusiveArch: %{rust_arches}
- rust-owned_ttf_parser
ExclusiveArch: %{rust_arches}
- rust-owning_ref
ExclusiveArch: %{rust_arches}
- rust-oxipng
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-client
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-parity-wasm
ExclusiveArch: %{rust_arches}
- rust-parking
ExclusiveArch: %{rust_arches}
- rust-parking_lot
ExclusiveArch: %{rust_arches}
- rust-parking_lot_core
ExclusiveArch: %{rust_arches}
- rust-parse-zoneinfo
ExclusiveArch: %{rust_arches}
- rust-parse_cfg
ExclusiveArch: %{rust_arches}
- rust-parsec-client
ExclusiveArch: %{rust_arches}
- rust-parsec-interface
ExclusiveArch: %{rust_arches}
- rust-partial-io
ExclusiveArch: %{rust_arches}
- rust-partition-identity
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-phf
ExclusiveArch: %{rust_arches}
- rust-phf0.7
ExclusiveArch: %{rust_arches}
- rust-phf_codegen
ExclusiveArch: %{rust_arches}
- rust-phf_codegen0.7
ExclusiveArch: %{rust_arches}
- rust-phf_generator
ExclusiveArch: %{rust_arches}
- rust-phf_generator0.7
ExclusiveArch: %{rust_arches}
- rust-phf_macros
ExclusiveArch: %{rust_arches}
- rust-phf_macros0.7
ExclusiveArch: %{rust_arches}
- rust-phf_shared
ExclusiveArch: %{rust_arches}
- rust-phf_shared0.7
ExclusiveArch: %{rust_arches}
- rust-picky-asn1
ExclusiveArch: %{rust_arches}
- rust-picky-asn1-der
ExclusiveArch: %{rust_arches}
- rust-picky-asn1-x509
ExclusiveArch: %{rust_arches}
- rust-pico-args
ExclusiveArch: %{rust_arches}
- rust-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-pkcs1
ExclusiveArch: %{rust_arches}
- rust-pkcs11
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-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-posish
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-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-procedural-masquerade
ExclusiveArch: %{rust_arches}
- rust-process_control
ExclusiveArch: %{rust_arches}
- rust-process_path
ExclusiveArch: %{rust_arches}
- rust-procfs
ExclusiveArch: %{rust_arches}
- rust-procs
ExclusiveArch: %{rust_arches}
- rust-progress-streams
ExclusiveArch: %{rust_arches}
- rust-prometheus
ExclusiveArch: %{rust_arches}
- rust-proptest
ExclusiveArch: %{rust_arches}
- rust-proptest-derive
ExclusiveArch: %{rust_arches}
- rust-proptest0.10
ExclusiveArch: %{rust_arches}
- rust-prost
ExclusiveArch: %{rust_arches}
- rust-prost-build
ExclusiveArch: %{rust_arches}
- rust-prost-derive
ExclusiveArch: %{rust_arches}
- rust-prost-types
ExclusiveArch: %{rust_arches}
- rust-protobuf
ExclusiveArch: %{rust_arches}
- rust-protobuf-codegen
ExclusiveArch: %{rust_arches}
- rust-protobuf-codegen-pure
ExclusiveArch: %{rust_arches}
- rust-protoc
ExclusiveArch: %{rust_arches}
- rust-protoc-rust
ExclusiveArch: %{rust_arches}
- rust-psa-crypto
ExclusiveArch: %{rust_arches}
- rust-psa-crypto-sys
ExclusiveArch: %{rust_arches}
- rust-psd
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-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-quad-rand
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.20
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-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-radix64
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_isaac0.2
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-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-readability-fork
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-regalloc
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-rental
ExclusiveArch: %{rust_arches}
- rust-rental-impl
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-restson
ExclusiveArch: %{rust_arches}
- rust-retry
ExclusiveArch: %{rust_arches}
- rust-rgb
ExclusiveArch: %{rust_arches}
- rust-ring
ExclusiveArch: %{rust_arches}
- rust-ripgrep
ExclusiveArch: %{rust_arches}
- rust-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-rodio
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-rudo
ExclusiveArch: %{rust_arches}
- rust-ruma
ExclusiveArch: %{rust_arches}
- rust-ruma-api
ExclusiveArch: %{rust_arches}
- rust-ruma-api-macros
ExclusiveArch: %{rust_arches}
- rust-ruma-appservice-api
ExclusiveArch: %{rust_arches}
- rust-ruma-client-api
ExclusiveArch: %{rust_arches}
- rust-ruma-common
ExclusiveArch: %{rust_arches}
- rust-ruma-events-macros
ExclusiveArch: %{rust_arches}
- rust-ruma-federation-api
ExclusiveArch: %{rust_arches}
- rust-ruma-identifiers
ExclusiveArch: %{rust_arches}
- rust-ruma-identifiers-macros
ExclusiveArch: %{rust_arches}
- rust-ruma-identifiers-validation
ExclusiveArch: %{rust_arches}
- rust-ruma-identity-service-api
ExclusiveArch: %{rust_arches}
- rust-ruma-push-gateway-api
ExclusiveArch: %{rust_arches}
- rust-ruma-serde
ExclusiveArch: %{rust_arches}
- rust-ruma-serde-macros
ExclusiveArch: %{rust_arches}
- rust-ruma-signatures
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-rustdoc-stripper
ExclusiveArch: %{rust_arches}
- rust-rustfilt
ExclusiveArch: %{rust_arches}
- rust-rustfix
ExclusiveArch: %{rust_arches}
- rust-rustio
ExclusiveArch: %{rust_arches}
- rust-rustix
ExclusiveArch: %{rust_arches}
- rust-rustls
ExclusiveArch: %{rust_arches}
- rust-rustls-native-certs
ExclusiveArch: %{rust_arches}
- rust-rusttype
ExclusiveArch: %{rust_arches}
- rust-rustversion
ExclusiveArch: %{rust_arches}
- rust-rusty-fork
ExclusiveArch: %{rust_arches}
- rust-rustyline
ExclusiveArch: %{rust_arches}
- rust-rustyline-derive
ExclusiveArch: %{rust_arches}
- rust-ryu
ExclusiveArch: %{rust_arches}
- rust-safe-transmute
ExclusiveArch: %{rust_arches}
- rust-safe_arch
ExclusiveArch: %{rust_arches}
- rust-safemem
ExclusiveArch: %{rust_arches}
- rust-salsa20
ExclusiveArch: %{rust_arches}
- rust-same-file
ExclusiveArch: %{rust_arches}
- rust-sapp-kms
ExclusiveArch: %{rust_arches}
- rust-sapp-linux
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-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_repr
ExclusiveArch: %{rust_arches}
- rust-serde_stacker
ExclusiveArch: %{rust_arches}
- rust-serde_test
ExclusiveArch: %{rust_arches}
- rust-serde_url_params
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded0.6
ExclusiveArch: %{rust_arches}
- rust-serde_with
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_test_derive
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-sha1
ExclusiveArch: %{rust_arches}
- rust-sha1collisiondetection
ExclusiveArch: %{rust_arches}
- rust-sha2
ExclusiveArch: %{rust_arches}
- rust-sha3
ExclusiveArch: %{rust_arches}
- rust-shadow-rs
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-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-client-toolkit0.12
ExclusiveArch: %{rust_arches}
- rust-smithay-clipboard
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-soup-sys
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-str_stack
ExclusiveArch: %{rust_arches}
- rust-stratisd_proc_macros
ExclusiveArch: %{rust_arches}
- rust-streaming-stats
ExclusiveArch: %{rust_arches}
- rust-streebog
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-strong-xml
ExclusiveArch: %{rust_arches}
- rust-strong-xml-derive
ExclusiveArch: %{rust_arches}
- rust-strsim
ExclusiveArch: %{rust_arches}
- rust-structopt
ExclusiveArch: %{rust_arches}
- rust-structopt-derive
ExclusiveArch: %{rust_arches}
- rust-structopt-derive0.2
ExclusiveArch: %{rust_arches}
- rust-structopt0.2
ExclusiveArch: %{rust_arches}
- rust-strum
ExclusiveArch: %{rust_arches}
- rust-strum_macros
ExclusiveArch: %{rust_arches}
- rust-subprocess
ExclusiveArch: %{rust_arches}
- rust-subtle
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin-sys
ExclusiveArch: %{rust_arches}
- rust-sval
ExclusiveArch: %{rust_arches}
- rust-sval_derive
ExclusiveArch: %{rust_arches}
- rust-sval_json
ExclusiveArch: %{rust_arches}
- rust-svg
ExclusiveArch: %{rust_arches}
- rust-svg_metadata
ExclusiveArch: %{rust_arches}
- rust-svgfilters
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-sys-info
ExclusiveArch: %{rust_arches}
- rust-sysctl
ExclusiveArch: %{rust_arches}
- rust-sysinfo
ExclusiveArch: %{rust_arches}
- rust-syslog
ExclusiveArch: %{rust_arches}
- rust-system-deps
ExclusiveArch: %{rust_arches}
- rust-system76_ectool
ExclusiveArch: %{rust_arches}
- rust-systemd
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-takeable
ExclusiveArch: %{rust_arches}
- rust-takeable-option
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-tempdir
ExclusiveArch: %{rust_arches}
- rust-tempfile
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-termcolor
ExclusiveArch: %{rust_arches}
- rust-terminal_size
ExclusiveArch: %{rust_arches}
- rust-terminfo
ExclusiveArch: %{rust_arches}
- rust-termion
ExclusiveArch: %{rust_arches}
- rust-termios
ExclusiveArch: %{rust_arches}
- rust-test-assembler
ExclusiveArch: %{rust_arches}
- rust-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.12
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-tinyfiledialogs
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-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-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-tower-layer
ExclusiveArch: %{rust_arches}
- rust-tower-service
ExclusiveArch: %{rust_arches}
- rust-tower-test
ExclusiveArch: %{rust_arches}
- rust-tower-util
ExclusiveArch: %{rust_arches}
- rust-tpm2-policy
ExclusiveArch: %{rust_arches}
- rust-tracing
ExclusiveArch: %{rust_arches}
- rust-tracing-attributes
ExclusiveArch: %{rust_arches}
- rust-tracing-core
ExclusiveArch: %{rust_arches}
- rust-tracing-futures
ExclusiveArch: %{rust_arches}
- rust-traitobject
ExclusiveArch: %{rust_arches}
- rust-trash
ExclusiveArch: %{rust_arches}
- rust-treebitmap
ExclusiveArch: %{rust_arches}
- rust-treeline
ExclusiveArch: %{rust_arches}
- rust-trust-dns-https
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-resolver
ExclusiveArch: %{rust_arches}
- rust-trust-dns-resolver0.19
ExclusiveArch: %{rust_arches}
- rust-trust-dns-rustls
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-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-type-map
ExclusiveArch: %{rust_arches}
- rust-typeable
ExclusiveArch: %{rust_arches}
- rust-typed-arena
ExclusiveArch: %{rust_arches}
- rust-typemap
ExclusiveArch: %{rust_arches}
- rust-typenum
ExclusiveArch: %{rust_arches}
- rust-typetag
ExclusiveArch: %{rust_arches}
- rust-typetag-impl
ExclusiveArch: %{rust_arches}
- rust-tzfile
ExclusiveArch: %{rust_arches}
- rust-ucd-parse
ExclusiveArch: %{rust_arches}
- rust-ucd-trie
ExclusiveArch: %{rust_arches}
- rust-ucd-util
ExclusiveArch: %{rust_arches}
- rust-umask
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-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-unsafe-io
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-cstr
ExclusiveArch: %{rust_arches}
- rust-utf8-ranges
ExclusiveArch: %{rust_arches}
- rust-utf8-width
ExclusiveArch: %{rust_arches}
- rust-utf8parse
ExclusiveArch: %{rust_arches}
- rust-uuid
ExclusiveArch: %{rust_arches}
- rust-uuid0.7
ExclusiveArch: %{rust_arches}
- rust-v_frame
ExclusiveArch: %{rust_arches}
- rust-value-bag
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-vcpkg
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-virtio-bindings
ExclusiveArch: x86_64 aarch64 ppc64le
- rust-vm-memory
ExclusiveArch: x86_64 aarch64 ppc64le
- 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-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-futures
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-macro
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-macro-support
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-shared
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-test
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-test-macro
ExclusiveArch: %{rust_arches}
- rust-wasmer_enumset
ExclusiveArch: %{rust_arches}
- rust-wasmer_enumset_derive
ExclusiveArch: %{rust_arches}
- rust-wasmparser
ExclusiveArch: %{rust_arches}
- rust-wasmtime-cache
ExclusiveArch: %{rust_arches}
- rust-wasmtime-environ
ExclusiveArch: %{rust_arches}
- rust-wasmtime-fiber
ExclusiveArch: %{rust_arches}
- rust-wasmtime-types
ExclusiveArch: %{rust_arches}
- rust-wast
ExclusiveArch: %{rust_arches}
- rust-wat
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-webkit2gtk
ExclusiveArch: %{rust_arches}
- rust-webkit2gtk-sys
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-wildmatch
ExclusiveArch: %{rust_arches}
- rust-winit
ExclusiveArch: %{rust_arches}
- rust-witx
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-xmltree
ExclusiveArch: %{rust_arches}
- rust-xmlwriter
ExclusiveArch: %{rust_arches}
- rust-xz2
ExclusiveArch: %{rust_arches}
- rust-y4m
ExclusiveArch: %{rust_arches}
- rust-yaml-rust
ExclusiveArch: %{rust_arches}
- rust-yaml-rust0.3
ExclusiveArch: %{rust_arches}
- rust-ybaas
ExclusiveArch: %{rust_arches}
- rust-yubibomb
ExclusiveArch: %{rust_arches}
- rust-zbase32
ExclusiveArch: %{rust_arches}
- rust-zbus
ExclusiveArch: %{rust_arches}
- rust-zbus_macros
ExclusiveArch: %{rust_arches}
- rust-zcomponents
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-zopfli
ExclusiveArch: %{rust_arches}
- rust-zoxide
ExclusiveArch: %{rust_arches}
- rust-zram-generator
ExclusiveArch: %{rust_arches}
- rust-zstd
ExclusiveArch: %{rust_arches}
- rust-zstd-safe
ExclusiveArch: %{rust_arches}
- rust-zstd-sys
ExclusiveArch: %{rust_arches}
- rust-zvariant
ExclusiveArch: %{rust_arches}
- rust-zvariant_derive
ExclusiveArch: %{rust_arches}
- s390utils
ExclusiveArch: s390 s390x
- safetyblanket
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- sagemath
ExclusiveArch: aarch64 %{ix86} x86_64 ppc sparcv9
- sbcl
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- sbd
ExclusiveArch: i686 x86_64 s390x aarch64 ppc64le
- sbsigntools
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- 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
- servicelog
ExclusiveArch: ppc %{power64}
- sgabios
ExclusiveArch: %{ix86} x86_64
- sharpfont
ExclusiveArch: %mono_arches
- sharpziplib
ExclusiveArch: %{mono_arches}
- shim
ExclusiveArch: %{efi}
- shim-unsigned-aarch64
ExclusiveArch: aarch64
- shim-unsigned-x64
ExclusiveArch: x86_64
- sigul
ExclusiveArch: x86_64
- skopeo
ExclusiveArch: %{go_arches}
- skychart
ExclusiveArch: %{fpc_arches}
- snapd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- soup-sharp
ExclusiveArch: %{mono_arches}
- sparkleshare
ExclusiveArch: %{mono_arches}
- spicctrl
ExclusiveArch: %{ix86} x86_64
- spice
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- springlobby
ExclusiveArch: %{ix86} x86_64
- squeekboard
ExclusiveArch: %{rust_arches}
- startdde
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- statsd
ExclusiveArch: %{nodejs_arches} noarch
- stratis-cli
ExclusiveArch: %{rust_arches} noarch
- stratisd
ExclusiveArch: %{rust_arches}
ExclusiveArch: ${rust_arches}
- stripesnoop
ExclusiveArch: %{ix86} x86_64
- supercollider
ExclusiveArch: %{qt5_qtwebengine_arches}
- supermin
ExclusiveArch: %{kernel_arches}
- svt-av1
ExclusiveArch: x86_64
- svt-vp9
ExclusiveArch: x86_64
- swift-lang
ExclusiveArch: x86_64 aarch64
- sysbench
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64le s390x
- syslinux
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- system76-keyboard-configurator
ExclusiveArch: %{rust_arches}
- taglib-sharp
ExclusiveArch: %{mono_arches}
- tarantool
ExclusiveArch: %{ix86} x86_64
- tboot
ExclusiveArch: %{ix86} x86_64
- tdlib
ExclusiveArch: x86_64
- templates_parser
ExclusiveArch: %GPRbuild_arches
- ternimal
ExclusiveArch: %{rust_arches}
- testcloud
ExclusiveArch: %{kernel_arches} noarch
- themonospot-base
ExclusiveArch: %mono_arches
- themonospot-console
ExclusiveArch: %mono_arches
- themonospot-gui-gtk
ExclusiveArch: %mono_arches
- themonospot-plugin-avi
ExclusiveArch: %mono_arches
- themonospot-plugin-mkv
ExclusiveArch: %mono_arches
- thermald
ExclusiveArch: %{ix86} x86_64
- tilix
ExclusiveArch: %{ldc_arches}
- tmux-top
ExclusiveArch: %{go_arches}
- tomboy
ExclusiveArch: %{mono_arches}
- topojson-client
ExclusiveArch: %{nodejs_arches} noarch
- topojson-server
ExclusiveArch: %{nodejs_arches} noarch
- topojson-simplify
ExclusiveArch: %{nodejs_arches} noarch
- torbrowser-launcher
ExclusiveArch: %{ix86} x86_64
- tuned-profiles-nfv-host-bin
ExclusiveArch: %{ix86} x86_64
- uClibc
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
- ucx
ExclusiveArch: aarch64 ppc64le x86_64
- uglify-js
ExclusiveArch: %{nodejs_arches} noarch
- unetbootin
ExclusiveArch: %{ix86} x86_64
- 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
- vim-go
ExclusiveArch: %{?golang_arches}%{!?golang_arches:%{ix86} x86_64 %{arm}}
- virt-p2v
ExclusiveArch: x86_64
- virt-v2v
ExclusiveArch: x86_64
- virtualbox-guest-additions
ExclusiveArch: i686 x86_64
- vkd3d
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- vmaf
ExclusiveArch: x86_64
- vmemcache
ExclusiveArch: x86_64 ppc64 ppc64le s390x aarch64
- vrq
ExclusiveArch: %{ix86} x86_64
- warsow
ExclusiveArch: %{ix86} x86_64 %{arm}
- warsow-data
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{ix86} x86_64 %{arm}
- webkit2-sharp
ExclusiveArch: %mono_arches
- wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: %{ix86} %{arm}
- wine-dxvk
ExclusiveArch: %{ix86} x86_64
- winetricks
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- wxMaxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
- x2goclient
ExclusiveArch: x86_64
- xe-guest-utilities-latest
ExclusiveArch: %{ix86} x86_64
- xen
ExclusiveArch: %{ix86} x86_64 armv7hl aarch64
- xmlada
ExclusiveArch: %{GPRbuild_arches}
- xorg-x11-drv-armsoc
ExclusiveArch: %{arm} aarch64
- xorg-x11-drv-intel
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-openchrome
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vesa
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vmware
ExclusiveArch: %{ix86} x86_64 ia64
- xsp
ExclusiveArch: %mono_arches
- yarnpkg
ExclusiveArch: %{nodejs_arches} noarch
- zeal
ExclusiveArch: %{qt5_qtwebengine_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}
2 years, 3 months
Architecture specific change in rpms/java-1.8.0-openjdk.git
by githook-noreply@fedoraproject.org
The package rpms/java-1.8.0-openjdk.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/java-1.8.0-openjdk.git/commit/?id....
Change:
+%ifarch %{bootstrap_arches}
Thanks.
Full change:
============
commit 68ea82746165b3bc2082252ffc562d867746a1b0
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Dec 6 00:42:17 2021 +0000
Update to aarch64-shenandoah-jdk8u322-b06
Update release notes for 8u322-b06.
Require tzdata 2021e as of JDK-8275766.
Update tarball generation script to use git following shenandoah-jdk8u's move to github
Turn off bootstrapping for slow debug builds, which are particularly slow on ppc64le.
diff --git a/.gitignore b/.gitignore
index d5493bd..c3d10c5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -246,3 +246,9 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b05-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b05-shenandoah-merge-2021-10-07-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b07-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b01-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b02-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b03-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b04-4curve.tar.xz
+/openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b05-4curve.tar.xz
+/openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b06-4curve.tar.xz
diff --git a/NEWS b/NEWS
index ef9db68..e911b13 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,132 @@ Key:
JDK-X - https://bugs.openjdk.java.net/browse/JDK-X
CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
+New in release OpenJDK 8u322 (2022-01-18):
+===========================================
+Live versions of these release notes can be found at:
+ * https://bitly.com/openjdk8u322
+ * https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u322.txt
+
+* Security fixes
+ - JDK-8264934, CVE-2022-21248: Enhance cross VM serialization
+ - JDK-8268488: More valuable DerValues
+ - JDK-8268494: Better inlining of inlined interfaces
+ - JDK-8268512: More content for ContentInfo
+ - JDK-8268795: Enhance digests of Jar files
+ - JDK-8268801: Improve PKCS attribute handling
+ - JDK-8268813, CVE-2022-21283: Better String matching
+ - JDK-8269151: Better construction of EncryptedPrivateKeyInfo
+ - JDK-8269944: Better HTTP transport redux
+ - JDK-8270392, CVE-2022-21293: Improve String constructions
+ - JDK-8270416, CVE-2022-21294: Enhance construction of Identity maps
+ - JDK-8270492, CVE-2022-21282: Better resolution of URIs
+ - JDK-8270498, CVE-2022-21296: Improve SAX Parser configuration management
+ - JDK-8270646, CVE-2022-21299: Improved scanning of XML entities
+ - JDK-8271962: Better TrueType font loading
+ - JDK-8271968: Better canonical naming
+ - JDK-8271987: Manifest improved manifest entries
+ - JDK-8272014, CVE-2022-21305: Better array indexing
+ - JDK-8272026, CVE-2022-21340: Verify Jar Verification
+ - JDK-8272236, CVE-2022-21341: Improve serial forms for transport
+ - JDK-8272272: Enhance jcmd communication
+ - JDK-8272462: Enhance image handling
+ - JDK-8273290: Enhance sound handling
+ - JDK-8273748, CVE-2022-21349: Improve Solaris font rendering
+ - JDK-8273756, CVE-2022-21360: Enhance BMP image support
+ - JDK-8273838, CVE-2022-21365: Enhanced BMP processing
+* Other changes
+ - JDK-6801613: Cross-platform pageDialog and printDialog top margin entry broken
+ - JDK-8011541: [TEST_BUG] closed/javax/swing/plaf/metal/MetalUtils/bug6190373.java fails NPE since 7u25b03
+ - JDK-8025430: [TEST_BUG] javax/swing/JEditorPane/5076514/bug5076514.java failed since jdk8b108
+ - JDK-8041928: MouseEvent.getModifiersEx gives wrong result
+ - JDK-8042199: The build of J2DBench via makefile is broken after the JDK-8005402
+ - JDK-8044365: (dc) MulticastSendReceiveTests.java failing with ENOMEM when joining group (OS X 10.9)
+ - JDK-8048021: Remove @version tag in jaxp repo
+ - JDK-8049348: compiler/intrinsics/bmi/verifycode tests on lzcnt and tzcnt use incorrect assumption about REXB prefix usage
+ - JDK-8060027: Tests java/beans/XMLEncoder/Test4903007.java and java/beans/XMLEncoder/java_awt_GridBagLayout.java
+ - JDK-8066588: javax/management/remote/mandatory/connection/RMIConnector_NPETest.java fails to compile
+ - JDK-8066652: Default TimeZone is GMT not local if user.timezone is invalid on Mac OS
+ - JDK-8069034: gc/g1/TestEagerReclaimHumongousRegionsClearMarkBits.java nightly failure
+ - JDK-8077590: windows_i586_6.2-product-c2-runThese8_Xcomp_vm failing after win compiler upgrade
+ - JDK-8080287: The image of BufferedImage.TYPE_INT_ARGB and BufferedImage.TYPE_INT_ARGB_PRE is blank
+ - JDK-8140329: [TEST_BUG] test FullScreenAfterSplash.java failed because image was not generated
+ - JDK-8140472: java/net/ipv6tests/TcpTest.java failed intermittently with java.net.BindException: Address already in use: NET_Bind
+ - JDK-8147051: StaxEntityResolverWrapper should create StaxXMLInputSource with a resolver indicator
+ - JDK-8148915: Intermittent failures of bug6400879.java
+ - JDK-8176837: SunPKCS11 provider needs to check more details on PKCS11 Mechanism
+ - JDK-8177393: Result of RescaleOp for 4BYTE_ABGR images may be 25% black
+ - JDK-8177536: Avoid Apple Peer-to-Peer interfaces in networking tests
+ - JDK-8182036: Load from initializing arraycopy uses wrong memory state
+ - JDK-8183369: RFC unconformity of HttpURLConnection with proxy
+ - JDK-8183543: Aarch64: C2 compilation often fails with "failed spill-split-recycle sanity check"
+ - JDK-8187450: JNI local refs exceeds capacity warning in NetworkInterface::getAll
+ - JDK-8187649: ArrayIndexOutOfBoundsException in java.util.JapaneseImperialCalendar
+ - JDK-8190482: InnocuousThread creation should not require the caller to possess enableContextClassLoaderOverride
+ - JDK-8190793: Httpserver does not detect truncated request body
+ - JDK-8196572: Tests ColConvCCMTest.java and MTColConvTest.java fail
+ - JDK-8202788: Explicitly reclaim cached thread-local direct buffers at thread exit
+ - JDK-8210058: Algorithmic Italic font leans opposite angle in Printing
+ - JDK-8220150: macos10.14 Mojave returns anti-aliased glyphs instead of aliased B&W glyphs
+ - JDK-8225082: Remove IdenTrust certificate that is expiring in September 2021
+ - JDK-8225083: Remove Google certificate that is expiring in December 2021
+ - JDK-8226806: [macOS 10.14] Methods of Java Robot should be called from appropriate thread
+ - JDK-8231254: (fs) Add test for macOS Catalina changes to protect system software
+ - JDK-8231438: [macOS] Dark mode for the desktop is not supported
+ - JDK-8232178: MacVolumesTest failed after upgrade to MacOS Catalina
+ - JDK-8232226: [macos 10.15] test/jdk/java/awt/color/EqualityTest/EqualityTest.java may fail
+ - JDK-8235153: [TESTBUG] [macos 10.15] java/awt/Graphics/DrawImageBG/SystemBgColorTest.java fails
+ - JDK-8236897: Fix the copyright header for pkcs11gcm2.h
+ - JDK-8237499: JFR: Include stack trace in the ThreadStart event
+ - JDK-8239886: Minimal VM build fails after JDK-8237499
+ - JDK-8261397: Try Catch Method Failing to Work When Dividing An Integer By 0
+ - JDK-8262731: [macOS] Exception from "Printable.print" is swallowed during "PrinterJob.print"
+ - JDK-8272342: [TEST_BUG] java/awt/print/PrinterJob/PageDialogMarginTest.java catches all exceptions
+ - JDK-8273308: PatternMatchTest.java fails on CI
+ - JDK-8273342: Null pointer dereference in classFileParser.cpp:2817
+ - JDK-8273826: Correct Manifest file name and NPE checks
+ - JDK-8273968: JCK javax_xml tests fail in CI
+ - JDK-8274407: (tz) Update Timezone Data to 2021c
+ - JDK-8274467: TestZoneInfo310.java fails with tzdata2021b
+ - JDK-8274468: TimeZoneTest.java fails with tzdata2021b
+ - JDK-8274595: DisableRMIOverHTTPTest failed: connection refused
+ - JDK-8274779: HttpURLConnection: HttpClient and HttpsClient incorrectly check request method when set to POST
+ - JDK-8275766: (tz) Update Timezone Data to 2021e
+ - JDK-8275849: TestZoneInfo310.java fails with tzdata2021e
+ - JDK-8276536: Update TimeZoneNames files to follow the changes made by JDK-8275766
+
+Notes on individual issues:
+===========================
+
+security-libs/java.security:
+
+JDK-8271434: Removed IdenTrust Root Certificate
+===============================================
+The following root certificate from IdenTrust has been removed from
+the `cacerts` keystore:
+
+Alias Name: identrustdstx3 [jdk]
+Distinguished Name: CN=DST Root CA X3, O=Digital Signature Trust Co.
+
+JDK-8272535: Removed Google's GlobalSign Root Certificate
+=========================================================
+The following root certificate from Google has been removed from the
+`cacerts` keystore:
+
+Alias Name: globalsignr2ca [jdk]
+Distinguished Name: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2
+
+core-libs/java.time:
+
+JDK-8274857: Update Timezone Data to 2021c
+===========================================
+IANA Time Zone Database, on which JDK's Date/Time libraries are based,
+has been updated to version 2021c
+(https://mm.icann.org/pipermail/tz-announce/2021-October/000067.html). Note
+that with this update, some of the time zone rules prior to the year
+1970 have been modified according to the changes which were introduced
+with 2021b. For more detail, refer to the announcement of 2021b
+(https://mm.icann.org/pipermail/tz-announce/2021-September/000066.html)
+
New in release OpenJDK 8u312 (2021-10-19):
===========================================
Live versions of these release notes can be found at:
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index c6f0756..61aad1f 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -7,9 +7,9 @@
# If you want to use a local copy of patch PR3822, set the path to it in the PR3822 variable
#
# In any case you have to set PROJECT_NAME REPO_NAME and VERSION. eg:
-# PROJECT_NAME=jdk8u OR aarch64-port
-# REPO_NAME=jdk8u60 OR jdk8u60
-# VERSION=jdk8u60-b27 OR aarch64-jdk8u65-b17 OR for head, keyword 'tip' should do the job there
+# PROJECT_NAME=openjdk
+# REPO_NAME=shenandoah-jdk8u
+# VERSION=HEAD
#
# They are used to create correct name and are used in construction of sources url (unless REPO_ROOT is set)
@@ -40,7 +40,7 @@ fi
set -e
-OPENJDK_URL_DEFAULT=http://hg.openjdk.java.net
+OPENJDK_URL_DEFAULT=https://github.com
COMPRESSION_DEFAULT=xz
# jdk is last for its size
REPOS_DEFAULT="hotspot corba jaxws jaxp langtools nashorn jdk"
@@ -99,7 +99,7 @@ if [ "x$FILE_NAME_ROOT" = "x" ] ; then
echo "No file name root specified; default to ${FILE_NAME_ROOT}"
fi
if [ "x$REPO_ROOT" = "x" ] ; then
- REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}"
+ REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}.git"
echo "No repository root specified; default to ${REPO_ROOT}"
fi;
if [ "x$REPOS" = "x" ] ; then
@@ -123,15 +123,9 @@ mkdir "${FILE_NAME_ROOT}"
pushd "${FILE_NAME_ROOT}"
echo "Cloning ${VERSION} root repository from ${REPO_ROOT}"
-hg clone ${REPO_ROOT} openjdk -r ${VERSION}
+git clone -b ${VERSION} ${REPO_ROOT} openjdk
pushd openjdk
-for subrepo in ${REPOS}
-do
- echo "Cloning ${VERSION} ${subrepo} repository from ${REPO_ROOT}"
- hg clone ${REPO_ROOT}/${subrepo} -r ${VERSION}
-done
-
# UnderlineTaglet.java has a BSD license with a field-of-use restriction, making it non-Free
if [ -d langtools ] ; then
echo "Removing langtools test case with non-Free license"
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 54b103f..77c653c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -86,13 +86,18 @@
%global ppc64be ppc64 ppc64p7
# Set of architectures which support multiple ABIs
%global multilib_arches %{power64} sparc64 x86_64
-# Set of architectures for which we build debug builds
+# Set of architectures for which we build slowdebug builds
%global debug_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64}
+# Set of architectures for which we build fastdebug builds
+%global fastdebug_arches x86_64 ppc64le aarch64
# Set of architectures with a Just-In-Time (JIT) compiler
%global jit_arches %{debug_arches}
+# Set of architectures which use the Zero assembler port (!jit_arches)
+%global zero_arches %{arm} ppc s390 s390x
+# Set of architectures which run a full bootstrap cycle
+%global bootstrap_arches %{jit_arches} %{zero_arches}
# Set of architectures which support SystemTap tapsets
%global systemtap_arches %{jit_arches}
-%global fastdebug_arches x86_64 ppc64le aarch64
# Set of architectures which support the serviceability agent
%global sa_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
# Set of architectures which support class data sharing
@@ -137,12 +142,17 @@
%else
%global fastdebug_build %{nil}
%endif
-%global bootstrap_build 1
# If you disable both builds, then the build fails
# Build and test slowdebug first as it provides the best diagnostics
%global build_loop %{slowdebug_build} %{fastdebug_build} %{normal_build}
+%ifarch %{bootstrap_arches}
+%global bootstrap_build true
+%else
+%global bootstrap_build false
+%endif
+
%global bootstrap_targets images
%global release_targets images docs-zip
%global debug_targets images
@@ -294,9 +304,9 @@
%endif
# note, following three variables are sedded from update_sources if used correctly. Hardcode them rather there.
-%global shenandoah_project aarch64-port
-%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u312-b07
+%global shenandoah_project openjdk
+%global shenandoah_repo shenandoah-jdk8u
+%global shenandoah_revision aarch64-shenandoah-jdk8u322-b06
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -311,7 +321,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1104,8 +1114,8 @@ Requires: ca-certificates
# Require javapackages-filesystem for ownership of /usr/lib/jvm/ and macros
Requires: javapackages-filesystem
# Require zoneinfo data provided by tzdata-java subpackage.
-# 2021a required as of JDK-8260356 in April CPU
-Requires: tzdata-java >= 2021a
+# 2021e required as of JDK-8275766 in January 2022 CPU
+Requires: tzdata-java >= 2021e
# for support of kernel stream control
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools%{?_isa}
@@ -1481,8 +1491,8 @@ BuildRequires: java-1.8.0-openjdk-devel
%ifnarch %{jit_arches}
BuildRequires: libffi-devel
%endif
-# 2021a required as of JDK-8260356 in April CPU
-BuildRequires: tzdata-java >= 2021a
+# 2021e required as of JDK-8275766 in January 2022 CPU
+BuildRequires: tzdata-java >= 2021e
# Earlier versions have a bug in tree vectorization on PPC
BuildRequires: gcc >= 4.8.3-8
@@ -2051,19 +2061,23 @@ installdir=%{installoutputdir -- $suffix}
bootinstalldir=boot${installdir}
# Debug builds don't need same targets as release for
-# build speed-up
-maketargets="%{release_targets}"
+# build speed-up. We also avoid bootstrapping these
+# slower builds.
if echo $debugbuild | grep -q "debug" ; then
maketargets="%{debug_targets}"
+ run_bootstrap=false
+else
+ maketargets="%{release_targets}"
+ run_bootstrap=%{bootstrap_build}
fi
-%if %{bootstrap_build}
-buildjdk ${bootbuilddir} ${bootinstalldir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild}
-buildjdk ${builddir} ${installdir} $(pwd)/${bootinstalldir}/images/%{jdkimage} "${maketargets}" ${debugbuild}
-%{!?with_artifacts:rm -rf ${bootinstalldir}}
-%else
-buildjdk ${builddir} ${installdir} ${systemjdk} "${maketargets}" ${debugbuild}
-%endif
+if ${run_bootstrap} ; then
+ buildjdk ${bootbuilddir} ${bootinstalldir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild}
+ buildjdk ${builddir} ${installdir} $(pwd)/${bootinstalldir}/images/%{jdkimage} "${maketargets}" ${debugbuild}
+ %{!?with_artifacts:rm -rf ${bootinstalldir}}
+else
+ buildjdk ${builddir} ${installdir} ${systemjdk} "${maketargets}" ${debugbuild}
+fi
# Install nss.cfg right away as we will be using the JRE above
export JAVA_HOME=$(pwd)/%{installoutputdir -- $suffix}/images/%{jdkimage}
@@ -2623,6 +2637,13 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Jan 24 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-1
+- Update to aarch64-shenandoah-jdk8u322-b06 (GA)
+- Update release notes for 8u322-b06.
+- Require tzdata 2021e as of JDK-8275766.
+- Update tarball generation script to use git following shenandoah-jdk8u's move to github
+- Turn off bootstrapping for slow debug builds, which are particularly slow on ppc64le.
+
* Wed Nov 03 2021 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.312.b07-2
- Use 'sql:' prefix in nss.fips.cfg as F35+ no longer ship the legacy
secmod.db file as part of nss
diff --git a/sources b/sources
index 32ce1e2..35c822f 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) = c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b07-4curve.tar.xz) = 6da9aab9f456336d73cb41755b9e075c43b21ce54fa208d94295aaeef0dce9e4059740efe87458e131b633c3ab3d6f964a5d2407a76e79dd9b080a5416efd7e7
+SHA512 (openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b06-4curve.tar.xz) = 0f2af8cacb1a4acdca7c1b2d5cc1e0d27f9abf8e05ccf7e8384074ac124132012b15e36abc31b498f746d6f5295530f535a9d9d85a3e45b387728b4ce726ccc7
2 years, 3 months
Architecture specific change in rpms/java-1.8.0-openjdk.git
by githook-noreply@fedoraproject.org
The package rpms/java-1.8.0-openjdk.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/java-1.8.0-openjdk.git/commit/?id....
Change:
+%ifarch %{bootstrap_arches}
Thanks.
Full change:
============
commit 1df9f60904f8e1ac182c80755a94cfca094e8844
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Dec 6 00:42:17 2021 +0000
Update to aarch64-shenandoah-jdk8u322-b06
Update release notes for 8u322-b06.
Require tzdata 2021e as of JDK-8275766.
Update tarball generation script to use git following shenandoah-jdk8u's move to github
Turn off bootstrapping for slow debug builds, which are particularly slow on ppc64le.
diff --git a/.gitignore b/.gitignore
index d5493bd..c3d10c5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -246,3 +246,9 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b05-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b05-shenandoah-merge-2021-10-07-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b07-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b01-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b02-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b03-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b04-4curve.tar.xz
+/openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b05-4curve.tar.xz
+/openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b06-4curve.tar.xz
diff --git a/NEWS b/NEWS
index ef9db68..e911b13 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,132 @@ Key:
JDK-X - https://bugs.openjdk.java.net/browse/JDK-X
CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
+New in release OpenJDK 8u322 (2022-01-18):
+===========================================
+Live versions of these release notes can be found at:
+ * https://bitly.com/openjdk8u322
+ * https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u322.txt
+
+* Security fixes
+ - JDK-8264934, CVE-2022-21248: Enhance cross VM serialization
+ - JDK-8268488: More valuable DerValues
+ - JDK-8268494: Better inlining of inlined interfaces
+ - JDK-8268512: More content for ContentInfo
+ - JDK-8268795: Enhance digests of Jar files
+ - JDK-8268801: Improve PKCS attribute handling
+ - JDK-8268813, CVE-2022-21283: Better String matching
+ - JDK-8269151: Better construction of EncryptedPrivateKeyInfo
+ - JDK-8269944: Better HTTP transport redux
+ - JDK-8270392, CVE-2022-21293: Improve String constructions
+ - JDK-8270416, CVE-2022-21294: Enhance construction of Identity maps
+ - JDK-8270492, CVE-2022-21282: Better resolution of URIs
+ - JDK-8270498, CVE-2022-21296: Improve SAX Parser configuration management
+ - JDK-8270646, CVE-2022-21299: Improved scanning of XML entities
+ - JDK-8271962: Better TrueType font loading
+ - JDK-8271968: Better canonical naming
+ - JDK-8271987: Manifest improved manifest entries
+ - JDK-8272014, CVE-2022-21305: Better array indexing
+ - JDK-8272026, CVE-2022-21340: Verify Jar Verification
+ - JDK-8272236, CVE-2022-21341: Improve serial forms for transport
+ - JDK-8272272: Enhance jcmd communication
+ - JDK-8272462: Enhance image handling
+ - JDK-8273290: Enhance sound handling
+ - JDK-8273748, CVE-2022-21349: Improve Solaris font rendering
+ - JDK-8273756, CVE-2022-21360: Enhance BMP image support
+ - JDK-8273838, CVE-2022-21365: Enhanced BMP processing
+* Other changes
+ - JDK-6801613: Cross-platform pageDialog and printDialog top margin entry broken
+ - JDK-8011541: [TEST_BUG] closed/javax/swing/plaf/metal/MetalUtils/bug6190373.java fails NPE since 7u25b03
+ - JDK-8025430: [TEST_BUG] javax/swing/JEditorPane/5076514/bug5076514.java failed since jdk8b108
+ - JDK-8041928: MouseEvent.getModifiersEx gives wrong result
+ - JDK-8042199: The build of J2DBench via makefile is broken after the JDK-8005402
+ - JDK-8044365: (dc) MulticastSendReceiveTests.java failing with ENOMEM when joining group (OS X 10.9)
+ - JDK-8048021: Remove @version tag in jaxp repo
+ - JDK-8049348: compiler/intrinsics/bmi/verifycode tests on lzcnt and tzcnt use incorrect assumption about REXB prefix usage
+ - JDK-8060027: Tests java/beans/XMLEncoder/Test4903007.java and java/beans/XMLEncoder/java_awt_GridBagLayout.java
+ - JDK-8066588: javax/management/remote/mandatory/connection/RMIConnector_NPETest.java fails to compile
+ - JDK-8066652: Default TimeZone is GMT not local if user.timezone is invalid on Mac OS
+ - JDK-8069034: gc/g1/TestEagerReclaimHumongousRegionsClearMarkBits.java nightly failure
+ - JDK-8077590: windows_i586_6.2-product-c2-runThese8_Xcomp_vm failing after win compiler upgrade
+ - JDK-8080287: The image of BufferedImage.TYPE_INT_ARGB and BufferedImage.TYPE_INT_ARGB_PRE is blank
+ - JDK-8140329: [TEST_BUG] test FullScreenAfterSplash.java failed because image was not generated
+ - JDK-8140472: java/net/ipv6tests/TcpTest.java failed intermittently with java.net.BindException: Address already in use: NET_Bind
+ - JDK-8147051: StaxEntityResolverWrapper should create StaxXMLInputSource with a resolver indicator
+ - JDK-8148915: Intermittent failures of bug6400879.java
+ - JDK-8176837: SunPKCS11 provider needs to check more details on PKCS11 Mechanism
+ - JDK-8177393: Result of RescaleOp for 4BYTE_ABGR images may be 25% black
+ - JDK-8177536: Avoid Apple Peer-to-Peer interfaces in networking tests
+ - JDK-8182036: Load from initializing arraycopy uses wrong memory state
+ - JDK-8183369: RFC unconformity of HttpURLConnection with proxy
+ - JDK-8183543: Aarch64: C2 compilation often fails with "failed spill-split-recycle sanity check"
+ - JDK-8187450: JNI local refs exceeds capacity warning in NetworkInterface::getAll
+ - JDK-8187649: ArrayIndexOutOfBoundsException in java.util.JapaneseImperialCalendar
+ - JDK-8190482: InnocuousThread creation should not require the caller to possess enableContextClassLoaderOverride
+ - JDK-8190793: Httpserver does not detect truncated request body
+ - JDK-8196572: Tests ColConvCCMTest.java and MTColConvTest.java fail
+ - JDK-8202788: Explicitly reclaim cached thread-local direct buffers at thread exit
+ - JDK-8210058: Algorithmic Italic font leans opposite angle in Printing
+ - JDK-8220150: macos10.14 Mojave returns anti-aliased glyphs instead of aliased B&W glyphs
+ - JDK-8225082: Remove IdenTrust certificate that is expiring in September 2021
+ - JDK-8225083: Remove Google certificate that is expiring in December 2021
+ - JDK-8226806: [macOS 10.14] Methods of Java Robot should be called from appropriate thread
+ - JDK-8231254: (fs) Add test for macOS Catalina changes to protect system software
+ - JDK-8231438: [macOS] Dark mode for the desktop is not supported
+ - JDK-8232178: MacVolumesTest failed after upgrade to MacOS Catalina
+ - JDK-8232226: [macos 10.15] test/jdk/java/awt/color/EqualityTest/EqualityTest.java may fail
+ - JDK-8235153: [TESTBUG] [macos 10.15] java/awt/Graphics/DrawImageBG/SystemBgColorTest.java fails
+ - JDK-8236897: Fix the copyright header for pkcs11gcm2.h
+ - JDK-8237499: JFR: Include stack trace in the ThreadStart event
+ - JDK-8239886: Minimal VM build fails after JDK-8237499
+ - JDK-8261397: Try Catch Method Failing to Work When Dividing An Integer By 0
+ - JDK-8262731: [macOS] Exception from "Printable.print" is swallowed during "PrinterJob.print"
+ - JDK-8272342: [TEST_BUG] java/awt/print/PrinterJob/PageDialogMarginTest.java catches all exceptions
+ - JDK-8273308: PatternMatchTest.java fails on CI
+ - JDK-8273342: Null pointer dereference in classFileParser.cpp:2817
+ - JDK-8273826: Correct Manifest file name and NPE checks
+ - JDK-8273968: JCK javax_xml tests fail in CI
+ - JDK-8274407: (tz) Update Timezone Data to 2021c
+ - JDK-8274467: TestZoneInfo310.java fails with tzdata2021b
+ - JDK-8274468: TimeZoneTest.java fails with tzdata2021b
+ - JDK-8274595: DisableRMIOverHTTPTest failed: connection refused
+ - JDK-8274779: HttpURLConnection: HttpClient and HttpsClient incorrectly check request method when set to POST
+ - JDK-8275766: (tz) Update Timezone Data to 2021e
+ - JDK-8275849: TestZoneInfo310.java fails with tzdata2021e
+ - JDK-8276536: Update TimeZoneNames files to follow the changes made by JDK-8275766
+
+Notes on individual issues:
+===========================
+
+security-libs/java.security:
+
+JDK-8271434: Removed IdenTrust Root Certificate
+===============================================
+The following root certificate from IdenTrust has been removed from
+the `cacerts` keystore:
+
+Alias Name: identrustdstx3 [jdk]
+Distinguished Name: CN=DST Root CA X3, O=Digital Signature Trust Co.
+
+JDK-8272535: Removed Google's GlobalSign Root Certificate
+=========================================================
+The following root certificate from Google has been removed from the
+`cacerts` keystore:
+
+Alias Name: globalsignr2ca [jdk]
+Distinguished Name: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2
+
+core-libs/java.time:
+
+JDK-8274857: Update Timezone Data to 2021c
+===========================================
+IANA Time Zone Database, on which JDK's Date/Time libraries are based,
+has been updated to version 2021c
+(https://mm.icann.org/pipermail/tz-announce/2021-October/000067.html). Note
+that with this update, some of the time zone rules prior to the year
+1970 have been modified according to the changes which were introduced
+with 2021b. For more detail, refer to the announcement of 2021b
+(https://mm.icann.org/pipermail/tz-announce/2021-September/000066.html)
+
New in release OpenJDK 8u312 (2021-10-19):
===========================================
Live versions of these release notes can be found at:
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index c6f0756..61aad1f 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -7,9 +7,9 @@
# If you want to use a local copy of patch PR3822, set the path to it in the PR3822 variable
#
# In any case you have to set PROJECT_NAME REPO_NAME and VERSION. eg:
-# PROJECT_NAME=jdk8u OR aarch64-port
-# REPO_NAME=jdk8u60 OR jdk8u60
-# VERSION=jdk8u60-b27 OR aarch64-jdk8u65-b17 OR for head, keyword 'tip' should do the job there
+# PROJECT_NAME=openjdk
+# REPO_NAME=shenandoah-jdk8u
+# VERSION=HEAD
#
# They are used to create correct name and are used in construction of sources url (unless REPO_ROOT is set)
@@ -40,7 +40,7 @@ fi
set -e
-OPENJDK_URL_DEFAULT=http://hg.openjdk.java.net
+OPENJDK_URL_DEFAULT=https://github.com
COMPRESSION_DEFAULT=xz
# jdk is last for its size
REPOS_DEFAULT="hotspot corba jaxws jaxp langtools nashorn jdk"
@@ -99,7 +99,7 @@ if [ "x$FILE_NAME_ROOT" = "x" ] ; then
echo "No file name root specified; default to ${FILE_NAME_ROOT}"
fi
if [ "x$REPO_ROOT" = "x" ] ; then
- REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}"
+ REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}.git"
echo "No repository root specified; default to ${REPO_ROOT}"
fi;
if [ "x$REPOS" = "x" ] ; then
@@ -123,15 +123,9 @@ mkdir "${FILE_NAME_ROOT}"
pushd "${FILE_NAME_ROOT}"
echo "Cloning ${VERSION} root repository from ${REPO_ROOT}"
-hg clone ${REPO_ROOT} openjdk -r ${VERSION}
+git clone -b ${VERSION} ${REPO_ROOT} openjdk
pushd openjdk
-for subrepo in ${REPOS}
-do
- echo "Cloning ${VERSION} ${subrepo} repository from ${REPO_ROOT}"
- hg clone ${REPO_ROOT}/${subrepo} -r ${VERSION}
-done
-
# UnderlineTaglet.java has a BSD license with a field-of-use restriction, making it non-Free
if [ -d langtools ] ; then
echo "Removing langtools test case with non-Free license"
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 7b01ed0..df79314 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -86,13 +86,18 @@
%global ppc64be ppc64 ppc64p7
# Set of architectures which support multiple ABIs
%global multilib_arches %{power64} sparc64 x86_64
-# Set of architectures for which we build debug builds
+# Set of architectures for which we build slowdebug builds
%global debug_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64}
+# Set of architectures for which we build fastdebug builds
+%global fastdebug_arches x86_64 ppc64le aarch64
# Set of architectures with a Just-In-Time (JIT) compiler
%global jit_arches %{debug_arches}
+# Set of architectures which use the Zero assembler port (!jit_arches)
+%global zero_arches %{arm} ppc s390 s390x
+# Set of architectures which run a full bootstrap cycle
+%global bootstrap_arches %{jit_arches} %{zero_arches}
# Set of architectures which support SystemTap tapsets
%global systemtap_arches %{jit_arches}
-%global fastdebug_arches x86_64 ppc64le aarch64
# Set of architectures which support the serviceability agent
%global sa_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
# Set of architectures which support class data sharing
@@ -137,12 +142,17 @@
%else
%global fastdebug_build %{nil}
%endif
-%global bootstrap_build 1
# If you disable both builds, then the build fails
# Build and test slowdebug first as it provides the best diagnostics
%global build_loop %{slowdebug_build} %{fastdebug_build} %{normal_build}
+%ifarch %{bootstrap_arches}
+%global bootstrap_build true
+%else
+%global bootstrap_build false
+%endif
+
%global bootstrap_targets images
%global release_targets images docs-zip
%global debug_targets images
@@ -294,9 +304,9 @@
%endif
# note, following three variables are sedded from update_sources if used correctly. Hardcode them rather there.
-%global shenandoah_project aarch64-port
-%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u312-b07
+%global shenandoah_project openjdk
+%global shenandoah_repo shenandoah-jdk8u
+%global shenandoah_revision aarch64-shenandoah-jdk8u322-b06
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -311,7 +321,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1104,8 +1114,8 @@ Requires: ca-certificates
# Require javapackages-filesystem for ownership of /usr/lib/jvm/ and macros
Requires: javapackages-filesystem
# Require zoneinfo data provided by tzdata-java subpackage.
-# 2021a required as of JDK-8260356 in April CPU
-Requires: tzdata-java >= 2021a
+# 2021e required as of JDK-8275766 in January 2022 CPU
+Requires: tzdata-java >= 2021e
# for support of kernel stream control
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools%{?_isa}
@@ -1481,8 +1491,8 @@ BuildRequires: java-1.8.0-openjdk-devel
%ifnarch %{jit_arches}
BuildRequires: libffi-devel
%endif
-# 2021a required as of JDK-8260356 in April CPU
-BuildRequires: tzdata-java >= 2021a
+# 2021e required as of JDK-8275766 in January 2022 CPU
+BuildRequires: tzdata-java >= 2021e
# Earlier versions have a bug in tree vectorization on PPC
BuildRequires: gcc >= 4.8.3-8
@@ -2051,19 +2061,23 @@ installdir=%{installoutputdir -- $suffix}
bootinstalldir=boot${installdir}
# Debug builds don't need same targets as release for
-# build speed-up
-maketargets="%{release_targets}"
+# build speed-up. We also avoid bootstrapping these
+# slower builds.
if echo $debugbuild | grep -q "debug" ; then
maketargets="%{debug_targets}"
+ run_bootstrap=false
+else
+ maketargets="%{release_targets}"
+ run_bootstrap=%{bootstrap_build}
fi
-%if %{bootstrap_build}
-buildjdk ${bootbuilddir} ${bootinstalldir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild}
-buildjdk ${builddir} ${installdir} $(pwd)/${bootinstalldir}/images/%{jdkimage} "${maketargets}" ${debugbuild}
-%{!?with_artifacts:rm -rf ${bootinstalldir}}
-%else
-buildjdk ${builddir} ${installdir} ${systemjdk} "${maketargets}" ${debugbuild}
-%endif
+if ${run_bootstrap} ; then
+ buildjdk ${bootbuilddir} ${bootinstalldir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild}
+ buildjdk ${builddir} ${installdir} $(pwd)/${bootinstalldir}/images/%{jdkimage} "${maketargets}" ${debugbuild}
+ %{!?with_artifacts:rm -rf ${bootinstalldir}}
+else
+ buildjdk ${builddir} ${installdir} ${systemjdk} "${maketargets}" ${debugbuild}
+fi
# Install nss.cfg right away as we will be using the JRE above
export JAVA_HOME=$(pwd)/%{installoutputdir -- $suffix}/images/%{jdkimage}
@@ -2623,6 +2637,13 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Jan 24 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-1
+- Update to aarch64-shenandoah-jdk8u322-b06 (GA)
+- Update release notes for 8u322-b06.
+- Require tzdata 2021e as of JDK-8275766.
+- Update tarball generation script to use git following shenandoah-jdk8u's move to github
+- Turn off bootstrapping for slow debug builds, which are particularly slow on ppc64le.
+
* Wed Nov 03 2021 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.312.b07-2
- Use 'sql:' prefix in nss.fips.cfg as F35+ no longer ship the legacy
secmod.db file as part of nss
diff --git a/sources b/sources
index 32ce1e2..35c822f 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) = c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b07-4curve.tar.xz) = 6da9aab9f456336d73cb41755b9e075c43b21ce54fa208d94295aaeef0dce9e4059740efe87458e131b633c3ab3d6f964a5d2407a76e79dd9b080a5416efd7e7
+SHA512 (openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b06-4curve.tar.xz) = 0f2af8cacb1a4acdca7c1b2d5cc1e0d27f9abf8e05ccf7e8384074ac124132012b15e36abc31b498f746d6f5295530f535a9d9d85a3e45b387728b4ce726ccc7
2 years, 3 months
Architecture specific change in rpms/build2.git
by githook-noreply@fedoraproject.org
The package rpms/build2.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/build2.git/commit/?id=22d9f349b38....
Change:
+%ifarch ppc64le
Thanks.
Full change:
============
commit 22d9f349b38f67687966b518162fc80921d9bc99
Author: Matthew Krupcale <mkrupcale(a)matthewkrupcale.com>
Date: Sun Jan 23 18:21:24 2022 -0500
Update to v0.14.0
* .gitignore, sources: Update to v0.14.0
* bpkg-openssl-3-pkeyutl.patch, libbutl-openssl-info-overloads.patch: add patches for OpenSSL v3.0 support [1]
* build2-disable-test-cc-modules-ppc64le.patch: add patch to disable failing C++ modules tests on PPC64LE
* build2.spec:
- Update to v0.14.0
- Re-enable bootstrap required for this releas
- Update comments on libbutl license
- Use config.install.etc for specifying system configuration file directory
- Use config.install.scope to prevent installing statically built, bundled libodb [2,3]
* libbuild2-config.install.scope-no-update-for-install.patch: add patch to make config.install.scope not apply during update-for-install pre-operation [3]
* macros.build2:
- Use config.install.legal for specifying system configuration file directory
[1] https://lists.build2.org/archives/users/2021-November/000923.html
[2] https://lists.build2.org/archives/announce/2021/000021.html
[3] https://lists.build2.org/archives/users/2021-November/000919.html
diff --git a/.gitignore b/.gitignore
index a00e4cf..71001b3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,7 @@
-/build2-0.13.0.tar.gz
-/libbutl-0.13.0.tar.gz
-/libbpkg-0.13.0.tar.gz
-/bpkg-0.13.0.tar.gz
-/bdep-0.13.0.tar.gz
-/libodb-2.5.0-b.19.tar.gz
-/libodb-sqlite-2.5.0-b.19.tar.gz
+/build2-0.14.0.tar.gz
+/libbutl-0.14.0.tar.gz
+/libbpkg-0.14.0.tar.gz
+/bpkg-0.14.0.tar.gz
+/bdep-0.14.0.tar.gz
+/libodb-2.5.0-b.21.tar.gz
+/libodb-sqlite-2.5.0-b.21.tar.gz
diff --git a/bpkg-openssl-3-pkeyutl.patch b/bpkg-openssl-3-pkeyutl.patch
new file mode 100644
index 0000000..0b9ac7f
--- /dev/null
+++ b/bpkg-openssl-3-pkeyutl.patch
@@ -0,0 +1,231 @@
+From 073f4ed111b0b10dcbd81fc112f9d66e41f40fac Mon Sep 17 00:00:00 2001
+From: Karen Arutyunov <karen(a)codesynthesis.com>
+Date: Wed, 17 Nov 2021 17:43:22 +0300
+Subject: Use pkeyutl command instead of rsautl starting openssl version 3.0.0
+
+---
+ bpkg/auth.cxx | 81 +++++++++++++++++++++++++++++++++++++++------
+ bpkg/auth.hxx | 14 +++-----
+ bpkg/common.cli | 12 ++++---
+ bpkg/options-types.hxx | 2 +-
+ bpkg/repository-signing.cli | 8 +++--
+ 5 files changed, 89 insertions(+), 28 deletions(-)
+
+diff --git a/bpkg/auth.cxx b/bpkg/auth.cxx
+index 93c88f5..85cf5fa 100644
+--- a/bpkg/auth.cxx
++++ b/bpkg/auth.cxx
+@@ -12,6 +12,7 @@
+ #include <libbutl/openssl.hxx>
+ #include <libbutl/timestamp.hxx>
+ #include <libbutl/filesystem.hxx>
++#include <libbutl/semantic-version.hxx>
+
+ #include <bpkg/package.hxx>
+ #include <bpkg/package-odb.hxx>
+@@ -23,10 +24,14 @@ using namespace butl;
+
+ namespace bpkg
+ {
+- static const string openssl_rsautl ("rsautl");
+- static const string openssl_x509 ("x509");
+-
+- const char* openssl_commands[3] = {openssl_rsautl.c_str (),
++ static const string openssl_version ("version");
++ static const string openssl_pkeyutl ("pkeyutl");
++ static const string openssl_rsautl ("rsautl");
++ static const string openssl_x509 ("x509");
++
++ const char* openssl_commands[5] = {openssl_version.c_str (),
++ openssl_pkeyutl.c_str (),
++ openssl_rsautl.c_str (),
+ openssl_x509.c_str (),
+ nullptr};
+
+@@ -39,6 +44,49 @@ namespace bpkg
+ print_process (args, n);
+ }
+
++ // Return true if the openssl version is greater or equal to 3.0.0 and so
++ // pkeyutl needs to be used instead of rsautl. Cache the result on the first
++ // function call.
++ //
++ // Note that openssl 3.0.0 deprecates rsautl in favor of pkeyutl.
++ //
++ // Also note that pkeyutl is only implemented in openssl version 1.0.0 and
++ // its -verifyrecover mode is broken in the [1.1.1 1.1.1d] version range
++ // (see the 'pkeyutl -verifyrecover error "input data too long to be a
++ // hash"' issue report for details).
++ //
++ static optional<bool> use_pkeyutl;
++
++ static bool
++ use_openssl_pkeyutl (const common_options& co)
++ {
++ if (!use_pkeyutl)
++ {
++ const path& openssl_path (co.openssl ()[openssl_version]);
++
++ try
++ {
++ optional<openssl_info> oi (
++ openssl::info (print_command, 2, openssl_path));
++
++ use_pkeyutl = oi &&
++ oi->name == "OpenSSL" &&
++ oi->version >= semantic_version {3, 0, 0};
++ }
++ catch (const process_error& e)
++ {
++ fail << "unable to execute " << openssl_path << ": " << e << endf;
++ }
++ catch (const io_error& e)
++ {
++ fail << "unable to read '" << openssl_path << "' output: " << e
++ << endf;
++ }
++ }
++
++ return *use_pkeyutl;
++ }
++
+ // Find the repository location prefix that ends with the version component.
+ // We consider all repositories under this location to be related.
+ //
+@@ -829,15 +877,22 @@ namespace bpkg
+ dr << ": " << *e;
+ };
+
+- const path& openssl_path (co.openssl ()[openssl_rsautl]);
+- const strings& openssl_opts (co.openssl_option ()[openssl_rsautl]);
++ bool ku (use_openssl_pkeyutl (co));
++ const string& cmd (ku ? openssl_pkeyutl : openssl_rsautl);
++
++ const path& openssl_path (co.openssl ()[cmd]);
++ const strings& openssl_opts (co.openssl_option ()[cmd]);
+
+ try
+ {
+ openssl os (print_command,
+ path ("-"), fdstream_mode::text, 2,
+- openssl_path, openssl_rsautl,
+- openssl_opts, "-verify", "-certin", "-inkey", f);
++ openssl_path, cmd,
++ openssl_opts,
++ ku ? "-verifyrecover" : "-verify",
++ "-certin",
++ "-inkey",
++ f);
+
+ for (const auto& c: sm.signature)
+ os.out.put (c); // Sets badbit on failure.
+@@ -918,14 +973,18 @@ namespace bpkg
+ dr << ": " << *e;
+ };
+
+- const path& openssl_path (co.openssl ()[openssl_rsautl]);
+- const strings& openssl_opts (co.openssl_option ()[openssl_rsautl]);
++ const string& cmd (use_openssl_pkeyutl (co)
++ ? openssl_pkeyutl
++ : openssl_rsautl);
++
++ const path& openssl_path (co.openssl ()[cmd]);
++ const strings& openssl_opts (co.openssl_option ()[cmd]);
+
+ try
+ {
+ openssl os (print_command,
+ fdstream_mode::text, path ("-"), 2,
+- openssl_path, openssl_rsautl,
++ openssl_path, cmd,
+ openssl_opts, "-sign", "-inkey", key_name);
+
+ os.out << sha256sum;
+diff --git a/bpkg/auth.hxx b/bpkg/auth.hxx
+index 4cd2e56..54e6884 100644
+--- a/bpkg/auth.hxx
++++ b/bpkg/auth.hxx
+@@ -79,15 +79,11 @@ namespace bpkg
+ // openssl x509 -noout -modulus -in cert.pem
+ // openssl rsa -noout -modulus -in key.pem
+ //
+- // But taking into account that we need to be able to use custom engines to
+- // access keys, it seems to be impossible to provide the same additional
+- // openssl options to fit both the rsa and pkeyutl commands. The first would
+- // require "-engine pkcs11 -inform engine", while the second -- "-engine
+- // pkcs11 -keyform engine". Also it would require to enter the key password
+- // again, which is a showstopper. Maybe the easiest would be to recover the
+- // sum back from the signature using the certificate, and compare it with
+- // the original sum (like we do in authenticate_repository()). But that
+- // would require to temporarily save the certificate to file.
++ // However, it would require to enter the key password again, which is a
++ // showstopper. Maybe the easiest would be to recover the sum back from the
++ // signature using the certificate, and compare it with the original sum
++ // (like we do in authenticate_repository()). But that would require to
++ // temporarily save the certificate to file.
+ //
+ std::vector<char>
+ sign_repository (const common_options&,
+diff --git a/bpkg/common.cli b/bpkg/common.cli
+index 5f67357..dd0417d 100644
+--- a/bpkg/common.cli
++++ b/bpkg/common.cli
+@@ -287,13 +287,17 @@ namespace bpkg
+ only applicable to the specific command, for example:
+
+ \
+- bpkg rep-create \
+- --openssl rsautl:/path/to/openssl \
+- --openssl-option rsautl:-engine \
+- --openssl-option rsautl:pkcs11 \
++ bpkg rep-create \
++ --openssl pkeyutl:/path/to/openssl \
++ --openssl-option pkeyutl:-engine \
++ --openssl-option pkeyutl:pkcs11 \
+ ...
+ \
+
++ Note that for \cb{openssl} versions prior to \cb{3.0.0} \cb{bpkg} uses
++ the \cb{rsautl} command instead of \cb{pkeyutl} for the data signing
++ and recovery operations.
++
+ An unqualified value that contains a colon can be specified as
+ qualified with an empty command, for example, \cb{--openssl
+ :C:\\bin\\openssl}. To see openssl commands executed by \cb{bpkg}, use
+diff --git a/bpkg/options-types.hxx b/bpkg/options-types.hxx
+index 8e8cbf1..741e93c 100644
+--- a/bpkg/options-types.hxx
++++ b/bpkg/options-types.hxx
+@@ -73,7 +73,7 @@ namespace bpkg
+ }
+ };
+
+- extern const char* openssl_commands[3]; // Clang bug requres explicit size.
++ extern const char* openssl_commands[5]; // Clang bug requres explicit size.
+ }
+
+ #endif // BPKG_OPTIONS_TYPES_HXX
+diff --git a/bpkg/repository-signing.cli b/bpkg/repository-signing.cli
+index 1796497..a85ecc0 100644
+--- a/bpkg/repository-signing.cli
++++ b/bpkg/repository-signing.cli
+@@ -193,11 +193,13 @@ just \cb{--key} as at step 4 (\c{\"SIGN key\"} is the label for the slot
+ \c{9c} private key):
+
+ \
+-bpkg rep-create \
+- --openssl-option rsautl:-engine --openssl-option rsautl:pkcs11 \
+- --openssl-option rsautl:-keyform --openssl-option rsautl:engine \
++bpkg rep-create \
++ --openssl-option pkeyutl:-engine --openssl-option pkeyutl:pkcs11 \
++ --openssl-option pkeyutl:-keyform --openssl-option pkeyutl:engine \
+ --key \"pkcs11:object=SIGN%20key\" /path/to/repository
+ \
+
++Note that for \cb{openssl} versions prior to \cb{3.0.0} \cb{bpkg} uses the
++\cb{rsautl} command instead of \cb{pkeyutl} for the data signing operation.
+ ||
+ "
+--
+cgit v1.1
+
diff --git a/build2-disable-test-cc-modules-ppc64le.patch b/build2-disable-test-cc-modules-ppc64le.patch
new file mode 100644
index 0000000..289fbe8
--- /dev/null
+++ b/build2-disable-test-cc-modules-ppc64le.patch
@@ -0,0 +1,116 @@
+diff --git a/tests/cc/modules/modules.testscript b/tests/cc/modules/modules.testscript
+index 681238a..054ecd9 100644
+--- a/tests/cc/modules/modules.testscript
++++ b/tests/cc/modules/modules.testscript
+@@ -190,16 +190,16 @@ $* test &*.d &?*.ii* <'exe{test}: cxx{driver} mxx{core}' 2>>EOE != 0
+ info: consider specifying module name with cxx.module_name
+ EOE
+
+-: library
+-:
+-: Test importing a module from a library.
+-:
+-ln -s ../core.mxx ../core.cxx ../driver.cxx ./;
+-$* test clean <<EOI
+- ./: lib{foo} exe{test} # Full build.
+- exe{test}: cxx{driver} lib{foo}
+- lib{foo}: {mxx cxx}{core}
+- EOI
++# : library
++# :
++# : Test importing a module from a library.
++# :
++# ln -s ../core.mxx ../core.cxx ../driver.cxx ./;
++# $* test clean <<EOI
++# ./: lib{foo} exe{test} # Full build.
++# exe{test}: cxx{driver} lib{foo}
++# lib{foo}: {mxx cxx}{core}
++# EOI
+
+ : module-marker
+ :
+@@ -286,17 +286,17 @@ $* test clean <<EOI
+ EOI
+ $* test clean <'exe{test}: cxx{driver core} mxx{core base extra foo}'
+
+- : library
+- :
+- ln -s ../base.mxx ../extra.mxx ../foo.mxx ../../core.mxx ../../core.cxx ./;
+- cat <<EOI >=driver.cxx;
+- import foo;
+- int main (int argc, char*[]) {return f (g (argc));}
+- EOI
+- $* test clean <<EOI
+- exe{test}: cxx{driver} mxx{foo} lib{foo}
+- lib{foo}: mxx{core base extra} cxx{core}
+- EOI
++ # : library
++ # :
++ # ln -s ../base.mxx ../extra.mxx ../foo.mxx ../../core.mxx ../../core.cxx ./;
++ # cat <<EOI >=driver.cxx;
++ # import foo;
++ # int main (int argc, char*[]) {return f (g (argc));}
++ # EOI
++ # $* test clean <<EOI
++ # exe{test}: cxx{driver} mxx{foo} lib{foo}
++ # lib{foo}: mxx{core base extra} cxx{core}
++ # EOI
+ }
+
+ : import
+@@ -364,29 +364,29 @@ $* test clean <<EOI
+ bmie{foo-core}: mxx{foo-core}
+ EOI
+
+-: symexport
+-:
+-: Test the __symexport feature.
+-:
+-cat <<EOI >=core.mxx;
+- export module foo.core;
+-
+- export __symexport int f (int);
+-
+- __symexport int g_impl (int i) {return i - 1;}
+- export __symexport inline int g (int i) {return g_impl (i);}
+- EOI
+-ln -s ../core.cxx core-f.cxx;
+-cat <<EOI >=core-g.cxx;
+- module foo.core;
+- int g_impl (int i) {return i - 1;}
+- EOI
+-cat <<EOI >=driver.cxx;
+- import foo.core;
+- int main (int argc, char*[]) {return f (argc) + g (argc);}
+- EOI
+-$* test clean <<EOI
+- ./: lib{foo} exe{test} # Full build.
+- exe{test}: cxx{driver} lib{foo}
+- lib{foo}: mxx{core} cxx{core-f} # @@ VC: core-g
+- EOI
++# : symexport
++# :
++# : Test the __symexport feature.
++# :
++# cat <<EOI >=core.mxx;
++# export module foo.core;
++
++# export __symexport int f (int);
++
++# __symexport int g_impl (int i) {return i - 1;}
++# export __symexport inline int g (int i) {return g_impl (i);}
++# EOI
++# ln -s ../core.cxx core-f.cxx;
++# cat <<EOI >=core-g.cxx;
++# module foo.core;
++# int g_impl (int i) {return i - 1;}
++# EOI
++# cat <<EOI >=driver.cxx;
++# import foo.core;
++# int main (int argc, char*[]) {return f (argc) + g (argc);}
++# EOI
++# $* test clean <<EOI
++# ./: lib{foo} exe{test} # Full build.
++# exe{test}: cxx{driver} lib{foo}
++# lib{foo}: mxx{core} cxx{core-f} # @@ VC: core-g
++# EOI
diff --git a/build2.spec b/build2.spec
index 82e3872..2df6cf0 100644
--- a/build2.spec
+++ b/build2.spec
@@ -1,12 +1,12 @@
+%bcond_without bootstrap
%bcond_without check
%bcond_without bundle_libodb
-%bcond_with bootstrap
%bcond_with network_checks
%bcond_with static
Name: build2
-Version: 0.13.0
-Release: 4%{?dist}
+Version: 0.14.0
+Release: 1%{?dist}
Summary: Cross-platform build toolchain for developing and packaging C++ code
License: MIT
@@ -20,11 +20,23 @@ Source5: macros.%{name}
# The latest official release of libodb is not compatible with build2
%if %{with bundle_libodb}
-%global libodb_bundle_version 2.5.0-b.19
+%global libodb_bundle_version 2.5.0-b.21
Source100: https://pkg.cppget.org/1/beta/odb/libodb-%{libodb_bundle_version}.tar.gz
Source101: https://pkg.cppget.org/1/beta/odb/libodb-sqlite-%{libodb_bundle_version}....
%endif
+# Upstream https://git.build2.org/cgit/build2/commit/?id=65f77bb9a9556033a0bfb7401dd...
+Patch0000: libbuild2-config.install.scope-no-update-for-install.patch
+# Disable some C++ modules tests for PPC64LE because GCC has issues linking C++
+# modules on PPC64LE:
+# driver.cxx:(.text+0x88): unresolvable R_PPC64_REL24 against `_ZGIW3foo4coreEv'
+# /usr/bin/ld: final link failed: bad value
+Patch0100: build2-disable-test-cc-modules-ppc64le.patch
+# Upstream https://git.build2.org/cgit/libbutl/commit/?id=c6ea3d784ee920f51de3088437...
+Patch1000: libbutl-openssl-info-overloads.patch
+# Upstream https://git.build2.org/cgit/bpkg/commit/?id=073f4ed111b0b10dcbd81fc112f9d...
+Patch3000: bpkg-openssl-3-pkeyutl.patch
+
BuildRequires: gcc-c++
BuildRequires: libpkgconf-devel
%if %{with bootstrap}
@@ -120,12 +132,14 @@ applications that use lib%{name}.
%package -n libbutl
Summary: %{name} utility library
-# BSD-2 clause:
+# BSD-2-Clause:
+# libbutl/lz4.{c,h}
+# libbutl/lz4hc.{c,h}
# libbutl/sha256c.c
# libbutl/strptime.c
-# libbutl/timelocal.c
-# libbutl/timelocal.h
-# BSD-3 clause:
+# libbutl/timelocal.{c,h}
+# libbutl/xxhash.{c,h}
+# BSD-3-Clause:
# libbutl/sha1.c
License: MIT and BSD
Requires: curl
@@ -252,11 +266,22 @@ This package contains the %{name} RPM macros.
%else
%setup -q -c -n %{name}-toolchain-%{version} -a 1 -a 2 -a 3 -a 4 -a 100 -a 101
%endif
+pushd %{name}-%{version}
+%patch -p 1 -P 0000
+%ifarch ppc64le
+%patch -p 1 -P 0100
+%endif
+popd
+pushd libbutl-%{version}
+%patch -p 1 -P 1000
+popd
+pushd bpkg-%{version}
+%patch -p 1 -P 3000
+popd
mv libbutl-%{version} %{name}-%{version}
%build
# Define basic installation configuration. Note that this does not include:
-# %%{_sysconfdir} /etc
# %%{_libexecdir} %%{_exec_prefix}/libexec
# %%{_sharedstatedir} /var/lib
# %%{_datadir} %%{_prefix}/share
@@ -275,6 +300,7 @@ mv libbutl-%{version} %{name}-%{version}
config.install.sbin=%{_sbindir} \\\
config.install.include=%{_includedir} \\\
config.install.lib=%{_libdir} \\\
+ config.install.etc=%{_sysconfdir} \\\
config.install.man=%{_mandir} \\\
config.install.legal=%{_defaultlicensedir}/"<project>" \\\
config.install.pkgconfig=%{_libdir}/pkgconfig \\\
@@ -403,7 +429,10 @@ b install:
%{name}-%{version}/ \
libbpkg-%{version}/ \
bpkg-%{version}/ \
- bdep-%{version}/
+ bdep-%{version}/ \
+%if %{with bundle_libodb}
+ '!config.install.scope=project'
+%endif
# copy licenses from build2 package to libbuild2 subpackage
mkdir -p %{buildroot}%{_defaultlicensedir}/lib%{name}
cp %{buildroot}%{_defaultlicensedir}/%{name}/{AUTHORS,LICENSE} %{buildroot}%{_defaultlicensedir}/lib%{name}
@@ -455,25 +484,25 @@ b test:
%dir %{_defaultlicensedir}/lib%{name}
%license %{_defaultlicensedir}/lib%{name}/AUTHORS
%license %{_defaultlicensedir}/lib%{name}/LICENSE
-%{_libdir}/lib%{name}-0.13.so
-%{_libdir}/lib%{name}-bash-0.13-0.13.so
-%{_libdir}/lib%{name}-bin-0.13-0.13.so
-%{_libdir}/lib%{name}-c-0.13-0.13.so
-%{_libdir}/lib%{name}-cc-0.13-0.13.so
-%{_libdir}/lib%{name}-cxx-0.13-0.13.so
-%{_libdir}/lib%{name}-in-0.13-0.13.so
-%{_libdir}/lib%{name}-version-0.13-0.13.so
+%{_libdir}/lib%{name}-0.14.so
+%{_libdir}/lib%{name}-bash-0.14-0.14.so
+%{_libdir}/lib%{name}-bin-0.14-0.14.so
+%{_libdir}/lib%{name}-c-0.14-0.14.so
+%{_libdir}/lib%{name}-cc-0.14-0.14.so
+%{_libdir}/lib%{name}-cxx-0.14-0.14.so
+%{_libdir}/lib%{name}-in-0.14-0.14.so
+%{_libdir}/lib%{name}-version-0.14-0.14.so
%files -n lib%{name}-devel
%{_includedir}/lib%{name}
%{_libdir}/lib%{name}.so
-%{_libdir}/lib%{name}-bash{,-0.13}.so
-%{_libdir}/lib%{name}-bin{,-0.13}.so
-%{_libdir}/lib%{name}-c{,-0.13}.so
-%{_libdir}/lib%{name}-cc{,-0.13}.so
-%{_libdir}/lib%{name}-cxx{,-0.13}.so
-%{_libdir}/lib%{name}-in{,-0.13}.so
-%{_libdir}/lib%{name}-version{,-0.13}.so
+%{_libdir}/lib%{name}-bash{,-0.14}.so
+%{_libdir}/lib%{name}-bin{,-0.14}.so
+%{_libdir}/lib%{name}-c{,-0.14}.so
+%{_libdir}/lib%{name}-cc{,-0.14}.so
+%{_libdir}/lib%{name}-cxx{,-0.14}.so
+%{_libdir}/lib%{name}-in{,-0.14}.so
+%{_libdir}/lib%{name}-version{,-0.14}.so
%{_libdir}/pkgconfig/lib%{name}{,.shared}.pc
%{_libdir}/pkgconfig/lib%{name}-bash{,.shared}.pc
%{_libdir}/pkgconfig/lib%{name}-bin{,.shared}.pc
@@ -508,7 +537,7 @@ b test:
%license %{_defaultlicensedir}/libbutl/AUTHORS
%license %{_defaultlicensedir}/libbutl/COPYRIGHT
%license %{_defaultlicensedir}/libbutl/LICENSE
-%{_libdir}/libbutl-0.13.so
+%{_libdir}/libbutl-0.14.so
%files -n libbutl-devel
%dir %{_docdir}/libbutl
@@ -529,7 +558,7 @@ b test:
%dir %{_defaultlicensedir}/libbpkg
%license %{_defaultlicensedir}/libbpkg/AUTHORS
%license %{_defaultlicensedir}/libbpkg/LICENSE
-%{_libdir}/libbpkg-0.13.so
+%{_libdir}/libbpkg-0.14.so
%files -n libbpkg-devel
%dir %{_docdir}/libbpkg
@@ -585,6 +614,9 @@ b test:
%{_rpmmacrodir}/macros.%{name}
%changelog
+* Sun Jan 23 2022 Matthew Krupcale <mkrupcale(a)matthewkrupcale.com> - 0.14.0-1
+- Update to v0.14.0
+
* Tue Jan 26 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.13.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
diff --git a/libbuild2-config.install.scope-no-update-for-install.patch b/libbuild2-config.install.scope-no-update-for-install.patch
new file mode 100644
index 0000000..29f59ef
--- /dev/null
+++ b/libbuild2-config.install.scope-no-update-for-install.patch
@@ -0,0 +1,126 @@
+From 65f77bb9a9556033a0bfb7401dd9a00120e27524 Mon Sep 17 00:00:00 2001
+From: Boris Kolpackov <boris(a)codesynthesis.com>
+Date: Thu, 4 Nov 2021 13:41:23 +0200
+Subject: Do not apply install scope to update-for-install pre-operation
+
+---
+ libbuild2/cc/link-rule.cxx | 7 +++++++
+ libbuild2/cc/pkgconfig.cxx | 38 ++++++++++++++++++++++++++------------
+ libbuild2/install/rule.cxx | 4 ++--
+ libbuild2/install/utility.hxx | 4 ++++
+ 4 files changed, 39 insertions(+), 14 deletions(-)
+
+diff --git a/libbuild2/cc/link-rule.cxx b/libbuild2/cc/link-rule.cxx
+index fa9a1f1..79de01c 100644
+--- a/libbuild2/cc/link-rule.cxx
++++ b/libbuild2/cc/link-rule.cxx
+@@ -2379,6 +2379,13 @@ namespace build2
+ // install or no install, the reason is unless and until we are updating
+ // for install, we have no idea where-to things will be installed.
+ //
++ // There is a further complication: we may have no intention of
++ // installing the library but still need to update it for install (see
++ // install_scope() for background). In which case we may still not have
++ // the installation directories. We handle this in pkconfig_save() by
++ // skipping the generation of .pc files (and letting the install rule
++ // complain if we do end up trying to install them).
++ //
+ if (for_install && lt.library () && !lt.utility)
+ {
+ bool la (lt.static_library ());
+diff --git a/libbuild2/cc/pkgconfig.cxx b/libbuild2/cc/pkgconfig.cxx
+index 3033a2b..54fc05f 100644
+--- a/libbuild2/cc/pkgconfig.cxx
++++ b/libbuild2/cc/pkgconfig.cxx
+@@ -1461,18 +1461,6 @@ namespace build2
+ /* */ pcs::static_type)));
+ assert (t != nullptr);
+
+- // This is the lib{} group if we are generating the common file and the
+- // target itself otherwise.
+- //
+- const file& g (common ? l.group->as<file> () : l);
+-
+- // By default we assume things go into install.{include, lib}.
+- //
+- using install::resolve_dir;
+-
+- dir_path idir (resolve_dir (g, cast<dir_path> (g["install.include"])));
+- dir_path ldir (resolve_dir (g, cast<dir_path> (g["install.lib"])));
+-
+ const path& p (t->path ());
+
+ // If we are uninstalling, skip regenerating the file if it already
+@@ -1485,6 +1473,32 @@ namespace build2
+ return;
+ }
+
++ // This is the lib{} group if we are generating the common file and the
++ // target itself otherwise.
++ //
++ const file& g (common ? l.group->as<file> () : l);
++
++ // By default we assume things go into install.{include, lib}.
++ //
++ // If include.lib does not resolve, then assume this is update-for-
++ // install without actual install and remove the file if it exists.
++ //
++ // @@ Shouldn't we use target's install value rather than install.lib
++ // in case it gets installed into a custom location?
++ //
++ using install::resolve_dir;
++
++ dir_path ldir (resolve_dir (g,
++ cast<dir_path> (g["install.lib"]),
++ false /* fail_unknown */));
++ if (ldir.empty ())
++ {
++ rmfile (ctx, p, 3 /* verbosity */);
++ return;
++ }
++
++ dir_path idir (resolve_dir (g, cast<dir_path> (g["install.include"])));
++
+ // Note that generation can take some time if we have a large number of
+ // prerequisite libraries.
+ //
+diff --git a/libbuild2/install/rule.cxx b/libbuild2/install/rule.cxx
+index 2d81067..d4c70c0 100644
+--- a/libbuild2/install/rule.cxx
++++ b/libbuild2/install/rule.cxx
+@@ -105,7 +105,7 @@ namespace build2
+ // iterates over all its members.
+ //
+ if (!is)
+- is = install_scope (t);
++ is = a.operation () != update_id ? install_scope (t) : nullptr;
+
+ const target* pt (filter (*is, a, t, i));
+ if (pt == nullptr)
+@@ -366,7 +366,7 @@ namespace build2
+ // iterates over all its members.
+ //
+ if (!is)
+- is = install_scope (t);
++ is = a.operation () != update_id ? install_scope (t) : nullptr;
+
+ const target* pt (filter (*is, a, t, i));
+
+diff --git a/libbuild2/install/utility.hxx b/libbuild2/install/utility.hxx
+index cc5cd53..52b9a54 100644
+--- a/libbuild2/install/utility.hxx
++++ b/libbuild2/install/utility.hxx
+@@ -61,6 +61,10 @@ namespace build2
+ // belong to projects outside of this scope. If it's NULL, install
+ // prerequisites from all projects. See also config.install.scope.
+ //
++ // Note that this should not apply to update-for-install. Failed that we
++ // may end up using incompatibly-built prerequisites (e.g., a library) in
++ // a target built for install (e.g., an executable).
++ //
+ LIBBUILD2_SYMEXPORT const scope*
+ install_scope (const target&);
+
+--
+cgit v1.1
+
diff --git a/libbutl-openssl-info-overloads.patch b/libbutl-openssl-info-overloads.patch
new file mode 100644
index 0000000..44d4c7a
--- /dev/null
+++ b/libbutl-openssl-info-overloads.patch
@@ -0,0 +1,173 @@
+From c6ea3d784ee920f51de3088437b471c8dd6d70e2 Mon Sep 17 00:00:00 2001
+From: Karen Arutyunov <karen(a)codesynthesis.com>
+Date: Thu, 18 Nov 2021 15:54:46 +0300
+Subject: Add openssl::info() overloads
+
+---
+ libbutl/openssl.hxx | 35 +++++++++++++++++++++++++++
+ libbutl/openssl.ixx | 9 +++++++
+ libbutl/openssl.txx | 63 ++++++++++++++++++++++++++++++++++++++++++++++++
+ tests/openssl/driver.cxx | 24 +++++++++++++++---
+ 4 files changed, 127 insertions(+), 4 deletions(-)
+
+diff --git a/libbutl/openssl.hxx b/libbutl/openssl.hxx
+index 58e38f8..b340f5c 100644
+--- a/libbutl/openssl.hxx
++++ b/libbutl/openssl.hxx
+@@ -8,8 +8,10 @@
+
+ #include <libbutl/path.hxx>
+ #include <libbutl/process.hxx>
++#include <libbutl/optional.hxx>
+ #include <libbutl/fdstream.hxx>
+ #include <libbutl/small-vector.hxx>
++#include <libbutl/semantic-version.hxx>
+
+ #include <libbutl/export.hxx>
+
+@@ -78,6 +80,23 @@ namespace butl
+ // department (that were apparently fixed in 1.0.2). To work around these
+ // bugs pass user-supplied options first.
+ //
++ struct openssl_info
++ {
++ // Note that the program name can be used by the caller to properly
++ // interpret the version.
++ //
++ // The name/version examples:
++ //
++ // OpenSSL 3.0.0
++ // OpenSSL 1.1.1l
++ // LibreSSL 2.8.3
++ //
++ // The `l` component above ends up in semantic_version::build.
++ //
++ std::string name;
++ semantic_version version;
++ };
++
+ class LIBBUTL_SYMEXPORT openssl: public process
+ {
+ public:
+@@ -111,6 +130,22 @@ namespace butl
+ const std::string& command,
+ A&&... options);
+
++ // Run `openssl version` command and try to parse and return the
++ // information it prints to stdout. Return nullopt if the process hasn't
++ // terminated successfully or stdout parsing has failed. Throw
++ // process_error and io_error in case of errors.
++ //
++ template <typename E>
++ static optional<openssl_info>
++ info (E&& err, const process_env&);
++
++ template <typename C,
++ typename E>
++ static optional<openssl_info>
++ info (const C&,
++ E&& err,
++ const process_env&);
++
+ private:
+ template <typename T>
+ struct is_other
+diff --git a/libbutl/openssl.ixx b/libbutl/openssl.ixx
+index 1435dcb..db2fbcd 100644
+--- a/libbutl/openssl.ixx
++++ b/libbutl/openssl.ixx
+@@ -26,4 +26,13 @@ namespace butl
+ std::forward<A> (options)...)
+ {
+ }
++
++ template <typename E>
++ inline optional<openssl_info> openssl::
++ info (E&& err, const process_env& env)
++ {
++ return info ([] (const char* [], std::size_t) {},
++ std::forward<E> (err),
++ env);
++ }
+ }
+diff --git a/libbutl/openssl.txx b/libbutl/openssl.txx
+index f198c22..01e854c 100644
+--- a/libbutl/openssl.txx
++++ b/libbutl/openssl.txx
+@@ -1,6 +1,7 @@
+ // file : libbutl/openssl.txx -*- C++ -*-
+ // license : MIT; see accompanying LICENSE file
+
++#include <cstddef> // size_t
+ #include <utility> // forward()
+
+ namespace butl
+@@ -49,4 +50,66 @@ namespace butl
+
+ // Note: leaving this scope closes any open ends of the pipes in io_data.
+ }
++
++ template <typename C,
++ typename E>
++ optional<openssl_info> openssl::
++ info (const C& cmdc, E&& err, const process_env& env)
++ {
++ using namespace std;
++
++ // Run the `openssl version` command.
++ //
++ openssl os (cmdc,
++ nullfd, fdstream_mode::text, forward<E> (err),
++ env,
++ "version");
++
++ // Read the command's stdout and wait for its completion. Bail out if the
++ // command didn't terminate successfully or stdout contains no data.
++ //
++ string s;
++ if (!getline (os.in, s))
++ return nullopt;
++
++ os.in.close ();
++
++ if (!os.wait ())
++ return nullopt;
++
++ // Parse the version string.
++ //
++ // Note that there is some variety in the version representations:
++ //
++ // OpenSSL 3.0.0 7 sep 2021 (Library: OpenSSL 3.0.0 7 sep 2021)
++ // OpenSSL 1.1.1l FIPS 24 Aug 2021
++ // LibreSSL 2.8.3
++ //
++ // We will only consider the first two space separated components as the
++ // program name and version. We will also assume that there are no leading
++ // spaces and the version is delimited from the program name with a single
++ // space character.
++ //
++ size_t e (s.find (' '));
++
++ // Bail out if there is no version present in the string or the program
++ // name is empty.
++ //
++ if (e == string::npos || e == 0)
++ return nullopt;
++
++ string nm (s, 0, e);
++
++ size_t b (e + 1); // The beginning of the version.
++ e = s.find (' ', b); // The end of the version.
++
++ optional<semantic_version> ver (
++ parse_semantic_version (string (s, b, e != string::npos ? e - b : e),
++ "" /* build_separators */));
++
++ if (!ver)
++ return nullopt;
++
++ return openssl_info {move (nm), move (*ver)};
++ }
+ }
+cgit v1.1
+
diff --git a/macros.build2 b/macros.build2
index 4b63044..da0ea7c 100644
--- a/macros.build2
+++ b/macros.build2
@@ -11,7 +11,6 @@
config.cxx.coptions="%{build_cxxflags}" \\\
config.cc.loptions="%{build_ldflags}"
# Define basic installation configuration. Note that this does not include:
-# %%{_sysconfdir} /etc
# %%{_libexecdir} %%{_exec_prefix}/libexec
# %%{_sharedstatedir} /var/lib
# %%{_datadir} %%{_prefix}/share
@@ -30,6 +29,7 @@
config.install.sbin=%{_sbindir} \\\
config.install.include=%{_includedir} \\\
config.install.lib=%{_libdir} \\\
+ config.install.etc=%{_sysconfdir} \\\
config.install.man=%{_mandir} \\\
config.install.legal=%{_defaultlicensedir}/"<project>" \\\
config.install.pkgconfig=%{_libdir}/pkgconfig \\\
diff --git a/sources b/sources
index c8d18bb..a16cb4f 100644
--- a/sources
+++ b/sources
@@ -1,7 +1,7 @@
-SHA512 (build2-0.13.0.tar.gz) = c5adc72ec49dbfb3a3bfc2db35f1d4196f92572a18101ecb3261551b29e49c736e38dd5d4980d5b97bf49cd0391dd38295b23bcd50fae5b595cc063cd8376c62
-SHA512 (libbutl-0.13.0.tar.gz) = 72d273baa8c107d5664d2e645f4fa58f644dd321e2be95d6133dfc358ca843001cafba85e05597f6e6bc4de1d4476439f46c2a99b3eb5370d88f0506683b05a1
-SHA512 (libbpkg-0.13.0.tar.gz) = ac947f95b45fa6633e246e2aea679b8a8639d18d3e69b14e6931eb6dcbdb8fec60faf9051ba3307d3f0f8077edca78d15d3a754a1a3bbeb8b03046b215d21979
-SHA512 (bpkg-0.13.0.tar.gz) = d8f4c61d8ef5a817be8f9681575850fdf2f19e9e91c1eca9e6dc21b4d99813a6db73045306e066c2d1f2aece9cb89e8d3adbb2ead6b7e8c2c52af7c5ec721a8e
-SHA512 (bdep-0.13.0.tar.gz) = 8c2de9c84f27a80ad37879112ac6a0825327009435b81b5bdd6bd7a858e49cbd8c57c11673b0215c7161f265e9da8eb2edcf870717331b52676f82af4e5edabc
-SHA512 (libodb-2.5.0-b.19.tar.gz) = 0a3e70afd2c2ba573676e1a2630986215b4c8e57a004f7d2f2227f301b6c58f739397a0efc8877902baf88b93aff83c9b67c9f5b5e87cc570d64bb76b7b8f66b
-SHA512 (libodb-sqlite-2.5.0-b.19.tar.gz) = be6dbc731d9f45dfc7e9246f404edad78d59c9d38cff6599aed56d60d4f0e8391336e2da3608f66d74559f0a8d34243eb38e7e6a1221188959321810193ae901
+SHA512 (bdep-0.14.0.tar.gz) = 0b2aaa76b82e431dc3a51327d8e4e53a0f6e804afdd9e90849e2b143ca30a3d12c84c64c80d57fd704eb85b2886d690b9434c3b599fead9ccf52a98ecb88b370
+SHA512 (bpkg-0.14.0.tar.gz) = c7d25c4d1ead1d05a2ed2544a221df275e0ae6b44e337e59ec37a97c7110ed8242ac9f6fc816215047ce7f50768b433919fc3761efc4113d971bb1ad3b438978
+SHA512 (build2-0.14.0.tar.gz) = 71afcba0e42f1e62766beb06ad3d62eabe417d648d98a901303613094e3e8d8165d3a2cffb11b166cd1a42aa2f322f3ff35b2f37e03e4af59b8778df7aa5ed11
+SHA512 (libbpkg-0.14.0.tar.gz) = aceddba40c91910dbf7838f723d2f9acb2a5290ccfc4a02dfc0f0a950b0bd94f8c91ca358bc894a8fa544a8876bf07de293236256c2c4ea9a989b4abca88cfb7
+SHA512 (libbutl-0.14.0.tar.gz) = 8226f7e5895a949aa38496d1ddebe270014c2fd0fcdf6667cb64c2ce28f4c2fab6ffd0be20d37102e284545e8320af02433c71e54a0db578cc92c64ec235e3cc
+SHA512 (libodb-2.5.0-b.21.tar.gz) = 68fa486b3a6f1254fb57e480bdf8e1d008fe38f29c47d5a4648ff44dc964dd7f3ee9d07510d742db15120f272aa6152bf08ca9d7689e4b34b0f5e5910ea71c0e
+SHA512 (libodb-sqlite-2.5.0-b.21.tar.gz) = a84ea3847c64e5beffcb1f3958583bc02d371a4eb354ad32d0083b01e27362905bdcf09913c9b4cd6fc977eeaba95fd46cf953332e4fd0d673ca2f7521c71a1f
2 years, 3 months
Architecture specific change in rpms/build2.git
by githook-noreply@fedoraproject.org
The package rpms/build2.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/build2.git/commit/?id=d48191929d2....
Change:
+%ifarch ppc64le
Thanks.
Full change:
============
commit d48191929d2436ca12552e58dccf4ef430bb69d5
Author: Matthew Krupcale <mkrupcale(a)matthewkrupcale.com>
Date: Sun Jan 23 18:21:24 2022 -0500
Update to v0.14.0
* .gitignore, sources: Update to v0.14.0
* bpkg-openssl-3-pkeyutl.patch, libbutl-openssl-info-overloads.patch: add patches for OpenSSL v3.0 support [1]
* build2-disable-test-cc-modules-ppc64le.patch: add patch to disable failing C++ modules tests on PPC64LE
* build2.spec:
- Update to v0.14.0
- Re-enable bootstrap required for this releas
- Update comments on libbutl license
- Use config.install.etc for specifying system configuration file directory
- Use config.install.scope to prevent installing statically built, bundled libodb [2,3]
* libbuild2-config.install.scope-no-update-for-install.patch: add patch to make config.install.scope not apply during update-for-install pre-operation [3]
* macros.build2:
- Use config.install.legal for specifying system configuration file directory
[1] https://lists.build2.org/archives/users/2021-November/000923.html
[2] https://lists.build2.org/archives/announce/2021/000021.html
[3] https://lists.build2.org/archives/users/2021-November/000919.html
diff --git a/.gitignore b/.gitignore
index a00e4cf..71001b3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,7 @@
-/build2-0.13.0.tar.gz
-/libbutl-0.13.0.tar.gz
-/libbpkg-0.13.0.tar.gz
-/bpkg-0.13.0.tar.gz
-/bdep-0.13.0.tar.gz
-/libodb-2.5.0-b.19.tar.gz
-/libodb-sqlite-2.5.0-b.19.tar.gz
+/build2-0.14.0.tar.gz
+/libbutl-0.14.0.tar.gz
+/libbpkg-0.14.0.tar.gz
+/bpkg-0.14.0.tar.gz
+/bdep-0.14.0.tar.gz
+/libodb-2.5.0-b.21.tar.gz
+/libodb-sqlite-2.5.0-b.21.tar.gz
diff --git a/bpkg-openssl-3-pkeyutl.patch b/bpkg-openssl-3-pkeyutl.patch
new file mode 100644
index 0000000..0b9ac7f
--- /dev/null
+++ b/bpkg-openssl-3-pkeyutl.patch
@@ -0,0 +1,231 @@
+From 073f4ed111b0b10dcbd81fc112f9d66e41f40fac Mon Sep 17 00:00:00 2001
+From: Karen Arutyunov <karen(a)codesynthesis.com>
+Date: Wed, 17 Nov 2021 17:43:22 +0300
+Subject: Use pkeyutl command instead of rsautl starting openssl version 3.0.0
+
+---
+ bpkg/auth.cxx | 81 +++++++++++++++++++++++++++++++++++++++------
+ bpkg/auth.hxx | 14 +++-----
+ bpkg/common.cli | 12 ++++---
+ bpkg/options-types.hxx | 2 +-
+ bpkg/repository-signing.cli | 8 +++--
+ 5 files changed, 89 insertions(+), 28 deletions(-)
+
+diff --git a/bpkg/auth.cxx b/bpkg/auth.cxx
+index 93c88f5..85cf5fa 100644
+--- a/bpkg/auth.cxx
++++ b/bpkg/auth.cxx
+@@ -12,6 +12,7 @@
+ #include <libbutl/openssl.hxx>
+ #include <libbutl/timestamp.hxx>
+ #include <libbutl/filesystem.hxx>
++#include <libbutl/semantic-version.hxx>
+
+ #include <bpkg/package.hxx>
+ #include <bpkg/package-odb.hxx>
+@@ -23,10 +24,14 @@ using namespace butl;
+
+ namespace bpkg
+ {
+- static const string openssl_rsautl ("rsautl");
+- static const string openssl_x509 ("x509");
+-
+- const char* openssl_commands[3] = {openssl_rsautl.c_str (),
++ static const string openssl_version ("version");
++ static const string openssl_pkeyutl ("pkeyutl");
++ static const string openssl_rsautl ("rsautl");
++ static const string openssl_x509 ("x509");
++
++ const char* openssl_commands[5] = {openssl_version.c_str (),
++ openssl_pkeyutl.c_str (),
++ openssl_rsautl.c_str (),
+ openssl_x509.c_str (),
+ nullptr};
+
+@@ -39,6 +44,49 @@ namespace bpkg
+ print_process (args, n);
+ }
+
++ // Return true if the openssl version is greater or equal to 3.0.0 and so
++ // pkeyutl needs to be used instead of rsautl. Cache the result on the first
++ // function call.
++ //
++ // Note that openssl 3.0.0 deprecates rsautl in favor of pkeyutl.
++ //
++ // Also note that pkeyutl is only implemented in openssl version 1.0.0 and
++ // its -verifyrecover mode is broken in the [1.1.1 1.1.1d] version range
++ // (see the 'pkeyutl -verifyrecover error "input data too long to be a
++ // hash"' issue report for details).
++ //
++ static optional<bool> use_pkeyutl;
++
++ static bool
++ use_openssl_pkeyutl (const common_options& co)
++ {
++ if (!use_pkeyutl)
++ {
++ const path& openssl_path (co.openssl ()[openssl_version]);
++
++ try
++ {
++ optional<openssl_info> oi (
++ openssl::info (print_command, 2, openssl_path));
++
++ use_pkeyutl = oi &&
++ oi->name == "OpenSSL" &&
++ oi->version >= semantic_version {3, 0, 0};
++ }
++ catch (const process_error& e)
++ {
++ fail << "unable to execute " << openssl_path << ": " << e << endf;
++ }
++ catch (const io_error& e)
++ {
++ fail << "unable to read '" << openssl_path << "' output: " << e
++ << endf;
++ }
++ }
++
++ return *use_pkeyutl;
++ }
++
+ // Find the repository location prefix that ends with the version component.
+ // We consider all repositories under this location to be related.
+ //
+@@ -829,15 +877,22 @@ namespace bpkg
+ dr << ": " << *e;
+ };
+
+- const path& openssl_path (co.openssl ()[openssl_rsautl]);
+- const strings& openssl_opts (co.openssl_option ()[openssl_rsautl]);
++ bool ku (use_openssl_pkeyutl (co));
++ const string& cmd (ku ? openssl_pkeyutl : openssl_rsautl);
++
++ const path& openssl_path (co.openssl ()[cmd]);
++ const strings& openssl_opts (co.openssl_option ()[cmd]);
+
+ try
+ {
+ openssl os (print_command,
+ path ("-"), fdstream_mode::text, 2,
+- openssl_path, openssl_rsautl,
+- openssl_opts, "-verify", "-certin", "-inkey", f);
++ openssl_path, cmd,
++ openssl_opts,
++ ku ? "-verifyrecover" : "-verify",
++ "-certin",
++ "-inkey",
++ f);
+
+ for (const auto& c: sm.signature)
+ os.out.put (c); // Sets badbit on failure.
+@@ -918,14 +973,18 @@ namespace bpkg
+ dr << ": " << *e;
+ };
+
+- const path& openssl_path (co.openssl ()[openssl_rsautl]);
+- const strings& openssl_opts (co.openssl_option ()[openssl_rsautl]);
++ const string& cmd (use_openssl_pkeyutl (co)
++ ? openssl_pkeyutl
++ : openssl_rsautl);
++
++ const path& openssl_path (co.openssl ()[cmd]);
++ const strings& openssl_opts (co.openssl_option ()[cmd]);
+
+ try
+ {
+ openssl os (print_command,
+ fdstream_mode::text, path ("-"), 2,
+- openssl_path, openssl_rsautl,
++ openssl_path, cmd,
+ openssl_opts, "-sign", "-inkey", key_name);
+
+ os.out << sha256sum;
+diff --git a/bpkg/auth.hxx b/bpkg/auth.hxx
+index 4cd2e56..54e6884 100644
+--- a/bpkg/auth.hxx
++++ b/bpkg/auth.hxx
+@@ -79,15 +79,11 @@ namespace bpkg
+ // openssl x509 -noout -modulus -in cert.pem
+ // openssl rsa -noout -modulus -in key.pem
+ //
+- // But taking into account that we need to be able to use custom engines to
+- // access keys, it seems to be impossible to provide the same additional
+- // openssl options to fit both the rsa and pkeyutl commands. The first would
+- // require "-engine pkcs11 -inform engine", while the second -- "-engine
+- // pkcs11 -keyform engine". Also it would require to enter the key password
+- // again, which is a showstopper. Maybe the easiest would be to recover the
+- // sum back from the signature using the certificate, and compare it with
+- // the original sum (like we do in authenticate_repository()). But that
+- // would require to temporarily save the certificate to file.
++ // However, it would require to enter the key password again, which is a
++ // showstopper. Maybe the easiest would be to recover the sum back from the
++ // signature using the certificate, and compare it with the original sum
++ // (like we do in authenticate_repository()). But that would require to
++ // temporarily save the certificate to file.
+ //
+ std::vector<char>
+ sign_repository (const common_options&,
+diff --git a/bpkg/common.cli b/bpkg/common.cli
+index 5f67357..dd0417d 100644
+--- a/bpkg/common.cli
++++ b/bpkg/common.cli
+@@ -287,13 +287,17 @@ namespace bpkg
+ only applicable to the specific command, for example:
+
+ \
+- bpkg rep-create \
+- --openssl rsautl:/path/to/openssl \
+- --openssl-option rsautl:-engine \
+- --openssl-option rsautl:pkcs11 \
++ bpkg rep-create \
++ --openssl pkeyutl:/path/to/openssl \
++ --openssl-option pkeyutl:-engine \
++ --openssl-option pkeyutl:pkcs11 \
+ ...
+ \
+
++ Note that for \cb{openssl} versions prior to \cb{3.0.0} \cb{bpkg} uses
++ the \cb{rsautl} command instead of \cb{pkeyutl} for the data signing
++ and recovery operations.
++
+ An unqualified value that contains a colon can be specified as
+ qualified with an empty command, for example, \cb{--openssl
+ :C:\\bin\\openssl}. To see openssl commands executed by \cb{bpkg}, use
+diff --git a/bpkg/options-types.hxx b/bpkg/options-types.hxx
+index 8e8cbf1..741e93c 100644
+--- a/bpkg/options-types.hxx
++++ b/bpkg/options-types.hxx
+@@ -73,7 +73,7 @@ namespace bpkg
+ }
+ };
+
+- extern const char* openssl_commands[3]; // Clang bug requres explicit size.
++ extern const char* openssl_commands[5]; // Clang bug requres explicit size.
+ }
+
+ #endif // BPKG_OPTIONS_TYPES_HXX
+diff --git a/bpkg/repository-signing.cli b/bpkg/repository-signing.cli
+index 1796497..a85ecc0 100644
+--- a/bpkg/repository-signing.cli
++++ b/bpkg/repository-signing.cli
+@@ -193,11 +193,13 @@ just \cb{--key} as at step 4 (\c{\"SIGN key\"} is the label for the slot
+ \c{9c} private key):
+
+ \
+-bpkg rep-create \
+- --openssl-option rsautl:-engine --openssl-option rsautl:pkcs11 \
+- --openssl-option rsautl:-keyform --openssl-option rsautl:engine \
++bpkg rep-create \
++ --openssl-option pkeyutl:-engine --openssl-option pkeyutl:pkcs11 \
++ --openssl-option pkeyutl:-keyform --openssl-option pkeyutl:engine \
+ --key \"pkcs11:object=SIGN%20key\" /path/to/repository
+ \
+
++Note that for \cb{openssl} versions prior to \cb{3.0.0} \cb{bpkg} uses the
++\cb{rsautl} command instead of \cb{pkeyutl} for the data signing operation.
+ ||
+ "
+--
+cgit v1.1
+
diff --git a/build2-disable-test-cc-modules-ppc64le.patch b/build2-disable-test-cc-modules-ppc64le.patch
new file mode 100644
index 0000000..289fbe8
--- /dev/null
+++ b/build2-disable-test-cc-modules-ppc64le.patch
@@ -0,0 +1,116 @@
+diff --git a/tests/cc/modules/modules.testscript b/tests/cc/modules/modules.testscript
+index 681238a..054ecd9 100644
+--- a/tests/cc/modules/modules.testscript
++++ b/tests/cc/modules/modules.testscript
+@@ -190,16 +190,16 @@ $* test &*.d &?*.ii* <'exe{test}: cxx{driver} mxx{core}' 2>>EOE != 0
+ info: consider specifying module name with cxx.module_name
+ EOE
+
+-: library
+-:
+-: Test importing a module from a library.
+-:
+-ln -s ../core.mxx ../core.cxx ../driver.cxx ./;
+-$* test clean <<EOI
+- ./: lib{foo} exe{test} # Full build.
+- exe{test}: cxx{driver} lib{foo}
+- lib{foo}: {mxx cxx}{core}
+- EOI
++# : library
++# :
++# : Test importing a module from a library.
++# :
++# ln -s ../core.mxx ../core.cxx ../driver.cxx ./;
++# $* test clean <<EOI
++# ./: lib{foo} exe{test} # Full build.
++# exe{test}: cxx{driver} lib{foo}
++# lib{foo}: {mxx cxx}{core}
++# EOI
+
+ : module-marker
+ :
+@@ -286,17 +286,17 @@ $* test clean <<EOI
+ EOI
+ $* test clean <'exe{test}: cxx{driver core} mxx{core base extra foo}'
+
+- : library
+- :
+- ln -s ../base.mxx ../extra.mxx ../foo.mxx ../../core.mxx ../../core.cxx ./;
+- cat <<EOI >=driver.cxx;
+- import foo;
+- int main (int argc, char*[]) {return f (g (argc));}
+- EOI
+- $* test clean <<EOI
+- exe{test}: cxx{driver} mxx{foo} lib{foo}
+- lib{foo}: mxx{core base extra} cxx{core}
+- EOI
++ # : library
++ # :
++ # ln -s ../base.mxx ../extra.mxx ../foo.mxx ../../core.mxx ../../core.cxx ./;
++ # cat <<EOI >=driver.cxx;
++ # import foo;
++ # int main (int argc, char*[]) {return f (g (argc));}
++ # EOI
++ # $* test clean <<EOI
++ # exe{test}: cxx{driver} mxx{foo} lib{foo}
++ # lib{foo}: mxx{core base extra} cxx{core}
++ # EOI
+ }
+
+ : import
+@@ -364,29 +364,29 @@ $* test clean <<EOI
+ bmie{foo-core}: mxx{foo-core}
+ EOI
+
+-: symexport
+-:
+-: Test the __symexport feature.
+-:
+-cat <<EOI >=core.mxx;
+- export module foo.core;
+-
+- export __symexport int f (int);
+-
+- __symexport int g_impl (int i) {return i - 1;}
+- export __symexport inline int g (int i) {return g_impl (i);}
+- EOI
+-ln -s ../core.cxx core-f.cxx;
+-cat <<EOI >=core-g.cxx;
+- module foo.core;
+- int g_impl (int i) {return i - 1;}
+- EOI
+-cat <<EOI >=driver.cxx;
+- import foo.core;
+- int main (int argc, char*[]) {return f (argc) + g (argc);}
+- EOI
+-$* test clean <<EOI
+- ./: lib{foo} exe{test} # Full build.
+- exe{test}: cxx{driver} lib{foo}
+- lib{foo}: mxx{core} cxx{core-f} # @@ VC: core-g
+- EOI
++# : symexport
++# :
++# : Test the __symexport feature.
++# :
++# cat <<EOI >=core.mxx;
++# export module foo.core;
++
++# export __symexport int f (int);
++
++# __symexport int g_impl (int i) {return i - 1;}
++# export __symexport inline int g (int i) {return g_impl (i);}
++# EOI
++# ln -s ../core.cxx core-f.cxx;
++# cat <<EOI >=core-g.cxx;
++# module foo.core;
++# int g_impl (int i) {return i - 1;}
++# EOI
++# cat <<EOI >=driver.cxx;
++# import foo.core;
++# int main (int argc, char*[]) {return f (argc) + g (argc);}
++# EOI
++# $* test clean <<EOI
++# ./: lib{foo} exe{test} # Full build.
++# exe{test}: cxx{driver} lib{foo}
++# lib{foo}: mxx{core} cxx{core-f} # @@ VC: core-g
++# EOI
diff --git a/build2.spec b/build2.spec
index adbd9de..0565cec 100644
--- a/build2.spec
+++ b/build2.spec
@@ -1,12 +1,12 @@
+%bcond_without bootstrap
%bcond_without check
%bcond_without bundle_libodb
-%bcond_with bootstrap
%bcond_with network_checks
%bcond_with static
Name: build2
-Version: 0.13.0
-Release: 5%{?dist}
+Version: 0.14.0
+Release: 1%{?dist}
Summary: Cross-platform build toolchain for developing and packaging C++ code
License: MIT
@@ -20,11 +20,23 @@ Source5: macros.%{name}
# The latest official release of libodb is not compatible with build2
%if %{with bundle_libodb}
-%global libodb_bundle_version 2.5.0-b.19
+%global libodb_bundle_version 2.5.0-b.21
Source100: https://pkg.cppget.org/1/beta/odb/libodb-%{libodb_bundle_version}.tar.gz
Source101: https://pkg.cppget.org/1/beta/odb/libodb-sqlite-%{libodb_bundle_version}....
%endif
+# Upstream https://git.build2.org/cgit/build2/commit/?id=65f77bb9a9556033a0bfb7401dd...
+Patch0000: libbuild2-config.install.scope-no-update-for-install.patch
+# Disable some C++ modules tests for PPC64LE because GCC has issues linking C++
+# modules on PPC64LE:
+# driver.cxx:(.text+0x88): unresolvable R_PPC64_REL24 against `_ZGIW3foo4coreEv'
+# /usr/bin/ld: final link failed: bad value
+Patch0100: build2-disable-test-cc-modules-ppc64le.patch
+# Upstream https://git.build2.org/cgit/libbutl/commit/?id=c6ea3d784ee920f51de3088437...
+Patch1000: libbutl-openssl-info-overloads.patch
+# Upstream https://git.build2.org/cgit/bpkg/commit/?id=073f4ed111b0b10dcbd81fc112f9d...
+Patch3000: bpkg-openssl-3-pkeyutl.patch
+
BuildRequires: gcc-c++
BuildRequires: libpkgconf-devel
%if %{with bootstrap}
@@ -120,12 +132,14 @@ applications that use lib%{name}.
%package -n libbutl
Summary: %{name} utility library
-# BSD-2 clause:
+# BSD-2-Clause:
+# libbutl/lz4.{c,h}
+# libbutl/lz4hc.{c,h}
# libbutl/sha256c.c
# libbutl/strptime.c
-# libbutl/timelocal.c
-# libbutl/timelocal.h
-# BSD-3 clause:
+# libbutl/timelocal.{c,h}
+# libbutl/xxhash.{c,h}
+# BSD-3-Clause:
# libbutl/sha1.c
License: MIT and BSD
Requires: curl
@@ -252,11 +266,22 @@ This package contains the %{name} RPM macros.
%else
%setup -q -c -n %{name}-toolchain-%{version} -a 1 -a 2 -a 3 -a 4 -a 100 -a 101
%endif
+pushd %{name}-%{version}
+%patch -p 1 -P 0000
+%ifarch ppc64le
+%patch -p 1 -P 0100
+%endif
+popd
+pushd libbutl-%{version}
+%patch -p 1 -P 1000
+popd
+pushd bpkg-%{version}
+%patch -p 1 -P 3000
+popd
mv libbutl-%{version} %{name}-%{version}
%build
# Define basic installation configuration. Note that this does not include:
-# %%{_sysconfdir} /etc
# %%{_libexecdir} %%{_exec_prefix}/libexec
# %%{_sharedstatedir} /var/lib
# %%{_datadir} %%{_prefix}/share
@@ -275,6 +300,7 @@ mv libbutl-%{version} %{name}-%{version}
config.install.sbin=%{_sbindir} \\\
config.install.include=%{_includedir} \\\
config.install.lib=%{_libdir} \\\
+ config.install.etc=%{_sysconfdir} \\\
config.install.man=%{_mandir} \\\
config.install.legal=%{_defaultlicensedir}/"<project>" \\\
config.install.pkgconfig=%{_libdir}/pkgconfig \\\
@@ -403,7 +429,10 @@ b install:
%{name}-%{version}/ \
libbpkg-%{version}/ \
bpkg-%{version}/ \
- bdep-%{version}/
+ bdep-%{version}/ \
+%if %{with bundle_libodb}
+ '!config.install.scope=project'
+%endif
# copy licenses from build2 package to libbuild2 subpackage
mkdir -p %{buildroot}%{_defaultlicensedir}/lib%{name}
cp %{buildroot}%{_defaultlicensedir}/%{name}/{AUTHORS,LICENSE} %{buildroot}%{_defaultlicensedir}/lib%{name}
@@ -455,25 +484,25 @@ b test:
%dir %{_defaultlicensedir}/lib%{name}
%license %{_defaultlicensedir}/lib%{name}/AUTHORS
%license %{_defaultlicensedir}/lib%{name}/LICENSE
-%{_libdir}/lib%{name}-0.13.so
-%{_libdir}/lib%{name}-bash-0.13-0.13.so
-%{_libdir}/lib%{name}-bin-0.13-0.13.so
-%{_libdir}/lib%{name}-c-0.13-0.13.so
-%{_libdir}/lib%{name}-cc-0.13-0.13.so
-%{_libdir}/lib%{name}-cxx-0.13-0.13.so
-%{_libdir}/lib%{name}-in-0.13-0.13.so
-%{_libdir}/lib%{name}-version-0.13-0.13.so
+%{_libdir}/lib%{name}-0.14.so
+%{_libdir}/lib%{name}-bash-0.14-0.14.so
+%{_libdir}/lib%{name}-bin-0.14-0.14.so
+%{_libdir}/lib%{name}-c-0.14-0.14.so
+%{_libdir}/lib%{name}-cc-0.14-0.14.so
+%{_libdir}/lib%{name}-cxx-0.14-0.14.so
+%{_libdir}/lib%{name}-in-0.14-0.14.so
+%{_libdir}/lib%{name}-version-0.14-0.14.so
%files -n lib%{name}-devel
%{_includedir}/lib%{name}
%{_libdir}/lib%{name}.so
-%{_libdir}/lib%{name}-bash{,-0.13}.so
-%{_libdir}/lib%{name}-bin{,-0.13}.so
-%{_libdir}/lib%{name}-c{,-0.13}.so
-%{_libdir}/lib%{name}-cc{,-0.13}.so
-%{_libdir}/lib%{name}-cxx{,-0.13}.so
-%{_libdir}/lib%{name}-in{,-0.13}.so
-%{_libdir}/lib%{name}-version{,-0.13}.so
+%{_libdir}/lib%{name}-bash{,-0.14}.so
+%{_libdir}/lib%{name}-bin{,-0.14}.so
+%{_libdir}/lib%{name}-c{,-0.14}.so
+%{_libdir}/lib%{name}-cc{,-0.14}.so
+%{_libdir}/lib%{name}-cxx{,-0.14}.so
+%{_libdir}/lib%{name}-in{,-0.14}.so
+%{_libdir}/lib%{name}-version{,-0.14}.so
%{_libdir}/pkgconfig/lib%{name}{,.shared}.pc
%{_libdir}/pkgconfig/lib%{name}-bash{,.shared}.pc
%{_libdir}/pkgconfig/lib%{name}-bin{,.shared}.pc
@@ -508,7 +537,7 @@ b test:
%license %{_defaultlicensedir}/libbutl/AUTHORS
%license %{_defaultlicensedir}/libbutl/COPYRIGHT
%license %{_defaultlicensedir}/libbutl/LICENSE
-%{_libdir}/libbutl-0.13.so
+%{_libdir}/libbutl-0.14.so
%files -n libbutl-devel
%dir %{_docdir}/libbutl
@@ -529,7 +558,7 @@ b test:
%dir %{_defaultlicensedir}/libbpkg
%license %{_defaultlicensedir}/libbpkg/AUTHORS
%license %{_defaultlicensedir}/libbpkg/LICENSE
-%{_libdir}/libbpkg-0.13.so
+%{_libdir}/libbpkg-0.14.so
%files -n libbpkg-devel
%dir %{_docdir}/libbpkg
@@ -585,6 +614,9 @@ b test:
%{_rpmmacrodir}/macros.%{name}
%changelog
+* Sun Jan 23 2022 Matthew Krupcale <mkrupcale(a)matthewkrupcale.com> - 0.14.0-1
+- Update to v0.14.0
+
* Wed Jul 21 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.13.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
diff --git a/libbuild2-config.install.scope-no-update-for-install.patch b/libbuild2-config.install.scope-no-update-for-install.patch
new file mode 100644
index 0000000..29f59ef
--- /dev/null
+++ b/libbuild2-config.install.scope-no-update-for-install.patch
@@ -0,0 +1,126 @@
+From 65f77bb9a9556033a0bfb7401dd9a00120e27524 Mon Sep 17 00:00:00 2001
+From: Boris Kolpackov <boris(a)codesynthesis.com>
+Date: Thu, 4 Nov 2021 13:41:23 +0200
+Subject: Do not apply install scope to update-for-install pre-operation
+
+---
+ libbuild2/cc/link-rule.cxx | 7 +++++++
+ libbuild2/cc/pkgconfig.cxx | 38 ++++++++++++++++++++++++++------------
+ libbuild2/install/rule.cxx | 4 ++--
+ libbuild2/install/utility.hxx | 4 ++++
+ 4 files changed, 39 insertions(+), 14 deletions(-)
+
+diff --git a/libbuild2/cc/link-rule.cxx b/libbuild2/cc/link-rule.cxx
+index fa9a1f1..79de01c 100644
+--- a/libbuild2/cc/link-rule.cxx
++++ b/libbuild2/cc/link-rule.cxx
+@@ -2379,6 +2379,13 @@ namespace build2
+ // install or no install, the reason is unless and until we are updating
+ // for install, we have no idea where-to things will be installed.
+ //
++ // There is a further complication: we may have no intention of
++ // installing the library but still need to update it for install (see
++ // install_scope() for background). In which case we may still not have
++ // the installation directories. We handle this in pkconfig_save() by
++ // skipping the generation of .pc files (and letting the install rule
++ // complain if we do end up trying to install them).
++ //
+ if (for_install && lt.library () && !lt.utility)
+ {
+ bool la (lt.static_library ());
+diff --git a/libbuild2/cc/pkgconfig.cxx b/libbuild2/cc/pkgconfig.cxx
+index 3033a2b..54fc05f 100644
+--- a/libbuild2/cc/pkgconfig.cxx
++++ b/libbuild2/cc/pkgconfig.cxx
+@@ -1461,18 +1461,6 @@ namespace build2
+ /* */ pcs::static_type)));
+ assert (t != nullptr);
+
+- // This is the lib{} group if we are generating the common file and the
+- // target itself otherwise.
+- //
+- const file& g (common ? l.group->as<file> () : l);
+-
+- // By default we assume things go into install.{include, lib}.
+- //
+- using install::resolve_dir;
+-
+- dir_path idir (resolve_dir (g, cast<dir_path> (g["install.include"])));
+- dir_path ldir (resolve_dir (g, cast<dir_path> (g["install.lib"])));
+-
+ const path& p (t->path ());
+
+ // If we are uninstalling, skip regenerating the file if it already
+@@ -1485,6 +1473,32 @@ namespace build2
+ return;
+ }
+
++ // This is the lib{} group if we are generating the common file and the
++ // target itself otherwise.
++ //
++ const file& g (common ? l.group->as<file> () : l);
++
++ // By default we assume things go into install.{include, lib}.
++ //
++ // If include.lib does not resolve, then assume this is update-for-
++ // install without actual install and remove the file if it exists.
++ //
++ // @@ Shouldn't we use target's install value rather than install.lib
++ // in case it gets installed into a custom location?
++ //
++ using install::resolve_dir;
++
++ dir_path ldir (resolve_dir (g,
++ cast<dir_path> (g["install.lib"]),
++ false /* fail_unknown */));
++ if (ldir.empty ())
++ {
++ rmfile (ctx, p, 3 /* verbosity */);
++ return;
++ }
++
++ dir_path idir (resolve_dir (g, cast<dir_path> (g["install.include"])));
++
+ // Note that generation can take some time if we have a large number of
+ // prerequisite libraries.
+ //
+diff --git a/libbuild2/install/rule.cxx b/libbuild2/install/rule.cxx
+index 2d81067..d4c70c0 100644
+--- a/libbuild2/install/rule.cxx
++++ b/libbuild2/install/rule.cxx
+@@ -105,7 +105,7 @@ namespace build2
+ // iterates over all its members.
+ //
+ if (!is)
+- is = install_scope (t);
++ is = a.operation () != update_id ? install_scope (t) : nullptr;
+
+ const target* pt (filter (*is, a, t, i));
+ if (pt == nullptr)
+@@ -366,7 +366,7 @@ namespace build2
+ // iterates over all its members.
+ //
+ if (!is)
+- is = install_scope (t);
++ is = a.operation () != update_id ? install_scope (t) : nullptr;
+
+ const target* pt (filter (*is, a, t, i));
+
+diff --git a/libbuild2/install/utility.hxx b/libbuild2/install/utility.hxx
+index cc5cd53..52b9a54 100644
+--- a/libbuild2/install/utility.hxx
++++ b/libbuild2/install/utility.hxx
+@@ -61,6 +61,10 @@ namespace build2
+ // belong to projects outside of this scope. If it's NULL, install
+ // prerequisites from all projects. See also config.install.scope.
+ //
++ // Note that this should not apply to update-for-install. Failed that we
++ // may end up using incompatibly-built prerequisites (e.g., a library) in
++ // a target built for install (e.g., an executable).
++ //
+ LIBBUILD2_SYMEXPORT const scope*
+ install_scope (const target&);
+
+--
+cgit v1.1
+
diff --git a/libbutl-openssl-info-overloads.patch b/libbutl-openssl-info-overloads.patch
new file mode 100644
index 0000000..44d4c7a
--- /dev/null
+++ b/libbutl-openssl-info-overloads.patch
@@ -0,0 +1,173 @@
+From c6ea3d784ee920f51de3088437b471c8dd6d70e2 Mon Sep 17 00:00:00 2001
+From: Karen Arutyunov <karen(a)codesynthesis.com>
+Date: Thu, 18 Nov 2021 15:54:46 +0300
+Subject: Add openssl::info() overloads
+
+---
+ libbutl/openssl.hxx | 35 +++++++++++++++++++++++++++
+ libbutl/openssl.ixx | 9 +++++++
+ libbutl/openssl.txx | 63 ++++++++++++++++++++++++++++++++++++++++++++++++
+ tests/openssl/driver.cxx | 24 +++++++++++++++---
+ 4 files changed, 127 insertions(+), 4 deletions(-)
+
+diff --git a/libbutl/openssl.hxx b/libbutl/openssl.hxx
+index 58e38f8..b340f5c 100644
+--- a/libbutl/openssl.hxx
++++ b/libbutl/openssl.hxx
+@@ -8,8 +8,10 @@
+
+ #include <libbutl/path.hxx>
+ #include <libbutl/process.hxx>
++#include <libbutl/optional.hxx>
+ #include <libbutl/fdstream.hxx>
+ #include <libbutl/small-vector.hxx>
++#include <libbutl/semantic-version.hxx>
+
+ #include <libbutl/export.hxx>
+
+@@ -78,6 +80,23 @@ namespace butl
+ // department (that were apparently fixed in 1.0.2). To work around these
+ // bugs pass user-supplied options first.
+ //
++ struct openssl_info
++ {
++ // Note that the program name can be used by the caller to properly
++ // interpret the version.
++ //
++ // The name/version examples:
++ //
++ // OpenSSL 3.0.0
++ // OpenSSL 1.1.1l
++ // LibreSSL 2.8.3
++ //
++ // The `l` component above ends up in semantic_version::build.
++ //
++ std::string name;
++ semantic_version version;
++ };
++
+ class LIBBUTL_SYMEXPORT openssl: public process
+ {
+ public:
+@@ -111,6 +130,22 @@ namespace butl
+ const std::string& command,
+ A&&... options);
+
++ // Run `openssl version` command and try to parse and return the
++ // information it prints to stdout. Return nullopt if the process hasn't
++ // terminated successfully or stdout parsing has failed. Throw
++ // process_error and io_error in case of errors.
++ //
++ template <typename E>
++ static optional<openssl_info>
++ info (E&& err, const process_env&);
++
++ template <typename C,
++ typename E>
++ static optional<openssl_info>
++ info (const C&,
++ E&& err,
++ const process_env&);
++
+ private:
+ template <typename T>
+ struct is_other
+diff --git a/libbutl/openssl.ixx b/libbutl/openssl.ixx
+index 1435dcb..db2fbcd 100644
+--- a/libbutl/openssl.ixx
++++ b/libbutl/openssl.ixx
+@@ -26,4 +26,13 @@ namespace butl
+ std::forward<A> (options)...)
+ {
+ }
++
++ template <typename E>
++ inline optional<openssl_info> openssl::
++ info (E&& err, const process_env& env)
++ {
++ return info ([] (const char* [], std::size_t) {},
++ std::forward<E> (err),
++ env);
++ }
+ }
+diff --git a/libbutl/openssl.txx b/libbutl/openssl.txx
+index f198c22..01e854c 100644
+--- a/libbutl/openssl.txx
++++ b/libbutl/openssl.txx
+@@ -1,6 +1,7 @@
+ // file : libbutl/openssl.txx -*- C++ -*-
+ // license : MIT; see accompanying LICENSE file
+
++#include <cstddef> // size_t
+ #include <utility> // forward()
+
+ namespace butl
+@@ -49,4 +50,66 @@ namespace butl
+
+ // Note: leaving this scope closes any open ends of the pipes in io_data.
+ }
++
++ template <typename C,
++ typename E>
++ optional<openssl_info> openssl::
++ info (const C& cmdc, E&& err, const process_env& env)
++ {
++ using namespace std;
++
++ // Run the `openssl version` command.
++ //
++ openssl os (cmdc,
++ nullfd, fdstream_mode::text, forward<E> (err),
++ env,
++ "version");
++
++ // Read the command's stdout and wait for its completion. Bail out if the
++ // command didn't terminate successfully or stdout contains no data.
++ //
++ string s;
++ if (!getline (os.in, s))
++ return nullopt;
++
++ os.in.close ();
++
++ if (!os.wait ())
++ return nullopt;
++
++ // Parse the version string.
++ //
++ // Note that there is some variety in the version representations:
++ //
++ // OpenSSL 3.0.0 7 sep 2021 (Library: OpenSSL 3.0.0 7 sep 2021)
++ // OpenSSL 1.1.1l FIPS 24 Aug 2021
++ // LibreSSL 2.8.3
++ //
++ // We will only consider the first two space separated components as the
++ // program name and version. We will also assume that there are no leading
++ // spaces and the version is delimited from the program name with a single
++ // space character.
++ //
++ size_t e (s.find (' '));
++
++ // Bail out if there is no version present in the string or the program
++ // name is empty.
++ //
++ if (e == string::npos || e == 0)
++ return nullopt;
++
++ string nm (s, 0, e);
++
++ size_t b (e + 1); // The beginning of the version.
++ e = s.find (' ', b); // The end of the version.
++
++ optional<semantic_version> ver (
++ parse_semantic_version (string (s, b, e != string::npos ? e - b : e),
++ "" /* build_separators */));
++
++ if (!ver)
++ return nullopt;
++
++ return openssl_info {move (nm), move (*ver)};
++ }
+ }
+cgit v1.1
+
diff --git a/macros.build2 b/macros.build2
index 4b63044..da0ea7c 100644
--- a/macros.build2
+++ b/macros.build2
@@ -11,7 +11,6 @@
config.cxx.coptions="%{build_cxxflags}" \\\
config.cc.loptions="%{build_ldflags}"
# Define basic installation configuration. Note that this does not include:
-# %%{_sysconfdir} /etc
# %%{_libexecdir} %%{_exec_prefix}/libexec
# %%{_sharedstatedir} /var/lib
# %%{_datadir} %%{_prefix}/share
@@ -30,6 +29,7 @@
config.install.sbin=%{_sbindir} \\\
config.install.include=%{_includedir} \\\
config.install.lib=%{_libdir} \\\
+ config.install.etc=%{_sysconfdir} \\\
config.install.man=%{_mandir} \\\
config.install.legal=%{_defaultlicensedir}/"<project>" \\\
config.install.pkgconfig=%{_libdir}/pkgconfig \\\
diff --git a/sources b/sources
index c8d18bb..a16cb4f 100644
--- a/sources
+++ b/sources
@@ -1,7 +1,7 @@
-SHA512 (build2-0.13.0.tar.gz) = c5adc72ec49dbfb3a3bfc2db35f1d4196f92572a18101ecb3261551b29e49c736e38dd5d4980d5b97bf49cd0391dd38295b23bcd50fae5b595cc063cd8376c62
-SHA512 (libbutl-0.13.0.tar.gz) = 72d273baa8c107d5664d2e645f4fa58f644dd321e2be95d6133dfc358ca843001cafba85e05597f6e6bc4de1d4476439f46c2a99b3eb5370d88f0506683b05a1
-SHA512 (libbpkg-0.13.0.tar.gz) = ac947f95b45fa6633e246e2aea679b8a8639d18d3e69b14e6931eb6dcbdb8fec60faf9051ba3307d3f0f8077edca78d15d3a754a1a3bbeb8b03046b215d21979
-SHA512 (bpkg-0.13.0.tar.gz) = d8f4c61d8ef5a817be8f9681575850fdf2f19e9e91c1eca9e6dc21b4d99813a6db73045306e066c2d1f2aece9cb89e8d3adbb2ead6b7e8c2c52af7c5ec721a8e
-SHA512 (bdep-0.13.0.tar.gz) = 8c2de9c84f27a80ad37879112ac6a0825327009435b81b5bdd6bd7a858e49cbd8c57c11673b0215c7161f265e9da8eb2edcf870717331b52676f82af4e5edabc
-SHA512 (libodb-2.5.0-b.19.tar.gz) = 0a3e70afd2c2ba573676e1a2630986215b4c8e57a004f7d2f2227f301b6c58f739397a0efc8877902baf88b93aff83c9b67c9f5b5e87cc570d64bb76b7b8f66b
-SHA512 (libodb-sqlite-2.5.0-b.19.tar.gz) = be6dbc731d9f45dfc7e9246f404edad78d59c9d38cff6599aed56d60d4f0e8391336e2da3608f66d74559f0a8d34243eb38e7e6a1221188959321810193ae901
+SHA512 (bdep-0.14.0.tar.gz) = 0b2aaa76b82e431dc3a51327d8e4e53a0f6e804afdd9e90849e2b143ca30a3d12c84c64c80d57fd704eb85b2886d690b9434c3b599fead9ccf52a98ecb88b370
+SHA512 (bpkg-0.14.0.tar.gz) = c7d25c4d1ead1d05a2ed2544a221df275e0ae6b44e337e59ec37a97c7110ed8242ac9f6fc816215047ce7f50768b433919fc3761efc4113d971bb1ad3b438978
+SHA512 (build2-0.14.0.tar.gz) = 71afcba0e42f1e62766beb06ad3d62eabe417d648d98a901303613094e3e8d8165d3a2cffb11b166cd1a42aa2f322f3ff35b2f37e03e4af59b8778df7aa5ed11
+SHA512 (libbpkg-0.14.0.tar.gz) = aceddba40c91910dbf7838f723d2f9acb2a5290ccfc4a02dfc0f0a950b0bd94f8c91ca358bc894a8fa544a8876bf07de293236256c2c4ea9a989b4abca88cfb7
+SHA512 (libbutl-0.14.0.tar.gz) = 8226f7e5895a949aa38496d1ddebe270014c2fd0fcdf6667cb64c2ce28f4c2fab6ffd0be20d37102e284545e8320af02433c71e54a0db578cc92c64ec235e3cc
+SHA512 (libodb-2.5.0-b.21.tar.gz) = 68fa486b3a6f1254fb57e480bdf8e1d008fe38f29c47d5a4648ff44dc964dd7f3ee9d07510d742db15120f272aa6152bf08ca9d7689e4b34b0f5e5910ea71c0e
+SHA512 (libodb-sqlite-2.5.0-b.21.tar.gz) = a84ea3847c64e5beffcb1f3958583bc02d371a4eb354ad32d0083b01e27362905bdcf09913c9b4cd6fc977eeaba95fd46cf953332e4fd0d673ca2f7521c71a1f
2 years, 3 months