Architecture specific change in rpms/soci.git
by githook-noreply@fedoraproject.org
The package rpms/soci.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/soci.git/commit/?id=c88af8d2790d2....
Change:
+ExcludeArch: armv7hl
Thanks.
Full change:
============
commit c88af8d2790d27a258b68c2304200dc4f35adb68
Author: Denis Arnaud <denis.arnaud_fedora(a)m4x.org>
Date: Sat Oct 26 14:18:48 2019 +0200
Exclude ARMv7hl, as theere is a weird GCC 7.1 related compilation error
diff --git a/soci.spec b/soci.spec
index 9f7d301..c1ec403 100644
--- a/soci.spec
+++ b/soci.spec
@@ -33,6 +33,10 @@ License: Boost
URL: http://%{name}.sourceforge.net
Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{full_version}.tar.gz
+# For some reason, as of October 2019, it does not compile on ARMv7hl
+# See https://koji.fedoraproject.org/koji/taskinfo?taskID=38562666
+ExcludeArch: armv7hl
+
BuildRequires: dos2unix
BuildRequires: gcc gcc-c++
BuildRequires: cmake
commit 060bcf37ffcf119ca5c9c890edd3b75f698d8fd4
Author: Denis Arnaud <denis.arnaud_fedora(a)m4x.org>
Date: Sat Oct 26 12:56:29 2019 +0200
Update to upstream release 4.0.0-rc1
Slightly modernized the RPM spec file
diff --git a/.gitignore b/.gitignore
index 584c1ff..8d7d3eb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,10 +1,10 @@
soci-*.tar.*
soci-*.zip
soci-*.src.rpm
-.gitignore
clog
.build-*
-/soci-3.?.?
+/soci-?.?.?
+/soci-?.?.?-rc*
/noarch
/x86_64
diff --git a/soci.spec b/soci.spec
index 0b4ec7e..9f7d301 100644
--- a/soci.spec
+++ b/soci.spec
@@ -32,10 +32,8 @@ Summary: The database access library for C++ programmers
License: Boost
URL: http://%{name}.sourceforge.net
Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{full_version}.tar.gz
-#Patch0: soci-001-fix-auto_ptr-c++11.patch
-#Patch1: sqlite-params-default-init-fix.patch
-
+BuildRequires: dos2unix
BuildRequires: gcc gcc-c++
BuildRequires: cmake
BuildRequires: boost-devel
@@ -184,8 +182,6 @@ library. The documentation is the same as at the %{name} web page.
%prep
%setup -q -n %{name}-%{full_version}
-#%%patch0 -p1
-#%%patch1 -p1
# Rename change-log and license file, so that they comply with
# packaging standard
@@ -195,7 +191,11 @@ mv LICENSE_1_0.txt COPYING
echo "2019-10-26:" > NEWS
echo "- Version 4.0.0-rc1" >> NEWS
echo "- See the ChangeLog file for more details." >> NEWS
-
+# Remove the spurious executable permission
+chmod a-x AUTHORS README ChangeLog COPYING NEWS
+find docs -type f -exec chmod a-x {} \;
+# Unix ends of line
+dos2unix AUTHORS README ChangeLog COPYING NEWS
%build
# Support for building tests.
@@ -210,7 +210,6 @@ echo "- See the ChangeLog file for more details." >> NEWS
mkdir tmpbuild
pushd tmpbuild
-# -DCMAKE_INSTALL_PREFIX:PATH=$RPM_BUILD_ROOT
%cmake \
-DSOCI_EMPTY=%{?with_empty:ON}%{?without_empty:OFF} \
-DSOCI_SQLITE3=%{?with_sqlite3:ON}%{?without_sqlite3:OFF} \
@@ -219,17 +218,20 @@ pushd tmpbuild
-DSOCI_ODBC=%{?with_odbc:ON}%{?without_odbc:OFF} \
-DWITH_ORACLE=%{?with_oracle:ON %{?_with_oracle_incdir} %{?_with_oracle_libdir}}%{?without_oracle:OFF} \
%{soci_testflags} ..
-make VERBOSE=1 %{?_smp_mflags}
+%make_build
popd
%install
-rm -rf $RPM_BUILD_ROOT
pushd tmpbuild
-make install DESTDIR=$RPM_BUILD_ROOT
+%make_install
popd
-##
-# Remove unpackaged files from the buildroot
-rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
+
+# CMake helpers
+mkdir -p %{buildroot}%{_datadir}/%{name}
+mv -f %{buildroot}%{_prefix}/cmake %{buildroot}%{_datadir}/%{name}/CMake
+
+# Remove unpackaged files from the buildroot
+rm -f %{buildroot}%{_libdir}/*.a
%ldconfig_scriptlets
@@ -283,37 +285,33 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
%{?with_empty:%{_includedir}/%{name}/empty/}
%{_libdir}/lib%{name}_core.so
%{?with_empty:%{_libdir}/lib%{name}_empty.so}
+%{_datadir}/%{name}/CMake
%{?with_sqlite3:%files sqlite3-devel
-%defattr(-,root,root,-)
%doc AUTHORS ChangeLog COPYING NEWS README
%dir %{_includedir}/%{name}
%{_includedir}/%{name}/sqlite3/
%{_libdir}/lib%{name}_sqlite3.so}
%{?with_mysql:%files mysql-devel
-%defattr(-,root,root,-)
%doc AUTHORS ChangeLog COPYING NEWS README
%dir %{_includedir}/%{name}
%{_includedir}/%{name}/mysql
%{_libdir}/lib%{name}_mysql.so}
%{?with_postgresql:%files postgresql-devel
-%defattr(-,root,root,-)
%doc AUTHORS ChangeLog COPYING NEWS README
%dir %{_includedir}/%{name}
%{_includedir}/%{name}/postgresql
%{_libdir}/lib%{name}_postgresql.so}
%{?with_odbc:%files odbc-devel
-%defattr(-,root,root,-)
%doc AUTHORS ChangeLog COPYING NEWS README
%dir %{_includedir}/%{name}
%{_includedir}/%{name}/odbc/
%{_libdir}/lib%{name}_odbc.so}
%{?with_oracle:%files oracle-devel
-%defattr(-,root,root,-)
%doc AUTHORS ChangeLog COPYING NEWS README
%dir %{_includedir}/%{name}
%{_includedir}/%{name}/oracle
@@ -321,12 +319,13 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
%files doc
-%doc AUTHORS ChangeLog COPYING NEWS README doc
+%doc AUTHORS ChangeLog COPYING NEWS README docs
%changelog
* Sat Oct 26 2019 Denis Arnaud <denis.arnaud_fedora(a)m4x.org> 4.0.0-1
- Update to upstream release 4.0.0-rc1
+- Slightly modernized the RPM spec file
* Fri Jul 26 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.2.3-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
commit 6e86a4e9bc63beb3d4635f7d0e93886edeaf9f77
Author: Denis Arnaud <denis.arnaud_fedora(a)m4x.org>
Date: Sat Oct 26 02:21:02 2019 +0200
define -> global
diff --git a/soci.spec b/soci.spec
index a0842a3..0b4ec7e 100644
--- a/soci.spec
+++ b/soci.spec
@@ -14,7 +14,7 @@
%bcond_without odbc
%bcond_with oracle
-%define _default_oracle_dir /opt/oracle/app/oracle/product/11.1.0/db_1
+%global _default_oracle_dir /opt/oracle/app/oracle/product/11.1.0/db_1
%{!?_with_oracle_incdir: %define _with_oracle_incdir --with-oracle-include=%{_default_oracle_dir}/rdbms/public}
%{!?_with_oracle_libdir: %define _with_oracle_libdir --with-oracle-lib=%{_default_oracle_dir}/lib}
#
@@ -22,9 +22,10 @@
#
Name: soci
Version: 4.0.0
-%define rc_ver rc1
-%define full_version %{version}-%{rc_ver}
-Release: %{rc_ver}%{?dist}
+%global version_suffix rc1
+%global full_version %{version}-%{version_suffix}
+
+Release: 1%{?dist}
Summary: The database access library for C++ programmers
@@ -172,9 +173,7 @@ to install %{name}-oracle.}
%package doc
Summary: HTML documentation for the %{name} library
-%if 0%{?fedora} || 0%{?rhel} > 5
BuildArch: noarch
-%endif
#BuildRequires: tex(latex)
#BuildRequires: doxygen, ghostscript
@@ -184,7 +183,7 @@ library. The documentation is the same as at the %{name} web page.
%prep
-%setup -q
+%setup -q -n %{name}-%{full_version}
#%%patch0 -p1
#%%patch1 -p1
@@ -193,8 +192,8 @@ library. The documentation is the same as at the %{name} web page.
mv README.md README
mv CHANGES ChangeLog
mv LICENSE_1_0.txt COPYING
-echo "2013-04-13:" > NEWS
-echo "- Version 3.2.1" >> NEWS
+echo "2019-10-26:" > NEWS
+echo "- Version 4.0.0-rc1" >> NEWS
echo "- See the ChangeLog file for more details." >> NEWS
@@ -326,7 +325,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
%changelog
-* Sat Oct 26 2019 Denis Arnaud <denis.arnaud_fedora(a)m4x.org> 4.0.0-rc1-1
+* Sat Oct 26 2019 Denis Arnaud <denis.arnaud_fedora(a)m4x.org> 4.0.0-1
- Update to upstream release 4.0.0-rc1
* Fri Jul 26 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.2.3-20
commit d91712d4c735a681ca43303536c98fdaea1fa5fa
Author: Denis Arnaud <denis.arnaud_fedora(a)m4x.org>
Date: Sat Oct 26 02:07:20 2019 +0200
Fixed typos in version scheme
diff --git a/soci.spec b/soci.spec
index 7f296e5..a0842a3 100644
--- a/soci.spec
+++ b/soci.spec
@@ -22,13 +22,15 @@
#
Name: soci
Version: 4.0.0
-Release: rc1%{?dist}
+%define rc_ver rc1
+%define full_version %{version}-%{rc_ver}
+Release: %{rc_ver}%{?dist}
Summary: The database access library for C++ programmers
License: Boost
URL: http://%{name}.sourceforge.net
-Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}-%{release}.ta...
+Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{full_version}.tar.gz
#Patch0: soci-001-fix-auto_ptr-c++11.patch
#Patch1: sqlite-params-default-init-fix.patch
commit 2aa45fc56aa00190dc3131fd884c662e0ff20672
Author: Denis Arnaud <denis.arnaud_fedora(a)m4x.org>
Date: Sat Oct 26 01:55:05 2019 +0200
Fixed a typo in the source URL
diff --git a/soci.spec b/soci.spec
index e00a046..7f296e5 100644
--- a/soci.spec
+++ b/soci.spec
@@ -28,9 +28,9 @@ Summary: The database access library for C++ programmers
License: Boost
URL: http://%{name}.sourceforge.net
-Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}i-%{release}.t...
-Patch0: soci-001-fix-auto_ptr-c++11.patch
-Patch1: sqlite-params-default-init-fix.patch
+Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}-%{release}.ta...
+#Patch0: soci-001-fix-auto_ptr-c++11.patch
+#Patch1: sqlite-params-default-init-fix.patch
BuildRequires: gcc gcc-c++
@@ -183,8 +183,8 @@ library. The documentation is the same as at the %{name} web page.
%prep
%setup -q
-%patch0 -p1
-%patch1 -p1
+#%%patch0 -p1
+#%%patch1 -p1
# Rename change-log and license file, so that they comply with
# packaging standard
commit 464bf39db68f4f7d70d045f5a3f83a5ba11d313c
Author: Denis Arnaud <denis.arnaud_fedora(a)m4x.org>
Date: Sat Oct 26 01:43:57 2019 +0200
Update to upstream release 4.0.0-rc1
diff --git a/soci.spec b/soci.spec
index c161871..e00a046 100644
--- a/soci.spec
+++ b/soci.spec
@@ -21,19 +21,19 @@
##
#
Name: soci
-Version: 3.2.3
-Release: 20%{?dist}
+Version: 4.0.0
+Release: rc1%{?dist}
Summary: The database access library for C++ programmers
License: Boost
URL: http://%{name}.sourceforge.net
-Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
+Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}i-%{release}.t...
Patch0: soci-001-fix-auto_ptr-c++11.patch
Patch1: sqlite-params-default-init-fix.patch
-BuildRequires: gcc-c++
+BuildRequires: gcc gcc-c++
BuildRequires: cmake
BuildRequires: boost-devel
@@ -324,6 +324,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
%changelog
+* Sat Oct 26 2019 Denis Arnaud <denis.arnaud_fedora(a)m4x.org> 4.0.0-rc1-1
+- Update to upstream release 4.0.0-rc1
+
* Fri Jul 26 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.2.3-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
@@ -357,7 +360,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
* Fri Jan 27 2017 Jonathan Wakely <jwakely(a)redhat.com> - 3.2.3-10
- Rebuilt for Boost 1.63
-* Fri Jan 13 2017 Denis Arnaud Denis Arnaud <denis.arnaud_fedora(a)m4x.org> - 3.2.3-9
+* Fri Jan 13 2017 Denis Arnaud <denis.arnaud_fedora(a)m4x.org> - 3.2.3-9
- Fixed compilation issues with C++11 (deprecation of auto_ptr)
* Mon May 16 2016 Jonathan Wakely <jwakely(a)redhat.com> - 3.2.3-8
diff --git a/sources b/sources
index 4e63e92..0f4df36 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-acfbccf176cd20e06833a8037a2d3699 soci-3.2.3.tar.gz
+SHA512 (soci-4.0.0-rc1.tar.gz) = 14ff955e74cd293406451a7483b409e47bc92d16faf9f3db85680e36b6e499d2f85e82047b3a62eb76725117b79c26a415335a754973631c6c0f521309fc64a6
4 years, 6 months
[Report] Packages Restricting Arches
by root
List of packages currently excluding arches (2570)
===========================================
- 0ad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- 90-Second-Portraits
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- GoldenCheetah
ExclusiveArch: %{qt5_qtwebengine_arches}
- GtkAda
ExclusiveArch: %{GPRbuild_arches}
- GtkAda3
ExclusiveArch: %{GPRbuild_arches}
- PragmARC
ExclusiveArch: %{GPRbuild_arches}
- R-V8
ExclusiveArch: %{nodejs_arches}
- RdRand
ExclusiveArch: %{ix86} x86_64
- SLOF
ExclusiveArch: ppc64le
- YafaRay
ExclusiveArch: %{ix86} x86_64
- aboot
ExclusiveArch: alpha
- acpid
ExclusiveArch: ia64 x86_64 %{ix86} %{arm} aarch64
- ahven
ExclusiveArch: %{GPRbuild_arches}
- alleyoop
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x %{arm} aarch64
- american-fuzzy-lop
ExclusiveArch: %{ix86} x86_64
- anet
ExclusiveArch: %{GPRbuild_arches}
- apmd
ExclusiveArch: %{ix86}
- appstream-generator
ExclusiveArch: x86_64 %{ix86} %{arm}
- arduino
ExclusiveArch: %{go_arches}
- arduino-builder
ExclusiveArch: %{go_arches}
- arm-trusted-firmware
ExclusiveArch: aarch64
- aunit
ExclusiveArch: %GPRbuild_arches
- avgtime
ExclusiveArch: %{ldc_arches}
- aws
ExclusiveArch: %GPRbuild_arches
- banshee
ExclusiveArch: %{mono_arches}
- banshee-community-extensions
ExclusiveArch: %ix86 x86_64 ppc ppc64 ia64 %{arm} sparcv9 alpha s390x
- bareftp
ExclusiveArch: %{mono_arches}
- bcal
ExclusiveArch: x86_64 aarch64 ia64 ppc64 ppc64le s390x
- bcc
ExclusiveArch: x86_64 %{power64} aarch64 s390x
- bcm283x-firmware
ExclusiveArch: %{arm} aarch64
- berusky2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{mips}
- biosdevname
ExclusiveArch: %{ix86} x86_64
- bless
ExclusiveArch: %mono_arches
- boo
ExclusiveArch: %{mono_arches}
- bpftrace
ExclusiveArch: x86_64 %{power64} aarch64 s390x
- bwa
ExclusiveArch: x86_64
- calamares
ExclusiveArch: %{ix86} x86_64
- calibre
ExclusiveArch: %{qt5_qtwebengine_arches}
- carto
ExclusiveArch: %{nodejs_arches} noarch
- ccdciel
ExclusiveArch: %{fpc_arches}
- cdcollect
ExclusiveArch: %{mono_arches}
- chromium
ExclusiveArch: x86_64 i686
ExclusiveArch: x86_64 i686 aarch64
- cjdns
ExclusiveArch: %{nodejs_arches}
- cmospwd
ExclusiveArch: %{ix86} x86_64
- cmrt
ExclusiveArch: %{ix86} x86_64 ia64
- coffee-script
ExclusiveArch: %{nodejs_arches} noarch
- colorful
ExclusiveArch: %{fpc_arches}
- containers
ExclusiveArch: %{ldc_arches}
- cpuid
ExclusiveArch: %{ix86} x86_64
- cqrlog
ExclusiveArch: %{fpc_arches}
- crash
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- cri-tools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- criu
ExclusiveArch: x86_64 %{arm} ppc64le aarch64 s390x
- cryptlib
ExclusiveArch: x86_64 %{ix86} aarch64 ppc64 ppc64le
- cryptobone
ExclusiveArch: x86_64 %{ix86} ppc64 ppc64le aarch64
- daq
ExclusiveArch: x86_64 aarch64
- darktable
ExclusiveArch: x86_64 aarch64 ppc64le
- dbus-sharp
ExclusiveArch: %mono_arches
- dbus-sharp-glib
ExclusiveArch: %mono_arches
- dbxtool
ExclusiveArch: i386 x86_64 aarch64
- deepin-daemon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- discord-irc
ExclusiveArch: %{nodejs_arches} noarch
- dlm
ExclusiveArch: i686 x86_64
- dmidecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- docco
ExclusiveArch: %{nodejs_arches} noarch
- docker-distribution
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- dolphin-emu
ExclusiveArch: x86_64 armv7l aarch64
- doublecmd
ExclusiveArch: %{ix86} x86_64
- dpdk
ExclusiveArch: x86_64 i686 aarch64 ppc64le
- dssi-vst
ExclusiveArch: %{ix86} x86_64
- dyninst
ExclusiveArch: %{ix86} x86_64 ppc64le aarch64
- e3
ExclusiveArch: %{ix86} x86_64
- edac-utils
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64}
- edb
ExclusiveArch: %{ix86} x86_64
- edk2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: x86_64 aarch64
- efibootmgr
ExclusiveArch: %{efi}
- efivar
ExclusiveArch: %{efi}
- elasticdump
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- elk
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- embree
ExclusiveArch: x86_64
- embree2
ExclusiveArch: x86_64
- enki
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- envytools
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- exciting
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{power64}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- expresso
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- extlinux-bootloader
ExclusiveArch: %{arm} aarch64
- fcitx-libpinyin
ExclusiveArch: %{qt5_qtwebengine_arches}
- fedora-dockerfiles
ExclusiveArch: %{go_arches}
- fence-virt
ExclusiveArch: i686 x86_64
- fes
ExclusiveArch: %{ix86} x86_64
- flannel
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- florist
ExclusiveArch: %{GPRbuild_arches}
- fluxcapacitor
ExclusiveArch: %{ix86} x86_64 %{arm}
- fpc
ExclusiveArch: %{arm} %{ix86} x86_64 ppc ppc64
- frysk
ExclusiveArch: %{ix86} x86_64 ppc64
- fst
ExclusiveArch: i686
- fwts
ExclusiveArch: x86_64 %{arm} aarch64 s390x %{power64}
- ga
ExclusiveArch: %{ix86} x86_64
- gbrainy
ExclusiveArch: %mono_arches
- gdata-sharp
ExclusiveArch: %mono_arches
- gdb-exploitable
ExclusiveArch: x86_64 i386
ExclusiveArch: x86_64 noarch
- gela-asis
ExclusiveArch: %GPRbuild_arches
- ghdl
ExclusiveArch: %{GNAT_arches}
- ghostwriter
ExclusiveArch: %{qt5_qtwebengine_arches}
- gio-sharp
ExclusiveArch: %mono_arches
- gir-to-d
ExclusiveArch: %{ldc_arches}
- git-octopus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- giver
ExclusiveArch: %{mono_arches}
- gkeyfile-sharp
ExclusiveArch: %mono_arches
- glibc32
ExclusiveArch: x86_64
- glibd
ExclusiveArch: %{ldc_arches}
- glusterd2
ExclusiveArch: %{go_arches}
- gmqcc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- gnatcoll
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-bindings
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-db
ExclusiveArch: %{GPRbuild_arches}
- gnome-boxes
ExclusiveArch: x86_64
- gnome-desktop-sharp
ExclusiveArch: %mono_arches
- gnome-do
ExclusiveArch: %mono_arches
- gnome-guitar
ExclusiveArch: %{mono_arches}
- gnome-keyring-sharp
ExclusiveArch: %mono_arches
- gnome-rdp
ExclusiveArch: %{mono_arches}
- gnome-sharp
ExclusiveArch: %mono_arches
- gnome-subtitles
ExclusiveArch: %mono_arches
- gnu-efi
ExclusiveArch: %{efi}
- go-bindata
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- go-compilers
ExclusiveArch: %{go_arches}
- go-rpm-macros
ExclusiveArch: %{golang_arches} %{gccgo_arches}
- godep
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang
ExclusiveArch: %{golang_arches}
- gomtree
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gotun
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: x86_64
- gprbuild
ExclusiveArch: %{GPRbuild_arches} %{bootstrap_arch}
- gprolog
ExclusiveArch: x86_64 %{ix86} ppc alpha
- grafana
ExclusiveArch: %{grafana_arches}
- grafana-pcp
ExclusiveArch: %{nodejs_arches}
- gtk-sharp-beans
ExclusiveArch: %mono_arches
- gtk-sharp2
ExclusiveArch: %mono_arches
- gtk-sharp3
ExclusiveArch: %{mono_arches}
- gtkd
ExclusiveArch: %{ldc_arches}
- gudev-sharp
ExclusiveArch: %mono_arches
- hcc
ExclusiveArch: x86_64 aarch64
- hedgewars
ExclusiveArch: %{fpc_arches}
- heketi
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- hip
ExclusiveArch: x86_64
- hsakmt
ExclusiveArch: x86_64 aarch64
- hyena
ExclusiveArch: %{mono_arches}
- hyperscan
ExclusiveArch: x86_64
- hyperv-daemons
ExclusiveArch: i686 x86_64
- icaro
ExclusiveArch: %{ix86} x86_64 noarch
- imvirt
ExclusiveArch: %{ix86} x86_64 ia64
- indistarter
ExclusiveArch: %{fpc_arches}
- infinipath-psm
ExclusiveArch: x86_64
- insect
ExclusiveArch: %{nodejs_arches} noarch
- intel-cmt-cat
ExclusiveArch: x86_64 i686 i586
ExclusiveArch: x86_64 i686 i586
- intel-gmmlib
ExclusiveArch: x86_64 i686
- ioport
ExclusiveArch: %{ix86} x86_64
- ipmctl
ExclusiveArch: x86_64
- ipw2100-firmware
ExclusiveArch: noarch i386 x86_64
- ipw2200-firmware
ExclusiveArch: noarch i386 x86_64
- ispc
ExclusiveArch: %{arm} %{ix86} x86_64
- iucode-tool
ExclusiveArch: %{ix86} x86_64
- jake
ExclusiveArch: %{nodejs_arches} noarch
- jasmine-node
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- java-1.8.0-openjdk-aarch32
ExclusiveArch: %{arm}
- josm
ExclusiveArch: %{ix86} x86_64
- keepass
ExclusiveArch: %{mono_arches}
- kernel
ExclusiveArch: x86_64 s390x %{arm} aarch64 ppc64le
- kicad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- kiwix-desktop
ExclusiveArch: %{qt5_qtwebengine_arches}
- knot-resolver
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- kompose
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 s390x
- kosmtik
ExclusiveArch: %{nodejs_arches} noarch
- kubernetes
ExclusiveArch: x86_64 aarch64 ppc64le s390x %{arm}
- lazarus
ExclusiveArch: %{fpc_arches}
- ldc
ExclusiveArch: %{ldc_arches}
- libbsr
ExclusiveArch: %{power64}
- libclc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
- libcxl
ExclusiveArch: %{power64}
- libica
ExclusiveArch: s390 s390x
- libipt
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- libmfx
ExclusiveArch: %{ix86} x86_64
- libocxl
ExclusiveArch: ppc64le
- libpmemobj-cpp
ExclusiveArch: x86_64
- libpsm2
ExclusiveArch: x86_64
- libquentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- libretro-desmume2015
ExclusiveArch: i686 x86_64
- librtas
ExclusiveArch: %{power64}
- libseccomp
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 mipsel mips64el ppc64 ppc64le s390 s390x
- libservicelog
ExclusiveArch: ppc %{power64}
- libsmbios
ExclusiveArch: x86_64 %{ix86}
- libunwind
ExclusiveArch: %{arm} aarch64 hppa ia64 mips ppc %{power64} %{ix86} x86_64
- libva-intel-hybrid-driver
ExclusiveArch: %{ix86} x86_64 ia64
- libvmi
ExclusiveArch: x86_64
- libvpd
ExclusiveArch: %{power64}
- libxsmm
ExclusiveArch: x86_64
- libzfcphbaapi
ExclusiveArch: s390 s390x
- lightdm
ExclusiveArch: x86_64 ppc64le
- lodash
ExclusiveArch: %{nodejs_arches} noarch
- log4net
ExclusiveArch: %mono_arches
- lrmi
ExclusiveArch: %{ix86}
- lsvpd
ExclusiveArch: %{power64}
- luajit
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 s390x ppc64le
- luxcorerender
ExclusiveArch: x86_64
- mactel-boot
ExclusiveArch: x86_64
- manifest-tool
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- mantle
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- matreshka
ExclusiveArch: %GPRbuild_arches
- maven-eclipse-plugin
ExclusiveArch: %{ix86} x86_64
- maxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- mcelog
ExclusiveArch: i686 x86_64
- mediaconch
ExclusiveArch: %{qt5_qtwebengine_arches}
- mellowplayer
ExclusiveArch: %{qt5_qtwebengine_arches}
- memkind
ExclusiveArch: x86_64
- memtest86+
ExclusiveArch: %{ix86} x86_64
- mesos
ExclusiveArch: x86_64
- microcode_ctl
ExclusiveArch: %{ix86} x86_64
- micropython
ExclusiveArch: %{arm} %{ix86} x86_64
- mine_detector
ExclusiveArch: %{GPRbuild_arches}
- minetest
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- mingw-wine-gecko
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- mkbootdisk
ExclusiveArch: %{ix86} sparc sparc64 x86_64
- mnemosyne
ExclusiveArch: noarch %{qt5_qtwebengine_arches}
- mocha
ExclusiveArch: %{nodejs_arches} noarch
- mod_mono
ExclusiveArch: %mono_arches
- module-build-service
ExclusiveArch: %{ix86} x86_64 noarch
- mokutil
ExclusiveArch: %{ix86} x86_64 aarch64
- mono
ExclusiveArch: %mono_arches
- mono-addins
ExclusiveArch: %mono_arches
- mono-basic
ExclusiveArch: %{mono_arches}
- mono-bouncycastle
ExclusiveArch: %mono_arches
- mono-cecil
ExclusiveArch: %mono_arches
- mono-cecil-flowanalysis
ExclusiveArch: %mono_arches
- mono-reflection
ExclusiveArch: %mono_arches
- mono-tools
ExclusiveArch: %mono_arches
- mono-zeroconf
ExclusiveArch: %mono_arches
- monobristol
ExclusiveArch: %{mono_arches}
- monodevelop
ExclusiveArch: %mono_arches
- monodevelop-debugger-gdb
ExclusiveArch: %{mono_arches}
- monosim
ExclusiveArch: %mono_arches
- mozilla-iot-gateway
ExclusiveArch: %{nodejs_arches} noarch
- mozilla-iot-gateway-addon-node
ExclusiveArch: %{nodejs_arches} noarch
- mrrescue
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- msr-tools
ExclusiveArch: %{ix86} x86_64
- mustache-d
ExclusiveArch: %{ldc_arches}
- mysql-connector-net
ExclusiveArch: %{mono_arches}
- nacl-arm-binutils
ExclusiveArch: x86_64
- nacl-binutils
ExclusiveArch: x86_64
- nant
ExclusiveArch: %mono_arches
- nbc
ExclusiveArch: %{fpc_arches}
- nbdkit
ExclusiveArch: x86_64
- ndesk-dbus
ExclusiveArch: %{mono_arches}
- ndesk-dbus-glib
ExclusiveArch: %{mono_arches}
- newtonsoft-json
ExclusiveArch: %{mono_arches}
- nim
ExclusiveArch: %{nim_arches}
- node-gyp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs
ExclusiveArch: %{nodejs_arches}
- nodejs-Base64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-abbrev
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-acorn-dynamic-import
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn-jsx
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-acorn-object-spread
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-agentkeepalive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ain2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-align-text
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgcyan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bggreen
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgmagenta
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgwhite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgyellow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-black
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-blue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bold
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-cyan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-dim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-escapes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-gray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-green
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-grey
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-hidden
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-inverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-italic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-magenta
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-red
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-reset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-strikethrough
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-styles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-underline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-white
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-wrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-yellow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansicolors
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansistyles
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-any-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-any-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-field
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-archy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-are-we-there-yet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-argparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-argsparser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-exclude
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-union
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-buffer-from-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-differ
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-events
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-find
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-find-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-foreach
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-ify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-union
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-unique
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arraybuffer-dot-slice
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arraybuffer-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arrify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ascii-tree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ascli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-asn1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assert-plus
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assertion-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assume
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-async-arrays
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-limiter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-queue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-some
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asynckit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-atob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-auto-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-autoresolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws-sign2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-code-frame
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-plugin-syntax-async-functions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-plugin-syntax-async-generators
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-runtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-babylon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-backbone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-backoff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-balanced-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base-plugins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base32-encode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base64-arraybuffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base64-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-base64id
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bash-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-basic-auth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-basic-auth-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-batch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bcrypt
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-bcryptjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-beeper
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-benchmark
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-than-before
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bignumber-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bind-obj-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bindings
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bit-mask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-blob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-block-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bluebird
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-body-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boolbase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-brace-expansion
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-braces
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-browser-stdout
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buble
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buf-compare
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-crc32
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-writer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buffertools
ExclusiveArch: %{nodejs_arches}
- nodejs-bufferutil
ExclusiveArch: %{nodejs_arches}
- nodejs-builtin-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-builtins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bundle-dependencies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bunker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bunyan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-burrito
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-busboy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-byline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bytes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cache-base
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caching-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-call-delayed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-matcher
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-me-maybe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-signature
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-callback-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsites
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-carrier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caseless
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-center-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-as-promised
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-cheerio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-connect-middleware
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-json-schema
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-oauth2orize-grant
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-passport-strategy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-spies-next
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chainer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chalk
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-char-spinner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-character-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-chardet
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-charenc
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-charm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-check-env
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-check-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cheerio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-child-process-close
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chmodr
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chownr
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chroma-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chrono
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ci-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-circular-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cjson
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-class-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clean-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clean-yaml-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clear-require
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-spinner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cliui
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-stats
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-closure-compiler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cmd-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-co
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-co-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-co-with-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-coa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-code-point-at
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-codemirror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-coffee-coverage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-collection-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-collections
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-color-support
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-colour
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-columnify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-combined-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commander
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-common-path-prefix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commondir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-commonmark
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-compare-func
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-compare-versions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-emitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-inherit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-compressible
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-concat-map
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-concat-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-config-chain
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-connect-livereload
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-connect-timeout
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-console-dot-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-console-group
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-consolemd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-constantinople
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-disposition
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-angular
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-atom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-codemirror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-ember
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-eslint
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-express
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jquery
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jscs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jshint
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-preset-loader
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-writer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-filter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-hex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie-jar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookie-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookie-session
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie-signature
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookiejar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-copy-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-core-assert
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-core-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-core-util-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-couch-login
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-coveralls
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-crc
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cross-spawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cross-spawn-async
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-crypt
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cryptiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csrf
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-select
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-css-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-tree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-css-what
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csscomb-core
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csslint
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csso
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cssom
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csurf
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-generate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-spectrum
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ctype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-currently-unhandled
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cycle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cyclist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-d
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dargs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-data-uri-to-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dateformat
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-death
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-debug-fabulous
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debug-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debuglog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-decamelize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decamelize-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decimal-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dedent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-eql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deep-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-default-require-extensions
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-default-resolution
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-defaults
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defence
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-defence-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-define-properties
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-define-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defined
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-del
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-delayed-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-delegates
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-delete
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dep-graph
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-depd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deprecated
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-indent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-newline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detective
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dezalgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dicer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflib
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dirty-chai
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-discord-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-docopt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-doctrine
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dot-prop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dotfile-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dryice
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duplexer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplexer2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duplexify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duration
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-each
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ebnf-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-echomd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-editor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ee-first
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ejs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-emojione
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-empty-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-encodeurl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-end-of-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-engine-dot-io-client
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-engine-dot-io-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-ex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es-abstract
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es-to-primitive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es5-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es5-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-iterator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-promisify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-weak-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escallmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-html
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-regexp-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escape-string-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escodegen
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escope
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espower
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espower-location-detector
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima-fb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima-harmony-jscs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espurify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-esrecurse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estraverse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estraverse-fb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estree-walker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-esutils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-event-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-eventemitter2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-events
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-events-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-everything-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-exit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-brackets
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-tilde
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expect-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-express
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-express-session
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-extend-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extended-emitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-eyes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fake
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fancy-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fast-levenshtein
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fastfall
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-faucet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-faye-websocket
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-figures
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-file-entry-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-file-sync-cmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-filelist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-filename-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fileset
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fill-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fill-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-finalhandler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-find-cache-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-find-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-findup-sync
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-first-chunk-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flagged-respawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flat-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flot
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-flush-write-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fmix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fn-dot-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-for-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-for-in
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-for-own
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-foreach
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-foreground-child
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forever-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-form-data
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-formatio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-formidable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forwarded
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fragment-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-freetree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fresh
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-dot-notify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-cached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fs-ext
ExclusiveArch: %{nodejs_arches}
- nodejs-fs-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-temp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-vacuum
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-write-stream-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream-ignore
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream-npm
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-function-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-function-loop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gauge
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gaze
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gdal
ExclusiveArch: %{nodejs_arches}
- nodejs-generate-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generate-object-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generic-pool
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-get-port
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-getobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-git-remote-origin-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-git-tails
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gitconfiglocal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-github-url-from-git
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-github-url-from-username-repo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob-base
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-expand
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-parent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-to-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-global-modules
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-global-prefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globby
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globule
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glogg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gnode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gonzales-pe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-graceful-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-graceful-readlink
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-growl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-banner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-cli
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-compare-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-clean
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-concat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-csslint
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-internal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-nodeunit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-contrib-uglify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-watch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-git-authors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-init
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-known-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-lib-contrib
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-sed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-simple-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-wrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gzip-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-handlebars
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-har-validator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-cors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-flag
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-symbols
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-unicode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-yarn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hash_file
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hawk
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-heap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hex-to-array-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-highlight-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-historic-readline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hoek
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-homedir-polyfill
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hook-std
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hooker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hosted-git-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hsluv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-htmlparser2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-deceiver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-errors
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-http-signature
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-humanize-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-i
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-i18n-transform
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-i2c
ExclusiveArch: %{nodejs_arches}
- nodejs-iconv
ExclusiveArch: %{nodejs_arches}
- nodejs-iconv-lite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-iferr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ignore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-image-size
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-immutable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-import-local
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imul
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imurmurhash
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-indent-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inflight
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-info-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inherit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-inherits
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inherits1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ini
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-int64-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-intercept-require
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-interpret
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-invert-kv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ip
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ipaddr-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-irc-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irc-formatting
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irc-upd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irregular-plurals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-accessor-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-arrayish
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-arrow-function
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-boolean-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-builtin-module
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-callable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-data-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-date-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-dotfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-equal-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-extendable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-finite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-fullwidth-code-point
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-generator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-function
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-module
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-my-json-valid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-negated-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-number
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-number-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-odd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-path-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-in-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-inside
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-plain-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-plain-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-primitive
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-registered
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-relative
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-subset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-text-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-typedarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-unc-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-valid-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-valid-instance
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-windows
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-isexe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-iso8601
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isodate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-coverage
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-hook
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-report
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-source-maps
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-reports
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jade
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jasmine-growl-reporter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jasmine-reporters
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jest-mock
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jison-lex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joose
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joosex-namespace-depended
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joosex-simplerequest
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-base64
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-string-escape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-js-tokens
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-yaml
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jschardet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jscoverage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-localizer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json-parse-helpfulerror
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stable-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stringify-safe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json3
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonm
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonpointer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonpointer-dot-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonselect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jwt-simple
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-keep-alive-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-keygrip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-keypress
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-kind-of
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-klaw
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-kuler2gpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lazy-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lazystream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lcid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lcov-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-leaflet
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leaflet-formbuilder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leaflet-hash
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leche
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-left-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-less
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-less-plugin-clean-css
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-levn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-libpq
ExclusiveArch: %{nodejs_arches}
- nodejs-libxmljs
ExclusiveArch: %{nodejs_arches}
- nodejs-line-numbers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-line-reader
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linkify-it
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-load-grunt-tasks
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-locate-character
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-locate-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lockfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-log-driver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-ok
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lolex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-long
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-longest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-loophole
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-loud-rejection
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lru-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lru-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ltx
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-magic-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-make-arrow-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-generator-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makeerror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mapnik
ExclusiveArch: %{nodejs_arches}
- nodejs-mapnik-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mapnik-vector-tile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-markdown
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-markdown-it-testgen
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-matched
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-max-timeout
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-maxmin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mbtiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-md5
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-hex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-o-matic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mdn-data
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mdurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-media-typer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoizee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-merge-descriptors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-metascript
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-method-override
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-micromatch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-millstone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mime-db
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mimeparse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-minimalistic-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-minipass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mkdirp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-bin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-git
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-modify-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-module-not-found-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-moment
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mongodb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb-core
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-monocle
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-morgan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-muffin
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multimatch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multiparty
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multipipe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-murmur-32
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mustache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mutate-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mute-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mysql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mz
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nan0
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nan1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nanomatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nanomsg
ExclusiveArch: %{nodejs_arches}
- nodejs-nanoseconds
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ncp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-needle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-negative-zero
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-negotiator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-net-browserify-alt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-netmask
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-next-tick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ng-classify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-dot-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-expat
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-node-int64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-static
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-stringprep
ExclusiveArch: %{nodejs_arches}
- nodejs-node-uuid
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nomnom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-noncharacters
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt-usage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-noptify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-normalize-git-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-normalize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-cache-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-install-checks
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-npm-package-arg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-run-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-user-validate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npmlog
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nth-check
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-number-is-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-numeral
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth2orize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-assign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-copy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-dot-assign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-dot-entries
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-dot-omit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-dot-pick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-inspect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-observable-to-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-obuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-okay
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-finished
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-headers
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-once
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-only-shallow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-opal-runtime
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-opener
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-option-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-option-chain
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optionator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-opts
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-orchestrator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ordered-read-streams
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-os-homedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-locale
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-tmpdir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-osenv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-output-file-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-own-or
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-own-or-env
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-finally
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-limit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-locate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-package
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-package-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-packaging
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-packet-reader
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pad-left
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-paperboy
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parallel-transform
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-github-repo-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parse-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-passwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parsejson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseqs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseuri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pascalcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-http-bearer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth2-client-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-strategy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-array
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-dirname
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-exists
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-extra
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-absolute
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-inside
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-key
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-parse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-to-regexp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pathval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pause
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pbkdf2-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pedding
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-connection-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-cursor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-escape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-int8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-native
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pgpass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pinkie
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pinkie-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pkg-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pkg-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pkginfo
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-platform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-plur
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-posix-character-classes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-bytea
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-date
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-interval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-precond
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prelude-ls
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-preserve
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-bytes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-hrtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pretty-time
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prism-media
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-process-nextick-args
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proclaim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-promises-aplus-tests
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prompt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-promzard
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-propagate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-propget
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proto-list
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proxy-addr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-proxyquire
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pruddy-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pseudomap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pubcontrol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pump
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pumpify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-q
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-q-io
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-qs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qtdatastream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-queue-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-quick-lru
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qunit-extras
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rainbowsocks
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-random-bytes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-random-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-randomatic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-range-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-raw-body
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-re-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-all-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-cmd-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-json-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-package-json
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-pkg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readable-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-readdir-enhanced
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readdir-scoped-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readdirp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-realize-package-specifier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rechoir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-redent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reduce-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regex-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regex-not
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-remove-trailing-separator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-repeat-element
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeat-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeating
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-repl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-replace
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-replace-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-replace-require-self
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-request
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-cs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-require-directory
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-inject
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-main-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-relative
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-uncached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-yaml
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-requirejs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-cwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-pkg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-response-time
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resumer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ret
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-retry
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reusify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-revalidator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rewire
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rfile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rhea
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-right-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rimraf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rndm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rollup
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rollup-plugin-buble
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-commonjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-node-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-pluginutils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ronn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-runforcover
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safe-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-safe-json-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safe-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-safecb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-samsam
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sax
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-secure-random
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-seedrandom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-select-hose
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-semver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-send
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sentiment
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sequencify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serialize-error
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serve-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-server-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-blocking
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-getter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-set-immediate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-immediate-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-setimmediate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-setprototypeof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sha
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shallow-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-command
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shelljs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-shelljs-nodecli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-should
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-should-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-format
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-http
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-showdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sift
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sigmund
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-signal-exit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-asyncify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-fmt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-single-line-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon-chai
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sinon-restore
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-slash
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sliced
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-slide
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-snapdragon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture-set
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snekfetch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snockets
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sntp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-socket-dot-io-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sorted-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-fixtures
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map-support
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sparkles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-spawn-sync
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spawn-wrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-exceptions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-license-ids
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-speedometer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sqlite3
ExclusiveArch: %{nodejs_arches}
- nodejs-srs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ssri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-trace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-utils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-static-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-static-favicon
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-statuses
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-combiner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-consume
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-counter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-pair
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-replace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-shift
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-spigot
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-streamsearch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-streamtest
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-repeat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-trim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string-width
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string_decoder
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringmap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringscanner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringset
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-ansi
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-bom-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-color
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-eof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-json-comments
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strong-log-transformer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stylus
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-success-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-superagent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-supertest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supervisor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supports-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-suspend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-svgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-symbol-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-mocha-reporter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-out
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-spec
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tapes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar-pack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp-write
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tempfile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temporary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern-cordovajs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern-liferay
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-terst
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testdata-w3c-json-form
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-testswarm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testutil
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-extensions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-thenify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thenify-all
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-through2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through2-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thunkify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tildify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tilejson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tilelive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tilelive-mapnik
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tiletype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-diff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-stamp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-timekeeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-timers-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tiny-lr-fork
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tippex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tlds
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-absolute-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-object-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-to-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-regex-range
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-touch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tough-cookie
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tracejs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-transformers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-traverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-treeify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tressa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-trim-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim-off-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trivial-deferred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-try-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-try-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tryor
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tsame
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tslib
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tsscmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tunnel-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tv4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tweetnacl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tweetnacl-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-check
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-type-detect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-name
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-typeahead.js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uc-dot-micro
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uglify-to-browserify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid-number
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uid-safe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ultron
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-umask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unc-path-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-underscore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-underscore-dot-logger
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unicode-length
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-union-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unique-filename
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-slug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unpipe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unset-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uri-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-urix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-url2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-use
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-user-home
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-deprecate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-inspect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utilities
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utils-merge
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uuid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vali-date
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-validate-npm-package-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vasync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vhost
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vlq
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vow-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vows
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-walkdir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-walker
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ware
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-warning-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-watchit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-watershed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wbuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wcwidth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-weak-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-websocket-driver
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-when
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-whet-dot-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-which
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-win-spawn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-window-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-winston
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-with
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wolfy87-eventemitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-woothee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wordwrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrap-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wrap-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrappy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-write
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-write-file-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ws
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xdg-basedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xml2js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlbuilder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlhttprequest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlhttprequest-ssl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xtend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-y18n
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yallist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yapool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yargs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yargs-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yarn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yeast
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zeropad
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zipfile
ExclusiveArch: %{nodejs_arches}
- nodejs-zlib-browserify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zlibjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodeunit
ExclusiveArch: %{nodejs_arches} noarch
- notify-sharp
ExclusiveArch: %{mono_arches}
- notify-sharp3
ExclusiveArch: %{mono_arches}
- nuget
ExclusiveArch: %{mono_arches}
- numatop
ExclusiveArch: x86_64 ppc64le
- nunit
ExclusiveArch: %{mono_arches}
- nunit2
ExclusiveArch: %{mono_arches}
- nvml
ExclusiveArch: x86_64
- nwchem
ExclusiveArch: x86_64 %{ix86}
- obs-service-rust2rpm
ExclusiveArch: %{rust_arches} noarch
- oci-kvm-hook
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- oci-umount
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- ocitools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- oidn
ExclusiveArch: x86_64
- olpc-kbdshim
ExclusiveArch: %{ix86} %{arm}
- olpc-netutils
ExclusiveArch: %{ix86} %{arm}
- olpc-utils
ExclusiveArch: %{ix86} %{arm}
- onedrive
ExclusiveArch: %{ldc_arches}
- opal-prd
ExclusiveArch: ppc64le
- open-vm-tools
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64
- openblas
ExclusiveArch: %{openblas_arches}
- openjfx
ExclusiveArch: %{ix86} x86_64
- openlibm
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 %{power64}
- openni
ExclusiveArch: %{ix86} x86_64 %{arm}
- openni-primesense
ExclusiveArch: %{ix86} x86_64 %{arm}
- openssl-ibmca
ExclusiveArch: s390 s390x
- origin
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- orion
ExclusiveArch: %{qt5_qtwebengine_arches}
- orthorobot
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- oshinko-cli
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- paflib
ExclusiveArch: ppc %{power64}
- pcc
ExclusiveArch: %{ix86} x86_64
- pcmciautils
ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64 %{arm}
- pdfmod
ExclusiveArch: %mono_arches
- peripety
ExclusiveArch: %{rust_arches}
- perl-Dumbbench
ExclusiveArch: %{ix86} x86_64 noarch
- perl-Parse-DMIDecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- pesign
ExclusiveArch: %{ix86} x86_64 ia64 aarch64 %{arm}
- pesign-test-app
ExclusiveArch: i686 x86_64 ia64 aarch64
- pinta
ExclusiveArch: %mono_arches
- pioneer
ExclusiveArch: %{ix86} x86_64
- pmdk-convert
ExclusiveArch: x86_64
- pocl
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- poppler-sharp
ExclusiveArch: %mono_arches
- popub
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- powerpc-utils
ExclusiveArch: ppc %{power64}
- ppc64-diag
ExclusiveArch: ppc %{power64}
- publican-jboss
ExclusiveArch: i686 x86_64
- pveclib
ExclusiveArch: ppc %{power64}
- pvs-sbcl
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- pyqtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- python-etcd
ExclusiveArch: noarch %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- python-healpy
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-openoffice
ExclusiveArch: noarch x86_64
- python-pymoc
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-rpi-gpio
ExclusiveArch: %{arm} aarch64
- q4wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- qcint
ExclusiveArch: x86_64
- qclib
ExclusiveArch: s390 s390x
- qevercloud
ExclusiveArch: %{qt5_qtwebengine_arches}
- qmapshack
ExclusiveArch: %{qt5_qtwebengine_arches}
- qt4pas
ExclusiveArch: %{fpc_arches}
- qt5-qtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- quantum-espresso
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86}
- quentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- reactfx
ExclusiveArch: %{ix86} x86_64 noarch
- rear
ExclusiveArch: %ix86 x86_64 ppc ppc64 ppc64le ia64
- redhat-lsb
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- reg
ExclusiveArch: x86_64
- renderdoc
ExclusiveArch: %{ix86} x86_64
- reptyr
ExclusiveArch: %{ix86} x86_64 %{arm}
- rescene
ExclusiveArch: %{mono_arches}
- restsharp
ExclusiveArch: %{mono_arches}
- rhythmbox-alternative-toolbar
ExclusiveArch: %{ix86} %{arm} x86_64 ppc64 ppc64le
- rocm-runtime
ExclusiveArch: x86_64 aarch64
- rocminfo
ExclusiveArch: x86_64 aarch64
- rpm-ostree
ExclusiveArch: %{rust_arches}
- rssguard
ExclusiveArch: %{qt5_qtwebengine_arches}
- rubygem-childprocess
ExclusiveArch: %{ix86} x86_64 noarch
- runc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le %{mips} s390x
- rust
ExclusiveArch: %{rust_arches}
- rust-abomonation
ExclusiveArch: %{rust_arches}
- rust-actix
ExclusiveArch: %{rust_arches}
- rust-actix-codec
ExclusiveArch: %{rust_arches}
- rust-actix-connect
ExclusiveArch: %{rust_arches}
- rust-actix-files
ExclusiveArch: %{rust_arches}
- rust-actix-http
ExclusiveArch: %{rust_arches}
- rust-actix-router
ExclusiveArch: %{rust_arches}
- rust-actix-rt
ExclusiveArch: %{rust_arches}
- rust-actix-server
ExclusiveArch: %{rust_arches}
- rust-actix-server-config
ExclusiveArch: %{rust_arches}
- rust-actix-service
ExclusiveArch: %{rust_arches}
- rust-actix-threadpool
ExclusiveArch: %{rust_arches}
- rust-actix-utils
ExclusiveArch: %{rust_arches}
- rust-actix-web
ExclusiveArch: %{rust_arches}
- rust-actix-web-codegen
ExclusiveArch: %{rust_arches}
- rust-actix_derive
ExclusiveArch: %{rust_arches}
- rust-addr2line
ExclusiveArch: %{rust_arches}
- rust-adler32
ExclusiveArch: %{rust_arches}
- rust-aes
ExclusiveArch: %{rust_arches}
- rust-aes-soft
ExclusiveArch: %{rust_arches}
- rust-afterburn
ExclusiveArch: %{rust_arches}
- rust-aho-corasick
ExclusiveArch: %{rust_arches}
- rust-alga
ExclusiveArch: %{rust_arches}
- rust-alga_derive
ExclusiveArch: %{rust_arches}
- rust-alphanumeric-sort
ExclusiveArch: %{rust_arches}
- rust-ammonia
ExclusiveArch: %{rust_arches}
- rust-ansi_colours
ExclusiveArch: %{rust_arches}
- rust-ansi_term
ExclusiveArch: %{rust_arches}
- rust-ansi_term0.11
ExclusiveArch: %{rust_arches}
- rust-antidote
ExclusiveArch: %{rust_arches}
- rust-aom-sys
ExclusiveArch: %{rust_arches}
- rust-approx
ExclusiveArch: %{rust_arches}
- rust-arc-swap
ExclusiveArch: %{rust_arches}
- rust-arg_enum_proc_macro
ExclusiveArch: %{rust_arches}
- rust-array-init
ExclusiveArch: %{rust_arches}
- rust-arraydeque
ExclusiveArch: %{rust_arches}
- rust-arrayref
ExclusiveArch: %{rust_arches}
- rust-arrayvec
ExclusiveArch: %{rust_arches}
- rust-ascii
ExclusiveArch: %{rust_arches}
- rust-askalono
ExclusiveArch: %{rust_arches}
- rust-askalono-cli
ExclusiveArch: %{rust_arches}
- rust-atk
ExclusiveArch: %{rust_arches}
- rust-atk-sys
ExclusiveArch: %{rust_arches}
- rust-atom
ExclusiveArch: %{rust_arches}
- rust-atomicwrites
ExclusiveArch: %{rust_arches}
- rust-atty
ExclusiveArch: %{rust_arches}
- rust-autocfg
ExclusiveArch: %{rust_arches}
- rust-awc
ExclusiveArch: %{rust_arches}
- rust-backtrace
ExclusiveArch: %{rust_arches}
- rust-backtrace-sys
ExclusiveArch: %{rust_arches}
- rust-base100
ExclusiveArch: %{rust_arches}
- rust-base64
ExclusiveArch: %{rust_arches}
- rust-bat
ExclusiveArch: %{rust_arches}
- rust-bencher
ExclusiveArch: %{rust_arches}
- rust-bincode
ExclusiveArch: %{rust_arches}
- rust-bincode0.8
ExclusiveArch: %{rust_arches}
- rust-bindgen
ExclusiveArch: %{rust_arches}
- rust-bit-set
ExclusiveArch: %{rust_arches}
- rust-bit-vec
ExclusiveArch: %{rust_arches}
- rust-bitflags
ExclusiveArch: %{rust_arches}
- rust-bitstream-io
ExclusiveArch: %{rust_arches}
- rust-blake2
ExclusiveArch: %{rust_arches}
- rust-blobby
ExclusiveArch: %{rust_arches}
- rust-block-buffer
ExclusiveArch: %{rust_arches}
- rust-block-cipher-trait
ExclusiveArch: %{rust_arches}
- rust-block-modes
ExclusiveArch: %{rust_arches}
- rust-block-padding
ExclusiveArch: %{rust_arches}
- rust-brev
ExclusiveArch: %{rust_arches}
- rust-brotli-sys
ExclusiveArch: %{rust_arches}
- rust-brotli2
ExclusiveArch: %{rust_arches}
- rust-bstr
ExclusiveArch: %{rust_arches}
- rust-bufstream
ExclusiveArch: %{rust_arches}
- rust-build_const
ExclusiveArch: %{rust_arches}
- rust-byte-tools
ExclusiveArch: %{rust_arches}
- rust-byte-unit
ExclusiveArch: %{rust_arches}
- rust-bytecount
ExclusiveArch: %{rust_arches}
- rust-byteorder
ExclusiveArch: %{rust_arches}
- rust-bytes
ExclusiveArch: %{rust_arches}
- rust-bytes0.3
ExclusiveArch: %{rust_arches}
- rust-bytesize
ExclusiveArch: %{rust_arches}
- rust-c2-chacha
ExclusiveArch: %{rust_arches}
- rust-c_vec
ExclusiveArch: %{rust_arches}
- rust-cairo-rs
ExclusiveArch: %{rust_arches}
- rust-cairo-sys-rs
ExclusiveArch: %{rust_arches}
- rust-caps
ExclusiveArch: %{rust_arches}
- rust-cargo
ExclusiveArch: %{rust_arches}
- rust-cargo-bloat
ExclusiveArch: %{rust_arches}
- rust-cargo_metadata
ExclusiveArch: %{rust_arches}
- rust-cassowary
ExclusiveArch: %{rust_arches}
- rust-cast
ExclusiveArch: %{rust_arches}
- rust-cbindgen
ExclusiveArch: %{rust_arches}
- rust-cc
ExclusiveArch: %{rust_arches}
- rust-cexpr
ExclusiveArch: %{rust_arches}
- rust-cfg-if
ExclusiveArch: %{rust_arches}
- rust-chainerror
ExclusiveArch: %{rust_arches}
- rust-chbs
ExclusiveArch: %{rust_arches}
- rust-checked_int_cast
ExclusiveArch: %{rust_arches}
- rust-chrono
ExclusiveArch: %{rust_arches}
- rust-chrono-humanize
ExclusiveArch: %{rust_arches}
- rust-clang-sys
ExclusiveArch: %{rust_arches}
- rust-clap
ExclusiveArch: %{rust_arches}
- rust-clicolors-control
ExclusiveArch: %{rust_arches}
- rust-cmake
ExclusiveArch: %{rust_arches}
- rust-color_quant
ExclusiveArch: %{rust_arches}
- rust-colored
ExclusiveArch: %{rust_arches}
- rust-colored_json
ExclusiveArch: %{rust_arches}
- rust-comrak
ExclusiveArch: %{rust_arches}
- rust-config
ExclusiveArch: %{rust_arches}
- rust-console
ExclusiveArch: %{rust_arches}
- rust-content_inspector
ExclusiveArch: %{rust_arches}
- rust-copyless
ExclusiveArch: %{rust_arches}
- rust-cpp_demangle
ExclusiveArch: %{rust_arches}
- rust-crates-io
ExclusiveArch: %{rust_arches}
- rust-crc
ExclusiveArch: %{rust_arches}
- rust-crc-core
ExclusiveArch: %{rust_arches}
- rust-crc32fast
ExclusiveArch: %{rust_arches}
- rust-criterion
ExclusiveArch: %{rust_arches}
- rust-criterion-plot
ExclusiveArch: %{rust_arches}
- rust-crossbeam
ExclusiveArch: %{rust_arches}
- rust-crossbeam-channel
ExclusiveArch: %{rust_arches}
- rust-crossbeam-deque
ExclusiveArch: %{rust_arches}
- rust-crossbeam-epoch
ExclusiveArch: %{rust_arches}
- rust-crossbeam-queue
ExclusiveArch: %{rust_arches}
- rust-crossbeam-utils
ExclusiveArch: %{rust_arches}
- rust-crossterm
ExclusiveArch: %{rust_arches}
- rust-crossterm_cursor
ExclusiveArch: %{rust_arches}
- rust-crossterm_input
ExclusiveArch: %{rust_arches}
- rust-crossterm_screen
ExclusiveArch: %{rust_arches}
- rust-crossterm_style
ExclusiveArch: %{rust_arches}
- rust-crossterm_terminal
ExclusiveArch: %{rust_arches}
- rust-crossterm_utils
ExclusiveArch: %{rust_arches}
- rust-crypto-hash
ExclusiveArch: %{rust_arches}
- rust-crypto-mac
ExclusiveArch: %{rust_arches}
- rust-cryptovec
ExclusiveArch: %{rust_arches}
- rust-cssparser
ExclusiveArch: %{rust_arches}
- rust-cssparser-macros
ExclusiveArch: %{rust_arches}
- rust-csv
ExclusiveArch: %{rust_arches}
- rust-csv-core
ExclusiveArch: %{rust_arches}
- rust-ctrlc
ExclusiveArch: %{rust_arches}
- rust-curl
ExclusiveArch: %{rust_arches}
- rust-curl-sys
ExclusiveArch: %{rust_arches}
- rust-custom_derive
ExclusiveArch: %{rust_arches}
- rust-darling
ExclusiveArch: %{rust_arches}
- rust-darling_core
ExclusiveArch: %{rust_arches}
- rust-darling_macro
ExclusiveArch: %{rust_arches}
- rust-data-encoding
ExclusiveArch: %{rust_arches}
- rust-data-url
ExclusiveArch: %{rust_arches}
- rust-datetime
ExclusiveArch: %{rust_arches}
- rust-dav1d-sys
ExclusiveArch: %{rust_arches}
- rust-dbus
ExclusiveArch: %{rust_arches}
- rust-dbus0.2
ExclusiveArch: %{rust_arches}
- rust-decimal
ExclusiveArch: %{rust_arches}
- rust-deflate
ExclusiveArch: %{rust_arches}
- rust-defmac
ExclusiveArch: %{rust_arches}
- rust-delta_e
ExclusiveArch: %{rust_arches}
- rust-derive_builder
ExclusiveArch: %{rust_arches}
- rust-derive_builder_core
ExclusiveArch: %{rust_arches}
- rust-derive_more
ExclusiveArch: %{rust_arches}
- rust-deunicode
ExclusiveArch: %{rust_arches}
- rust-devicemapper
ExclusiveArch: %{rust_arches}
- rust-diff
ExclusiveArch: %{rust_arches}
- rust-difference
ExclusiveArch: %{rust_arches}
- rust-digest
ExclusiveArch: %{rust_arches}
- rust-directories
ExclusiveArch: %{rust_arches}
- rust-dirs
ExclusiveArch: %{rust_arches}
- rust-dirs-sys
ExclusiveArch: %{rust_arches}
- rust-dns-parser
ExclusiveArch: %{rust_arches}
- rust-doc-comment
ExclusiveArch: %{rust_arches}
- rust-docmatic
ExclusiveArch: %{rust_arches}
- rust-docopt
ExclusiveArch: %{rust_arches}
- rust-downcast-rs
ExclusiveArch: %{rust_arches}
- rust-dtoa
ExclusiveArch: %{rust_arches}
- rust-dtoa-short
ExclusiveArch: %{rust_arches}
- rust-duct
ExclusiveArch: %{rust_arches}
- rust-dutree
ExclusiveArch: %{rust_arches}
- rust-edit-distance
ExclusiveArch: %{rust_arches}
- rust-either
ExclusiveArch: %{rust_arches}
- rust-elasticlunr-rs
ExclusiveArch: %{rust_arches}
- rust-encode_unicode
ExclusiveArch: %{rust_arches}
- rust-encoding
ExclusiveArch: %{rust_arches}
- rust-encoding-index-japanese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-korean
ExclusiveArch: %{rust_arches}
- rust-encoding-index-simpchinese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-singlebyte
ExclusiveArch: %{rust_arches}
- rust-encoding-index-tradchinese
ExclusiveArch: %{rust_arches}
- rust-encoding_index_tests
ExclusiveArch: %{rust_arches}
- rust-encoding_rs
ExclusiveArch: %{rust_arches}
- rust-encoding_rs_io
ExclusiveArch: %{rust_arches}
- rust-entities
ExclusiveArch: %{rust_arches}
- rust-enum-as-inner
ExclusiveArch: %{rust_arches}
- rust-enum_primitive
ExclusiveArch: %{rust_arches}
- rust-env_logger
ExclusiveArch: %{rust_arches}
- rust-env_logger0.4
ExclusiveArch: %{rust_arches}
- rust-env_logger0.5
ExclusiveArch: %{rust_arches}
- rust-env_logger0.6
ExclusiveArch: %{rust_arches}
- rust-envsubst
ExclusiveArch: %{rust_arches}
- rust-erased-serde
ExclusiveArch: %{rust_arches}
- rust-errln
ExclusiveArch: %{rust_arches}
- rust-errno
ExclusiveArch: %{rust_arches}
- rust-error-chain
ExclusiveArch: %{rust_arches}
- rust-exa
ExclusiveArch: %{rust_arches}
- rust-extprim
ExclusiveArch: %{rust_arches}
- rust-extprim_literals_macros
ExclusiveArch: %{rust_arches}
- rust-fail
ExclusiveArch: %{rust_arches}
- rust-failure
ExclusiveArch: %{rust_arches}
- rust-failure-tools
ExclusiveArch: %{rust_arches}
- rust-failure_derive
ExclusiveArch: %{rust_arches}
- rust-fake-simd
ExclusiveArch: %{rust_arches}
- rust-fake_clock
ExclusiveArch: %{rust_arches}
- rust-fallible-iterator
ExclusiveArch: %{rust_arches}
- rust-fd-find
ExclusiveArch: %{rust_arches}
- rust-fedora-coreos-pinger
ExclusiveArch: %{rust_arches}
- rust-ffsend
ExclusiveArch: %{rust_arches}
- rust-ffsend-api
ExclusiveArch: %{rust_arches}
- rust-filetime
ExclusiveArch: %{rust_arches}
- rust-fixedbitset
ExclusiveArch: %{rust_arches}
- rust-flame
ExclusiveArch: %{rust_arches}
- rust-flate2
ExclusiveArch: %{rust_arches}
- rust-float-cmp
ExclusiveArch: %{rust_arches}
- rust-fnv
ExclusiveArch: %{rust_arches}
- rust-foreign-types
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared
ExclusiveArch: %{rust_arches}
- rust-fragile
ExclusiveArch: %{rust_arches}
- rust-fs2
ExclusiveArch: %{rust_arches}
- rust-fs_extra
ExclusiveArch: %{rust_arches}
- rust-fuse
ExclusiveArch: %{rust_arches}
- rust-futf
ExclusiveArch: %{rust_arches}
- rust-futures-async-runtime-preview
ExclusiveArch: %{rust_arches}
- rust-futures-channel-preview
ExclusiveArch: %{rust_arches}
- rust-futures-core
ExclusiveArch: %{rust_arches}
- rust-futures-core-preview
ExclusiveArch: %{rust_arches}
- rust-futures-cpupool
ExclusiveArch: %{rust_arches}
- rust-futures-executor-preview
ExclusiveArch: %{rust_arches}
- rust-futures-io-preview
ExclusiveArch: %{rust_arches}
- rust-futures-preview
ExclusiveArch: %{rust_arches}
- rust-futures-sink-preview
ExclusiveArch: %{rust_arches}
- rust-futures-stable-preview
ExclusiveArch: %{rust_arches}
- rust-futures-util-preview
ExclusiveArch: %{rust_arches}
- rust-futures0.1
ExclusiveArch: %{rust_arches}
- rust-fuzzy-matcher
ExclusiveArch: %{rust_arches}
- rust-fxhash
ExclusiveArch: %{rust_arches}
- rust-gcsf
ExclusiveArch: %{rust_arches}
- rust-gdk
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf-sys
ExclusiveArch: %{rust_arches}
- rust-gdk-sys
ExclusiveArch: %{rust_arches}
- rust-generic-array
ExclusiveArch: %{rust_arches}
- rust-getopts
ExclusiveArch: %{rust_arches}
- rust-getrandom
ExclusiveArch: %{rust_arches}
- rust-gettext-rs
ExclusiveArch: %{rust_arches}
- rust-gettext-sys
ExclusiveArch: %{rust_arches}
- rust-gif
ExclusiveArch: %{rust_arches}
- rust-gimli
ExclusiveArch: %{rust_arches}
- rust-gio
ExclusiveArch: %{rust_arches}
- rust-gio-sys
ExclusiveArch: %{rust_arches}
- rust-gir-format-check
ExclusiveArch: %{rust_arches}
- rust-git2
ExclusiveArch: %{rust_arches}
- rust-git2-curl
ExclusiveArch: %{rust_arches}
- rust-glib
ExclusiveArch: %{rust_arches}
- rust-glib-sys
ExclusiveArch: %{rust_arches}
- rust-glob
ExclusiveArch: %{rust_arches}
- rust-globset
ExclusiveArch: %{rust_arches}
- rust-globwalk
ExclusiveArch: %{rust_arches}
- rust-gobject-sys
ExclusiveArch: %{rust_arches}
- rust-goblin
ExclusiveArch: %{rust_arches}
- rust-google-drive3-fork
ExclusiveArch: %{rust_arches}
- rust-grep
ExclusiveArch: %{rust_arches}
- rust-grep-cli
ExclusiveArch: %{rust_arches}
- rust-grep-matcher
ExclusiveArch: %{rust_arches}
- rust-grep-pcre2
ExclusiveArch: %{rust_arches}
- rust-grep-printer
ExclusiveArch: %{rust_arches}
- rust-grep-regex
ExclusiveArch: %{rust_arches}
- rust-grep-searcher
ExclusiveArch: %{rust_arches}
- rust-gspell
ExclusiveArch: %{rust_arches}
- rust-gspell-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video-sys
ExclusiveArch: %{rust_arches}
- rust-gtk
ExclusiveArch: %{rust_arches}
- rust-gtk-rs-lgpl-docs
ExclusiveArch: %{rust_arches}
- rust-gtk-source-sys
ExclusiveArch: %{rust_arches}
- rust-gtk-sys
ExclusiveArch: %{rust_arches}
- rust-gzip-header
ExclusiveArch: %{rust_arches}
- rust-h2
ExclusiveArch: %{rust_arches}
- rust-half
ExclusiveArch: %{rust_arches}
- rust-hamcrest
ExclusiveArch: %{rust_arches}
- rust-handlebars
ExclusiveArch: %{rust_arches}
- rust-hashbrown
ExclusiveArch: %{rust_arches}
- rust-headers
ExclusiveArch: %{rust_arches}
- rust-headers-core
ExclusiveArch: %{rust_arches}
- rust-headers-derive
ExclusiveArch: %{rust_arches}
- rust-heapsize
ExclusiveArch: %{rust_arches}
- rust-heck
ExclusiveArch: %{rust_arches}
- rust-hex
ExclusiveArch: %{rust_arches}
- rust-hex-literal
ExclusiveArch: %{rust_arches}
- rust-hex-literal-impl
ExclusiveArch: %{rust_arches}
- rust-hexyl
ExclusiveArch: %{rust_arches}
- rust-hkdf
ExclusiveArch: %{rust_arches}
- rust-hmac
ExclusiveArch: %{rust_arches}
- rust-home
ExclusiveArch: %{rust_arches}
- rust-horrorshow
ExclusiveArch: %{rust_arches}
- rust-hostname
ExclusiveArch: %{rust_arches}
- rust-html2pango
ExclusiveArch: %{rust_arches}
- rust-html5ever
ExclusiveArch: %{rust_arches}
- rust-http
ExclusiveArch: %{rust_arches}
- rust-http-body
ExclusiveArch: %{rust_arches}
- rust-httparse
ExclusiveArch: %{rust_arches}
- rust-humansize
ExclusiveArch: %{rust_arches}
- rust-humantime
ExclusiveArch: %{rust_arches}
- rust-hyper
ExclusiveArch: %{rust_arches}
- rust-hyper-native-tls
ExclusiveArch: %{rust_arches}
- rust-hyper-tls
ExclusiveArch: %{rust_arches}
- rust-hyper0.10
ExclusiveArch: %{rust_arches}
- rust-hyperfine
ExclusiveArch: %{rust_arches}
- rust-id_tree
ExclusiveArch: %{rust_arches}
- rust-ident_case
ExclusiveArch: %{rust_arches}
- rust-idna
ExclusiveArch: %{rust_arches}
- rust-idna0.1
ExclusiveArch: %{rust_arches}
- rust-ignore
ExclusiveArch: %{rust_arches}
- rust-im-rc
ExclusiveArch: %{rust_arches}
- rust-image
ExclusiveArch: %{rust_arches}
- rust-imgref
ExclusiveArch: %{rust_arches}
- rust-indexmap
ExclusiveArch: %{rust_arches}
- rust-indicatif
ExclusiveArch: %{rust_arches}
- rust-inflate
ExclusiveArch: %{rust_arches}
- rust-inotify
ExclusiveArch: %{rust_arches}
- rust-inotify-sys
ExclusiveArch: %{rust_arches}
- rust-input_buffer
ExclusiveArch: %{rust_arches}
- rust-interpolate_name
ExclusiveArch: %{rust_arches}
- rust-intervaltree
ExclusiveArch: %{rust_arches}
- rust-iovec
ExclusiveArch: %{rust_arches}
- rust-ipnetwork
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-itoa
ExclusiveArch: %{rust_arches}
- rust-jetscii
ExclusiveArch: %{rust_arches}
- rust-jobserver
ExclusiveArch: %{rust_arches}
- rust-jpeg-decoder
ExclusiveArch: %{rust_arches}
- rust-jwalk
ExclusiveArch: %{rust_arches}
- rust-lab
ExclusiveArch: %{rust_arches}
- rust-language-tags
ExclusiveArch: %{rust_arches}
- rust-lazy-init
ExclusiveArch: %{rust_arches}
- rust-lazy_static
ExclusiveArch: %{rust_arches}
- rust-lazycell
ExclusiveArch: %{rust_arches}
- rust-letter-avatar
ExclusiveArch: %{rust_arches}
- rust-libc
ExclusiveArch: %{rust_arches}
- rust-libdbus-sys
ExclusiveArch: %{rust_arches}
- rust-libflate
ExclusiveArch: %{rust_arches}
- rust-libgit2-sys
ExclusiveArch: %{rust_arches}
- rust-libhandy
ExclusiveArch: %{rust_arches}
- rust-libhandy-sys
ExclusiveArch: %{rust_arches}
- rust-libloading
ExclusiveArch: %{rust_arches}
- rust-libm
ExclusiveArch: %{rust_arches}
- rust-libmount
ExclusiveArch: %{rust_arches}
- rust-liboverdrop
ExclusiveArch: %{rust_arches}
- rust-libssh2-sys
ExclusiveArch: %{rust_arches}
- rust-libsystemd
ExclusiveArch: %{rust_arches}
- rust-libudev
ExclusiveArch: %{rust_arches}
- rust-libudev-sys
ExclusiveArch: %{rust_arches}
- rust-libz-sys
ExclusiveArch: %{rust_arches}
- rust-line-wrap
ExclusiveArch: %{rust_arches}
- rust-linked-hash-map
ExclusiveArch: %{rust_arches}
- rust-linkify
ExclusiveArch: %{rust_arches}
- rust-lipsum
ExclusiveArch: %{rust_arches}
- rust-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-log
ExclusiveArch: %{rust_arches}
- rust-log0.3
ExclusiveArch: %{rust_arches}
- rust-loggerv
ExclusiveArch: %{rust_arches}
- rust-loopdev
ExclusiveArch: %{rust_arches}
- rust-lru-cache
ExclusiveArch: %{rust_arches}
- rust-lru_time_cache
ExclusiveArch: %{rust_arches}
- rust-lscolors
ExclusiveArch: %{rust_arches}
- rust-lsd
ExclusiveArch: %{rust_arches}
- rust-lzma-sys
ExclusiveArch: %{rust_arches}
- rust-lzw
ExclusiveArch: %{rust_arches}
- rust-mac
ExclusiveArch: %{rust_arches}
- rust-macro-attr
ExclusiveArch: %{rust_arches}
- rust-man
ExclusiveArch: %{rust_arches}
- rust-maplit
ExclusiveArch: %{rust_arches}
- rust-markup5ever
ExclusiveArch: %{rust_arches}
- rust-matches
ExclusiveArch: %{rust_arches}
- rust-matrixmultiply
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-memoffset
ExclusiveArch: %{rust_arches}
- rust-metadeps
ExclusiveArch: %{rust_arches}
- rust-mime
ExclusiveArch: %{rust_arches}
- rust-mime-sniffer
ExclusiveArch: %{rust_arches}
- rust-mime0.2
ExclusiveArch: %{rust_arches}
- rust-mime_guess
ExclusiveArch: %{rust_arches}
- rust-mime_guess1
ExclusiveArch: %{rust_arches}
- rust-miniz-sys
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide_c_api
ExclusiveArch: %{rust_arches}
- rust-mint
ExclusiveArch: %{rust_arches}
- rust-mio
ExclusiveArch: %{rust_arches}
- rust-mio-extras
ExclusiveArch: %{rust_arches}
- rust-mio-uds
ExclusiveArch: %{rust_arches}
- rust-mktemp
ExclusiveArch: %{rust_arches}
- rust-mnt
ExclusiveArch: %{rust_arches}
- rust-mockito
ExclusiveArch: %{rust_arches}
- rust-modifier
ExclusiveArch: %{rust_arches}
- rust-muldiv
ExclusiveArch: %{rust_arches}
- rust-multimap
ExclusiveArch: %{rust_arches}
- rust-nalgebra
ExclusiveArch: %{rust_arches}
- rust-nasm-rs
ExclusiveArch: %{rust_arches}
- rust-native-tls
ExclusiveArch: %{rust_arches}
- rust-natord
ExclusiveArch: %{rust_arches}
- rust-net2
ExclusiveArch: %{rust_arches}
- rust-netmap_sys
ExclusiveArch: %{rust_arches}
- rust-new_debug_unreachable
ExclusiveArch: %{rust_arches}
- rust-newtype_derive
ExclusiveArch: %{rust_arches}
- rust-nix
ExclusiveArch: %{rust_arches}
- rust-nix0.14
ExclusiveArch: %{rust_arches}
- rust-no-panic
ExclusiveArch: %{rust_arches}
- rust-nodrop
ExclusiveArch: %{rust_arches}
- rust-nom
ExclusiveArch: %{rust_arches}
- rust-notify
ExclusiveArch: %{rust_arches}
- rust-num
ExclusiveArch: %{rust_arches}
- rust-num-bigint
ExclusiveArch: %{rust_arches}
- rust-num-complex
ExclusiveArch: %{rust_arches}
- rust-num-derive
ExclusiveArch: %{rust_arches}
- rust-num-integer
ExclusiveArch: %{rust_arches}
- rust-num-iter
ExclusiveArch: %{rust_arches}
- rust-num-rational
ExclusiveArch: %{rust_arches}
- rust-num-traits
ExclusiveArch: %{rust_arches}
- rust-num-traits0.1
ExclusiveArch: %{rust_arches}
- rust-num_cpus
ExclusiveArch: %{rust_arches}
- rust-number_prefix
ExclusiveArch: %{rust_arches}
- rust-numtoa
ExclusiveArch: %{rust_arches}
- rust-object
ExclusiveArch: %{rust_arches}
- rust-objekt
ExclusiveArch: %{rust_arches}
- rust-odds
ExclusiveArch: %{rust_arches}
- rust-once_cell
ExclusiveArch: %{rust_arches}
- rust-onig
ExclusiveArch: %{rust_arches}
- rust-onig_sys
ExclusiveArch: %{rust_arches}
- rust-opaque-debug
ExclusiveArch: %{rust_arches}
- rust-open
ExclusiveArch: %{rust_arches}
- rust-opener
ExclusiveArch: %{rust_arches}
- rust-openssh-keys
ExclusiveArch: %{rust_arches}
- rust-openssl
ExclusiveArch: %{rust_arches}
- rust-openssl-probe
ExclusiveArch: %{rust_arches}
- rust-openssl-sys
ExclusiveArch: %{rust_arches}
- rust-ord_subset
ExclusiveArch: %{rust_arches}
- rust-ordered-float
ExclusiveArch: %{rust_arches}
- rust-os_pipe
ExclusiveArch: %{rust_arches}
- rust-osstrtools
ExclusiveArch: %{rust_arches}
- rust-owning_ref
ExclusiveArch: %{rust_arches}
- rust-packaging
ExclusiveArch: %{rust_arches}
- rust-pad
ExclusiveArch: %{rust_arches}
- rust-pager
ExclusiveArch: %{rust_arches}
- rust-pango
ExclusiveArch: %{rust_arches}
- rust-pango-sys
ExclusiveArch: %{rust_arches}
- rust-pangocairo
ExclusiveArch: %{rust_arches}
- rust-pangocairo-sys
ExclusiveArch: %{rust_arches}
- rust-parity-wasm
ExclusiveArch: %{rust_arches}
- rust-parking_lot
ExclusiveArch: %{rust_arches}
- rust-parking_lot_core
ExclusiveArch: %{rust_arches}
- rust-paste
ExclusiveArch: %{rust_arches}
- rust-paste-impl
ExclusiveArch: %{rust_arches}
- rust-pathdiff
ExclusiveArch: %{rust_arches}
- rust-pbr
ExclusiveArch: %{rust_arches}
- rust-pcap
ExclusiveArch: %{rust_arches}
- rust-pcre2
ExclusiveArch: %{rust_arches}
- rust-pcre2-sys
ExclusiveArch: %{rust_arches}
- rust-peeking_take_while
ExclusiveArch: %{rust_arches}
- rust-peg
ExclusiveArch: %{rust_arches}
- rust-percent-encoding
ExclusiveArch: %{rust_arches}
- rust-percent-encoding1
ExclusiveArch: %{rust_arches}
- rust-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-phf_codegen
ExclusiveArch: %{rust_arches}
- rust-phf_generator
ExclusiveArch: %{rust_arches}
- rust-phf_shared
ExclusiveArch: %{rust_arches}
- rust-pkg-config
ExclusiveArch: %{rust_arches}
- rust-plain
ExclusiveArch: %{rust_arches}
- rust-plist
ExclusiveArch: %{rust_arches}
- rust-plugin
ExclusiveArch: %{rust_arches}
- rust-pnet_base
ExclusiveArch: %{rust_arches}
- rust-pnet_datalink
ExclusiveArch: %{rust_arches}
- rust-pnet_sys
ExclusiveArch: %{rust_arches}
- rust-png
ExclusiveArch: %{rust_arches}
- rust-ppv-lite86
ExclusiveArch: %{rust_arches}
- rust-precomputed-hash
ExclusiveArch: %{rust_arches}
- rust-pretty-git-prompt
ExclusiveArch: %{rust_arches}
- rust-pretty_assertions
ExclusiveArch: %{rust_arches}
- rust-pretty_env_logger
ExclusiveArch: %{rust_arches}
- rust-prettytable-rs
ExclusiveArch: %{rust_arches}
- rust-proc-macro-hack
ExclusiveArch: %{rust_arches}
- rust-proc-macro2
ExclusiveArch: %{rust_arches}
- rust-proc-macro2-0.4
ExclusiveArch: %{rust_arches}
- rust-procedural-masquerade
ExclusiveArch: %{rust_arches}
- rust-prometheus
ExclusiveArch: %{rust_arches}
- rust-proptest
ExclusiveArch: %{rust_arches}
- rust-proptest-derive
ExclusiveArch: %{rust_arches}
- rust-protobuf
ExclusiveArch: %{rust_arches}
- rust-pulldown-cmark
ExclusiveArch: %{rust_arches}
- rust-pulse
ExclusiveArch: %{rust_arches}
- rust-qr2term
ExclusiveArch: %{rust_arches}
- rust-qrcode
ExclusiveArch: %{rust_arches}
- rust-quick-error
ExclusiveArch: %{rust_arches}
- rust-quickcheck
ExclusiveArch: %{rust_arches}
- rust-quickcheck0.6
ExclusiveArch: %{rust_arches}
- rust-quickersort
ExclusiveArch: %{rust_arches}
- rust-quote
ExclusiveArch: %{rust_arches}
- rust-quote0.3
ExclusiveArch: %{rust_arches}
- rust-quote0.6
ExclusiveArch: %{rust_arches}
- rust-rand
ExclusiveArch: %{rust_arches}
- rust-rand0.4
ExclusiveArch: %{rust_arches}
- rust-rand0.5
ExclusiveArch: %{rust_arches}
- rust-rand0.6
ExclusiveArch: %{rust_arches}
- rust-rand_chacha
ExclusiveArch: %{rust_arches}
- rust-rand_chacha0.1
ExclusiveArch: %{rust_arches}
- rust-rand_core
ExclusiveArch: %{rust_arches}
- rust-rand_core0.3
ExclusiveArch: %{rust_arches}
- rust-rand_core0.4
ExclusiveArch: %{rust_arches}
- rust-rand_hc
ExclusiveArch: %{rust_arches}
- rust-rand_hc0.1
ExclusiveArch: %{rust_arches}
- rust-rand_isaac
ExclusiveArch: %{rust_arches}
- rust-rand_isaac0.1
ExclusiveArch: %{rust_arches}
- rust-rand_jitter
ExclusiveArch: %{rust_arches}
- rust-rand_jitter0.1
ExclusiveArch: %{rust_arches}
- rust-rand_os
ExclusiveArch: %{rust_arches}
- rust-rand_os0.1
ExclusiveArch: %{rust_arches}
- rust-rand_pcg
ExclusiveArch: %{rust_arches}
- rust-rand_pcg0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xoshiro
ExclusiveArch: %{rust_arches}
- rust-rawpointer
ExclusiveArch: %{rust_arches}
- rust-rawslice
ExclusiveArch: %{rust_arches}
- rust-rayon
ExclusiveArch: %{rust_arches}
- rust-rayon-core
ExclusiveArch: %{rust_arches}
- rust-recycler
ExclusiveArch: %{rust_arches}
- rust-regex
ExclusiveArch: %{rust_arches}
- rust-regex-automata
ExclusiveArch: %{rust_arches}
- rust-regex-syntax
ExclusiveArch: %{rust_arches}
- rust-region
ExclusiveArch: %{rust_arches}
- rust-relay
ExclusiveArch: %{rust_arches}
- rust-remove_dir_all
ExclusiveArch: %{rust_arches}
- rust-reqwest
ExclusiveArch: %{rust_arches}
- rust-resize
ExclusiveArch: %{rust_arches}
- rust-resolv-conf
ExclusiveArch: %{rust_arches}
- rust-restson
ExclusiveArch: %{rust_arches}
- rust-rgb
ExclusiveArch: %{rust_arches}
- rust-ripgrep
ExclusiveArch: %{rust_arches}
- rust-rmp
ExclusiveArch: %{rust_arches}
- rust-rmp-serde
ExclusiveArch: %{rust_arches}
- rust-roff
ExclusiveArch: %{rust_arches}
- rust-ron
ExclusiveArch: %{rust_arches}
- rust-rpassword
ExclusiveArch: %{rust_arches}
- rust-rpick
ExclusiveArch: %{rust_arches}
- rust-rust-ini
ExclusiveArch: %{rust_arches}
- rust-rust-stemmers
ExclusiveArch: %{rust_arches}
- rust-rustc-demangle
ExclusiveArch: %{rust_arches}
- rust-rustc-serialize
ExclusiveArch: %{rust_arches}
- rust-rustc-test
ExclusiveArch: %{rust_arches}
- rust-rustc_version
ExclusiveArch: %{rust_arches}
- rust-rustdoc-stripper
ExclusiveArch: %{rust_arches}
- rust-rustfilt
ExclusiveArch: %{rust_arches}
- rust-rustfix
ExclusiveArch: %{rust_arches}
- rust-rustio
ExclusiveArch: %{rust_arches}
- rust-rusty-fork
ExclusiveArch: %{rust_arches}
- rust-ryu
ExclusiveArch: %{rust_arches}
- rust-safe-transmute
ExclusiveArch: %{rust_arches}
- rust-safemem
ExclusiveArch: %{rust_arches}
- rust-same-file
ExclusiveArch: %{rust_arches}
- rust-sass-rs
ExclusiveArch: %{rust_arches}
- rust-sass-sys
ExclusiveArch: %{rust_arches}
- rust-scan_fmt
ExclusiveArch: %{rust_arches}
- rust-scoped-tls
ExclusiveArch: %{rust_arches}
- rust-scoped_threadpool
ExclusiveArch: %{rust_arches}
- rust-scopeguard
ExclusiveArch: %{rust_arches}
- rust-scroll
ExclusiveArch: %{rust_arches}
- rust-scroll_derive
ExclusiveArch: %{rust_arches}
- rust-sd
ExclusiveArch: %{rust_arches}
- rust-seahash
ExclusiveArch: %{rust_arches}
- rust-secret-service
ExclusiveArch: %{rust_arches}
- rust-semver
ExclusiveArch: %{rust_arches}
- rust-semver-parser
ExclusiveArch: %{rust_arches}
- rust-semver-parser0.7
ExclusiveArch: %{rust_arches}
- rust-serde
ExclusiveArch: %{rust_arches}
- rust-serde-pickle
ExclusiveArch: %{rust_arches}
- rust-serde-xml-rs
ExclusiveArch: %{rust_arches}
- rust-serde0.8
ExclusiveArch: %{rust_arches}
- rust-serde_bytes
ExclusiveArch: %{rust_arches}
- rust-serde_cbor
ExclusiveArch: %{rust_arches}
- rust-serde_derive
ExclusiveArch: %{rust_arches}
- rust-serde_ignored
ExclusiveArch: %{rust_arches}
- rust-serde_json
ExclusiveArch: %{rust_arches}
- rust-serde_json0.8
ExclusiveArch: %{rust_arches}
- rust-serde_stacker
ExclusiveArch: %{rust_arches}
- rust-serde_test
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded0.5
ExclusiveArch: %{rust_arches}
- rust-serde_yaml
ExclusiveArch: %{rust_arches}
- rust-sha-1
ExclusiveArch: %{rust_arches}
- rust-sha1
ExclusiveArch: %{rust_arches}
- rust-sha2
ExclusiveArch: %{rust_arches}
- rust-shared_child
ExclusiveArch: %{rust_arches}
- rust-shell-escape
ExclusiveArch: %{rust_arches}
- rust-shell-words
ExclusiveArch: %{rust_arches}
- rust-shlex
ExclusiveArch: %{rust_arches}
- rust-signal-hook
ExclusiveArch: %{rust_arches}
- rust-signal-hook-registry
ExclusiveArch: %{rust_arches}
- rust-silver
ExclusiveArch: %{rust_arches}
- rust-simple_logger
ExclusiveArch: %{rust_arches}
- rust-simplelog
ExclusiveArch: %{rust_arches}
- rust-siphasher
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-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-slotmap0.2
ExclusiveArch: %{rust_arches}
- rust-slug
ExclusiveArch: %{rust_arches}
- rust-smallvec
ExclusiveArch: %{rust_arches}
- rust-snowflake
ExclusiveArch: %{rust_arches}
- rust-socket2
ExclusiveArch: %{rust_arches}
- rust-sourceview
ExclusiveArch: %{rust_arches}
- rust-spin
ExclusiveArch: %{rust_arches}
- rust-spmc
ExclusiveArch: %{rust_arches}
- rust-stable_deref_trait
ExclusiveArch: %{rust_arches}
- rust-stacker
ExclusiveArch: %{rust_arches}
- rust-static_assertions
ExclusiveArch: %{rust_arches}
- rust-statistical
ExclusiveArch: %{rust_arches}
- rust-stb_truetype
ExclusiveArch: %{rust_arches}
- rust-stream-cipher
ExclusiveArch: %{rust_arches}
- rust-streaming-stats
ExclusiveArch: %{rust_arches}
- rust-string
ExclusiveArch: %{rust_arches}
- rust-string_cache
ExclusiveArch: %{rust_arches}
- rust-string_cache_codegen
ExclusiveArch: %{rust_arches}
- rust-string_cache_shared
ExclusiveArch: %{rust_arches}
- rust-strings
ExclusiveArch: %{rust_arches}
- rust-strsim
ExclusiveArch: %{rust_arches}
- rust-structopt
ExclusiveArch: %{rust_arches}
- rust-structopt-derive
ExclusiveArch: %{rust_arches}
- rust-strum
ExclusiveArch: %{rust_arches}
- rust-strum_macros
ExclusiveArch: %{rust_arches}
- rust-subtle
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin-sys
ExclusiveArch: %{rust_arches}
- rust-sval
ExclusiveArch: %{rust_arches}
- rust-sval_derive
ExclusiveArch: %{rust_arches}
- rust-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-tabwriter
ExclusiveArch: %{rust_arches}
- rust-take
ExclusiveArch: %{rust_arches}
- rust-take_mut
ExclusiveArch: %{rust_arches}
- rust-tar
ExclusiveArch: %{rust_arches}
- rust-tempdir
ExclusiveArch: %{rust_arches}
- rust-tempfile
ExclusiveArch: %{rust_arches}
- rust-tendril
ExclusiveArch: %{rust_arches}
- rust-tera
ExclusiveArch: %{rust_arches}
- rust-term
ExclusiveArch: %{rust_arches}
- rust-term_grid
ExclusiveArch: %{rust_arches}
- rust-term_size
ExclusiveArch: %{rust_arches}
- rust-termcolor
ExclusiveArch: %{rust_arches}
- rust-terminal_size
ExclusiveArch: %{rust_arches}
- rust-terminfo
ExclusiveArch: %{rust_arches}
- rust-termion
ExclusiveArch: %{rust_arches}
- rust-termios
ExclusiveArch: %{rust_arches}
- rust-test-assembler
ExclusiveArch: %{rust_arches}
- rust-textwrap
ExclusiveArch: %{rust_arches}
- rust-thread-id
ExclusiveArch: %{rust_arches}
- rust-thread-scoped
ExclusiveArch: %{rust_arches}
- rust-thread_local
ExclusiveArch: %{rust_arches}
- rust-threadpool
ExclusiveArch: %{rust_arches}
- rust-tiff
ExclusiveArch: %{rust_arches}
- rust-time
ExclusiveArch: %{rust_arches}
- rust-timebomb
ExclusiveArch: %{rust_arches}
- rust-timer
ExclusiveArch: %{rust_arches}
- rust-timerfd
ExclusiveArch: %{rust_arches}
- rust-tinytemplate
ExclusiveArch: %{rust_arches}
- rust-tokei
ExclusiveArch: %{rust_arches}
- rust-tokio
ExclusiveArch: %{rust_arches}
- rust-tokio-async-await
ExclusiveArch: %{rust_arches}
- rust-tokio-buf
ExclusiveArch: %{rust_arches}
- rust-tokio-codec
ExclusiveArch: %{rust_arches}
- rust-tokio-core
ExclusiveArch: %{rust_arches}
- rust-tokio-current-thread
ExclusiveArch: %{rust_arches}
- rust-tokio-executor
ExclusiveArch: %{rust_arches}
- rust-tokio-fs
ExclusiveArch: %{rust_arches}
- rust-tokio-io
ExclusiveArch: %{rust_arches}
- rust-tokio-io-pool
ExclusiveArch: %{rust_arches}
- rust-tokio-mock-task
ExclusiveArch: %{rust_arches}
- rust-tokio-mockstream
ExclusiveArch: %{rust_arches}
- rust-tokio-openssl
ExclusiveArch: %{rust_arches}
- rust-tokio-process
ExclusiveArch: %{rust_arches}
- rust-tokio-reactor
ExclusiveArch: %{rust_arches}
- rust-tokio-service
ExclusiveArch: %{rust_arches}
- rust-tokio-signal
ExclusiveArch: %{rust_arches}
- rust-tokio-sync
ExclusiveArch: %{rust_arches}
- rust-tokio-tcp
ExclusiveArch: %{rust_arches}
- rust-tokio-threadpool
ExclusiveArch: %{rust_arches}
- rust-tokio-timer
ExclusiveArch: %{rust_arches}
- rust-tokio-tls
ExclusiveArch: %{rust_arches}
- rust-tokio-trace-core
ExclusiveArch: %{rust_arches}
- rust-tokio-udp
ExclusiveArch: %{rust_arches}
- rust-tokio-uds
ExclusiveArch: %{rust_arches}
- rust-toml
ExclusiveArch: %{rust_arches}
- rust-toml0.4
ExclusiveArch: %{rust_arches}
- rust-traitobject
ExclusiveArch: %{rust_arches}
- rust-trust-dns-native-tls
ExclusiveArch: %{rust_arches}
- rust-trust-dns-openssl
ExclusiveArch: %{rust_arches}
- rust-trust-dns-proto
ExclusiveArch: %{rust_arches}
- rust-trust-dns-resolver
ExclusiveArch: %{rust_arches}
- rust-try-lock
ExclusiveArch: %{rust_arches}
- rust-try_or
ExclusiveArch: %{rust_arches}
- rust-tuikit
ExclusiveArch: %{rust_arches}
- rust-tungstenite
ExclusiveArch: %{rust_arches}
- rust-twoway
ExclusiveArch: %{rust_arches}
- rust-typeable
ExclusiveArch: %{rust_arches}
- rust-typed-arena
ExclusiveArch: %{rust_arches}
- rust-typemap
ExclusiveArch: %{rust_arches}
- rust-typenum
ExclusiveArch: %{rust_arches}
- rust-ucd-parse
ExclusiveArch: %{rust_arches}
- rust-ucd-trie
ExclusiveArch: %{rust_arches}
- rust-ucd-util
ExclusiveArch: %{rust_arches}
- rust-unchecked-index
ExclusiveArch: %{rust_arches}
- rust-unescape
ExclusiveArch: %{rust_arches}
- rust-unic-char-property
ExclusiveArch: %{rust_arches}
- rust-unic-char-range
ExclusiveArch: %{rust_arches}
- rust-unic-common
ExclusiveArch: %{rust_arches}
- rust-unic-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-category
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-common
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-version
ExclusiveArch: %{rust_arches}
- rust-unicase
ExclusiveArch: %{rust_arches}
- rust-unicase1
ExclusiveArch: %{rust_arches}
- rust-unicode-bidi
ExclusiveArch: %{rust_arches}
- rust-unicode-normalization
ExclusiveArch: %{rust_arches}
- rust-unicode-segmentation
ExclusiveArch: %{rust_arches}
- rust-unicode-width
ExclusiveArch: %{rust_arches}
- rust-unicode-xid
ExclusiveArch: %{rust_arches}
- rust-unicode-xid0.1
ExclusiveArch: %{rust_arches}
- rust-unicode_categories
ExclusiveArch: %{rust_arches}
- rust-unindent
ExclusiveArch: %{rust_arches}
- rust-unix_socket
ExclusiveArch: %{rust_arches}
- rust-unreachable
ExclusiveArch: %{rust_arches}
- rust-unsafe-any
ExclusiveArch: %{rust_arches}
- rust-untrusted
ExclusiveArch: %{rust_arches}
- rust-url
ExclusiveArch: %{rust_arches}
- rust-url1
ExclusiveArch: %{rust_arches}
- rust-url_serde
ExclusiveArch: %{rust_arches}
- rust-urlencoding
ExclusiveArch: %{rust_arches}
- rust-urlshortener
ExclusiveArch: %{rust_arches}
- rust-users
ExclusiveArch: %{rust_arches}
- rust-utf-8
ExclusiveArch: %{rust_arches}
- rust-utf8-ranges
ExclusiveArch: %{rust_arches}
- rust-utf8parse
ExclusiveArch: %{rust_arches}
- rust-uuid
ExclusiveArch: %{rust_arches}
- rust-v_escape
ExclusiveArch: %{rust_arches}
- rust-v_escape_derive
ExclusiveArch: %{rust_arches}
- rust-v_htmlescape
ExclusiveArch: %{rust_arches}
- rust-varlink
ExclusiveArch: %{rust_arches}
- rust-varlink-cli
ExclusiveArch: %{rust_arches}
- rust-varlink_generator
ExclusiveArch: %{rust_arches}
- rust-varlink_parser
ExclusiveArch: %{rust_arches}
- rust-varlink_stdinterfaces
ExclusiveArch: %{rust_arches}
- rust-vec_map
ExclusiveArch: %{rust_arches}
- rust-version-compare
ExclusiveArch: %{rust_arches}
- rust-version-sync
ExclusiveArch: %{rust_arches}
- rust-version_check
ExclusiveArch: %{rust_arches}
- rust-void
ExclusiveArch: %{rust_arches}
- rust-vte
ExclusiveArch: %{rust_arches}
- rust-wait-timeout
ExclusiveArch: %{rust_arches}
- rust-walkdir
ExclusiveArch: %{rust_arches}
- rust-want
ExclusiveArch: %{rust_arches}
- rust-warp
ExclusiveArch: %{rust_arches}
- rust-websocket
ExclusiveArch: %{rust_arches}
- rust-which
ExclusiveArch: %{rust_arches}
- rust-which1
ExclusiveArch: %{rust_arches}
- rust-wild
ExclusiveArch: %{rust_arches}
- rust-ws
ExclusiveArch: %{rust_arches}
- rust-x11
ExclusiveArch: %{rust_arches}
- rust-xattr
ExclusiveArch: %{rust_arches}
- rust-xdg
ExclusiveArch: %{rust_arches}
- rust-xml-rs
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-yup-oauth2
ExclusiveArch: %{rust_arches}
- rust-zincati
ExclusiveArch: %{rust_arches}
- rust-zoneinfo_compiled
ExclusiveArch: %{rust_arches}
- rust-zram-generator
ExclusiveArch: %{rust_arches}
- s390utils
ExclusiveArch: s390 s390x
- safetyblanket
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- sagemath
ExclusiveArch: aarch64 %{arm} %{ix86} x86_64 ppc sparcv9
- sbcl
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- sbd
ExclusiveArch: i686 x86_64 s390x aarch64 ppc64le
- sbsigntools
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- seabios
ExclusiveArch: x86_64
- seamonkey
ExclusiveArch: %{ix86} x86_64
- servicelog
ExclusiveArch: ppc %{power64}
- sgabios
ExclusiveArch: %{ix86} x86_64
- sharpfont
ExclusiveArch: %mono_arches
- sharpziplib
ExclusiveArch: %{mono_arches}
- shim
ExclusiveArch: %{efi}
- shim-unsigned-aarch64
ExclusiveArch: aarch64
- shim-unsigned-x64
ExclusiveArch: x86_64
- sigul
ExclusiveArch: x86_64
- skychart
ExclusiveArch: %{fpc_arches}
- snapd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- soup-sharp
ExclusiveArch: %{mono_arches}
- source-to-image
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- sparkleshare
ExclusiveArch: %{mono_arches}
- spicctrl
ExclusiveArch: %{ix86} x86_64
- spice
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- springlobby
ExclusiveArch: %{ix86} x86_64
- startdde
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- statsd
ExclusiveArch: %{nodejs_arches} noarch
- stratis-cli
ExclusiveArch: %{rust_arches}
- stratisd
ExclusiveArch: %{rust_arches}
- stripesnoop
ExclusiveArch: %{ix86} x86_64
- supermin
ExclusiveArch: x86_64
- svt-av1
ExclusiveArch: x86_64
- svt-vp9
ExclusiveArch: x86_64
- swift-lang
ExclusiveArch: x86_64 aarch64
- sysbench
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- syslinux
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- taglib-sharp
ExclusiveArch: %{mono_arches}
- tarantool
ExclusiveArch: %{ix86} x86_64 armv7hl armv7hnl
- tboot
ExclusiveArch: %{ix86} x86_64
- tdlib
ExclusiveArch: x86_64
- templates_parser
ExclusiveArch: %GPRbuild_arches
- termy-qt
ExclusiveArch: %{ix86} x86_64
- ternimal
ExclusiveArch: %{rust_arches}
- themonospot-base
ExclusiveArch: %mono_arches
- themonospot-console
ExclusiveArch: %mono_arches
- themonospot-gui-gtk
ExclusiveArch: %mono_arches
- themonospot-plugin-avi
ExclusiveArch: %mono_arches
- themonospot-plugin-mkv
ExclusiveArch: %mono_arches
- thermald
ExclusiveArch: %{ix86} x86_64
- tilix
ExclusiveArch: %{ldc_arches}
- tmux-top
ExclusiveArch: %{go_arches}
- tomboy
ExclusiveArch: %{mono_arches}
- toolbox
ExclusiveArch: aarch64 %{arm} ppc64le s390x x86_64
- tuned-profiles-nfv-host-bin
ExclusiveArch: %{ix86} x86_64
- uClibc
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
- ucx
ExclusiveArch: aarch64 ppc64le x86_64
- ugene
ExclusiveArch: %{ix86} x86_64
- uglify-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- uglify-js1
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- unetbootin
ExclusiveArch: %{ix86} x86_64
- ursa-major
ExclusiveArch: %{ix86} x86_64 noarch
- 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
- virtio-forwarder
ExclusiveArch: x86_64 aarch64 ppc64le %ix86
- virtualbox-guest-additions
ExclusiveArch: i686 x86_64
- virtualplanet
ExclusiveArch: %{fpc_arches}
- vkd3d
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- vmaf
ExclusiveArch: x86_64
- 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
- wraplinux
ExclusiveArch: %{ix86} x86_64
- wxMaxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
- x2goclient
ExclusiveArch: x86_64
- xe-guest-utilities
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-geode
ExclusiveArch: %{ix86}
- xorg-x11-drv-intel
ExclusiveArch: %{ix86} x86_64 ia64
- 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
- ycssmin
ExclusiveArch: %{nodejs_arches} noarch
- zeromq-ada
ExclusiveArch: %{GPRbuild_arches}
- zlib-ada
ExclusiveArch: %{GPRbuild_arches}
- zola
ExclusiveArch: %{rust_arches}
4 years, 6 months
[Report] Packages Restricting Arches
by root
Package that edited their arches constraints (1)
=============================================
- docco
was ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
is ExclusiveArch: %{nodejs_arches} noarch
List of packages currently excluding arches (2570)
===========================================
- 0ad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- 90-Second-Portraits
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- GoldenCheetah
ExclusiveArch: %{qt5_qtwebengine_arches}
- GtkAda
ExclusiveArch: %{GPRbuild_arches}
- GtkAda3
ExclusiveArch: %{GPRbuild_arches}
- PragmARC
ExclusiveArch: %{GPRbuild_arches}
- R-V8
ExclusiveArch: %{nodejs_arches}
- RdRand
ExclusiveArch: %{ix86} x86_64
- SLOF
ExclusiveArch: ppc64le
- YafaRay
ExclusiveArch: %{ix86} x86_64
- aboot
ExclusiveArch: alpha
- acpid
ExclusiveArch: ia64 x86_64 %{ix86} %{arm} aarch64
- ahven
ExclusiveArch: %{GPRbuild_arches}
- alleyoop
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x %{arm} aarch64
- american-fuzzy-lop
ExclusiveArch: %{ix86} x86_64
- anet
ExclusiveArch: %{GPRbuild_arches}
- apmd
ExclusiveArch: %{ix86}
- appstream-generator
ExclusiveArch: x86_64 %{ix86} %{arm}
- arduino
ExclusiveArch: %{go_arches}
- arduino-builder
ExclusiveArch: %{go_arches}
- arm-trusted-firmware
ExclusiveArch: aarch64
- aunit
ExclusiveArch: %GPRbuild_arches
- avgtime
ExclusiveArch: %{ldc_arches}
- aws
ExclusiveArch: %GPRbuild_arches
- banshee
ExclusiveArch: %{mono_arches}
- banshee-community-extensions
ExclusiveArch: %ix86 x86_64 ppc ppc64 ia64 %{arm} sparcv9 alpha s390x
- bareftp
ExclusiveArch: %{mono_arches}
- bcal
ExclusiveArch: x86_64 aarch64 ia64 ppc64 ppc64le s390x
- bcc
ExclusiveArch: x86_64 %{power64} aarch64 s390x
- bcm283x-firmware
ExclusiveArch: %{arm} aarch64
- berusky2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{mips}
- biosdevname
ExclusiveArch: %{ix86} x86_64
- bless
ExclusiveArch: %mono_arches
- boo
ExclusiveArch: %{mono_arches}
- bpftrace
ExclusiveArch: x86_64 %{power64} aarch64 s390x
- bwa
ExclusiveArch: x86_64
- calamares
ExclusiveArch: %{ix86} x86_64
- calibre
ExclusiveArch: %{qt5_qtwebengine_arches}
- carto
ExclusiveArch: %{nodejs_arches} noarch
- ccdciel
ExclusiveArch: %{fpc_arches}
- cdcollect
ExclusiveArch: %{mono_arches}
- chromium
ExclusiveArch: x86_64 i686
ExclusiveArch: x86_64 i686 aarch64
- cjdns
ExclusiveArch: %{nodejs_arches}
- cmospwd
ExclusiveArch: %{ix86} x86_64
- cmrt
ExclusiveArch: %{ix86} x86_64 ia64
- coffee-script
ExclusiveArch: %{nodejs_arches} noarch
- colorful
ExclusiveArch: %{fpc_arches}
- containers
ExclusiveArch: %{ldc_arches}
- cpuid
ExclusiveArch: %{ix86} x86_64
- cqrlog
ExclusiveArch: %{fpc_arches}
- crash
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- cri-tools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- criu
ExclusiveArch: x86_64 %{arm} ppc64le aarch64 s390x
- cryptlib
ExclusiveArch: x86_64 %{ix86} aarch64 ppc64 ppc64le
- cryptobone
ExclusiveArch: x86_64 %{ix86} ppc64 ppc64le aarch64
- daq
ExclusiveArch: x86_64 aarch64
- darktable
ExclusiveArch: x86_64 aarch64 ppc64le
- dbus-sharp
ExclusiveArch: %mono_arches
- dbus-sharp-glib
ExclusiveArch: %mono_arches
- dbxtool
ExclusiveArch: i386 x86_64 aarch64
- deepin-daemon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- discord-irc
ExclusiveArch: %{nodejs_arches} noarch
- dlm
ExclusiveArch: i686 x86_64
- dmidecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- docco
ExclusiveArch: %{nodejs_arches} noarch
- docker-distribution
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- dolphin-emu
ExclusiveArch: x86_64 armv7l aarch64
- doublecmd
ExclusiveArch: %{ix86} x86_64
- dpdk
ExclusiveArch: x86_64 i686 aarch64 ppc64le
- dssi-vst
ExclusiveArch: %{ix86} x86_64
- dyninst
ExclusiveArch: %{ix86} x86_64 ppc64le aarch64
- e3
ExclusiveArch: %{ix86} x86_64
- edac-utils
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64}
- edb
ExclusiveArch: %{ix86} x86_64
- edk2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: x86_64 aarch64
- efibootmgr
ExclusiveArch: %{efi}
- efivar
ExclusiveArch: %{efi}
- elasticdump
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- elk
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- embree
ExclusiveArch: x86_64
- embree2
ExclusiveArch: x86_64
- enki
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- envytools
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- exciting
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{power64}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- expresso
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- extlinux-bootloader
ExclusiveArch: %{arm} aarch64
- fcitx-libpinyin
ExclusiveArch: %{qt5_qtwebengine_arches}
- fedora-dockerfiles
ExclusiveArch: %{go_arches}
- fence-virt
ExclusiveArch: i686 x86_64
- fes
ExclusiveArch: %{ix86} x86_64
- flannel
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- florist
ExclusiveArch: %{GPRbuild_arches}
- fluxcapacitor
ExclusiveArch: %{ix86} x86_64 %{arm}
- fpc
ExclusiveArch: %{arm} %{ix86} x86_64 ppc ppc64
- frysk
ExclusiveArch: %{ix86} x86_64 ppc64
- fst
ExclusiveArch: i686
- fwts
ExclusiveArch: x86_64 %{arm} aarch64 s390x %{power64}
- ga
ExclusiveArch: %{ix86} x86_64
- gbrainy
ExclusiveArch: %mono_arches
- gdata-sharp
ExclusiveArch: %mono_arches
- gdb-exploitable
ExclusiveArch: x86_64 i386
ExclusiveArch: x86_64 noarch
- gela-asis
ExclusiveArch: %GPRbuild_arches
- ghdl
ExclusiveArch: %{GNAT_arches}
- ghostwriter
ExclusiveArch: %{qt5_qtwebengine_arches}
- gio-sharp
ExclusiveArch: %mono_arches
- gir-to-d
ExclusiveArch: %{ldc_arches}
- git-octopus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- giver
ExclusiveArch: %{mono_arches}
- gkeyfile-sharp
ExclusiveArch: %mono_arches
- glibc32
ExclusiveArch: x86_64
- glibd
ExclusiveArch: %{ldc_arches}
- glusterd2
ExclusiveArch: %{go_arches}
- gmqcc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- gnatcoll
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-bindings
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-db
ExclusiveArch: %{GPRbuild_arches}
- gnome-boxes
ExclusiveArch: x86_64
- gnome-desktop-sharp
ExclusiveArch: %mono_arches
- gnome-do
ExclusiveArch: %mono_arches
- gnome-guitar
ExclusiveArch: %{mono_arches}
- gnome-keyring-sharp
ExclusiveArch: %mono_arches
- gnome-rdp
ExclusiveArch: %{mono_arches}
- gnome-sharp
ExclusiveArch: %mono_arches
- gnome-subtitles
ExclusiveArch: %mono_arches
- gnu-efi
ExclusiveArch: %{efi}
- go-bindata
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- go-compilers
ExclusiveArch: %{go_arches}
- go-rpm-macros
ExclusiveArch: %{golang_arches} %{gccgo_arches}
- godep
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang
ExclusiveArch: %{golang_arches}
- gomtree
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gotun
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: x86_64
- gprbuild
ExclusiveArch: %{GPRbuild_arches} %{bootstrap_arch}
- gprolog
ExclusiveArch: x86_64 %{ix86} ppc alpha
- grafana
ExclusiveArch: %{grafana_arches}
- grafana-pcp
ExclusiveArch: %{nodejs_arches}
- gtk-sharp-beans
ExclusiveArch: %mono_arches
- gtk-sharp2
ExclusiveArch: %mono_arches
- gtk-sharp3
ExclusiveArch: %{mono_arches}
- gtkd
ExclusiveArch: %{ldc_arches}
- gudev-sharp
ExclusiveArch: %mono_arches
- hcc
ExclusiveArch: x86_64 aarch64
- hedgewars
ExclusiveArch: %{fpc_arches}
- heketi
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- hip
ExclusiveArch: x86_64
- hsakmt
ExclusiveArch: x86_64 aarch64
- hyena
ExclusiveArch: %{mono_arches}
- hyperscan
ExclusiveArch: x86_64
- hyperv-daemons
ExclusiveArch: i686 x86_64
- icaro
ExclusiveArch: %{ix86} x86_64 noarch
- imvirt
ExclusiveArch: %{ix86} x86_64 ia64
- indistarter
ExclusiveArch: %{fpc_arches}
- infinipath-psm
ExclusiveArch: x86_64
- insect
ExclusiveArch: %{nodejs_arches} noarch
- intel-cmt-cat
ExclusiveArch: x86_64 i686 i586
ExclusiveArch: x86_64 i686 i586
- intel-gmmlib
ExclusiveArch: x86_64 i686
- ioport
ExclusiveArch: %{ix86} x86_64
- ipmctl
ExclusiveArch: x86_64
- ipw2100-firmware
ExclusiveArch: noarch i386 x86_64
- ipw2200-firmware
ExclusiveArch: noarch i386 x86_64
- ispc
ExclusiveArch: %{arm} %{ix86} x86_64
- iucode-tool
ExclusiveArch: %{ix86} x86_64
- jake
ExclusiveArch: %{nodejs_arches} noarch
- jasmine-node
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- java-1.8.0-openjdk-aarch32
ExclusiveArch: %{arm}
- josm
ExclusiveArch: %{ix86} x86_64
- keepass
ExclusiveArch: %{mono_arches}
- kernel
ExclusiveArch: x86_64 s390x %{arm} aarch64 ppc64le
- kicad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- kiwix-desktop
ExclusiveArch: %{qt5_qtwebengine_arches}
- knot-resolver
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- kompose
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 s390x
- kosmtik
ExclusiveArch: %{nodejs_arches} noarch
- kubernetes
ExclusiveArch: x86_64 aarch64 ppc64le s390x %{arm}
- lazarus
ExclusiveArch: %{fpc_arches}
- ldc
ExclusiveArch: %{ldc_arches}
- libbsr
ExclusiveArch: %{power64}
- libclc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
- libcxl
ExclusiveArch: %{power64}
- libica
ExclusiveArch: s390 s390x
- libipt
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- libmfx
ExclusiveArch: %{ix86} x86_64
- libocxl
ExclusiveArch: ppc64le
- libpmemobj-cpp
ExclusiveArch: x86_64
- libpsm2
ExclusiveArch: x86_64
- libquentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- libretro-desmume2015
ExclusiveArch: i686 x86_64
- librtas
ExclusiveArch: %{power64}
- libseccomp
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 mipsel mips64el ppc64 ppc64le s390 s390x
- libservicelog
ExclusiveArch: ppc %{power64}
- libsmbios
ExclusiveArch: x86_64 %{ix86}
- libunwind
ExclusiveArch: %{arm} aarch64 hppa ia64 mips ppc %{power64} %{ix86} x86_64
- libva-intel-hybrid-driver
ExclusiveArch: %{ix86} x86_64 ia64
- libvmi
ExclusiveArch: x86_64
- libvpd
ExclusiveArch: %{power64}
- libxsmm
ExclusiveArch: x86_64
- libzfcphbaapi
ExclusiveArch: s390 s390x
- lightdm
ExclusiveArch: x86_64 ppc64le
- lodash
ExclusiveArch: %{nodejs_arches} noarch
- log4net
ExclusiveArch: %mono_arches
- lrmi
ExclusiveArch: %{ix86}
- lsvpd
ExclusiveArch: %{power64}
- luajit
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 s390x ppc64le
- luxcorerender
ExclusiveArch: x86_64
- mactel-boot
ExclusiveArch: x86_64
- manifest-tool
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- mantle
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- matreshka
ExclusiveArch: %GPRbuild_arches
- maven-eclipse-plugin
ExclusiveArch: %{ix86} x86_64
- maxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- mcelog
ExclusiveArch: i686 x86_64
- mediaconch
ExclusiveArch: %{qt5_qtwebengine_arches}
- mellowplayer
ExclusiveArch: %{qt5_qtwebengine_arches}
- memkind
ExclusiveArch: x86_64
- memtest86+
ExclusiveArch: %{ix86} x86_64
- mesos
ExclusiveArch: x86_64
- microcode_ctl
ExclusiveArch: %{ix86} x86_64
- micropython
ExclusiveArch: %{arm} %{ix86} x86_64
- mine_detector
ExclusiveArch: %{GPRbuild_arches}
- minetest
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- mingw-wine-gecko
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- mkbootdisk
ExclusiveArch: %{ix86} sparc sparc64 x86_64
- mnemosyne
ExclusiveArch: noarch %{qt5_qtwebengine_arches}
- mocha
ExclusiveArch: %{nodejs_arches} noarch
- mod_mono
ExclusiveArch: %mono_arches
- module-build-service
ExclusiveArch: %{ix86} x86_64 noarch
- mokutil
ExclusiveArch: %{ix86} x86_64 aarch64
- mono
ExclusiveArch: %mono_arches
- mono-addins
ExclusiveArch: %mono_arches
- mono-basic
ExclusiveArch: %{mono_arches}
- mono-bouncycastle
ExclusiveArch: %mono_arches
- mono-cecil
ExclusiveArch: %mono_arches
- mono-cecil-flowanalysis
ExclusiveArch: %mono_arches
- mono-reflection
ExclusiveArch: %mono_arches
- mono-tools
ExclusiveArch: %mono_arches
- mono-zeroconf
ExclusiveArch: %mono_arches
- monobristol
ExclusiveArch: %{mono_arches}
- monodevelop
ExclusiveArch: %mono_arches
- monodevelop-debugger-gdb
ExclusiveArch: %{mono_arches}
- monosim
ExclusiveArch: %mono_arches
- mozilla-iot-gateway
ExclusiveArch: %{nodejs_arches} noarch
- mozilla-iot-gateway-addon-node
ExclusiveArch: %{nodejs_arches} noarch
- mrrescue
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- msr-tools
ExclusiveArch: %{ix86} x86_64
- mustache-d
ExclusiveArch: %{ldc_arches}
- mysql-connector-net
ExclusiveArch: %{mono_arches}
- nacl-arm-binutils
ExclusiveArch: x86_64
- nacl-binutils
ExclusiveArch: x86_64
- nant
ExclusiveArch: %mono_arches
- nbc
ExclusiveArch: %{fpc_arches}
- nbdkit
ExclusiveArch: x86_64
- ndesk-dbus
ExclusiveArch: %{mono_arches}
- ndesk-dbus-glib
ExclusiveArch: %{mono_arches}
- newtonsoft-json
ExclusiveArch: %{mono_arches}
- nim
ExclusiveArch: %{nim_arches}
- node-gyp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs
ExclusiveArch: %{nodejs_arches}
- nodejs-Base64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-abbrev
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-acorn-dynamic-import
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn-jsx
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-acorn-object-spread
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-agentkeepalive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ain2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-align-text
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgcyan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bggreen
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgmagenta
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgwhite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgyellow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-black
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-blue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bold
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-cyan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-dim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-escapes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-gray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-green
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-grey
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-hidden
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-inverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-italic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-magenta
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-red
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-reset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-strikethrough
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-styles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-underline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-white
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-wrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-yellow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansicolors
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansistyles
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-any-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-any-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-field
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-archy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-are-we-there-yet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-argparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-argsparser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-exclude
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-union
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-buffer-from-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-differ
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-events
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-find
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-find-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-foreach
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-ify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-union
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-unique
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arraybuffer-dot-slice
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arraybuffer-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arrify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ascii-tree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ascli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-asn1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assert-plus
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assertion-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assume
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-async-arrays
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-limiter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-queue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-some
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asynckit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-atob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-auto-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-autoresolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws-sign2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-code-frame
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-plugin-syntax-async-functions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-plugin-syntax-async-generators
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-runtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-babylon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-backbone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-backoff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-balanced-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base-plugins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base32-encode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base64-arraybuffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base64-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-base64id
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bash-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-basic-auth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-basic-auth-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-batch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bcrypt
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-bcryptjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-beeper
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-benchmark
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-than-before
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bignumber-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bind-obj-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bindings
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bit-mask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-blob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-block-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bluebird
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-body-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boolbase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-brace-expansion
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-braces
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-browser-stdout
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buble
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buf-compare
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-crc32
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-writer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buffertools
ExclusiveArch: %{nodejs_arches}
- nodejs-bufferutil
ExclusiveArch: %{nodejs_arches}
- nodejs-builtin-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-builtins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bundle-dependencies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bunker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bunyan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-burrito
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-busboy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-byline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bytes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cache-base
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caching-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-call-delayed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-matcher
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-me-maybe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-signature
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-callback-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsites
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-carrier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caseless
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-center-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-as-promised
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-cheerio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-connect-middleware
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-json-schema
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-oauth2orize-grant
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-passport-strategy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-spies-next
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chainer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chalk
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-char-spinner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-character-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-chardet
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-charenc
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-charm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-check-env
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-check-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cheerio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-child-process-close
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chmodr
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chownr
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chroma-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chrono
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ci-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-circular-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cjson
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-class-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clean-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clean-yaml-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clear-require
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-spinner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cliui
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-stats
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-closure-compiler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cmd-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-co
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-co-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-co-with-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-coa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-code-point-at
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-codemirror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-coffee-coverage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-collection-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-collections
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-color-support
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-colour
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-columnify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-combined-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commander
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-common-path-prefix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commondir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-commonmark
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-compare-func
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-compare-versions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-emitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-inherit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-compressible
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-concat-map
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-concat-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-config-chain
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-connect-livereload
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-connect-timeout
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-console-dot-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-console-group
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-consolemd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-constantinople
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-disposition
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-angular
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-atom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-codemirror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-ember
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-eslint
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-express
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jquery
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jscs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jshint
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-preset-loader
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-writer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-filter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-hex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie-jar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookie-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookie-session
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie-signature
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookiejar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-copy-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-core-assert
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-core-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-core-util-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-couch-login
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-coveralls
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-crc
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cross-spawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cross-spawn-async
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-crypt
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cryptiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csrf
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-select
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-css-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-tree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-css-what
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csscomb-core
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csslint
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csso
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cssom
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csurf
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-generate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-spectrum
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ctype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-currently-unhandled
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cycle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cyclist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-d
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dargs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-data-uri-to-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dateformat
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-death
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-debug-fabulous
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debug-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debuglog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-decamelize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decamelize-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decimal-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dedent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-eql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deep-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-default-require-extensions
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-default-resolution
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-defaults
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defence
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-defence-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-define-properties
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-define-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defined
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-del
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-delayed-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-delegates
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-delete
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dep-graph
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-depd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deprecated
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-indent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-newline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detective
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dezalgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dicer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflib
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dirty-chai
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-discord-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-docopt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-doctrine
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dot-prop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dotfile-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dryice
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duplexer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplexer2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duplexify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duration
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-each
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ebnf-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-echomd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-editor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ee-first
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ejs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-emojione
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-empty-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-encodeurl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-end-of-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-engine-dot-io-client
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-engine-dot-io-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-ex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es-abstract
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es-to-primitive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es5-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es5-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-iterator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-promisify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-weak-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escallmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-html
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-regexp-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escape-string-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escodegen
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escope
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espower
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espower-location-detector
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima-fb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima-harmony-jscs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espurify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-esrecurse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estraverse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estraverse-fb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estree-walker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-esutils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-event-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-eventemitter2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-events
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-events-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-everything-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-exit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-brackets
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-tilde
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expect-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-express
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-express-session
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-extend-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extended-emitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-eyes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fake
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fancy-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fast-levenshtein
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fastfall
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-faucet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-faye-websocket
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-figures
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-file-entry-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-file-sync-cmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-filelist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-filename-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fileset
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fill-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fill-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-finalhandler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-find-cache-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-find-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-findup-sync
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-first-chunk-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flagged-respawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flat-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flot
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-flush-write-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fmix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fn-dot-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-for-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-for-in
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-for-own
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-foreach
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-foreground-child
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forever-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-form-data
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-formatio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-formidable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forwarded
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fragment-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-freetree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fresh
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-dot-notify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-cached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fs-ext
ExclusiveArch: %{nodejs_arches}
- nodejs-fs-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-temp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-vacuum
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-write-stream-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream-ignore
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream-npm
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-function-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-function-loop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gauge
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gaze
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gdal
ExclusiveArch: %{nodejs_arches}
- nodejs-generate-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generate-object-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generic-pool
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-get-port
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-getobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-git-remote-origin-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-git-tails
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gitconfiglocal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-github-url-from-git
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-github-url-from-username-repo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob-base
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-expand
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-parent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-to-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-global-modules
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-global-prefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globby
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globule
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glogg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gnode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gonzales-pe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-graceful-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-graceful-readlink
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-growl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-banner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-cli
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-compare-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-clean
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-concat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-csslint
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-internal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-nodeunit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-contrib-uglify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-watch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-git-authors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-init
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-known-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-lib-contrib
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-sed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-simple-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-wrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gzip-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-handlebars
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-har-validator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-cors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-flag
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-symbols
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-unicode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-yarn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hash_file
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hawk
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-heap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hex-to-array-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-highlight-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-historic-readline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hoek
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-homedir-polyfill
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hook-std
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hooker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hosted-git-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hsluv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-htmlparser2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-deceiver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-errors
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-http-signature
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-humanize-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-i
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-i18n-transform
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-i2c
ExclusiveArch: %{nodejs_arches}
- nodejs-iconv
ExclusiveArch: %{nodejs_arches}
- nodejs-iconv-lite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-iferr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ignore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-image-size
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-immutable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-import-local
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imul
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imurmurhash
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-indent-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inflight
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-info-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inherit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-inherits
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inherits1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ini
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-int64-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-intercept-require
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-interpret
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-invert-kv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ip
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ipaddr-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-irc-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irc-formatting
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irc-upd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irregular-plurals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-accessor-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-arrayish
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-arrow-function
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-boolean-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-builtin-module
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-callable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-data-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-date-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-dotfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-equal-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-extendable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-finite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-fullwidth-code-point
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-generator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-function
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-module
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-my-json-valid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-negated-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-number
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-number-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-odd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-path-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-in-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-inside
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-plain-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-plain-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-primitive
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-registered
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-relative
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-subset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-text-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-typedarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-unc-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-valid-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-valid-instance
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-windows
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-isexe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-iso8601
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isodate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-coverage
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-hook
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-report
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-source-maps
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-reports
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jade
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jasmine-growl-reporter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jasmine-reporters
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jest-mock
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jison-lex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joose
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joosex-namespace-depended
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joosex-simplerequest
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-base64
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-string-escape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-js-tokens
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-yaml
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jschardet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jscoverage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-localizer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json-parse-helpfulerror
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stable-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stringify-safe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json3
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonm
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonpointer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonpointer-dot-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonselect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jwt-simple
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-keep-alive-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-keygrip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-keypress
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-kind-of
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-klaw
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-kuler2gpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lazy-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lazystream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lcid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lcov-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-leaflet
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leaflet-formbuilder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leaflet-hash
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leche
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-left-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-less
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-less-plugin-clean-css
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-levn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-libpq
ExclusiveArch: %{nodejs_arches}
- nodejs-libxmljs
ExclusiveArch: %{nodejs_arches}
- nodejs-line-numbers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-line-reader
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linkify-it
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-load-grunt-tasks
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-locate-character
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-locate-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lockfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-log-driver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-ok
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lolex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-long
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-longest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-loophole
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-loud-rejection
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lru-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lru-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ltx
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-magic-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-make-arrow-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-generator-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makeerror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mapnik
ExclusiveArch: %{nodejs_arches}
- nodejs-mapnik-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mapnik-vector-tile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-markdown
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-markdown-it-testgen
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-matched
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-max-timeout
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-maxmin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mbtiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-md5
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-hex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-o-matic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mdn-data
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mdurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-media-typer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoizee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-merge-descriptors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-metascript
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-method-override
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-micromatch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-millstone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mime-db
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mimeparse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-minimalistic-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-minipass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mkdirp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-bin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-git
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-modify-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-module-not-found-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-moment
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mongodb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb-core
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-monocle
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-morgan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-muffin
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multimatch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multiparty
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multipipe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-murmur-32
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mustache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mutate-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mute-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mysql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mz
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nan0
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nan1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nanomatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nanomsg
ExclusiveArch: %{nodejs_arches}
- nodejs-nanoseconds
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ncp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-needle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-negative-zero
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-negotiator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-net-browserify-alt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-netmask
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-next-tick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ng-classify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-dot-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-expat
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-node-int64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-static
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-stringprep
ExclusiveArch: %{nodejs_arches}
- nodejs-node-uuid
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nomnom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-noncharacters
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt-usage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-noptify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-normalize-git-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-normalize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-cache-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-install-checks
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-npm-package-arg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-run-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-user-validate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npmlog
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nth-check
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-number-is-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-numeral
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth2orize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-assign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-copy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-dot-assign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-dot-entries
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-dot-omit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-dot-pick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-inspect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-observable-to-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-obuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-okay
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-finished
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-headers
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-once
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-only-shallow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-opal-runtime
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-opener
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-option-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-option-chain
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optionator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-opts
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-orchestrator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ordered-read-streams
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-os-homedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-locale
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-tmpdir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-osenv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-output-file-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-own-or
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-own-or-env
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-finally
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-limit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-locate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-package
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-package-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-packaging
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-packet-reader
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pad-left
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-paperboy
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parallel-transform
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-github-repo-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parse-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-passwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parsejson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseqs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseuri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pascalcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-http-bearer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth2-client-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-strategy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-array
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-dirname
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-exists
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-extra
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-absolute
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-inside
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-key
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-parse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-to-regexp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pathval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pause
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pbkdf2-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pedding
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-connection-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-cursor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-escape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-int8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-native
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pgpass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pinkie
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pinkie-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pkg-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pkg-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pkginfo
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-platform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-plur
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-posix-character-classes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-bytea
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-date
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-interval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-precond
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prelude-ls
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-preserve
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-bytes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-hrtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pretty-time
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prism-media
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-process-nextick-args
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proclaim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-promises-aplus-tests
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prompt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-promzard
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-propagate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-propget
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proto-list
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proxy-addr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-proxyquire
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pruddy-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pseudomap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pubcontrol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pump
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pumpify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-q
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-q-io
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-qs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qtdatastream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-queue-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-quick-lru
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qunit-extras
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rainbowsocks
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-random-bytes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-random-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-randomatic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-range-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-raw-body
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-re-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-all-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-cmd-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-json-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-package-json
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-pkg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readable-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-readdir-enhanced
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readdir-scoped-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readdirp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-realize-package-specifier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rechoir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-redent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reduce-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regex-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regex-not
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-remove-trailing-separator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-repeat-element
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeat-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeating
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-repl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-replace
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-replace-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-replace-require-self
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-request
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-cs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-require-directory
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-inject
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-main-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-relative
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-uncached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-yaml
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-requirejs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-cwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-pkg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-response-time
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resumer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ret
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-retry
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reusify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-revalidator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rewire
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rfile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rhea
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-right-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rimraf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rndm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rollup
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rollup-plugin-buble
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-commonjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-node-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-pluginutils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ronn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-runforcover
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safe-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-safe-json-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safe-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-safecb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-samsam
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sax
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-secure-random
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-seedrandom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-select-hose
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-semver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-send
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sentiment
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sequencify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serialize-error
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serve-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-server-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-blocking
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-getter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-set-immediate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-immediate-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-setimmediate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-setprototypeof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sha
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shallow-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-command
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shelljs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-shelljs-nodecli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-should
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-should-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-format
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-http
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-showdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sift
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sigmund
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-signal-exit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-asyncify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-fmt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-single-line-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon-chai
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sinon-restore
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-slash
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sliced
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-slide
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-snapdragon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture-set
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snekfetch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snockets
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sntp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-socket-dot-io-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sorted-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-fixtures
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map-support
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sparkles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-spawn-sync
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spawn-wrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-exceptions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-license-ids
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-speedometer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sqlite3
ExclusiveArch: %{nodejs_arches}
- nodejs-srs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ssri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-trace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-utils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-static-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-static-favicon
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-statuses
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-combiner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-consume
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-counter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-pair
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-replace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-shift
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-spigot
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-streamsearch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-streamtest
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-repeat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-trim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string-width
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string_decoder
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringmap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringscanner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringset
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-ansi
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-bom-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-color
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-eof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-json-comments
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strong-log-transformer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stylus
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-success-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-superagent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-supertest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supervisor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supports-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-suspend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-svgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-symbol-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-mocha-reporter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-out
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-spec
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tapes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar-pack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp-write
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tempfile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temporary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern-cordovajs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern-liferay
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-terst
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testdata-w3c-json-form
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-testswarm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testutil
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-extensions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-thenify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thenify-all
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-through2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through2-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thunkify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tildify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tilejson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tilelive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tilelive-mapnik
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tiletype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-diff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-stamp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-timekeeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-timers-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tiny-lr-fork
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tippex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tlds
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-absolute-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-object-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-to-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-regex-range
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-touch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tough-cookie
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tracejs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-transformers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-traverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-treeify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tressa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-trim-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim-off-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trivial-deferred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-try-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-try-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tryor
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tsame
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tslib
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tsscmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tunnel-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tv4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tweetnacl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tweetnacl-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-check
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-type-detect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-name
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-typeahead.js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uc-dot-micro
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uglify-to-browserify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid-number
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uid-safe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ultron
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-umask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unc-path-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-underscore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-underscore-dot-logger
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unicode-length
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-union-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unique-filename
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-slug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unpipe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unset-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uri-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-urix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-url2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-use
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-user-home
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-deprecate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-inspect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utilities
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utils-merge
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uuid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vali-date
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-validate-npm-package-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vasync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vhost
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vlq
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vow-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vows
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-walkdir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-walker
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ware
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-warning-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-watchit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-watershed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wbuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wcwidth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-weak-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-websocket-driver
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-when
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-whet-dot-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-which
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-win-spawn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-window-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-winston
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-with
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wolfy87-eventemitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-woothee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wordwrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrap-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wrap-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrappy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-write
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-write-file-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ws
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xdg-basedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xml2js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlbuilder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlhttprequest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlhttprequest-ssl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xtend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-y18n
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yallist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yapool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yargs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yargs-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yarn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yeast
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zeropad
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zipfile
ExclusiveArch: %{nodejs_arches}
- nodejs-zlib-browserify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zlibjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodeunit
ExclusiveArch: %{nodejs_arches} noarch
- notify-sharp
ExclusiveArch: %{mono_arches}
- notify-sharp3
ExclusiveArch: %{mono_arches}
- nuget
ExclusiveArch: %{mono_arches}
- numatop
ExclusiveArch: x86_64 ppc64le
- nunit
ExclusiveArch: %{mono_arches}
- nunit2
ExclusiveArch: %{mono_arches}
- nvml
ExclusiveArch: x86_64
- nwchem
ExclusiveArch: x86_64 %{ix86}
- obs-service-rust2rpm
ExclusiveArch: %{rust_arches} noarch
- oci-kvm-hook
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- oci-umount
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- ocitools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- oidn
ExclusiveArch: x86_64
- olpc-kbdshim
ExclusiveArch: %{ix86} %{arm}
- olpc-netutils
ExclusiveArch: %{ix86} %{arm}
- olpc-utils
ExclusiveArch: %{ix86} %{arm}
- onedrive
ExclusiveArch: %{ldc_arches}
- opal-prd
ExclusiveArch: ppc64le
- open-vm-tools
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64
- openblas
ExclusiveArch: %{openblas_arches}
- openjfx
ExclusiveArch: %{ix86} x86_64
- openlibm
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 %{power64}
- openni
ExclusiveArch: %{ix86} x86_64 %{arm}
- openni-primesense
ExclusiveArch: %{ix86} x86_64 %{arm}
- openssl-ibmca
ExclusiveArch: s390 s390x
- origin
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- orion
ExclusiveArch: %{qt5_qtwebengine_arches}
- orthorobot
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- oshinko-cli
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- paflib
ExclusiveArch: ppc %{power64}
- pcc
ExclusiveArch: %{ix86} x86_64
- pcmciautils
ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64 %{arm}
- pdfmod
ExclusiveArch: %mono_arches
- peripety
ExclusiveArch: %{rust_arches}
- perl-Dumbbench
ExclusiveArch: %{ix86} x86_64 noarch
- perl-Parse-DMIDecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- pesign
ExclusiveArch: %{ix86} x86_64 ia64 aarch64 %{arm}
- pesign-test-app
ExclusiveArch: i686 x86_64 ia64 aarch64
- pinta
ExclusiveArch: %mono_arches
- pioneer
ExclusiveArch: %{ix86} x86_64
- pmdk-convert
ExclusiveArch: x86_64
- pocl
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- poppler-sharp
ExclusiveArch: %mono_arches
- popub
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- powerpc-utils
ExclusiveArch: ppc %{power64}
- ppc64-diag
ExclusiveArch: ppc %{power64}
- publican-jboss
ExclusiveArch: i686 x86_64
- pveclib
ExclusiveArch: ppc %{power64}
- pvs-sbcl
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- pyqtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- python-etcd
ExclusiveArch: noarch %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- python-healpy
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-openoffice
ExclusiveArch: noarch x86_64
- python-pymoc
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-rpi-gpio
ExclusiveArch: %{arm} aarch64
- q4wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- qcint
ExclusiveArch: x86_64
- qclib
ExclusiveArch: s390 s390x
- qevercloud
ExclusiveArch: %{qt5_qtwebengine_arches}
- qmapshack
ExclusiveArch: %{qt5_qtwebengine_arches}
- qt4pas
ExclusiveArch: %{fpc_arches}
- qt5-qtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- quantum-espresso
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86}
- quentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- reactfx
ExclusiveArch: %{ix86} x86_64 noarch
- rear
ExclusiveArch: %ix86 x86_64 ppc ppc64 ppc64le ia64
- redhat-lsb
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- reg
ExclusiveArch: x86_64
- renderdoc
ExclusiveArch: %{ix86} x86_64
- reptyr
ExclusiveArch: %{ix86} x86_64 %{arm}
- rescene
ExclusiveArch: %{mono_arches}
- restsharp
ExclusiveArch: %{mono_arches}
- rhythmbox-alternative-toolbar
ExclusiveArch: %{ix86} %{arm} x86_64 ppc64 ppc64le
- rocm-runtime
ExclusiveArch: x86_64 aarch64
- rocminfo
ExclusiveArch: x86_64 aarch64
- rpm-ostree
ExclusiveArch: %{rust_arches}
- rssguard
ExclusiveArch: %{qt5_qtwebengine_arches}
- rubygem-childprocess
ExclusiveArch: %{ix86} x86_64 noarch
- runc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le %{mips} s390x
- rust
ExclusiveArch: %{rust_arches}
- rust-abomonation
ExclusiveArch: %{rust_arches}
- rust-actix
ExclusiveArch: %{rust_arches}
- rust-actix-codec
ExclusiveArch: %{rust_arches}
- rust-actix-connect
ExclusiveArch: %{rust_arches}
- rust-actix-files
ExclusiveArch: %{rust_arches}
- rust-actix-http
ExclusiveArch: %{rust_arches}
- rust-actix-router
ExclusiveArch: %{rust_arches}
- rust-actix-rt
ExclusiveArch: %{rust_arches}
- rust-actix-server
ExclusiveArch: %{rust_arches}
- rust-actix-server-config
ExclusiveArch: %{rust_arches}
- rust-actix-service
ExclusiveArch: %{rust_arches}
- rust-actix-threadpool
ExclusiveArch: %{rust_arches}
- rust-actix-utils
ExclusiveArch: %{rust_arches}
- rust-actix-web
ExclusiveArch: %{rust_arches}
- rust-actix-web-codegen
ExclusiveArch: %{rust_arches}
- rust-actix_derive
ExclusiveArch: %{rust_arches}
- rust-addr2line
ExclusiveArch: %{rust_arches}
- rust-adler32
ExclusiveArch: %{rust_arches}
- rust-aes
ExclusiveArch: %{rust_arches}
- rust-aes-soft
ExclusiveArch: %{rust_arches}
- rust-afterburn
ExclusiveArch: %{rust_arches}
- rust-aho-corasick
ExclusiveArch: %{rust_arches}
- rust-alga
ExclusiveArch: %{rust_arches}
- rust-alga_derive
ExclusiveArch: %{rust_arches}
- rust-alphanumeric-sort
ExclusiveArch: %{rust_arches}
- rust-ammonia
ExclusiveArch: %{rust_arches}
- rust-ansi_colours
ExclusiveArch: %{rust_arches}
- rust-ansi_term
ExclusiveArch: %{rust_arches}
- rust-ansi_term0.11
ExclusiveArch: %{rust_arches}
- rust-antidote
ExclusiveArch: %{rust_arches}
- rust-aom-sys
ExclusiveArch: %{rust_arches}
- rust-approx
ExclusiveArch: %{rust_arches}
- rust-arc-swap
ExclusiveArch: %{rust_arches}
- rust-arg_enum_proc_macro
ExclusiveArch: %{rust_arches}
- rust-array-init
ExclusiveArch: %{rust_arches}
- rust-arraydeque
ExclusiveArch: %{rust_arches}
- rust-arrayref
ExclusiveArch: %{rust_arches}
- rust-arrayvec
ExclusiveArch: %{rust_arches}
- rust-ascii
ExclusiveArch: %{rust_arches}
- rust-askalono
ExclusiveArch: %{rust_arches}
- rust-askalono-cli
ExclusiveArch: %{rust_arches}
- rust-atk
ExclusiveArch: %{rust_arches}
- rust-atk-sys
ExclusiveArch: %{rust_arches}
- rust-atom
ExclusiveArch: %{rust_arches}
- rust-atomicwrites
ExclusiveArch: %{rust_arches}
- rust-atty
ExclusiveArch: %{rust_arches}
- rust-autocfg
ExclusiveArch: %{rust_arches}
- rust-awc
ExclusiveArch: %{rust_arches}
- rust-backtrace
ExclusiveArch: %{rust_arches}
- rust-backtrace-sys
ExclusiveArch: %{rust_arches}
- rust-base100
ExclusiveArch: %{rust_arches}
- rust-base64
ExclusiveArch: %{rust_arches}
- rust-bat
ExclusiveArch: %{rust_arches}
- rust-bencher
ExclusiveArch: %{rust_arches}
- rust-bincode
ExclusiveArch: %{rust_arches}
- rust-bincode0.8
ExclusiveArch: %{rust_arches}
- rust-bindgen
ExclusiveArch: %{rust_arches}
- rust-bit-set
ExclusiveArch: %{rust_arches}
- rust-bit-vec
ExclusiveArch: %{rust_arches}
- rust-bitflags
ExclusiveArch: %{rust_arches}
- rust-bitstream-io
ExclusiveArch: %{rust_arches}
- rust-blake2
ExclusiveArch: %{rust_arches}
- rust-blobby
ExclusiveArch: %{rust_arches}
- rust-block-buffer
ExclusiveArch: %{rust_arches}
- rust-block-cipher-trait
ExclusiveArch: %{rust_arches}
- rust-block-modes
ExclusiveArch: %{rust_arches}
- rust-block-padding
ExclusiveArch: %{rust_arches}
- rust-brev
ExclusiveArch: %{rust_arches}
- rust-brotli-sys
ExclusiveArch: %{rust_arches}
- rust-brotli2
ExclusiveArch: %{rust_arches}
- rust-bstr
ExclusiveArch: %{rust_arches}
- rust-bufstream
ExclusiveArch: %{rust_arches}
- rust-build_const
ExclusiveArch: %{rust_arches}
- rust-byte-tools
ExclusiveArch: %{rust_arches}
- rust-byte-unit
ExclusiveArch: %{rust_arches}
- rust-bytecount
ExclusiveArch: %{rust_arches}
- rust-byteorder
ExclusiveArch: %{rust_arches}
- rust-bytes
ExclusiveArch: %{rust_arches}
- rust-bytes0.3
ExclusiveArch: %{rust_arches}
- rust-bytesize
ExclusiveArch: %{rust_arches}
- rust-c2-chacha
ExclusiveArch: %{rust_arches}
- rust-c_vec
ExclusiveArch: %{rust_arches}
- rust-cairo-rs
ExclusiveArch: %{rust_arches}
- rust-cairo-sys-rs
ExclusiveArch: %{rust_arches}
- rust-caps
ExclusiveArch: %{rust_arches}
- rust-cargo
ExclusiveArch: %{rust_arches}
- rust-cargo-bloat
ExclusiveArch: %{rust_arches}
- rust-cargo_metadata
ExclusiveArch: %{rust_arches}
- rust-cassowary
ExclusiveArch: %{rust_arches}
- rust-cast
ExclusiveArch: %{rust_arches}
- rust-cbindgen
ExclusiveArch: %{rust_arches}
- rust-cc
ExclusiveArch: %{rust_arches}
- rust-cexpr
ExclusiveArch: %{rust_arches}
- rust-cfg-if
ExclusiveArch: %{rust_arches}
- rust-chainerror
ExclusiveArch: %{rust_arches}
- rust-chbs
ExclusiveArch: %{rust_arches}
- rust-checked_int_cast
ExclusiveArch: %{rust_arches}
- rust-chrono
ExclusiveArch: %{rust_arches}
- rust-chrono-humanize
ExclusiveArch: %{rust_arches}
- rust-clang-sys
ExclusiveArch: %{rust_arches}
- rust-clap
ExclusiveArch: %{rust_arches}
- rust-clicolors-control
ExclusiveArch: %{rust_arches}
- rust-cmake
ExclusiveArch: %{rust_arches}
- rust-color_quant
ExclusiveArch: %{rust_arches}
- rust-colored
ExclusiveArch: %{rust_arches}
- rust-colored_json
ExclusiveArch: %{rust_arches}
- rust-comrak
ExclusiveArch: %{rust_arches}
- rust-config
ExclusiveArch: %{rust_arches}
- rust-console
ExclusiveArch: %{rust_arches}
- rust-content_inspector
ExclusiveArch: %{rust_arches}
- rust-copyless
ExclusiveArch: %{rust_arches}
- rust-cpp_demangle
ExclusiveArch: %{rust_arches}
- rust-crates-io
ExclusiveArch: %{rust_arches}
- rust-crc
ExclusiveArch: %{rust_arches}
- rust-crc-core
ExclusiveArch: %{rust_arches}
- rust-crc32fast
ExclusiveArch: %{rust_arches}
- rust-criterion
ExclusiveArch: %{rust_arches}
- rust-criterion-plot
ExclusiveArch: %{rust_arches}
- rust-crossbeam
ExclusiveArch: %{rust_arches}
- rust-crossbeam-channel
ExclusiveArch: %{rust_arches}
- rust-crossbeam-deque
ExclusiveArch: %{rust_arches}
- rust-crossbeam-epoch
ExclusiveArch: %{rust_arches}
- rust-crossbeam-queue
ExclusiveArch: %{rust_arches}
- rust-crossbeam-utils
ExclusiveArch: %{rust_arches}
- rust-crossterm
ExclusiveArch: %{rust_arches}
- rust-crossterm_cursor
ExclusiveArch: %{rust_arches}
- rust-crossterm_input
ExclusiveArch: %{rust_arches}
- rust-crossterm_screen
ExclusiveArch: %{rust_arches}
- rust-crossterm_style
ExclusiveArch: %{rust_arches}
- rust-crossterm_terminal
ExclusiveArch: %{rust_arches}
- rust-crossterm_utils
ExclusiveArch: %{rust_arches}
- rust-crypto-hash
ExclusiveArch: %{rust_arches}
- rust-crypto-mac
ExclusiveArch: %{rust_arches}
- rust-cryptovec
ExclusiveArch: %{rust_arches}
- rust-cssparser
ExclusiveArch: %{rust_arches}
- rust-cssparser-macros
ExclusiveArch: %{rust_arches}
- rust-csv
ExclusiveArch: %{rust_arches}
- rust-csv-core
ExclusiveArch: %{rust_arches}
- rust-ctrlc
ExclusiveArch: %{rust_arches}
- rust-curl
ExclusiveArch: %{rust_arches}
- rust-curl-sys
ExclusiveArch: %{rust_arches}
- rust-custom_derive
ExclusiveArch: %{rust_arches}
- rust-darling
ExclusiveArch: %{rust_arches}
- rust-darling_core
ExclusiveArch: %{rust_arches}
- rust-darling_macro
ExclusiveArch: %{rust_arches}
- rust-data-encoding
ExclusiveArch: %{rust_arches}
- rust-data-url
ExclusiveArch: %{rust_arches}
- rust-datetime
ExclusiveArch: %{rust_arches}
- rust-dav1d-sys
ExclusiveArch: %{rust_arches}
- rust-dbus
ExclusiveArch: %{rust_arches}
- rust-dbus0.2
ExclusiveArch: %{rust_arches}
- rust-decimal
ExclusiveArch: %{rust_arches}
- rust-deflate
ExclusiveArch: %{rust_arches}
- rust-defmac
ExclusiveArch: %{rust_arches}
- rust-delta_e
ExclusiveArch: %{rust_arches}
- rust-derive_builder
ExclusiveArch: %{rust_arches}
- rust-derive_builder_core
ExclusiveArch: %{rust_arches}
- rust-derive_more
ExclusiveArch: %{rust_arches}
- rust-deunicode
ExclusiveArch: %{rust_arches}
- rust-devicemapper
ExclusiveArch: %{rust_arches}
- rust-diff
ExclusiveArch: %{rust_arches}
- rust-difference
ExclusiveArch: %{rust_arches}
- rust-digest
ExclusiveArch: %{rust_arches}
- rust-directories
ExclusiveArch: %{rust_arches}
- rust-dirs
ExclusiveArch: %{rust_arches}
- rust-dirs-sys
ExclusiveArch: %{rust_arches}
- rust-dns-parser
ExclusiveArch: %{rust_arches}
- rust-doc-comment
ExclusiveArch: %{rust_arches}
- rust-docmatic
ExclusiveArch: %{rust_arches}
- rust-docopt
ExclusiveArch: %{rust_arches}
- rust-downcast-rs
ExclusiveArch: %{rust_arches}
- rust-dtoa
ExclusiveArch: %{rust_arches}
- rust-dtoa-short
ExclusiveArch: %{rust_arches}
- rust-duct
ExclusiveArch: %{rust_arches}
- rust-dutree
ExclusiveArch: %{rust_arches}
- rust-edit-distance
ExclusiveArch: %{rust_arches}
- rust-either
ExclusiveArch: %{rust_arches}
- rust-elasticlunr-rs
ExclusiveArch: %{rust_arches}
- rust-encode_unicode
ExclusiveArch: %{rust_arches}
- rust-encoding
ExclusiveArch: %{rust_arches}
- rust-encoding-index-japanese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-korean
ExclusiveArch: %{rust_arches}
- rust-encoding-index-simpchinese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-singlebyte
ExclusiveArch: %{rust_arches}
- rust-encoding-index-tradchinese
ExclusiveArch: %{rust_arches}
- rust-encoding_index_tests
ExclusiveArch: %{rust_arches}
- rust-encoding_rs
ExclusiveArch: %{rust_arches}
- rust-encoding_rs_io
ExclusiveArch: %{rust_arches}
- rust-entities
ExclusiveArch: %{rust_arches}
- rust-enum-as-inner
ExclusiveArch: %{rust_arches}
- rust-enum_primitive
ExclusiveArch: %{rust_arches}
- rust-env_logger
ExclusiveArch: %{rust_arches}
- rust-env_logger0.4
ExclusiveArch: %{rust_arches}
- rust-env_logger0.5
ExclusiveArch: %{rust_arches}
- rust-env_logger0.6
ExclusiveArch: %{rust_arches}
- rust-envsubst
ExclusiveArch: %{rust_arches}
- rust-erased-serde
ExclusiveArch: %{rust_arches}
- rust-errln
ExclusiveArch: %{rust_arches}
- rust-errno
ExclusiveArch: %{rust_arches}
- rust-error-chain
ExclusiveArch: %{rust_arches}
- rust-exa
ExclusiveArch: %{rust_arches}
- rust-extprim
ExclusiveArch: %{rust_arches}
- rust-extprim_literals_macros
ExclusiveArch: %{rust_arches}
- rust-fail
ExclusiveArch: %{rust_arches}
- rust-failure
ExclusiveArch: %{rust_arches}
- rust-failure-tools
ExclusiveArch: %{rust_arches}
- rust-failure_derive
ExclusiveArch: %{rust_arches}
- rust-fake-simd
ExclusiveArch: %{rust_arches}
- rust-fake_clock
ExclusiveArch: %{rust_arches}
- rust-fallible-iterator
ExclusiveArch: %{rust_arches}
- rust-fd-find
ExclusiveArch: %{rust_arches}
- rust-fedora-coreos-pinger
ExclusiveArch: %{rust_arches}
- rust-ffsend
ExclusiveArch: %{rust_arches}
- rust-ffsend-api
ExclusiveArch: %{rust_arches}
- rust-filetime
ExclusiveArch: %{rust_arches}
- rust-fixedbitset
ExclusiveArch: %{rust_arches}
- rust-flame
ExclusiveArch: %{rust_arches}
- rust-flate2
ExclusiveArch: %{rust_arches}
- rust-float-cmp
ExclusiveArch: %{rust_arches}
- rust-fnv
ExclusiveArch: %{rust_arches}
- rust-foreign-types
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared
ExclusiveArch: %{rust_arches}
- rust-fragile
ExclusiveArch: %{rust_arches}
- rust-fs2
ExclusiveArch: %{rust_arches}
- rust-fs_extra
ExclusiveArch: %{rust_arches}
- rust-fuse
ExclusiveArch: %{rust_arches}
- rust-futf
ExclusiveArch: %{rust_arches}
- rust-futures-async-runtime-preview
ExclusiveArch: %{rust_arches}
- rust-futures-channel-preview
ExclusiveArch: %{rust_arches}
- rust-futures-core
ExclusiveArch: %{rust_arches}
- rust-futures-core-preview
ExclusiveArch: %{rust_arches}
- rust-futures-cpupool
ExclusiveArch: %{rust_arches}
- rust-futures-executor-preview
ExclusiveArch: %{rust_arches}
- rust-futures-io-preview
ExclusiveArch: %{rust_arches}
- rust-futures-preview
ExclusiveArch: %{rust_arches}
- rust-futures-sink-preview
ExclusiveArch: %{rust_arches}
- rust-futures-stable-preview
ExclusiveArch: %{rust_arches}
- rust-futures-util-preview
ExclusiveArch: %{rust_arches}
- rust-futures0.1
ExclusiveArch: %{rust_arches}
- rust-fuzzy-matcher
ExclusiveArch: %{rust_arches}
- rust-fxhash
ExclusiveArch: %{rust_arches}
- rust-gcsf
ExclusiveArch: %{rust_arches}
- rust-gdk
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf-sys
ExclusiveArch: %{rust_arches}
- rust-gdk-sys
ExclusiveArch: %{rust_arches}
- rust-generic-array
ExclusiveArch: %{rust_arches}
- rust-getopts
ExclusiveArch: %{rust_arches}
- rust-getrandom
ExclusiveArch: %{rust_arches}
- rust-gettext-rs
ExclusiveArch: %{rust_arches}
- rust-gettext-sys
ExclusiveArch: %{rust_arches}
- rust-gif
ExclusiveArch: %{rust_arches}
- rust-gimli
ExclusiveArch: %{rust_arches}
- rust-gio
ExclusiveArch: %{rust_arches}
- rust-gio-sys
ExclusiveArch: %{rust_arches}
- rust-gir-format-check
ExclusiveArch: %{rust_arches}
- rust-git2
ExclusiveArch: %{rust_arches}
- rust-git2-curl
ExclusiveArch: %{rust_arches}
- rust-glib
ExclusiveArch: %{rust_arches}
- rust-glib-sys
ExclusiveArch: %{rust_arches}
- rust-glob
ExclusiveArch: %{rust_arches}
- rust-globset
ExclusiveArch: %{rust_arches}
- rust-globwalk
ExclusiveArch: %{rust_arches}
- rust-gobject-sys
ExclusiveArch: %{rust_arches}
- rust-goblin
ExclusiveArch: %{rust_arches}
- rust-google-drive3-fork
ExclusiveArch: %{rust_arches}
- rust-grep
ExclusiveArch: %{rust_arches}
- rust-grep-cli
ExclusiveArch: %{rust_arches}
- rust-grep-matcher
ExclusiveArch: %{rust_arches}
- rust-grep-pcre2
ExclusiveArch: %{rust_arches}
- rust-grep-printer
ExclusiveArch: %{rust_arches}
- rust-grep-regex
ExclusiveArch: %{rust_arches}
- rust-grep-searcher
ExclusiveArch: %{rust_arches}
- rust-gspell
ExclusiveArch: %{rust_arches}
- rust-gspell-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video-sys
ExclusiveArch: %{rust_arches}
- rust-gtk
ExclusiveArch: %{rust_arches}
- rust-gtk-rs-lgpl-docs
ExclusiveArch: %{rust_arches}
- rust-gtk-source-sys
ExclusiveArch: %{rust_arches}
- rust-gtk-sys
ExclusiveArch: %{rust_arches}
- rust-gzip-header
ExclusiveArch: %{rust_arches}
- rust-h2
ExclusiveArch: %{rust_arches}
- rust-half
ExclusiveArch: %{rust_arches}
- rust-hamcrest
ExclusiveArch: %{rust_arches}
- rust-handlebars
ExclusiveArch: %{rust_arches}
- rust-hashbrown
ExclusiveArch: %{rust_arches}
- rust-headers
ExclusiveArch: %{rust_arches}
- rust-headers-core
ExclusiveArch: %{rust_arches}
- rust-headers-derive
ExclusiveArch: %{rust_arches}
- rust-heapsize
ExclusiveArch: %{rust_arches}
- rust-heck
ExclusiveArch: %{rust_arches}
- rust-hex
ExclusiveArch: %{rust_arches}
- rust-hex-literal
ExclusiveArch: %{rust_arches}
- rust-hex-literal-impl
ExclusiveArch: %{rust_arches}
- rust-hexyl
ExclusiveArch: %{rust_arches}
- rust-hkdf
ExclusiveArch: %{rust_arches}
- rust-hmac
ExclusiveArch: %{rust_arches}
- rust-home
ExclusiveArch: %{rust_arches}
- rust-horrorshow
ExclusiveArch: %{rust_arches}
- rust-hostname
ExclusiveArch: %{rust_arches}
- rust-html2pango
ExclusiveArch: %{rust_arches}
- rust-html5ever
ExclusiveArch: %{rust_arches}
- rust-http
ExclusiveArch: %{rust_arches}
- rust-http-body
ExclusiveArch: %{rust_arches}
- rust-httparse
ExclusiveArch: %{rust_arches}
- rust-humansize
ExclusiveArch: %{rust_arches}
- rust-humantime
ExclusiveArch: %{rust_arches}
- rust-hyper
ExclusiveArch: %{rust_arches}
- rust-hyper-native-tls
ExclusiveArch: %{rust_arches}
- rust-hyper-tls
ExclusiveArch: %{rust_arches}
- rust-hyper0.10
ExclusiveArch: %{rust_arches}
- rust-hyperfine
ExclusiveArch: %{rust_arches}
- rust-id_tree
ExclusiveArch: %{rust_arches}
- rust-ident_case
ExclusiveArch: %{rust_arches}
- rust-idna
ExclusiveArch: %{rust_arches}
- rust-idna0.1
ExclusiveArch: %{rust_arches}
- rust-ignore
ExclusiveArch: %{rust_arches}
- rust-im-rc
ExclusiveArch: %{rust_arches}
- rust-image
ExclusiveArch: %{rust_arches}
- rust-imgref
ExclusiveArch: %{rust_arches}
- rust-indexmap
ExclusiveArch: %{rust_arches}
- rust-indicatif
ExclusiveArch: %{rust_arches}
- rust-inflate
ExclusiveArch: %{rust_arches}
- rust-inotify
ExclusiveArch: %{rust_arches}
- rust-inotify-sys
ExclusiveArch: %{rust_arches}
- rust-input_buffer
ExclusiveArch: %{rust_arches}
- rust-interpolate_name
ExclusiveArch: %{rust_arches}
- rust-intervaltree
ExclusiveArch: %{rust_arches}
- rust-iovec
ExclusiveArch: %{rust_arches}
- rust-ipnetwork
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-itoa
ExclusiveArch: %{rust_arches}
- rust-jetscii
ExclusiveArch: %{rust_arches}
- rust-jobserver
ExclusiveArch: %{rust_arches}
- rust-jpeg-decoder
ExclusiveArch: %{rust_arches}
- rust-jwalk
ExclusiveArch: %{rust_arches}
- rust-lab
ExclusiveArch: %{rust_arches}
- rust-language-tags
ExclusiveArch: %{rust_arches}
- rust-lazy-init
ExclusiveArch: %{rust_arches}
- rust-lazy_static
ExclusiveArch: %{rust_arches}
- rust-lazycell
ExclusiveArch: %{rust_arches}
- rust-letter-avatar
ExclusiveArch: %{rust_arches}
- rust-libc
ExclusiveArch: %{rust_arches}
- rust-libdbus-sys
ExclusiveArch: %{rust_arches}
- rust-libflate
ExclusiveArch: %{rust_arches}
- rust-libgit2-sys
ExclusiveArch: %{rust_arches}
- rust-libhandy
ExclusiveArch: %{rust_arches}
- rust-libhandy-sys
ExclusiveArch: %{rust_arches}
- rust-libloading
ExclusiveArch: %{rust_arches}
- rust-libm
ExclusiveArch: %{rust_arches}
- rust-libmount
ExclusiveArch: %{rust_arches}
- rust-liboverdrop
ExclusiveArch: %{rust_arches}
- rust-libssh2-sys
ExclusiveArch: %{rust_arches}
- rust-libsystemd
ExclusiveArch: %{rust_arches}
- rust-libudev
ExclusiveArch: %{rust_arches}
- rust-libudev-sys
ExclusiveArch: %{rust_arches}
- rust-libz-sys
ExclusiveArch: %{rust_arches}
- rust-line-wrap
ExclusiveArch: %{rust_arches}
- rust-linked-hash-map
ExclusiveArch: %{rust_arches}
- rust-linkify
ExclusiveArch: %{rust_arches}
- rust-lipsum
ExclusiveArch: %{rust_arches}
- rust-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-log
ExclusiveArch: %{rust_arches}
- rust-log0.3
ExclusiveArch: %{rust_arches}
- rust-loggerv
ExclusiveArch: %{rust_arches}
- rust-loopdev
ExclusiveArch: %{rust_arches}
- rust-lru-cache
ExclusiveArch: %{rust_arches}
- rust-lru_time_cache
ExclusiveArch: %{rust_arches}
- rust-lscolors
ExclusiveArch: %{rust_arches}
- rust-lsd
ExclusiveArch: %{rust_arches}
- rust-lzma-sys
ExclusiveArch: %{rust_arches}
- rust-lzw
ExclusiveArch: %{rust_arches}
- rust-mac
ExclusiveArch: %{rust_arches}
- rust-macro-attr
ExclusiveArch: %{rust_arches}
- rust-man
ExclusiveArch: %{rust_arches}
- rust-maplit
ExclusiveArch: %{rust_arches}
- rust-markup5ever
ExclusiveArch: %{rust_arches}
- rust-matches
ExclusiveArch: %{rust_arches}
- rust-matrixmultiply
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-memoffset
ExclusiveArch: %{rust_arches}
- rust-metadeps
ExclusiveArch: %{rust_arches}
- rust-mime
ExclusiveArch: %{rust_arches}
- rust-mime-sniffer
ExclusiveArch: %{rust_arches}
- rust-mime0.2
ExclusiveArch: %{rust_arches}
- rust-mime_guess
ExclusiveArch: %{rust_arches}
- rust-mime_guess1
ExclusiveArch: %{rust_arches}
- rust-miniz-sys
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide_c_api
ExclusiveArch: %{rust_arches}
- rust-mint
ExclusiveArch: %{rust_arches}
- rust-mio
ExclusiveArch: %{rust_arches}
- rust-mio-extras
ExclusiveArch: %{rust_arches}
- rust-mio-uds
ExclusiveArch: %{rust_arches}
- rust-mktemp
ExclusiveArch: %{rust_arches}
- rust-mnt
ExclusiveArch: %{rust_arches}
- rust-mockito
ExclusiveArch: %{rust_arches}
- rust-modifier
ExclusiveArch: %{rust_arches}
- rust-muldiv
ExclusiveArch: %{rust_arches}
- rust-multimap
ExclusiveArch: %{rust_arches}
- rust-nalgebra
ExclusiveArch: %{rust_arches}
- rust-nasm-rs
ExclusiveArch: %{rust_arches}
- rust-native-tls
ExclusiveArch: %{rust_arches}
- rust-natord
ExclusiveArch: %{rust_arches}
- rust-net2
ExclusiveArch: %{rust_arches}
- rust-netmap_sys
ExclusiveArch: %{rust_arches}
- rust-new_debug_unreachable
ExclusiveArch: %{rust_arches}
- rust-newtype_derive
ExclusiveArch: %{rust_arches}
- rust-nix
ExclusiveArch: %{rust_arches}
- rust-nix0.14
ExclusiveArch: %{rust_arches}
- rust-no-panic
ExclusiveArch: %{rust_arches}
- rust-nodrop
ExclusiveArch: %{rust_arches}
- rust-nom
ExclusiveArch: %{rust_arches}
- rust-notify
ExclusiveArch: %{rust_arches}
- rust-num
ExclusiveArch: %{rust_arches}
- rust-num-bigint
ExclusiveArch: %{rust_arches}
- rust-num-complex
ExclusiveArch: %{rust_arches}
- rust-num-derive
ExclusiveArch: %{rust_arches}
- rust-num-integer
ExclusiveArch: %{rust_arches}
- rust-num-iter
ExclusiveArch: %{rust_arches}
- rust-num-rational
ExclusiveArch: %{rust_arches}
- rust-num-traits
ExclusiveArch: %{rust_arches}
- rust-num-traits0.1
ExclusiveArch: %{rust_arches}
- rust-num_cpus
ExclusiveArch: %{rust_arches}
- rust-number_prefix
ExclusiveArch: %{rust_arches}
- rust-numtoa
ExclusiveArch: %{rust_arches}
- rust-object
ExclusiveArch: %{rust_arches}
- rust-objekt
ExclusiveArch: %{rust_arches}
- rust-odds
ExclusiveArch: %{rust_arches}
- rust-once_cell
ExclusiveArch: %{rust_arches}
- rust-onig
ExclusiveArch: %{rust_arches}
- rust-onig_sys
ExclusiveArch: %{rust_arches}
- rust-opaque-debug
ExclusiveArch: %{rust_arches}
- rust-open
ExclusiveArch: %{rust_arches}
- rust-opener
ExclusiveArch: %{rust_arches}
- rust-openssh-keys
ExclusiveArch: %{rust_arches}
- rust-openssl
ExclusiveArch: %{rust_arches}
- rust-openssl-probe
ExclusiveArch: %{rust_arches}
- rust-openssl-sys
ExclusiveArch: %{rust_arches}
- rust-ord_subset
ExclusiveArch: %{rust_arches}
- rust-ordered-float
ExclusiveArch: %{rust_arches}
- rust-os_pipe
ExclusiveArch: %{rust_arches}
- rust-osstrtools
ExclusiveArch: %{rust_arches}
- rust-owning_ref
ExclusiveArch: %{rust_arches}
- rust-packaging
ExclusiveArch: %{rust_arches}
- rust-pad
ExclusiveArch: %{rust_arches}
- rust-pager
ExclusiveArch: %{rust_arches}
- rust-pango
ExclusiveArch: %{rust_arches}
- rust-pango-sys
ExclusiveArch: %{rust_arches}
- rust-pangocairo
ExclusiveArch: %{rust_arches}
- rust-pangocairo-sys
ExclusiveArch: %{rust_arches}
- rust-parity-wasm
ExclusiveArch: %{rust_arches}
- rust-parking_lot
ExclusiveArch: %{rust_arches}
- rust-parking_lot_core
ExclusiveArch: %{rust_arches}
- rust-paste
ExclusiveArch: %{rust_arches}
- rust-paste-impl
ExclusiveArch: %{rust_arches}
- rust-pathdiff
ExclusiveArch: %{rust_arches}
- rust-pbr
ExclusiveArch: %{rust_arches}
- rust-pcap
ExclusiveArch: %{rust_arches}
- rust-pcre2
ExclusiveArch: %{rust_arches}
- rust-pcre2-sys
ExclusiveArch: %{rust_arches}
- rust-peeking_take_while
ExclusiveArch: %{rust_arches}
- rust-peg
ExclusiveArch: %{rust_arches}
- rust-percent-encoding
ExclusiveArch: %{rust_arches}
- rust-percent-encoding1
ExclusiveArch: %{rust_arches}
- rust-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-phf_codegen
ExclusiveArch: %{rust_arches}
- rust-phf_generator
ExclusiveArch: %{rust_arches}
- rust-phf_shared
ExclusiveArch: %{rust_arches}
- rust-pkg-config
ExclusiveArch: %{rust_arches}
- rust-plain
ExclusiveArch: %{rust_arches}
- rust-plist
ExclusiveArch: %{rust_arches}
- rust-plugin
ExclusiveArch: %{rust_arches}
- rust-pnet_base
ExclusiveArch: %{rust_arches}
- rust-pnet_datalink
ExclusiveArch: %{rust_arches}
- rust-pnet_sys
ExclusiveArch: %{rust_arches}
- rust-png
ExclusiveArch: %{rust_arches}
- rust-ppv-lite86
ExclusiveArch: %{rust_arches}
- rust-precomputed-hash
ExclusiveArch: %{rust_arches}
- rust-pretty-git-prompt
ExclusiveArch: %{rust_arches}
- rust-pretty_assertions
ExclusiveArch: %{rust_arches}
- rust-pretty_env_logger
ExclusiveArch: %{rust_arches}
- rust-prettytable-rs
ExclusiveArch: %{rust_arches}
- rust-proc-macro-hack
ExclusiveArch: %{rust_arches}
- rust-proc-macro2
ExclusiveArch: %{rust_arches}
- rust-proc-macro2-0.4
ExclusiveArch: %{rust_arches}
- rust-procedural-masquerade
ExclusiveArch: %{rust_arches}
- rust-prometheus
ExclusiveArch: %{rust_arches}
- rust-proptest
ExclusiveArch: %{rust_arches}
- rust-proptest-derive
ExclusiveArch: %{rust_arches}
- rust-protobuf
ExclusiveArch: %{rust_arches}
- rust-pulldown-cmark
ExclusiveArch: %{rust_arches}
- rust-pulse
ExclusiveArch: %{rust_arches}
- rust-qr2term
ExclusiveArch: %{rust_arches}
- rust-qrcode
ExclusiveArch: %{rust_arches}
- rust-quick-error
ExclusiveArch: %{rust_arches}
- rust-quickcheck
ExclusiveArch: %{rust_arches}
- rust-quickcheck0.6
ExclusiveArch: %{rust_arches}
- rust-quickersort
ExclusiveArch: %{rust_arches}
- rust-quote
ExclusiveArch: %{rust_arches}
- rust-quote0.3
ExclusiveArch: %{rust_arches}
- rust-quote0.6
ExclusiveArch: %{rust_arches}
- rust-rand
ExclusiveArch: %{rust_arches}
- rust-rand0.4
ExclusiveArch: %{rust_arches}
- rust-rand0.5
ExclusiveArch: %{rust_arches}
- rust-rand0.6
ExclusiveArch: %{rust_arches}
- rust-rand_chacha
ExclusiveArch: %{rust_arches}
- rust-rand_chacha0.1
ExclusiveArch: %{rust_arches}
- rust-rand_core
ExclusiveArch: %{rust_arches}
- rust-rand_core0.3
ExclusiveArch: %{rust_arches}
- rust-rand_core0.4
ExclusiveArch: %{rust_arches}
- rust-rand_hc
ExclusiveArch: %{rust_arches}
- rust-rand_hc0.1
ExclusiveArch: %{rust_arches}
- rust-rand_isaac
ExclusiveArch: %{rust_arches}
- rust-rand_isaac0.1
ExclusiveArch: %{rust_arches}
- rust-rand_jitter
ExclusiveArch: %{rust_arches}
- rust-rand_jitter0.1
ExclusiveArch: %{rust_arches}
- rust-rand_os
ExclusiveArch: %{rust_arches}
- rust-rand_os0.1
ExclusiveArch: %{rust_arches}
- rust-rand_pcg
ExclusiveArch: %{rust_arches}
- rust-rand_pcg0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xoshiro
ExclusiveArch: %{rust_arches}
- rust-rawpointer
ExclusiveArch: %{rust_arches}
- rust-rawslice
ExclusiveArch: %{rust_arches}
- rust-rayon
ExclusiveArch: %{rust_arches}
- rust-rayon-core
ExclusiveArch: %{rust_arches}
- rust-recycler
ExclusiveArch: %{rust_arches}
- rust-regex
ExclusiveArch: %{rust_arches}
- rust-regex-automata
ExclusiveArch: %{rust_arches}
- rust-regex-syntax
ExclusiveArch: %{rust_arches}
- rust-region
ExclusiveArch: %{rust_arches}
- rust-relay
ExclusiveArch: %{rust_arches}
- rust-remove_dir_all
ExclusiveArch: %{rust_arches}
- rust-reqwest
ExclusiveArch: %{rust_arches}
- rust-resize
ExclusiveArch: %{rust_arches}
- rust-resolv-conf
ExclusiveArch: %{rust_arches}
- rust-restson
ExclusiveArch: %{rust_arches}
- rust-rgb
ExclusiveArch: %{rust_arches}
- rust-ripgrep
ExclusiveArch: %{rust_arches}
- rust-rmp
ExclusiveArch: %{rust_arches}
- rust-rmp-serde
ExclusiveArch: %{rust_arches}
- rust-roff
ExclusiveArch: %{rust_arches}
- rust-ron
ExclusiveArch: %{rust_arches}
- rust-rpassword
ExclusiveArch: %{rust_arches}
- rust-rpick
ExclusiveArch: %{rust_arches}
- rust-rust-ini
ExclusiveArch: %{rust_arches}
- rust-rust-stemmers
ExclusiveArch: %{rust_arches}
- rust-rustc-demangle
ExclusiveArch: %{rust_arches}
- rust-rustc-serialize
ExclusiveArch: %{rust_arches}
- rust-rustc-test
ExclusiveArch: %{rust_arches}
- rust-rustc_version
ExclusiveArch: %{rust_arches}
- rust-rustdoc-stripper
ExclusiveArch: %{rust_arches}
- rust-rustfilt
ExclusiveArch: %{rust_arches}
- rust-rustfix
ExclusiveArch: %{rust_arches}
- rust-rustio
ExclusiveArch: %{rust_arches}
- rust-rusty-fork
ExclusiveArch: %{rust_arches}
- rust-ryu
ExclusiveArch: %{rust_arches}
- rust-safe-transmute
ExclusiveArch: %{rust_arches}
- rust-safemem
ExclusiveArch: %{rust_arches}
- rust-same-file
ExclusiveArch: %{rust_arches}
- rust-sass-rs
ExclusiveArch: %{rust_arches}
- rust-sass-sys
ExclusiveArch: %{rust_arches}
- rust-scan_fmt
ExclusiveArch: %{rust_arches}
- rust-scoped-tls
ExclusiveArch: %{rust_arches}
- rust-scoped_threadpool
ExclusiveArch: %{rust_arches}
- rust-scopeguard
ExclusiveArch: %{rust_arches}
- rust-scroll
ExclusiveArch: %{rust_arches}
- rust-scroll_derive
ExclusiveArch: %{rust_arches}
- rust-sd
ExclusiveArch: %{rust_arches}
- rust-seahash
ExclusiveArch: %{rust_arches}
- rust-secret-service
ExclusiveArch: %{rust_arches}
- rust-semver
ExclusiveArch: %{rust_arches}
- rust-semver-parser
ExclusiveArch: %{rust_arches}
- rust-semver-parser0.7
ExclusiveArch: %{rust_arches}
- rust-serde
ExclusiveArch: %{rust_arches}
- rust-serde-pickle
ExclusiveArch: %{rust_arches}
- rust-serde-xml-rs
ExclusiveArch: %{rust_arches}
- rust-serde0.8
ExclusiveArch: %{rust_arches}
- rust-serde_bytes
ExclusiveArch: %{rust_arches}
- rust-serde_cbor
ExclusiveArch: %{rust_arches}
- rust-serde_derive
ExclusiveArch: %{rust_arches}
- rust-serde_ignored
ExclusiveArch: %{rust_arches}
- rust-serde_json
ExclusiveArch: %{rust_arches}
- rust-serde_json0.8
ExclusiveArch: %{rust_arches}
- rust-serde_stacker
ExclusiveArch: %{rust_arches}
- rust-serde_test
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded0.5
ExclusiveArch: %{rust_arches}
- rust-serde_yaml
ExclusiveArch: %{rust_arches}
- rust-sha-1
ExclusiveArch: %{rust_arches}
- rust-sha1
ExclusiveArch: %{rust_arches}
- rust-sha2
ExclusiveArch: %{rust_arches}
- rust-shared_child
ExclusiveArch: %{rust_arches}
- rust-shell-escape
ExclusiveArch: %{rust_arches}
- rust-shell-words
ExclusiveArch: %{rust_arches}
- rust-shlex
ExclusiveArch: %{rust_arches}
- rust-signal-hook
ExclusiveArch: %{rust_arches}
- rust-signal-hook-registry
ExclusiveArch: %{rust_arches}
- rust-silver
ExclusiveArch: %{rust_arches}
- rust-simple_logger
ExclusiveArch: %{rust_arches}
- rust-simplelog
ExclusiveArch: %{rust_arches}
- rust-siphasher
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-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-slotmap0.2
ExclusiveArch: %{rust_arches}
- rust-slug
ExclusiveArch: %{rust_arches}
- rust-smallvec
ExclusiveArch: %{rust_arches}
- rust-snowflake
ExclusiveArch: %{rust_arches}
- rust-socket2
ExclusiveArch: %{rust_arches}
- rust-sourceview
ExclusiveArch: %{rust_arches}
- rust-spin
ExclusiveArch: %{rust_arches}
- rust-spmc
ExclusiveArch: %{rust_arches}
- rust-stable_deref_trait
ExclusiveArch: %{rust_arches}
- rust-stacker
ExclusiveArch: %{rust_arches}
- rust-static_assertions
ExclusiveArch: %{rust_arches}
- rust-statistical
ExclusiveArch: %{rust_arches}
- rust-stb_truetype
ExclusiveArch: %{rust_arches}
- rust-stream-cipher
ExclusiveArch: %{rust_arches}
- rust-streaming-stats
ExclusiveArch: %{rust_arches}
- rust-string
ExclusiveArch: %{rust_arches}
- rust-string_cache
ExclusiveArch: %{rust_arches}
- rust-string_cache_codegen
ExclusiveArch: %{rust_arches}
- rust-string_cache_shared
ExclusiveArch: %{rust_arches}
- rust-strings
ExclusiveArch: %{rust_arches}
- rust-strsim
ExclusiveArch: %{rust_arches}
- rust-structopt
ExclusiveArch: %{rust_arches}
- rust-structopt-derive
ExclusiveArch: %{rust_arches}
- rust-strum
ExclusiveArch: %{rust_arches}
- rust-strum_macros
ExclusiveArch: %{rust_arches}
- rust-subtle
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin-sys
ExclusiveArch: %{rust_arches}
- rust-sval
ExclusiveArch: %{rust_arches}
- rust-sval_derive
ExclusiveArch: %{rust_arches}
- rust-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-tabwriter
ExclusiveArch: %{rust_arches}
- rust-take
ExclusiveArch: %{rust_arches}
- rust-take_mut
ExclusiveArch: %{rust_arches}
- rust-tar
ExclusiveArch: %{rust_arches}
- rust-tempdir
ExclusiveArch: %{rust_arches}
- rust-tempfile
ExclusiveArch: %{rust_arches}
- rust-tendril
ExclusiveArch: %{rust_arches}
- rust-tera
ExclusiveArch: %{rust_arches}
- rust-term
ExclusiveArch: %{rust_arches}
- rust-term_grid
ExclusiveArch: %{rust_arches}
- rust-term_size
ExclusiveArch: %{rust_arches}
- rust-termcolor
ExclusiveArch: %{rust_arches}
- rust-terminal_size
ExclusiveArch: %{rust_arches}
- rust-terminfo
ExclusiveArch: %{rust_arches}
- rust-termion
ExclusiveArch: %{rust_arches}
- rust-termios
ExclusiveArch: %{rust_arches}
- rust-test-assembler
ExclusiveArch: %{rust_arches}
- rust-textwrap
ExclusiveArch: %{rust_arches}
- rust-thread-id
ExclusiveArch: %{rust_arches}
- rust-thread-scoped
ExclusiveArch: %{rust_arches}
- rust-thread_local
ExclusiveArch: %{rust_arches}
- rust-threadpool
ExclusiveArch: %{rust_arches}
- rust-tiff
ExclusiveArch: %{rust_arches}
- rust-time
ExclusiveArch: %{rust_arches}
- rust-timebomb
ExclusiveArch: %{rust_arches}
- rust-timer
ExclusiveArch: %{rust_arches}
- rust-timerfd
ExclusiveArch: %{rust_arches}
- rust-tinytemplate
ExclusiveArch: %{rust_arches}
- rust-tokei
ExclusiveArch: %{rust_arches}
- rust-tokio
ExclusiveArch: %{rust_arches}
- rust-tokio-async-await
ExclusiveArch: %{rust_arches}
- rust-tokio-buf
ExclusiveArch: %{rust_arches}
- rust-tokio-codec
ExclusiveArch: %{rust_arches}
- rust-tokio-core
ExclusiveArch: %{rust_arches}
- rust-tokio-current-thread
ExclusiveArch: %{rust_arches}
- rust-tokio-executor
ExclusiveArch: %{rust_arches}
- rust-tokio-fs
ExclusiveArch: %{rust_arches}
- rust-tokio-io
ExclusiveArch: %{rust_arches}
- rust-tokio-io-pool
ExclusiveArch: %{rust_arches}
- rust-tokio-mock-task
ExclusiveArch: %{rust_arches}
- rust-tokio-mockstream
ExclusiveArch: %{rust_arches}
- rust-tokio-openssl
ExclusiveArch: %{rust_arches}
- rust-tokio-process
ExclusiveArch: %{rust_arches}
- rust-tokio-reactor
ExclusiveArch: %{rust_arches}
- rust-tokio-service
ExclusiveArch: %{rust_arches}
- rust-tokio-signal
ExclusiveArch: %{rust_arches}
- rust-tokio-sync
ExclusiveArch: %{rust_arches}
- rust-tokio-tcp
ExclusiveArch: %{rust_arches}
- rust-tokio-threadpool
ExclusiveArch: %{rust_arches}
- rust-tokio-timer
ExclusiveArch: %{rust_arches}
- rust-tokio-tls
ExclusiveArch: %{rust_arches}
- rust-tokio-trace-core
ExclusiveArch: %{rust_arches}
- rust-tokio-udp
ExclusiveArch: %{rust_arches}
- rust-tokio-uds
ExclusiveArch: %{rust_arches}
- rust-toml
ExclusiveArch: %{rust_arches}
- rust-toml0.4
ExclusiveArch: %{rust_arches}
- rust-traitobject
ExclusiveArch: %{rust_arches}
- rust-trust-dns-native-tls
ExclusiveArch: %{rust_arches}
- rust-trust-dns-openssl
ExclusiveArch: %{rust_arches}
- rust-trust-dns-proto
ExclusiveArch: %{rust_arches}
- rust-trust-dns-resolver
ExclusiveArch: %{rust_arches}
- rust-try-lock
ExclusiveArch: %{rust_arches}
- rust-try_or
ExclusiveArch: %{rust_arches}
- rust-tuikit
ExclusiveArch: %{rust_arches}
- rust-tungstenite
ExclusiveArch: %{rust_arches}
- rust-twoway
ExclusiveArch: %{rust_arches}
- rust-typeable
ExclusiveArch: %{rust_arches}
- rust-typed-arena
ExclusiveArch: %{rust_arches}
- rust-typemap
ExclusiveArch: %{rust_arches}
- rust-typenum
ExclusiveArch: %{rust_arches}
- rust-ucd-parse
ExclusiveArch: %{rust_arches}
- rust-ucd-trie
ExclusiveArch: %{rust_arches}
- rust-ucd-util
ExclusiveArch: %{rust_arches}
- rust-unchecked-index
ExclusiveArch: %{rust_arches}
- rust-unescape
ExclusiveArch: %{rust_arches}
- rust-unic-char-property
ExclusiveArch: %{rust_arches}
- rust-unic-char-range
ExclusiveArch: %{rust_arches}
- rust-unic-common
ExclusiveArch: %{rust_arches}
- rust-unic-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-category
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-common
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-version
ExclusiveArch: %{rust_arches}
- rust-unicase
ExclusiveArch: %{rust_arches}
- rust-unicase1
ExclusiveArch: %{rust_arches}
- rust-unicode-bidi
ExclusiveArch: %{rust_arches}
- rust-unicode-normalization
ExclusiveArch: %{rust_arches}
- rust-unicode-segmentation
ExclusiveArch: %{rust_arches}
- rust-unicode-width
ExclusiveArch: %{rust_arches}
- rust-unicode-xid
ExclusiveArch: %{rust_arches}
- rust-unicode-xid0.1
ExclusiveArch: %{rust_arches}
- rust-unicode_categories
ExclusiveArch: %{rust_arches}
- rust-unindent
ExclusiveArch: %{rust_arches}
- rust-unix_socket
ExclusiveArch: %{rust_arches}
- rust-unreachable
ExclusiveArch: %{rust_arches}
- rust-unsafe-any
ExclusiveArch: %{rust_arches}
- rust-untrusted
ExclusiveArch: %{rust_arches}
- rust-url
ExclusiveArch: %{rust_arches}
- rust-url1
ExclusiveArch: %{rust_arches}
- rust-url_serde
ExclusiveArch: %{rust_arches}
- rust-urlencoding
ExclusiveArch: %{rust_arches}
- rust-urlshortener
ExclusiveArch: %{rust_arches}
- rust-users
ExclusiveArch: %{rust_arches}
- rust-utf-8
ExclusiveArch: %{rust_arches}
- rust-utf8-ranges
ExclusiveArch: %{rust_arches}
- rust-utf8parse
ExclusiveArch: %{rust_arches}
- rust-uuid
ExclusiveArch: %{rust_arches}
- rust-v_escape
ExclusiveArch: %{rust_arches}
- rust-v_escape_derive
ExclusiveArch: %{rust_arches}
- rust-v_htmlescape
ExclusiveArch: %{rust_arches}
- rust-varlink
ExclusiveArch: %{rust_arches}
- rust-varlink-cli
ExclusiveArch: %{rust_arches}
- rust-varlink_generator
ExclusiveArch: %{rust_arches}
- rust-varlink_parser
ExclusiveArch: %{rust_arches}
- rust-varlink_stdinterfaces
ExclusiveArch: %{rust_arches}
- rust-vec_map
ExclusiveArch: %{rust_arches}
- rust-version-compare
ExclusiveArch: %{rust_arches}
- rust-version-sync
ExclusiveArch: %{rust_arches}
- rust-version_check
ExclusiveArch: %{rust_arches}
- rust-void
ExclusiveArch: %{rust_arches}
- rust-vte
ExclusiveArch: %{rust_arches}
- rust-wait-timeout
ExclusiveArch: %{rust_arches}
- rust-walkdir
ExclusiveArch: %{rust_arches}
- rust-want
ExclusiveArch: %{rust_arches}
- rust-warp
ExclusiveArch: %{rust_arches}
- rust-websocket
ExclusiveArch: %{rust_arches}
- rust-which
ExclusiveArch: %{rust_arches}
- rust-which1
ExclusiveArch: %{rust_arches}
- rust-wild
ExclusiveArch: %{rust_arches}
- rust-ws
ExclusiveArch: %{rust_arches}
- rust-x11
ExclusiveArch: %{rust_arches}
- rust-xattr
ExclusiveArch: %{rust_arches}
- rust-xdg
ExclusiveArch: %{rust_arches}
- rust-xml-rs
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-yup-oauth2
ExclusiveArch: %{rust_arches}
- rust-zincati
ExclusiveArch: %{rust_arches}
- rust-zoneinfo_compiled
ExclusiveArch: %{rust_arches}
- rust-zram-generator
ExclusiveArch: %{rust_arches}
- s390utils
ExclusiveArch: s390 s390x
- safetyblanket
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- sagemath
ExclusiveArch: aarch64 %{arm} %{ix86} x86_64 ppc sparcv9
- sbcl
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- sbd
ExclusiveArch: i686 x86_64 s390x aarch64 ppc64le
- sbsigntools
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- seabios
ExclusiveArch: x86_64
- seamonkey
ExclusiveArch: %{ix86} x86_64
- servicelog
ExclusiveArch: ppc %{power64}
- sgabios
ExclusiveArch: %{ix86} x86_64
- sharpfont
ExclusiveArch: %mono_arches
- sharpziplib
ExclusiveArch: %{mono_arches}
- shim
ExclusiveArch: %{efi}
- shim-unsigned-aarch64
ExclusiveArch: aarch64
- shim-unsigned-x64
ExclusiveArch: x86_64
- sigul
ExclusiveArch: x86_64
- skychart
ExclusiveArch: %{fpc_arches}
- snapd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- soup-sharp
ExclusiveArch: %{mono_arches}
- source-to-image
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- sparkleshare
ExclusiveArch: %{mono_arches}
- spicctrl
ExclusiveArch: %{ix86} x86_64
- spice
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- springlobby
ExclusiveArch: %{ix86} x86_64
- startdde
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- statsd
ExclusiveArch: %{nodejs_arches} noarch
- stratis-cli
ExclusiveArch: %{rust_arches}
- stratisd
ExclusiveArch: %{rust_arches}
- stripesnoop
ExclusiveArch: %{ix86} x86_64
- supermin
ExclusiveArch: x86_64
- svt-av1
ExclusiveArch: x86_64
- svt-vp9
ExclusiveArch: x86_64
- swift-lang
ExclusiveArch: x86_64 aarch64
- sysbench
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- syslinux
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- taglib-sharp
ExclusiveArch: %{mono_arches}
- tarantool
ExclusiveArch: %{ix86} x86_64 armv7hl armv7hnl
- tboot
ExclusiveArch: %{ix86} x86_64
- tdlib
ExclusiveArch: x86_64
- templates_parser
ExclusiveArch: %GPRbuild_arches
- termy-qt
ExclusiveArch: %{ix86} x86_64
- ternimal
ExclusiveArch: %{rust_arches}
- themonospot-base
ExclusiveArch: %mono_arches
- themonospot-console
ExclusiveArch: %mono_arches
- themonospot-gui-gtk
ExclusiveArch: %mono_arches
- themonospot-plugin-avi
ExclusiveArch: %mono_arches
- themonospot-plugin-mkv
ExclusiveArch: %mono_arches
- thermald
ExclusiveArch: %{ix86} x86_64
- tilix
ExclusiveArch: %{ldc_arches}
- tmux-top
ExclusiveArch: %{go_arches}
- tomboy
ExclusiveArch: %{mono_arches}
- toolbox
ExclusiveArch: aarch64 %{arm} ppc64le s390x x86_64
- tuned-profiles-nfv-host-bin
ExclusiveArch: %{ix86} x86_64
- uClibc
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
- ucx
ExclusiveArch: aarch64 ppc64le x86_64
- ugene
ExclusiveArch: %{ix86} x86_64
- uglify-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- uglify-js1
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- unetbootin
ExclusiveArch: %{ix86} x86_64
- ursa-major
ExclusiveArch: %{ix86} x86_64 noarch
- 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
- virtio-forwarder
ExclusiveArch: x86_64 aarch64 ppc64le %ix86
- virtualbox-guest-additions
ExclusiveArch: i686 x86_64
- virtualplanet
ExclusiveArch: %{fpc_arches}
- vkd3d
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- vmaf
ExclusiveArch: x86_64
- 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
- wraplinux
ExclusiveArch: %{ix86} x86_64
- wxMaxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
- x2goclient
ExclusiveArch: x86_64
- xe-guest-utilities
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-geode
ExclusiveArch: %{ix86}
- xorg-x11-drv-intel
ExclusiveArch: %{ix86} x86_64 ia64
- 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
- ycssmin
ExclusiveArch: %{nodejs_arches} noarch
- zeromq-ada
ExclusiveArch: %{GPRbuild_arches}
- zlib-ada
ExclusiveArch: %{GPRbuild_arches}
- zola
ExclusiveArch: %{rust_arches}
4 years, 6 months
Architecture specific change in rpms/git.git
by githook-noreply@fedoraproject.org
The package rpms/git.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/git.git/commit/?id=33ecb7860bb291....
Change:
+%ifarch s390x
Thanks.
Full change:
============
commit 16e19ee3561f67a2186abbcd066b0a940fdc0875
Author: Todd Zullinger <tmz(a)pobox.com>
Date: Thu Oct 24 12:59:13 2019 -0400
gitk: add Requires: git-gui (#1765113)
While this could arguably be a Recommends: rather than Requires:, we
chose the latter for a few reasons. The user experience when running
gitk and selecting "Start git gui" from the menu is quite poor. No
indication is shown to the user graphically. The only hint as to why
git gui did not start is output to stdout (and is not terribly helpful
for users who may be using gitk and git-gui because they are unfamiliar
with the command-line).
There are no additional dependencies pulled in by git-gui which are not
already dependencies of gitk. And the git-gui package is relatively
small.
Lastly, the default behavior of Recommends: is the same as Requires: at
this time.
If/when any of these things change, we may revisit whether moving to
Recommends: makes more sense.
Thanks to Vasiliy Glazov and Pavel Cahyna for reporting the issue and
helping to determine the proper resolution.
diff --git a/git.spec b/git.spec
index 5be40ef..ee18dce 100644
--- a/git.spec
+++ b/git.spec
@@ -391,6 +391,7 @@ Provides: emacs-git-el = %{version}-%{release}
Summary: Git repository browser
BuildArch: noarch
Requires: git = %{version}-%{release}
+Requires: git-gui = %{version}-%{release}
Requires: tk >= 8.4
%description -n gitk
%{summary}.
@@ -1026,6 +1027,7 @@ rmdir --ignore-fail-on-non-empty "$testdir"
* Thu Oct 24 2019 Todd Zullinger <tmz(a)pobox.com> - 2.24.0-0.1.rc1
- update to 2.24.0-rc1
- skip failing test in t7812-grep-icase-non-ascii on s390x
+- gitk: add Requires: git-gui (#1765113)
* Sat Oct 19 2019 Todd Zullinger <tmz(a)pobox.com> - 2.24.0-0.0.rc0
- update to 2.24.0-rc0
commit 33ecb7860bb29161df134313f0099bb7768c0cf3
Author: Todd Zullinger <tmz(a)pobox.com>
Date: Thu Oct 24 14:50:44 2019 -0400
skip failing test in t7812-grep-icase-non-ascii on s390x
The "PCRE v2: grep non-ASCII from invalid UTF-8 data" test fails on
big-endian arches. This is known upstream and will hopefully be
resolved soon.
Reference:
https://public-inbox.org/git/20191020002648.GZ10893@pobox.com/
diff --git a/git.spec b/git.spec
index 5ebe9cd..5be40ef 100644
--- a/git.spec
+++ b/git.spec
@@ -828,6 +828,16 @@ GIT_SKIP_TESTS="$GIT_SKIP_TESTS t9115"
%endif
# endif %%{power64}
+%ifarch s390x
+# Skip tests which fail on s390x
+#
+# t7812-grep-icase-non-ascii's "PCRE v2: grep non-ASCII from invalid UTF-8
+# data" test fails on big-endian arches. This is known upstream and will
+# hopefully be resolved soon (2019/10/24, tmz)
+GIT_SKIP_TESTS="$GIT_SKIP_TESTS t7812.11"
+%endif
+# endif s390x
+
export GIT_SKIP_TESTS
# Set LANG so various UTF-8 tests are run
@@ -1015,6 +1025,7 @@ rmdir --ignore-fail-on-non-empty "$testdir"
%changelog
* Thu Oct 24 2019 Todd Zullinger <tmz(a)pobox.com> - 2.24.0-0.1.rc1
- update to 2.24.0-rc1
+- skip failing test in t7812-grep-icase-non-ascii on s390x
* Sat Oct 19 2019 Todd Zullinger <tmz(a)pobox.com> - 2.24.0-0.0.rc0
- update to 2.24.0-rc0
commit 8b2d34ca4f6955287a829206db85f2a55ae3c5f0
Author: Todd Zullinger <tmz(a)pobox.com>
Date: Thu Oct 24 12:58:28 2019 -0400
update to 2.24.0-rc1
Adjust skipped test number in t5541-http-push-smart.sh (skipped on
aarch64, %{arm}, and %{power64}). A new test was added in upstream
6f1194246a ("remote-curl: pass on atomic capability to remote side",
2019-10-16), resulting in the "push 2000 tags over http" test number
changing.
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.24.0.txt
diff --git a/0001-test-progress-fix-test-failures-on-big-endian-system.patch b/0001-test-progress-fix-test-failures-on-big-endian-system.patch
deleted file mode 100644
index ba00b70..0000000
--- a/0001-test-progress-fix-test-failures-on-big-endian-system.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 1ac77295ff34b80bd8c17887f9a84b8557a9c0cd Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?SZEDER=20G=C3=A1bor?= <szeder.dev(a)gmail.com>
-Date: Sun, 20 Oct 2019 01:37:06 +0200
-Subject: [PATCH] test-progress: fix test failures on big-endian systems
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-In 't0500-progress-display.sh' all tests running 'test-tool progress
---total=<N>' fail on big-endian systems, e.g. like this:
-
- |+ test-tool progress --total=3 Working hard
- |[...]
- |+ test_i18ncmp expect out
- |--- expect 2019-10-18 23:07:54.765523916 +0000
- |+++ out 2019-10-18 23:07:54.773523916 +0000
- |@@ -1,4 +1,2 @@
- |-Working hard: 33% (1/3)<CR>
- |-Working hard: 66% (2/3)<CR>
- |-Working hard: 100% (3/3)<CR>
- |-Working hard: 100% (3/3), done.
- |+Working hard: 0% (1/12884901888)<CR>
- |+Working hard: 0% (3/12884901888), done.
-
-The reason for that bogus value is that '--total's parameter is parsed
-via parse-options's OPT_INTEGER into a uint64_t variable [1], so the
-two bits of 3 end up in the "wrong" bytes on big-endian systems
-(12884901888 = 0x300000000).
-
-Change the type of that variable from uint64_t to int, to match what
-parse-options expects; in the tests of the progress output we won't
-use values that don't fit into an int anyway.
-
-[1] start_progress() expects the total number as an uint64_t, that's
- why I chose the same type when declaring the variable holding the
- value given on the command line.
-
-Signed-off-by: SZEDER Gbor <szeder.dev(a)gmail.com>
----
- t/helper/test-progress.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/t/helper/test-progress.c b/t/helper/test-progress.c
-index 4e9f7fafdf..42b96cb103 100644
---- a/t/helper/test-progress.c
-+++ b/t/helper/test-progress.c
-@@ -29,7 +29,7 @@ void progress_test_force_update(void);
-
- int cmd__progress(int argc, const char **argv)
- {
-- uint64_t total = 0;
-+ int total = 0;
- const char *title;
- struct strbuf line = STRBUF_INIT;
- struct progress *progress;
diff --git a/git.spec b/git.spec
index 29d50c4..5ebe9cd 100644
--- a/git.spec
+++ b/git.spec
@@ -84,11 +84,11 @@
%endif
# Define for release candidates
-%global rcrev .rc0
+%global rcrev .rc1
Name: git
Version: 2.24.0
-Release: 0.0%{?rcrev}%{?dist}
+Release: 0.1%{?rcrev}%{?dist}
Summary: Fast Version Control System
License: GPLv2
URL: https://git-scm.com/
@@ -120,9 +120,6 @@ Source99: print-failed-test-output
# https://bugzilla.redhat.com/490602
Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch
-# https://public-inbox.org/git/20191019233706.GM29845@szeder.dev/
-Patch1: 0001-test-progress-fix-test-failures-on-big-endian-system.patch
-
%if %{with docs}
# pod2man is needed to build Git.3pm
BuildRequires: %{_bindir}/pod2man
@@ -814,9 +811,9 @@ GIT_SKIP_TESTS=""
#
# The following 2 tests use run_with_limited_cmdline, which calls ulimit -s 128
# to limit the maximum stack size.
-# t5541.34 'push 2000 tags over http'
+# t5541.35 'push 2000 tags over http'
# t5551.25 'clone the 2,000 tag repo to check OS command line overflow'
-GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5541.34 t5551.25"
+GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5541.35 t5551.25"
%endif
# endif aarch64 %%{arm} %%{power64}
@@ -1016,6 +1013,9 @@ rmdir --ignore-fail-on-non-empty "$testdir"
%{?with_docs:%{_pkgdocdir}/git-svn.html}
%changelog
+* Thu Oct 24 2019 Todd Zullinger <tmz(a)pobox.com> - 2.24.0-0.1.rc1
+- update to 2.24.0-rc1
+
* Sat Oct 19 2019 Todd Zullinger <tmz(a)pobox.com> - 2.24.0-0.0.rc0
- update to 2.24.0-rc0
- fix t0500-progress-display on big-endian arches
diff --git a/sources b/sources
index 9adf696..c1a3bbf 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (git-2.24.0.rc0.tar.xz) = 94aa91496bd34f691a1de2bb9610a77b949b26a73cad3dab84f15461c6b3ffa1f6a272f6ea2248b7cf50797e7ccc27ca3cd033980f37b95bf9339a33ffb358f8
-SHA512 (git-2.24.0.rc0.tar.sign) = b322c9a22a99e6bf8b13cfa17dcc3f6c7260fbdd0b515bca850cb8b3a1419da35f3beb73638ad7d148234cf875398e374605ad4840df416bcbcc220edfb007fe
+SHA512 (git-2.24.0.rc1.tar.xz) = 02a52e3e2dafde7966e0f3a81c43702b87265f990b829012317ba03ef70bdd56b1ca715e002d89eb7a3c44d04ebecb587e13808b8a6882a4b2650e86ae82fa7a
+SHA512 (git-2.24.0.rc1.tar.sign) = 6d851e10c5866b456e3ec81cf57a4e517ab53a5ff48cf22fbd4ce45b3408312fd3b991fd58dee6202daa44a0d1b5a39be10862c2bdc6a2632c59c5e0d626c9fb
commit 61b7079c2f92b5909010f3a5b94354e88045db32
Author: Todd Zullinger <tmz(a)pobox.com>
Date: Sat Oct 19 19:57:53 2019 -0400
fix t0500-progress-display on big-endian arches
Thanks to SZEDER Gbor <szeder.dev(a)gmail.com> for a quick patch.
diff --git a/0001-test-progress-fix-test-failures-on-big-endian-system.patch b/0001-test-progress-fix-test-failures-on-big-endian-system.patch
new file mode 100644
index 0000000..ba00b70
--- /dev/null
+++ b/0001-test-progress-fix-test-failures-on-big-endian-system.patch
@@ -0,0 +1,55 @@
+From 1ac77295ff34b80bd8c17887f9a84b8557a9c0cd Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?SZEDER=20G=C3=A1bor?= <szeder.dev(a)gmail.com>
+Date: Sun, 20 Oct 2019 01:37:06 +0200
+Subject: [PATCH] test-progress: fix test failures on big-endian systems
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+In 't0500-progress-display.sh' all tests running 'test-tool progress
+--total=<N>' fail on big-endian systems, e.g. like this:
+
+ |+ test-tool progress --total=3 Working hard
+ |[...]
+ |+ test_i18ncmp expect out
+ |--- expect 2019-10-18 23:07:54.765523916 +0000
+ |+++ out 2019-10-18 23:07:54.773523916 +0000
+ |@@ -1,4 +1,2 @@
+ |-Working hard: 33% (1/3)<CR>
+ |-Working hard: 66% (2/3)<CR>
+ |-Working hard: 100% (3/3)<CR>
+ |-Working hard: 100% (3/3), done.
+ |+Working hard: 0% (1/12884901888)<CR>
+ |+Working hard: 0% (3/12884901888), done.
+
+The reason for that bogus value is that '--total's parameter is parsed
+via parse-options's OPT_INTEGER into a uint64_t variable [1], so the
+two bits of 3 end up in the "wrong" bytes on big-endian systems
+(12884901888 = 0x300000000).
+
+Change the type of that variable from uint64_t to int, to match what
+parse-options expects; in the tests of the progress output we won't
+use values that don't fit into an int anyway.
+
+[1] start_progress() expects the total number as an uint64_t, that's
+ why I chose the same type when declaring the variable holding the
+ value given on the command line.
+
+Signed-off-by: SZEDER Gbor <szeder.dev(a)gmail.com>
+---
+ t/helper/test-progress.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/t/helper/test-progress.c b/t/helper/test-progress.c
+index 4e9f7fafdf..42b96cb103 100644
+--- a/t/helper/test-progress.c
++++ b/t/helper/test-progress.c
+@@ -29,7 +29,7 @@ void progress_test_force_update(void);
+
+ int cmd__progress(int argc, const char **argv)
+ {
+- uint64_t total = 0;
++ int total = 0;
+ const char *title;
+ struct strbuf line = STRBUF_INIT;
+ struct progress *progress;
diff --git a/git.spec b/git.spec
index f65d331..29d50c4 100644
--- a/git.spec
+++ b/git.spec
@@ -120,6 +120,9 @@ Source99: print-failed-test-output
# https://bugzilla.redhat.com/490602
Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch
+# https://public-inbox.org/git/20191019233706.GM29845@szeder.dev/
+Patch1: 0001-test-progress-fix-test-failures-on-big-endian-system.patch
+
%if %{with docs}
# pod2man is needed to build Git.3pm
BuildRequires: %{_bindir}/pod2man
@@ -1015,6 +1018,7 @@ rmdir --ignore-fail-on-non-empty "$testdir"
%changelog
* Sat Oct 19 2019 Todd Zullinger <tmz(a)pobox.com> - 2.24.0-0.0.rc0
- update to 2.24.0-rc0
+- fix t0500-progress-display on big-endian arches
* Fri Aug 16 2019 Todd Zullinger <tmz(a)pobox.com> - 2.23.0-1
- Update to 2.23.0
commit 8040cda9193bbf008005dfd75828a61356ef7b44
Author: Todd Zullinger <tmz(a)pobox.com>
Date: Fri Oct 18 23:14:21 2019 -0400
update to 2.24.0-rc0
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.24.0.txt
diff --git a/git.spec b/git.spec
index 6e19374..f65d331 100644
--- a/git.spec
+++ b/git.spec
@@ -84,11 +84,11 @@
%endif
# Define for release candidates
-#global rcrev .rc0
+%global rcrev .rc0
Name: git
-Version: 2.23.0
-Release: 1%{?rcrev}%{?dist}
+Version: 2.24.0
+Release: 0.0%{?rcrev}%{?dist}
Summary: Fast Version Control System
License: GPLv2
URL: https://git-scm.com/
@@ -1013,6 +1013,9 @@ rmdir --ignore-fail-on-non-empty "$testdir"
%{?with_docs:%{_pkgdocdir}/git-svn.html}
%changelog
+* Sat Oct 19 2019 Todd Zullinger <tmz(a)pobox.com> - 2.24.0-0.0.rc0
+- update to 2.24.0-rc0
+
* Fri Aug 16 2019 Todd Zullinger <tmz(a)pobox.com> - 2.23.0-1
- Update to 2.23.0
diff --git a/sources b/sources
index 4beda38..9adf696 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (git-2.23.0.tar.xz) = c0bb29b3689ec2e157f90df849599ca149a08fc0c69f6a68b1f3219b6335d521983e6ed58cd364b86398e4dcf9e84892fb9eded79a1c97b74150edca299cf671
-SHA512 (git-2.23.0.tar.sign) = 7fbae475901966604f9d6a5a1a62cb01d7fcb696bf742f3bd9fff3ac667233744ee42f9df5fbca3ee4106282384dea16aab86430ae30fceed8959b7700a27614
+SHA512 (git-2.24.0.rc0.tar.xz) = 94aa91496bd34f691a1de2bb9610a77b949b26a73cad3dab84f15461c6b3ffa1f6a272f6ea2248b7cf50797e7ccc27ca3cd033980f37b95bf9339a33ffb358f8
+SHA512 (git-2.24.0.rc0.tar.sign) = b322c9a22a99e6bf8b13cfa17dcc3f6c7260fbdd0b515bca850cb8b3a1419da35f3beb73638ad7d148234cf875398e374605ad4840df416bcbcc220edfb007fe
4 years, 6 months
Architecture specific change in rpms/rust-packaging.git
by githook-noreply@fedoraproject.org
The package rpms/rust-packaging.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/rust-packaging.git/commit/?id=965...
https://src.fedoraproject.org/cgit/rpms/rust-packaging.git/commit/?id=4e5....
Change:
+ExclusiveArch: %{rust_arches}
+ExclusiveArch: %{rust_arches} noarch
Thanks.
Full change:
============
commit b67ece752356120938edf3065dcafdbdbed97889
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat Sep 7 17:55:03 2019 +0200
Enable dependency generator
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/rust-packaging.spec b/rust-packaging.spec
index fef7968..62c819e 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -1,4 +1,5 @@
%bcond_without check
+%{?python_enable_dependency_generator}
# https://pagure.io/koji/issue/659
%global debug_package %{nil}
commit 22f4c8d35f6ccef90bde00418b4bd6facced1322
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat Sep 7 14:07:31 2019 +0200
Depend on setuptools in runtime
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/rust-packaging.spec b/rust-packaging.spec
index c2bc488..fef7968 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -4,7 +4,7 @@
Name: rust-packaging
Version: 10
-Release: 5%{?dist}
+Release: 6%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -36,6 +36,8 @@ BuildRequires: cargo
BuildRequires: python3dist(semantic-version)
%endif
Requires: cargo
+# pkg_resources due to entry_points
+Requires: python3dist(setuptools)
Provides: rust2rpm = %{version}-%{release}
%{?python_provide:%python_provide python3-rust2rpm}
@@ -72,6 +74,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sat Sep 07 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 10-6
+- Depend on setuptools in runtime
+
* Mon Aug 19 2019 Miro Hronok <mhroncok(a)redhat.com> - 10-5
- Rebuilt for Python 3.8
commit 540bbf894b976415ac1fdb1231c9d61a19f5a507
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Aug 19 11:05:18 2019 +0200
Rebuilt for Python 3.8
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 5b9b7b9..c2bc488 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -4,7 +4,7 @@
Name: rust-packaging
Version: 10
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -72,6 +72,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Mon Aug 19 2019 Miro Hronok <mhroncok(a)redhat.com> - 10-5
+- Rebuilt for Python 3.8
+
* Sun Aug 18 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 10-4
- Ignore Cargo.lock
commit 0422c80e244f296cfab691e8f8e73991564e3643
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sun Aug 18 16:42:09 2019 +0200
Drop old awk patch
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0001-macros-Do-not-use-awk-s-inplace-feature.patch b/0001-macros-Do-not-use-awk-s-inplace-feature.patch
deleted file mode 100644
index dd83986..0000000
--- a/0001-macros-Do-not-use-awk-s-inplace-feature.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From fac21ad662a14a4f901b3365a25749b516918554 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Mon, 24 Jun 2019 20:27:20 +0200
-Subject: [PATCH] macros: Do not use awk's inplace feature
-
-gawk 5.x changed variable name to `inplace::suffix` but gawk 4.x does
-not like that name so we can't set both.
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- data/macros.cargo | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/data/macros.cargo b/data/macros.cargo
-index 1182850..5066587 100644
---- a/data/macros.cargo
-+++ b/data/macros.cargo
-@@ -89,7 +89,8 @@ if %__cargo_is_lib; then \
- # Drop all dependency/features information \
- # so that cargo doesn't fail resolving dependencies: \
- # https://github.com/rust-lang/cargo/pull/6729 \
-- %{__awk} -i inplace -v INPLACE_SUFFIX=.deps '/^\\\[((.+\\\.)?((dev|build)-)?dependencies|features)/{f=1;next} /^\\\[/{f=0}; !f' Cargo.toml \
-+ mv Cargo.toml{,.deps} \
-+ awk '/^\\\[((.+\\\.)?((dev|build)-)?dependencies|features)/{f=1;next} /^\\\[/{f=0}; !f' Cargo.toml.deps > Cargo.toml \
- %{__cargo} package -l | xargs -d '\\\n' %{__cp} --parents -a -t $REG_DIR \
- %{__mv} Cargo.toml{.deps,} \
- %{__cp} -a Cargo.toml $REG_DIR/Cargo.toml \
---
-2.22.0
-
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 6ce0682..5b9b7b9 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -10,10 +10,8 @@ Summary: RPM macros for building Rust packages on various architectures
License: MIT
URL: https://pagure.io/fedora-rust/rust2rpm
Source: https://releases.pagure.org/fedora-rust/rust2rpm/rust2rpm-%{version}.tar.xz
-# TODO: See if we can manage to keep using inplace feature
-Patch0001: 0001-macros-Do-not-use-awk-s-inplace-feature.patch
# https://pagure.io/fedora-rust/rust2rpm/issue/90
-Patch0002: 0001-Ignore-Cargo.lock.patch
+Patch0001: 0001-Ignore-Cargo.lock.patch
ExclusiveArch: %{rust_arches}
commit 5abaccc6a8c01adf0b1d08674fdc7c671c882f7f
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sun Aug 18 16:40:24 2019 +0200
Ignore Cargo.lock
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0001-Ignore-Cargo.lock.patch b/0001-Ignore-Cargo.lock.patch
new file mode 100644
index 0000000..3f719f5
--- /dev/null
+++ b/0001-Ignore-Cargo.lock.patch
@@ -0,0 +1,26 @@
+From 308b1b98e5a7724572325293bdc19ac167877544 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Sun, 18 Aug 2019 16:39:13 +0200
+Subject: [PATCH] Ignore Cargo.lock
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ data/macros.cargo | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/data/macros.cargo b/data/macros.cargo
+index 1182850..5f60111 100644
+--- a/data/macros.cargo
++++ b/data/macros.cargo
+@@ -90,7 +90,7 @@ if %__cargo_is_lib; then \
+ # so that cargo doesn't fail resolving dependencies: \
+ # https://github.com/rust-lang/cargo/pull/6729 \
+ %{__awk} -i inplace -v INPLACE_SUFFIX=.deps '/^\\\[((.+\\\.)?((dev|build)-)?dependencies|features)/{f=1;next} /^\\\[/{f=0}; !f' Cargo.toml \
+- %{__cargo} package -l | xargs -d '\\\n' %{__cp} --parents -a -t $REG_DIR \
++ %{__cargo} package -l | grep -w -v Cargo.lock | xargs -d '\\\n' %{__cp} --parents -a -t $REG_DIR \
+ %{__mv} Cargo.toml{.deps,} \
+ %{__cp} -a Cargo.toml $REG_DIR/Cargo.toml \
+ %{__rm} -f $REG_DIR/Cargo.toml.{orig,deps} \
+--
+2.23.0.rc2
+
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 8456e7f..6ce0682 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -1,11 +1,10 @@
%bcond_without check
-%{?python_enable_dependency_generator}
# https://pagure.io/koji/issue/659
%global debug_package %{nil}
Name: rust-packaging
Version: 10
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -13,6 +12,8 @@ URL: https://pagure.io/fedora-rust/rust2rpm
Source: https://releases.pagure.org/fedora-rust/rust2rpm/rust2rpm-%{version}.tar.xz
# TODO: See if we can manage to keep using inplace feature
Patch0001: 0001-macros-Do-not-use-awk-s-inplace-feature.patch
+# https://pagure.io/fedora-rust/rust2rpm/issue/90
+Patch0002: 0001-Ignore-Cargo.lock.patch
ExclusiveArch: %{rust_arches}
@@ -73,6 +74,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sun Aug 18 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 10-4
+- Ignore Cargo.lock
+
* Fri Jul 26 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 10-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
commit edfe1c3fea06b8044aac57b5e16a2f5bb5dd947a
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Fri Jul 26 21:39:36 2019 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 28008e5..8456e7f 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -5,7 +5,7 @@
Name: rust-packaging
Version: 10
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -73,6 +73,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Fri Jul 26 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 10-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
* Mon Jun 24 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 10-2
- Do not use awk's inplace feature
commit 700f417672c1eb52ddab3bf702755e92d8094421
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Mon Jun 24 20:36:04 2019 +0200
Do not use awk's inplace feature
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0001-macros-Do-not-use-awk-s-inplace-feature.patch b/0001-macros-Do-not-use-awk-s-inplace-feature.patch
new file mode 100644
index 0000000..dd83986
--- /dev/null
+++ b/0001-macros-Do-not-use-awk-s-inplace-feature.patch
@@ -0,0 +1,30 @@
+From fac21ad662a14a4f901b3365a25749b516918554 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Mon, 24 Jun 2019 20:27:20 +0200
+Subject: [PATCH] macros: Do not use awk's inplace feature
+
+gawk 5.x changed variable name to `inplace::suffix` but gawk 4.x does
+not like that name so we can't set both.
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ data/macros.cargo | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/data/macros.cargo b/data/macros.cargo
+index 1182850..5066587 100644
+--- a/data/macros.cargo
++++ b/data/macros.cargo
+@@ -89,7 +89,8 @@ if %__cargo_is_lib; then \
+ # Drop all dependency/features information \
+ # so that cargo doesn't fail resolving dependencies: \
+ # https://github.com/rust-lang/cargo/pull/6729 \
+- %{__awk} -i inplace -v INPLACE_SUFFIX=.deps '/^\\\[((.+\\\.)?((dev|build)-)?dependencies|features)/{f=1;next} /^\\\[/{f=0}; !f' Cargo.toml \
++ mv Cargo.toml{,.deps} \
++ awk '/^\\\[((.+\\\.)?((dev|build)-)?dependencies|features)/{f=1;next} /^\\\[/{f=0}; !f' Cargo.toml.deps > Cargo.toml \
+ %{__cargo} package -l | xargs -d '\\\n' %{__cp} --parents -a -t $REG_DIR \
+ %{__mv} Cargo.toml{.deps,} \
+ %{__cp} -a Cargo.toml $REG_DIR/Cargo.toml \
+--
+2.22.0
+
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 56430c9..28008e5 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -5,17 +5,19 @@
Name: rust-packaging
Version: 10
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
URL: https://pagure.io/fedora-rust/rust2rpm
Source: https://releases.pagure.org/fedora-rust/rust2rpm/rust2rpm-%{version}.tar.xz
+# TODO: See if we can manage to keep using inplace feature
+Patch0001: 0001-macros-Do-not-use-awk-s-inplace-feature.patch
ExclusiveArch: %{rust_arches}
-# gawk is needed for stripping dev-deps in macro, 4.1.0 is needed for inplace feature
-Requires: gawk >= 4.1.0
+# gawk is needed for stripping dev-deps in macro
+Requires: gawk
Requires: python3-rust2rpm = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: rust-srpm-macros = %{version}
Requires: rust
@@ -71,6 +73,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Mon Jun 24 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 10-2
+- Do not use awk's inplace feature
+
* Sun Jun 16 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 10-1
- Update to 10
commit a71632f5f74348736c720b5334d8012ce660097f
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sun Jun 16 17:18:14 2019 +0200
Update to 10
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/.gitignore b/.gitignore
index b86ab64..deb76e9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@
/rust2rpm-7.tar.xz
/rust2rpm-8.tar.xz
/rust2rpm-9.tar.xz
+/rust2rpm-10.tar.xz
diff --git a/0001-templates-Do-not-put-empty-line-after-changelog.patch b/0001-templates-Do-not-put-empty-line-after-changelog.patch
deleted file mode 100644
index 00bd68f..0000000
--- a/0001-templates-Do-not-put-empty-line-after-changelog.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From b1df4d587fb03dcaedd7e8f29fbe5b7265ea5638 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Mon, 6 May 2019 10:43:05 +0200
-Subject: [PATCH 01/14] templates: Do not put empty line after %changelog
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- rust2rpm/templates/main.spec | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
-index dcd24ca..0c84325 100644
---- a/rust2rpm/templates/main.spec
-+++ b/rust2rpm/templates/main.spec
-@@ -183,6 +183,7 @@ echo {{ "%r"|format(req) }}
- %endif
-
- %changelog
--{% if auto_changelog_entry %}
-+{%- if auto_changelog_entry %}
-+
- {% include target ~ "-changelog.spec.inc" %}
- {% endif %}
---
-2.22.0.rc3
-
diff --git a/0002-licensing-translate-GPL-123.patch b/0002-licensing-translate-GPL-123.patch
deleted file mode 100644
index 559941f..0000000
--- a/0002-licensing-translate-GPL-123.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 1f64bd9564c0cc27d23f5dc5e523f0db46496644 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
-Date: Mon, 6 May 2019 22:08:07 +0200
-Subject: [PATCH 02/14] licensing: translate GPL[123]+
-
-The "+" variants were described in the comment, but not explicitly
-listed in the table. Let's just replace the comment with
-machine-readable lines.
-
-Fixes #79.
----
- rust2rpm/spdx_to_fedora.csv | 15 ++++++---------
- 1 file changed, 6 insertions(+), 9 deletions(-)
-
-diff --git a/rust2rpm/spdx_to_fedora.csv b/rust2rpm/spdx_to_fedora.csv
-index c42e66e..4fc3321 100644
---- a/rust2rpm/spdx_to_fedora.csv
-+++ b/rust2rpm/spdx_to_fedora.csv
-@@ -141,15 +141,12 @@ GNU Affero General Public License v3.0,AGPL-3.0,AGPLv3,Affero General Public Lic
- GNU Free Documentation License v1.1,GFDL-1.1,,,This specific version not on Fedora list,
- GNU Free Documentation License v1.2,GFDL-1.2,,,This specific version not on Fedora list,
- GNU Free Documentation License v1.3,GFDL-1.3,GFDL,,,
--GNU General Public License v1.0 only,GPL-1.0,GPLv1,,"For or later add + to SPDX or Fedora short identifier:
--SPDX: GPL-1.0+
--Fedora: GPLv1+ or GPL+",
--GNU General Public License v2.0 only,GPL-2.0,GPLv2,,"For or later add + to SPDX or Fedora short identifier:
--SPDX: GPL-2.0+
--Fedora: GPLv2+",
--GNU General Public License v3.0 only,GPL-3.0,GPLv3,,"For or later add + to SPDX or Fedora short identifier:
--SPDX: GPL-3.0+
--Fedora: GPLv3+",
-+GNU General Public License v1.0 only,GPL-1.0,GPLv1,,,
-+GNU General Public License v1.0 or later,GPL-1.0+,GPLv1+,,,
-+GNU General Public License v2.0 only,GPL-2.0,GPLv2,,,
-+GNU General Public License v2.0 or later,GPL-2.0+,GPLv2+,,,
-+GNU General Public License v3.0 only,GPL-3.0,GPLv3,,,
-+GNU General Public License v3.0 or later,GPL-3.0+,GPLv3+,,,
- GNU Lesser General Public License v2.1 only,LGPL-2.1,LGPLv2,,,
- GNU Lesser General Public License v3.0 only,LGPL-3.0,LGPLv3,,,
- GNU Library General Public License v2 only,LGPL-2.0,LGPLv2,,,
---
-2.22.0.rc3
-
diff --git a/0003-licensing-add-or-later-variants-for-GPL-licenses.patch b/0003-licensing-add-or-later-variants-for-GPL-licenses.patch
deleted file mode 100644
index 6ac4be3..0000000
--- a/0003-licensing-add-or-later-variants-for-GPL-licenses.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 8d21ef1ee4152294c3e9df451404db7c732fb415 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
-Date: Tue, 7 May 2019 08:32:25 +0200
-Subject: [PATCH 03/14] licensing: add "-or-later" variants for GPL licenses
-
-SPDX actually deprecated the variants with "+" and "-or-later" is now
-recommneded. They both map to the same identiefiers on Fedora side.
----
- rust2rpm/spdx_to_fedora.csv | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/rust2rpm/spdx_to_fedora.csv b/rust2rpm/spdx_to_fedora.csv
-index 4fc3321..a3f9604 100644
---- a/rust2rpm/spdx_to_fedora.csv
-+++ b/rust2rpm/spdx_to_fedora.csv
-@@ -143,10 +143,13 @@ GNU Free Documentation License v1.2,GFDL-1.2,,,This specific version not on Fedo
- GNU Free Documentation License v1.3,GFDL-1.3,GFDL,,,
- GNU General Public License v1.0 only,GPL-1.0,GPLv1,,,
- GNU General Public License v1.0 or later,GPL-1.0+,GPLv1+,,,
-+GNU General Public License v1.0 or later,GPL-1.0-or-later,GPLv1+,,,
- GNU General Public License v2.0 only,GPL-2.0,GPLv2,,,
- GNU General Public License v2.0 or later,GPL-2.0+,GPLv2+,,,
-+GNU General Public License v2.0 or later,GPL-2.0-or-later,GPLv2+,,,
- GNU General Public License v3.0 only,GPL-3.0,GPLv3,,,
- GNU General Public License v3.0 or later,GPL-3.0+,GPLv3+,,,
-+GNU General Public License v3.0 or later,GPL-3.0-or-later,GPLv3+,,,
- GNU Lesser General Public License v2.1 only,LGPL-2.1,LGPLv2,,,
- GNU Lesser General Public License v3.0 only,LGPL-3.0,LGPLv3,,,
- GNU Library General Public License v2 only,LGPL-2.0,LGPLv2,,,
---
-2.22.0.rc3
-
diff --git a/0004-Move-version-string-to-the-python-code.patch b/0004-Move-version-string-to-the-python-code.patch
deleted file mode 100644
index 9f04d6c..0000000
--- a/0004-Move-version-string-to-the-python-code.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From aa9fc8646a4bcf43bba544d37c2f6e6e59b1bebb Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
-Date: Mon, 6 May 2019 22:34:02 +0200
-Subject: [PATCH 04/14] Move version string to the python code
-
-This way the python module "knows" its own version. To avoid duplication,
-read the value back from setup.py. The reader function only needs to
-support the specific format used in the code, so it can be very simplistic.
----
- rust2rpm/__init__.py | 2 ++
- setup.py | 11 ++++++++++-
- 2 files changed, 12 insertions(+), 1 deletion(-)
-
-diff --git a/rust2rpm/__init__.py b/rust2rpm/__init__.py
-index 6aba575..4a0db7b 100644
---- a/rust2rpm/__init__.py
-+++ b/rust2rpm/__init__.py
-@@ -1,2 +1,4 @@
- from .metadata import *
- from . import licensing
-+
-+__version__ = '9'
-diff --git a/setup.py b/setup.py
-index 3eb2a77..79367da 100644
---- a/setup.py
-+++ b/setup.py
-@@ -1,8 +1,17 @@
- from setuptools import setup
-
-+def read_version(path):
-+ with open(path, 'rt') as f:
-+ for line in f:
-+ if line.startswith('__version__'):
-+ return line.split("'")[1]
-+ raise IOError
-+
-+version = read_version('rust2rpm/__init__.py')
-+
- ARGS = dict(
- name="rust2rpm",
-- version="9",
-+ version=version,
- description="Convert Rust crates to RPM",
- license="MIT",
- keywords="rust cargo rpm",
---
-2.22.0.rc3
-
diff --git a/0005-Check-usr-lib-os-release-in-addition-to-etc-os-relea.patch b/0005-Check-usr-lib-os-release-in-addition-to-etc-os-relea.patch
deleted file mode 100644
index ed5472f..0000000
--- a/0005-Check-usr-lib-os-release-in-addition-to-etc-os-relea.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 253d1f6021765051c26d4427967786040d215853 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
-Date: Mon, 6 May 2019 22:36:43 +0200
-Subject: [PATCH 05/14] Check /usr/lib/os-release in addition to
- /etc/os-release
-
----
- rust2rpm/__main__.py | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
-index b307505..b8d3772 100644
---- a/rust2rpm/__main__.py
-+++ b/rust2rpm/__main__.py
-@@ -34,8 +34,11 @@ JINJA_ENV = jinja2.Environment(
- lstrip_blocks=True)
-
- def get_default_target():
-- # TODO: add fallback for /usr/lib/os-release
-- with open("/etc/os-release") as os_release_file:
-+ try:
-+ os_release_file = open('/etc/os-release')
-+ except FileNotFoundError:
-+ os_release_file = open('/usr/lib/os-release')
-+ with os_release_file:
- conf = configparser.ConfigParser()
- conf.read_file(itertools.chain(["[os-release]"], os_release_file))
- os_release = conf["os-release"]
---
-2.22.0.rc3
-
diff --git a/0006-Include-rust2rpm-version-info-in-the-generated-spec-.patch b/0006-Include-rust2rpm-version-info-in-the-generated-spec-.patch
deleted file mode 100644
index 7f332f9..0000000
--- a/0006-Include-rust2rpm-version-info-in-the-generated-spec-.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 6de75b87af4bd86d87dfee038f5b6cdf99437a7c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
-Date: Mon, 6 May 2019 22:44:55 +0200
-Subject: [PATCH 06/14] Include rust2rpm version info in the generated spec
- file
-
-Fixes #77.
----
- rust2rpm/__main__.py | 3 ++-
- rust2rpm/templates/main.spec | 2 +-
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
-index b8d3772..a7674fd 100644
---- a/rust2rpm/__main__.py
-+++ b/rust2rpm/__main__.py
-@@ -17,7 +17,7 @@ import jinja2
- import requests
- import tqdm
-
--from . import Metadata, licensing
-+from . import Metadata, licensing, __version__
- from .metadata import normalize_deps
-
- DEFAULT_EDITOR = "vi"
-@@ -265,6 +265,7 @@ def main():
- patch_file = None
-
- kwargs = {}
-+ kwargs["generator_version"] = __version__
- kwargs["crate"] = crate
- kwargs["target"] = args.target
- kwargs["all_features"] = args.all_features
-diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
-index 0c84325..0ef0b10 100644
---- a/rust2rpm/templates/main.spec
-+++ b/rust2rpm/templates/main.spec
-@@ -1,5 +1,5 @@
- {% include target ~ "-header.spec.inc" ignore missing %}
--# Generated by rust2rpm
-+# Generated by rust2rpm {{ generator_version }}
- %bcond_without check
- {% if not include_main %}
- %global debug_package %{nil}
---
-2.22.0.rc3
-
diff --git a/0007-Bump-classifiers.patch b/0007-Bump-classifiers.patch
deleted file mode 100644
index 6967f8d..0000000
--- a/0007-Bump-classifiers.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 36663449594b33ec4b0c0ae9ea568cad819bb920 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
-Date: Mon, 6 May 2019 22:47:06 +0200
-Subject: [PATCH 07/14] Bump classifiers
-
-This software is used, so let's at least it's beta.
-Seems to work fine with python3.8, let's say that.
----
- setup.py | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/setup.py b/setup.py
-index 79367da..b5b1157 100644
---- a/setup.py
-+++ b/setup.py
-@@ -44,13 +44,14 @@ ARGS = dict(
- author_email="ignatenkobrain(a)fedoraproject.org",
- url="https://pagure.io/fedora-rust/rust2rpm",
- classifiers=[
-- "Development Status :: 3 - Alpha",
-+ "Development Status :: 4 - Beta",
- "Intended Audience :: Developers",
- "License :: OSI Approved :: MIT License",
- "Operating System :: POSIX :: Linux",
- "Programming Language :: Python :: 3 :: Only",
- "Programming Language :: Python :: 3.6",
- "Programming Language :: Python :: 3.7",
-+ "Programming Language :: Python :: 3.8",
- "Topic :: Software Development :: Build Tools",
- "Topic :: System :: Software Distribution",
- "Topic :: Utilities",
---
-2.22.0.rc3
-
diff --git a/0008-Mangle-summary-automagically.patch b/0008-Mangle-summary-automagically.patch
deleted file mode 100644
index 9f6fbcc..0000000
--- a/0008-Mangle-summary-automagically.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From 216de8e4271f9dbca1f009e8c0e046a7f5a198fd Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Wed, 15 May 2019 08:01:46 +0200
-Subject: [PATCH 08/14] Mangle summary automagically
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- rust2rpm/metadata.py | 35 ++++++++++++++++++++++++++++++++++-
- rust2rpm/templates/main.spec | 3 +--
- 2 files changed, 35 insertions(+), 3 deletions(-)
-
-diff --git a/rust2rpm/metadata.py b/rust2rpm/metadata.py
-index 77c2932..e41902d 100644
---- a/rust2rpm/metadata.py
-+++ b/rust2rpm/metadata.py
-@@ -3,6 +3,7 @@ __all__ = ["Dependency", "Metadata"]
- import collections
- import copy
- import json
-+import re
- import subprocess
-
- import semantic_version as semver
-@@ -116,11 +117,43 @@ class Metadata:
- self.license = None
- self.license_file = None
- self.readme = None
-- self.description = None
-+ self._description = None
-+ self._summary = None
- self.targets = set()
- self.dependencies = {}
- self.dev_dependencies = set()
-
-+ @property
-+ def description(self):
-+ return self._description
-+
-+ @property
-+ def summary(self):
-+ return self._summary
-+
-+ @description.setter
-+ def description(self, description):
-+ # https://salsa.debian.org/rust-team/debcargo/blob/master/src/crates.rs
-+ # get_summary_description()
-+ if description is None:
-+ self._description = self._summary = None
-+ return
-+ description = description.replace('\n\n', '\r').replace('\n', ' ').replace('\r', '\n').strip()
-+ description = re.sub(r'^(?:a|an|the)\s+', '', description, flags=re.I)
-+ description = f'{description[0].upper()}{description[1:]}'
-+ if description[-1] != '.':
-+ description = f'{description}.'
-+
-+ p1 = description.find('.')
-+ p2 = description.find('\n')
-+ if p2 != -1:
-+ p = min(p1, p2)
-+ else:
-+ p = p1
-+
-+ self._description = description
-+ self._summary = description[:p]
-+
- @classmethod
- def from_json(cls, metadata):
- md = metadata
-diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
-index 0ef0b10..803b74e 100644
---- a/rust2rpm/templates/main.spec
-+++ b/rust2rpm/templates/main.spec
-@@ -16,8 +16,7 @@ Release: {{ pkg_release }}
- {% if md.description is none %}
- Summary: # FIXME
- {% else %}
--{% set description_lines = md.description.split("\n") %}
--Summary: {{ description_lines|join(" ")|trim }}
-+Summary: {{ md.summary }}
- {% endif %}
- {% if rust_group is defined %}
- Group: {{ rust_group }}
---
-2.22.0.rc3
-
diff --git a/0009-Use-expand-for-description.patch b/0009-Use-expand-for-description.patch
deleted file mode 100644
index c2ecfdf..0000000
--- a/0009-Use-expand-for-description.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 16085843c800827526ab78354bacdd6bd388993f Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Wed, 15 May 2019 08:07:18 +0200
-Subject: [PATCH 09/14] =?UTF-8?q?Use=20%{expand:=E2=80=A6}=20for=20descrip?=
- =?UTF-8?q?tion?=
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-So that we stop playing with escaping.
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- rust2rpm/templates/main.spec | 9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
-index 803b74e..660bb60 100644
---- a/rust2rpm/templates/main.spec
-+++ b/rust2rpm/templates/main.spec
-@@ -64,12 +64,13 @@ BuildRequires: {{ req }}
- {% endfor %}
- {% endif %}
-
--%global _description \
-+%global _description %{expand:
- {% if md.description is none %}
- %{summary}.
--{% else %}
--{{ md.description|wordwrap(wrapstring="\\\n")|trim }}
--{% endif %}
-+{%- else %}
-+{{ md.description|wordwrap }}
-+{%- endif %}
-+}
-
- %description %{_description}
-
---
-2.22.0.rc3
-
diff --git a/0010-Remove-more-common-prefixes.patch b/0010-Remove-more-common-prefixes.patch
deleted file mode 100644
index c22444a..0000000
--- a/0010-Remove-more-common-prefixes.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From e1cfff321693432f19a9a1303431b2ce4ec4edc9 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Wed, 15 May 2019 20:00:59 +0200
-Subject: [PATCH 10/14] Remove more common prefixes
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- rust2rpm/metadata.py | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/rust2rpm/metadata.py b/rust2rpm/metadata.py
-index e41902d..1b4faad 100644
---- a/rust2rpm/metadata.py
-+++ b/rust2rpm/metadata.py
-@@ -139,6 +139,7 @@ class Metadata:
- self._description = self._summary = None
- return
- description = description.replace('\n\n', '\r').replace('\n', ' ').replace('\r', '\n').strip()
-+ description = re.sub(rf'^(?:{self.name}|This(?:\s+\w+)?)(?:\s*,|\s+is|\s+provides)\s+', '', description, flags=re.I)
- description = re.sub(r'^(?:a|an|the)\s+', '', description, flags=re.I)
- description = f'{description[0].upper()}{description[1:]}'
- if description[-1] != '.':
---
-2.22.0.rc3
-
diff --git a/0011-Add-AGPL-3.0-or-later-and-automatically-translate-su.patch b/0011-Add-AGPL-3.0-or-later-and-automatically-translate-su.patch
deleted file mode 100644
index 6679e3a..0000000
--- a/0011-Add-AGPL-3.0-or-later-and-automatically-translate-su.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 04f63e0f20d6b517119053c6bc00aa8be3c3a19f Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
-Date: Sun, 2 Jun 2019 15:48:45 +0200
-Subject: [PATCH 11/14] Add AGPL-3.0-or-later and automatically translate "+"
- suffix into "-or-later"
-
-This way we don't need to add all the deprecated variants with "+" suffix.
-
-Fixes #84.
----
- rust2rpm/licensing.py | 14 ++++++++++----
- rust2rpm/spdx_to_fedora.csv | 4 +---
- 2 files changed, 11 insertions(+), 7 deletions(-)
-
-diff --git a/rust2rpm/licensing.py b/rust2rpm/licensing.py
-index 233903e..6ca4e45 100644
---- a/rust2rpm/licensing.py
-+++ b/rust2rpm/licensing.py
-@@ -35,18 +35,24 @@ def translate_license_fedora(license):
- elif tag.upper() == 'AND':
- final.append('and')
- else:
-- mapped = spdx_to_fedora_map().get(tag, None)
-+ if tag.endswith('+'):
-+ key = tag[:-1] + '-or-later'
-+ fulltag = f'{tag} ({key})'
-+ else:
-+ key = fulltag = tag
-+
-+ mapped = spdx_to_fedora_map().get(key, None)
- if mapped is None:
-- comments += f'# FIXME: Upstream uses unknown SPDX tag {tag}!'
-+ comments += f'# FIXME: Upstream uses unknown SPDX tag {fulltag}!'
- final.append(tag)
- elif mapped == '':
-- comments += f"# FIXME: Upstream SPDX tag {tag} not listed in Fedora's good licenses list.\n"
-+ comments += f"# FIXME: Upstream SPDX tag {fulltag} not listed in Fedora's good licenses list.\n"
- comments += "# FIXME: This package might not be allowed in Fedora!\n"
- final.append(tag)
- else:
- final.append(mapped)
- if mapped != tag:
-- print(f'Upstream license tag {tag} translated to {mapped}',
-+ print(f'Upstream license tag {fulltag} translated to {mapped}',
- file=_sys.stderr)
- return (' '.join(final), comments or None)
-
-diff --git a/rust2rpm/spdx_to_fedora.csv b/rust2rpm/spdx_to_fedora.csv
-index a3f9604..006d80c 100644
---- a/rust2rpm/spdx_to_fedora.csv
-+++ b/rust2rpm/spdx_to_fedora.csv
-@@ -138,17 +138,15 @@ Giftware License,Giftware,Giftware,,,
- GL2PS License,GL2PS,GL2PS,,,
- Glulxe License,Glulxe,Glulxe,,,
- GNU Affero General Public License v3.0,AGPL-3.0,AGPLv3,Affero General Public License 3.0,,
-+GNU Affero General Public License v3.0 or later,AGPL-3.0-or-later,AGPLv3+,Affero General Public License 3.0 or later,,
- GNU Free Documentation License v1.1,GFDL-1.1,,,This specific version not on Fedora list,
- GNU Free Documentation License v1.2,GFDL-1.2,,,This specific version not on Fedora list,
- GNU Free Documentation License v1.3,GFDL-1.3,GFDL,,,
- GNU General Public License v1.0 only,GPL-1.0,GPLv1,,,
--GNU General Public License v1.0 or later,GPL-1.0+,GPLv1+,,,
- GNU General Public License v1.0 or later,GPL-1.0-or-later,GPLv1+,,,
- GNU General Public License v2.0 only,GPL-2.0,GPLv2,,,
--GNU General Public License v2.0 or later,GPL-2.0+,GPLv2+,,,
- GNU General Public License v2.0 or later,GPL-2.0-or-later,GPLv2+,,,
- GNU General Public License v3.0 only,GPL-3.0,GPLv3,,,
--GNU General Public License v3.0 or later,GPL-3.0+,GPLv3+,,,
- GNU General Public License v3.0 or later,GPL-3.0-or-later,GPLv3+,,,
- GNU Lesser General Public License v2.1 only,LGPL-2.1,LGPLv2,,,
- GNU Lesser General Public License v3.0 only,LGPL-3.0,LGPLv3,,,
---
-2.22.0.rc3
-
diff --git a/0012-Add-translate-license-to-translate-a-specific-licens.patch b/0012-Add-translate-license-to-translate-a-specific-licens.patch
deleted file mode 100644
index 18e32a2..0000000
--- a/0012-Add-translate-license-to-translate-a-specific-licens.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From d9b2cef72e129963ac082ec3737a877785232123 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
-Date: Sun, 2 Jun 2019 15:45:13 +0200
-Subject: [PATCH 12/14] Add --translate-license to translate a specific license
-
-Before, all known licenses would be listed by --show-license-map, so
-grepping the list was enough to find a license. But now we support
-alternative syntaxes, so this is not enough. Add a call to translate a
-specific license:
-
-$ python3 -m rust2rpm --translate-license GPL-3.0+
-Upstream license tag GPL-3.0+ (GPL-3.0-or-later) translated to GPLv3+
-GPLv3+
-
-$ python3 -m rust2rpm --show-license-map | grep -F GPL-3.0+
-(nada)
----
- rust2rpm/__main__.py | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
-index a7674fd..c55dacc 100644
---- a/rust2rpm/__main__.py
-+++ b/rust2rpm/__main__.py
-@@ -222,6 +222,8 @@ def main():
- formatter_class=argparse.RawTextHelpFormatter)
- parser.add_argument("--show-license-map", action="store_true",
- help="Print license mappings and exit")
-+ parser.add_argument("--translate-license", action="store_true",
-+ help="Print mapping for specified license and exit")
- parser.add_argument("--no-auto-changelog-entry", action="store_true",
- help="Do not generate a changelog entry")
- parser.add_argument("-", "--stdout", action="store_true",
-@@ -248,6 +250,13 @@ def main():
- licensing.dump_sdpx_to_fedora_map(sys.stdout)
- return
-
-+ if args.translate_license:
-+ license, comments = licensing.translate_license(args.target, args.crate)
-+ if comments:
-+ print(comments)
-+ print(license)
-+ return
-+
- if args.crate is None:
- parser.error("required crate/path argument missing")
-
---
-2.22.0.rc3
-
diff --git a/0013-Implement-__cargo_skip_build.patch b/0013-Implement-__cargo_skip_build.patch
deleted file mode 100644
index 02df663..0000000
--- a/0013-Implement-__cargo_skip_build.patch
+++ /dev/null
@@ -1,192 +0,0 @@
-From 37cf4d78df2f3805f1f230252e1c0030a2f08877 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Sat, 8 Jun 2019 19:35:38 +0200
-Subject: [PATCH 13/14] Implement %__cargo_skip_build
-
-We need to have an easy way how to skip doing 'cargo build' to speedup a
-module builds.
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- data/macros.cargo | 65 +++++++++++++++++++++---------------
- data/macros.rust-srpm | 16 +++++++++
- rust2rpm/templates/main.spec | 34 ++++++++++---------
- 3 files changed, 73 insertions(+), 42 deletions(-)
-
-diff --git a/data/macros.cargo b/data/macros.cargo
-index a60289a..1182850 100644
---- a/data/macros.cargo
-+++ b/data/macros.cargo
-@@ -49,27 +49,35 @@ EOF\
- }
-
- %cargo_generate_buildrequires(af:) \
--%{__cargo_inspector} -BR %{__cargo_parse_opts %{-a} %{-f:-f%{-f*}}} Cargo.toml \
--%if %{with check} \
--%{__cargo_inspector} -TR Cargo.toml \
-+%if ! 0%{?__cargo_skip_build} \
-+ %{__cargo_inspector} -BR %{__cargo_parse_opts %{-a} %{-f:-f%{-f*}}} Cargo.toml \
-+ %if %{with check} \
-+ %{__cargo_inspector} -TR Cargo.toml \
-+ %endif \
- %endif
-
--%cargo_build(naf:) %{shrink:\
--%{__cargo} build \
-- %{__cargo_common_opts} \
-- --release \
-- %{__cargo_parse_opts %{-n} %{-a} %{-f:-f%{-f*}}} \
-- %* \
--}
-+%cargo_build(naf:) \
-+%if ! 0%{?__cargo_skip_build} \
-+ %{shrink:\
-+ %{__cargo} build \
-+ %{__cargo_common_opts} \
-+ --release \
-+ %{__cargo_parse_opts %{-n} %{-a} %{-f:-f%{-f*}}} \
-+ %* \
-+ } \
-+%endif
-
--%cargo_test(naf:) %{shrink:\
--%{__cargo} test \
-- %{__cargo_common_opts} \
-- --release \
-- --no-fail-fast \
-- %{__cargo_parse_opts %{-n} %{-a} %{-f:-f%{-f*}}} \
-- %* \
--}
-+%cargo_test(naf:) \
-+%if ! 0%{?__cargo_skip_build} \
-+ %{shrink:\
-+ %{__cargo} test \
-+ %{__cargo_common_opts} \
-+ --release \
-+ --no-fail-fast \
-+ %{__cargo_parse_opts %{-n} %{-a} %{-f:-f%{-f*}}} \
-+ %* \
-+ } \
-+%endif
-
- %cargo_install(t:naf:) (\
- set -eu \
-@@ -88,15 +96,18 @@ if %__cargo_is_lib; then \
- %{__rm} -f $REG_DIR/Cargo.toml.{orig,deps} \
- echo '{"files":{},"package":""}' > $REG_DIR/.cargo-checksum.json \
- fi \
--if %__cargo_is_bin; then \
-- %{shrink:%{__cargo} install \
-- %{__cargo_common_opts} \
-- --path . \
-- %{__cargo_parse_opts %{-n} %{-a} %{-f:-f%{-f*}}} \
-- %* \
-- }\
-- %{__rm} %{buildroot}%{_prefix}/.crates.toml \
--fi \
-+%if ! %__cargo_skip_build \
-+ if %__cargo_is_bin; then \
-+ %{shrink:\
-+ %{__cargo} install \
-+ %{__cargo_common_opts} \
-+ --path . \
-+ %{__cargo_parse_opts %{-n} %{-a} %{-f:-f%{-f*}}} \
-+ %* \
-+ } \
-+ %{__rm} %{buildroot}%{_prefix}/.crates.toml \
-+ fi \
-+%endif \
- )
-
- %__cargo_feature_from_name(n:) %{lua:
-diff --git a/data/macros.rust-srpm b/data/macros.rust-srpm
-index 872b87f..88d5a0f 100644
---- a/data/macros.rust-srpm
-+++ b/data/macros.rust-srpm
-@@ -37,3 +37,19 @@
- \
- print(url .. crate .. '/' .. version .. '/download#/' .. crate .. '-' .. version .. '.crate')
- }
-+
-+# If crate not in _build_crates and _module_build is set, we should skip the build
-+%__cargo_skip_build %{lua:
-+local crate = rpm.expand('%{crate}')
-+local build_crate = false
-+for w in rpm.expand('%{?_build_crates}'):gmatch('%S+') do
-+ if w == crate then
-+ build_crate = true
-+ break
-+ end
-+end
-+if (rpm.expand('%{defined _module_build}') ~= '0' and not build_crate) then
-+ print(1)
-+else
-+ print(0)
-+end}
-diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
-index 660bb60..69d23d7 100644
---- a/rust2rpm/templates/main.spec
-+++ b/rust2rpm/templates/main.spec
-@@ -42,26 +42,28 @@ ExclusiveArch: %{rust_arches}
-
- BuildRequires: rust-packaging
- {% if not generate_buildrequires %}
--{% if not all_features %}
--{% set buildrequires = normalize_deps(md.requires("default", resolve=True))|sort %}
--{% else %}
--{% set buildrequires = normalize_deps(md.all_dependencies)|sort %}
--{% set cargo_args = " -a" %}
--{% endif %}
--{% for req in buildrequires %}
-+%if ! %{__cargo_skip_build}
-+ {% if not all_features %}
-+ {% set buildrequires = normalize_deps(md.requires("default", resolve=True))|sort %}
-+ {% else %}
-+ {% set buildrequires = normalize_deps(md.all_dependencies)|sort %}
-+ {% set cargo_args = " -a" %}
-+ {% endif %}
-+ {% for req in buildrequires %}
- BuildRequires: {{ req }}
--{% endfor %}
--{% set testrequires = normalize_deps(md.dev_dependencies)|sort %}
--{% if testrequires|length > 0 %}
-+ {% endfor %}
-+ {% set testrequires = normalize_deps(md.dev_dependencies)|sort %}
-+ {% if testrequires|length > 0 %}
- %if %{with check}
-- {% for req in testrequires %}
-+ {% for req in testrequires %}
- BuildRequires: {{ req }}
-- {% endfor %}
-+ {% endfor %}
- %endif
--{% endif %}
--{% for req in to_list(distconf.get("buildrequires"))|sort %}
-+ {% endif %}
-+ {% for req in to_list(distconf.get("buildrequires"))|sort %}
- BuildRequires: {{ req }}
--{% endfor %}
-+ {% endfor %}
-+%endif
- {% endif %}
-
- %global _description %{expand:
-@@ -75,6 +77,7 @@ BuildRequires: {{ req }}
- %description %{_description}
-
- {% if include_main %}
-+%if ! %{__cargo_skip_build}
- %package -n %{crate}
- Summary: %{summary}
- {% if rust_group is defined %}
-@@ -96,6 +99,7 @@ Requires: {{ req }}
- {% for bin in bins %}
- %{_bindir}/{{ bin.name }}
- {% endfor %}
-+%endif
-
- {% endif -%}
-
---
-2.22.0.rc3
-
diff --git a/0014-Set-BuildArch-noarch-with-__cargo_skip_build.patch b/0014-Set-BuildArch-noarch-with-__cargo_skip_build.patch
deleted file mode 100644
index 8094aad..0000000
--- a/0014-Set-BuildArch-noarch-with-__cargo_skip_build.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From cbd5313fb9d5ca1aa59ffa3dffaa8d1ad9e68d69 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Sat, 8 Jun 2019 20:01:12 +0200
-Subject: [PATCH 14/14] Set BuildArch: noarch with %__cargo_skip_build
-
-We do not need to spawn 7 tasks for each architecture to copy same files
-over and over.
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- rust2rpm/templates/main.spec | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
-index 69d23d7..a3e3c2e 100644
---- a/rust2rpm/templates/main.spec
-+++ b/rust2rpm/templates/main.spec
-@@ -39,6 +39,9 @@ Patch0: {{ patch_file }}
- {% endif %}
-
- ExclusiveArch: %{rust_arches}
-+%if %{__cargo_skip_build}
-+BuildArch: noarch
-+%endif
-
- BuildRequires: rust-packaging
- {% if not generate_buildrequires %}
---
-2.22.0.rc3
-
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 0357a8e..56430c9 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -4,27 +4,13 @@
%global debug_package %{nil}
Name: rust-packaging
-Version: 9
-Release: 3%{?dist}
+Version: 10
+Release: 1%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
URL: https://pagure.io/fedora-rust/rust2rpm
-Source0: https://releases.pagure.org/fedora-rust/rust2rpm/rust2rpm-%{version}.tar.xz
-Patch0001: 0001-templates-Do-not-put-empty-line-after-changelog.patch
-Patch0002: 0002-licensing-translate-GPL-123.patch
-Patch0003: 0003-licensing-add-or-later-variants-for-GPL-licenses.patch
-Patch0004: 0004-Move-version-string-to-the-python-code.patch
-Patch0005: 0005-Check-usr-lib-os-release-in-addition-to-etc-os-relea.patch
-Patch0006: 0006-Include-rust2rpm-version-info-in-the-generated-spec-.patch
-Patch0007: 0007-Bump-classifiers.patch
-Patch0008: 0008-Mangle-summary-automagically.patch
-Patch0009: 0009-Use-expand-for-description.patch
-Patch0010: 0010-Remove-more-common-prefixes.patch
-Patch0011: 0011-Add-AGPL-3.0-or-later-and-automatically-translate-su.patch
-Patch0012: 0012-Add-translate-license-to-translate-a-specific-licens.patch
-Patch0013: 0013-Implement-__cargo_skip_build.patch
-Patch0014: 0014-Set-BuildArch-noarch-with-__cargo_skip_build.patch
+Source: https://releases.pagure.org/fedora-rust/rust2rpm/rust2rpm-%{version}.tar.xz
ExclusiveArch: %{rust_arches}
@@ -85,6 +71,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sun Jun 16 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 10-1
+- Update to 10
+
* Sat Jun 08 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 9-3
- Update patches
diff --git a/sources b/sources
index 4561ec6..c2243ba 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (rust2rpm-9.tar.xz) = 64ba9f22aa7a205c4e418783689cb3d380d32d7358c2a5162713a6425cc6ea7fb0b0c82698b89934368b3b7961589e6b332655bda5c9b64fc2dc5488cf8b0c5e
+SHA512 (rust2rpm-10.tar.xz) = ce93363760faab392b8f46e1f7126de8f437ecdd35a90d5cfb144ec13dd1d29a559ab99d99ce9a8347c1b4649fe24705bd317cc15f97b055549c6843752a62c3
commit f89e4b4d98733ee042ccc889f9f31606991cf094
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat Jun 8 23:08:45 2019 +0200
Regenerate patches
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0013-Implement-__cargo_skip_build.patch b/0013-Implement-__cargo_skip_build.patch
index b4942f3..02df663 100644
--- a/0013-Implement-__cargo_skip_build.patch
+++ b/0013-Implement-__cargo_skip_build.patch
@@ -1,4 +1,4 @@
-From 7b06496a5c1ded5e3cf59d6af0e757974c6ff704 Mon Sep 17 00:00:00 2001
+From 37cf4d78df2f3805f1f230252e1c0030a2f08877 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat, 8 Jun 2019 19:35:38 +0200
Subject: [PATCH 13/14] Implement %__cargo_skip_build
@@ -8,37 +8,16 @@ module builds.
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
- data/macros.cargo | 80 ++++++++++++++++++++++++------------
- rust2rpm/templates/main.spec | 34 ++++++++-------
- 2 files changed, 72 insertions(+), 42 deletions(-)
+ data/macros.cargo | 65 +++++++++++++++++++++---------------
+ data/macros.rust-srpm | 16 +++++++++
+ rust2rpm/templates/main.spec | 34 ++++++++++---------
+ 3 files changed, 73 insertions(+), 42 deletions(-)
diff --git a/data/macros.cargo b/data/macros.cargo
-index a60289a..961732d 100644
+index a60289a..1182850 100644
--- a/data/macros.cargo
+++ b/data/macros.cargo
-@@ -10,6 +10,21 @@
-
- %cargo_registry %{_datadir}/cargo/registry
-
-+# If crate not in _build_crates and _module_build is set, we should skip the build
-+%__cargo_skip_build %{lua:
-+local crate = rpm.expand('%{crate}')
-+local build_crate = false
-+for w in rpm.expand('%{?_build_crates}'):gmatch('%S+') do
-+ if w == crate then
-+ build_crate = true
-+ break
-+ end
-+end
-+if (rpm.expand('%{defined _module_build}') ~= '0' and not build_crate) then
-+ print(1)
-+else
-+ print(0)
-+end}
- %__cargo_is_lib() %__cargo_inspector --target-kinds Cargo.toml | grep -q -F -x "$(printf 'lib\\\nrlib\\\nproc-macro')"
- %__cargo_is_bin() %__cargo_inspector --target-kinds Cargo.toml | grep -q -F -x bin
-
-@@ -49,27 +64,35 @@ EOF\
+@@ -49,27 +49,35 @@ EOF\
}
%cargo_generate_buildrequires(af:) \
@@ -92,7 +71,7 @@ index a60289a..961732d 100644
%cargo_install(t:naf:) (\
set -eu \
-@@ -88,15 +111,18 @@ if %__cargo_is_lib; then \
+@@ -88,15 +96,18 @@ if %__cargo_is_lib; then \
%{__rm} -f $REG_DIR/Cargo.toml.{orig,deps} \
echo '{"files":{},"package":""}' > $REG_DIR/.cargo-checksum.json \
fi \
@@ -120,6 +99,30 @@ index a60289a..961732d 100644
)
%__cargo_feature_from_name(n:) %{lua:
+diff --git a/data/macros.rust-srpm b/data/macros.rust-srpm
+index 872b87f..88d5a0f 100644
+--- a/data/macros.rust-srpm
++++ b/data/macros.rust-srpm
+@@ -37,3 +37,19 @@
+ \
+ print(url .. crate .. '/' .. version .. '/download#/' .. crate .. '-' .. version .. '.crate')
+ }
++
++# If crate not in _build_crates and _module_build is set, we should skip the build
++%__cargo_skip_build %{lua:
++local crate = rpm.expand('%{crate}')
++local build_crate = false
++for w in rpm.expand('%{?_build_crates}'):gmatch('%S+') do
++ if w == crate then
++ build_crate = true
++ break
++ end
++end
++if (rpm.expand('%{defined _module_build}') ~= '0' and not build_crate) then
++ print(1)
++else
++ print(0)
++end}
diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
index 660bb60..69d23d7 100644
--- a/rust2rpm/templates/main.spec
diff --git a/0014-Set-BuildArch-noarch-with-__cargo_skip_build.patch b/0014-Set-BuildArch-noarch-with-__cargo_skip_build.patch
index 63a2895..8094aad 100644
--- a/0014-Set-BuildArch-noarch-with-__cargo_skip_build.patch
+++ b/0014-Set-BuildArch-noarch-with-__cargo_skip_build.patch
@@ -1,4 +1,4 @@
-From b345d23e7a11357d828751e4db47a0685cfe207b Mon Sep 17 00:00:00 2001
+From cbd5313fb9d5ca1aa59ffa3dffaa8d1ad9e68d69 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat, 8 Jun 2019 20:01:12 +0200
Subject: [PATCH 14/14] Set BuildArch: noarch with %__cargo_skip_build
@@ -12,14 +12,14 @@ Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
1 file changed, 3 insertions(+)
diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
-index 69d23d7..b4734b7 100644
+index 69d23d7..a3e3c2e 100644
--- a/rust2rpm/templates/main.spec
+++ b/rust2rpm/templates/main.spec
@@ -39,6 +39,9 @@ Patch0: {{ patch_file }}
{% endif %}
ExclusiveArch: %{rust_arches}
-+%if ! %{__cargo_skip_build}
++%if %{__cargo_skip_build}
+BuildArch: noarch
+%endif
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 1dd8d19..0357a8e 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -5,7 +5,7 @@
Name: rust-packaging
Version: 9
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -85,6 +85,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sat Jun 08 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 9-3
+- Update patches
+
* Sat Jun 08 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 9-2
- Backport patches from upstream
commit e5f9309d3e54e74cc1f2c1fe7af54a7976750251
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat Jun 8 20:23:25 2019 +0200
Backport patches from upstream
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0001-templates-Do-not-put-empty-line-after-changelog.patch b/0001-templates-Do-not-put-empty-line-after-changelog.patch
new file mode 100644
index 0000000..00bd68f
--- /dev/null
+++ b/0001-templates-Do-not-put-empty-line-after-changelog.patch
@@ -0,0 +1,26 @@
+From b1df4d587fb03dcaedd7e8f29fbe5b7265ea5638 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Mon, 6 May 2019 10:43:05 +0200
+Subject: [PATCH 01/14] templates: Do not put empty line after %changelog
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ rust2rpm/templates/main.spec | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
+index dcd24ca..0c84325 100644
+--- a/rust2rpm/templates/main.spec
++++ b/rust2rpm/templates/main.spec
+@@ -183,6 +183,7 @@ echo {{ "%r"|format(req) }}
+ %endif
+
+ %changelog
+-{% if auto_changelog_entry %}
++{%- if auto_changelog_entry %}
++
+ {% include target ~ "-changelog.spec.inc" %}
+ {% endif %}
+--
+2.22.0.rc3
+
diff --git a/0002-licensing-translate-GPL-123.patch b/0002-licensing-translate-GPL-123.patch
new file mode 100644
index 0000000..559941f
--- /dev/null
+++ b/0002-licensing-translate-GPL-123.patch
@@ -0,0 +1,43 @@
+From 1f64bd9564c0cc27d23f5dc5e523f0db46496644 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
+Date: Mon, 6 May 2019 22:08:07 +0200
+Subject: [PATCH 02/14] licensing: translate GPL[123]+
+
+The "+" variants were described in the comment, but not explicitly
+listed in the table. Let's just replace the comment with
+machine-readable lines.
+
+Fixes #79.
+---
+ rust2rpm/spdx_to_fedora.csv | 15 ++++++---------
+ 1 file changed, 6 insertions(+), 9 deletions(-)
+
+diff --git a/rust2rpm/spdx_to_fedora.csv b/rust2rpm/spdx_to_fedora.csv
+index c42e66e..4fc3321 100644
+--- a/rust2rpm/spdx_to_fedora.csv
++++ b/rust2rpm/spdx_to_fedora.csv
+@@ -141,15 +141,12 @@ GNU Affero General Public License v3.0,AGPL-3.0,AGPLv3,Affero General Public Lic
+ GNU Free Documentation License v1.1,GFDL-1.1,,,This specific version not on Fedora list,
+ GNU Free Documentation License v1.2,GFDL-1.2,,,This specific version not on Fedora list,
+ GNU Free Documentation License v1.3,GFDL-1.3,GFDL,,,
+-GNU General Public License v1.0 only,GPL-1.0,GPLv1,,"For or later add + to SPDX or Fedora short identifier:
+-SPDX: GPL-1.0+
+-Fedora: GPLv1+ or GPL+",
+-GNU General Public License v2.0 only,GPL-2.0,GPLv2,,"For or later add + to SPDX or Fedora short identifier:
+-SPDX: GPL-2.0+
+-Fedora: GPLv2+",
+-GNU General Public License v3.0 only,GPL-3.0,GPLv3,,"For or later add + to SPDX or Fedora short identifier:
+-SPDX: GPL-3.0+
+-Fedora: GPLv3+",
++GNU General Public License v1.0 only,GPL-1.0,GPLv1,,,
++GNU General Public License v1.0 or later,GPL-1.0+,GPLv1+,,,
++GNU General Public License v2.0 only,GPL-2.0,GPLv2,,,
++GNU General Public License v2.0 or later,GPL-2.0+,GPLv2+,,,
++GNU General Public License v3.0 only,GPL-3.0,GPLv3,,,
++GNU General Public License v3.0 or later,GPL-3.0+,GPLv3+,,,
+ GNU Lesser General Public License v2.1 only,LGPL-2.1,LGPLv2,,,
+ GNU Lesser General Public License v3.0 only,LGPL-3.0,LGPLv3,,,
+ GNU Library General Public License v2 only,LGPL-2.0,LGPLv2,,,
+--
+2.22.0.rc3
+
diff --git a/0003-licensing-add-or-later-variants-for-GPL-licenses.patch b/0003-licensing-add-or-later-variants-for-GPL-licenses.patch
new file mode 100644
index 0000000..6ac4be3
--- /dev/null
+++ b/0003-licensing-add-or-later-variants-for-GPL-licenses.patch
@@ -0,0 +1,32 @@
+From 8d21ef1ee4152294c3e9df451404db7c732fb415 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
+Date: Tue, 7 May 2019 08:32:25 +0200
+Subject: [PATCH 03/14] licensing: add "-or-later" variants for GPL licenses
+
+SPDX actually deprecated the variants with "+" and "-or-later" is now
+recommneded. They both map to the same identiefiers on Fedora side.
+---
+ rust2rpm/spdx_to_fedora.csv | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/rust2rpm/spdx_to_fedora.csv b/rust2rpm/spdx_to_fedora.csv
+index 4fc3321..a3f9604 100644
+--- a/rust2rpm/spdx_to_fedora.csv
++++ b/rust2rpm/spdx_to_fedora.csv
+@@ -143,10 +143,13 @@ GNU Free Documentation License v1.2,GFDL-1.2,,,This specific version not on Fedo
+ GNU Free Documentation License v1.3,GFDL-1.3,GFDL,,,
+ GNU General Public License v1.0 only,GPL-1.0,GPLv1,,,
+ GNU General Public License v1.0 or later,GPL-1.0+,GPLv1+,,,
++GNU General Public License v1.0 or later,GPL-1.0-or-later,GPLv1+,,,
+ GNU General Public License v2.0 only,GPL-2.0,GPLv2,,,
+ GNU General Public License v2.0 or later,GPL-2.0+,GPLv2+,,,
++GNU General Public License v2.0 or later,GPL-2.0-or-later,GPLv2+,,,
+ GNU General Public License v3.0 only,GPL-3.0,GPLv3,,,
+ GNU General Public License v3.0 or later,GPL-3.0+,GPLv3+,,,
++GNU General Public License v3.0 or later,GPL-3.0-or-later,GPLv3+,,,
+ GNU Lesser General Public License v2.1 only,LGPL-2.1,LGPLv2,,,
+ GNU Lesser General Public License v3.0 only,LGPL-3.0,LGPLv3,,,
+ GNU Library General Public License v2 only,LGPL-2.0,LGPLv2,,,
+--
+2.22.0.rc3
+
diff --git a/0004-Move-version-string-to-the-python-code.patch b/0004-Move-version-string-to-the-python-code.patch
new file mode 100644
index 0000000..9f04d6c
--- /dev/null
+++ b/0004-Move-version-string-to-the-python-code.patch
@@ -0,0 +1,48 @@
+From aa9fc8646a4bcf43bba544d37c2f6e6e59b1bebb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
+Date: Mon, 6 May 2019 22:34:02 +0200
+Subject: [PATCH 04/14] Move version string to the python code
+
+This way the python module "knows" its own version. To avoid duplication,
+read the value back from setup.py. The reader function only needs to
+support the specific format used in the code, so it can be very simplistic.
+---
+ rust2rpm/__init__.py | 2 ++
+ setup.py | 11 ++++++++++-
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/rust2rpm/__init__.py b/rust2rpm/__init__.py
+index 6aba575..4a0db7b 100644
+--- a/rust2rpm/__init__.py
++++ b/rust2rpm/__init__.py
+@@ -1,2 +1,4 @@
+ from .metadata import *
+ from . import licensing
++
++__version__ = '9'
+diff --git a/setup.py b/setup.py
+index 3eb2a77..79367da 100644
+--- a/setup.py
++++ b/setup.py
+@@ -1,8 +1,17 @@
+ from setuptools import setup
+
++def read_version(path):
++ with open(path, 'rt') as f:
++ for line in f:
++ if line.startswith('__version__'):
++ return line.split("'")[1]
++ raise IOError
++
++version = read_version('rust2rpm/__init__.py')
++
+ ARGS = dict(
+ name="rust2rpm",
+- version="9",
++ version=version,
+ description="Convert Rust crates to RPM",
+ license="MIT",
+ keywords="rust cargo rpm",
+--
+2.22.0.rc3
+
diff --git a/0005-Check-usr-lib-os-release-in-addition-to-etc-os-relea.patch b/0005-Check-usr-lib-os-release-in-addition-to-etc-os-relea.patch
new file mode 100644
index 0000000..ed5472f
--- /dev/null
+++ b/0005-Check-usr-lib-os-release-in-addition-to-etc-os-relea.patch
@@ -0,0 +1,31 @@
+From 253d1f6021765051c26d4427967786040d215853 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
+Date: Mon, 6 May 2019 22:36:43 +0200
+Subject: [PATCH 05/14] Check /usr/lib/os-release in addition to
+ /etc/os-release
+
+---
+ rust2rpm/__main__.py | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
+index b307505..b8d3772 100644
+--- a/rust2rpm/__main__.py
++++ b/rust2rpm/__main__.py
+@@ -34,8 +34,11 @@ JINJA_ENV = jinja2.Environment(
+ lstrip_blocks=True)
+
+ def get_default_target():
+- # TODO: add fallback for /usr/lib/os-release
+- with open("/etc/os-release") as os_release_file:
++ try:
++ os_release_file = open('/etc/os-release')
++ except FileNotFoundError:
++ os_release_file = open('/usr/lib/os-release')
++ with os_release_file:
+ conf = configparser.ConfigParser()
+ conf.read_file(itertools.chain(["[os-release]"], os_release_file))
+ os_release = conf["os-release"]
+--
+2.22.0.rc3
+
diff --git a/0006-Include-rust2rpm-version-info-in-the-generated-spec-.patch b/0006-Include-rust2rpm-version-info-in-the-generated-spec-.patch
new file mode 100644
index 0000000..7f332f9
--- /dev/null
+++ b/0006-Include-rust2rpm-version-info-in-the-generated-spec-.patch
@@ -0,0 +1,47 @@
+From 6de75b87af4bd86d87dfee038f5b6cdf99437a7c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
+Date: Mon, 6 May 2019 22:44:55 +0200
+Subject: [PATCH 06/14] Include rust2rpm version info in the generated spec
+ file
+
+Fixes #77.
+---
+ rust2rpm/__main__.py | 3 ++-
+ rust2rpm/templates/main.spec | 2 +-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
+index b8d3772..a7674fd 100644
+--- a/rust2rpm/__main__.py
++++ b/rust2rpm/__main__.py
+@@ -17,7 +17,7 @@ import jinja2
+ import requests
+ import tqdm
+
+-from . import Metadata, licensing
++from . import Metadata, licensing, __version__
+ from .metadata import normalize_deps
+
+ DEFAULT_EDITOR = "vi"
+@@ -265,6 +265,7 @@ def main():
+ patch_file = None
+
+ kwargs = {}
++ kwargs["generator_version"] = __version__
+ kwargs["crate"] = crate
+ kwargs["target"] = args.target
+ kwargs["all_features"] = args.all_features
+diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
+index 0c84325..0ef0b10 100644
+--- a/rust2rpm/templates/main.spec
++++ b/rust2rpm/templates/main.spec
+@@ -1,5 +1,5 @@
+ {% include target ~ "-header.spec.inc" ignore missing %}
+-# Generated by rust2rpm
++# Generated by rust2rpm {{ generator_version }}
+ %bcond_without check
+ {% if not include_main %}
+ %global debug_package %{nil}
+--
+2.22.0.rc3
+
diff --git a/0007-Bump-classifiers.patch b/0007-Bump-classifiers.patch
new file mode 100644
index 0000000..6967f8d
--- /dev/null
+++ b/0007-Bump-classifiers.patch
@@ -0,0 +1,34 @@
+From 36663449594b33ec4b0c0ae9ea568cad819bb920 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
+Date: Mon, 6 May 2019 22:47:06 +0200
+Subject: [PATCH 07/14] Bump classifiers
+
+This software is used, so let's at least it's beta.
+Seems to work fine with python3.8, let's say that.
+---
+ setup.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 79367da..b5b1157 100644
+--- a/setup.py
++++ b/setup.py
+@@ -44,13 +44,14 @@ ARGS = dict(
+ author_email="ignatenkobrain(a)fedoraproject.org",
+ url="https://pagure.io/fedora-rust/rust2rpm",
+ classifiers=[
+- "Development Status :: 3 - Alpha",
++ "Development Status :: 4 - Beta",
+ "Intended Audience :: Developers",
+ "License :: OSI Approved :: MIT License",
+ "Operating System :: POSIX :: Linux",
+ "Programming Language :: Python :: 3 :: Only",
+ "Programming Language :: Python :: 3.6",
+ "Programming Language :: Python :: 3.7",
++ "Programming Language :: Python :: 3.8",
+ "Topic :: Software Development :: Build Tools",
+ "Topic :: System :: Software Distribution",
+ "Topic :: Utilities",
+--
+2.22.0.rc3
+
diff --git a/0008-Mangle-summary-automagically.patch b/0008-Mangle-summary-automagically.patch
new file mode 100644
index 0000000..9f6fbcc
--- /dev/null
+++ b/0008-Mangle-summary-automagically.patch
@@ -0,0 +1,85 @@
+From 216de8e4271f9dbca1f009e8c0e046a7f5a198fd Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Wed, 15 May 2019 08:01:46 +0200
+Subject: [PATCH 08/14] Mangle summary automagically
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ rust2rpm/metadata.py | 35 ++++++++++++++++++++++++++++++++++-
+ rust2rpm/templates/main.spec | 3 +--
+ 2 files changed, 35 insertions(+), 3 deletions(-)
+
+diff --git a/rust2rpm/metadata.py b/rust2rpm/metadata.py
+index 77c2932..e41902d 100644
+--- a/rust2rpm/metadata.py
++++ b/rust2rpm/metadata.py
+@@ -3,6 +3,7 @@ __all__ = ["Dependency", "Metadata"]
+ import collections
+ import copy
+ import json
++import re
+ import subprocess
+
+ import semantic_version as semver
+@@ -116,11 +117,43 @@ class Metadata:
+ self.license = None
+ self.license_file = None
+ self.readme = None
+- self.description = None
++ self._description = None
++ self._summary = None
+ self.targets = set()
+ self.dependencies = {}
+ self.dev_dependencies = set()
+
++ @property
++ def description(self):
++ return self._description
++
++ @property
++ def summary(self):
++ return self._summary
++
++ @description.setter
++ def description(self, description):
++ # https://salsa.debian.org/rust-team/debcargo/blob/master/src/crates.rs
++ # get_summary_description()
++ if description is None:
++ self._description = self._summary = None
++ return
++ description = description.replace('\n\n', '\r').replace('\n', ' ').replace('\r', '\n').strip()
++ description = re.sub(r'^(?:a|an|the)\s+', '', description, flags=re.I)
++ description = f'{description[0].upper()}{description[1:]}'
++ if description[-1] != '.':
++ description = f'{description}.'
++
++ p1 = description.find('.')
++ p2 = description.find('\n')
++ if p2 != -1:
++ p = min(p1, p2)
++ else:
++ p = p1
++
++ self._description = description
++ self._summary = description[:p]
++
+ @classmethod
+ def from_json(cls, metadata):
+ md = metadata
+diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
+index 0ef0b10..803b74e 100644
+--- a/rust2rpm/templates/main.spec
++++ b/rust2rpm/templates/main.spec
+@@ -16,8 +16,7 @@ Release: {{ pkg_release }}
+ {% if md.description is none %}
+ Summary: # FIXME
+ {% else %}
+-{% set description_lines = md.description.split("\n") %}
+-Summary: {{ description_lines|join(" ")|trim }}
++Summary: {{ md.summary }}
+ {% endif %}
+ {% if rust_group is defined %}
+ Group: {{ rust_group }}
+--
+2.22.0.rc3
+
diff --git a/0009-Use-expand-for-description.patch b/0009-Use-expand-for-description.patch
new file mode 100644
index 0000000..c2ecfdf
--- /dev/null
+++ b/0009-Use-expand-for-description.patch
@@ -0,0 +1,41 @@
+From 16085843c800827526ab78354bacdd6bd388993f Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Wed, 15 May 2019 08:07:18 +0200
+Subject: [PATCH 09/14] =?UTF-8?q?Use=20%{expand:=E2=80=A6}=20for=20descrip?=
+ =?UTF-8?q?tion?=
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+So that we stop playing with escaping.
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ rust2rpm/templates/main.spec | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
+index 803b74e..660bb60 100644
+--- a/rust2rpm/templates/main.spec
++++ b/rust2rpm/templates/main.spec
+@@ -64,12 +64,13 @@ BuildRequires: {{ req }}
+ {% endfor %}
+ {% endif %}
+
+-%global _description \
++%global _description %{expand:
+ {% if md.description is none %}
+ %{summary}.
+-{% else %}
+-{{ md.description|wordwrap(wrapstring="\\\n")|trim }}
+-{% endif %}
++{%- else %}
++{{ md.description|wordwrap }}
++{%- endif %}
++}
+
+ %description %{_description}
+
+--
+2.22.0.rc3
+
diff --git a/0010-Remove-more-common-prefixes.patch b/0010-Remove-more-common-prefixes.patch
new file mode 100644
index 0000000..c22444a
--- /dev/null
+++ b/0010-Remove-more-common-prefixes.patch
@@ -0,0 +1,25 @@
+From e1cfff321693432f19a9a1303431b2ce4ec4edc9 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Wed, 15 May 2019 20:00:59 +0200
+Subject: [PATCH 10/14] Remove more common prefixes
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ rust2rpm/metadata.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/rust2rpm/metadata.py b/rust2rpm/metadata.py
+index e41902d..1b4faad 100644
+--- a/rust2rpm/metadata.py
++++ b/rust2rpm/metadata.py
+@@ -139,6 +139,7 @@ class Metadata:
+ self._description = self._summary = None
+ return
+ description = description.replace('\n\n', '\r').replace('\n', ' ').replace('\r', '\n').strip()
++ description = re.sub(rf'^(?:{self.name}|This(?:\s+\w+)?)(?:\s*,|\s+is|\s+provides)\s+', '', description, flags=re.I)
+ description = re.sub(r'^(?:a|an|the)\s+', '', description, flags=re.I)
+ description = f'{description[0].upper()}{description[1:]}'
+ if description[-1] != '.':
+--
+2.22.0.rc3
+
diff --git a/0011-Add-AGPL-3.0-or-later-and-automatically-translate-su.patch b/0011-Add-AGPL-3.0-or-later-and-automatically-translate-su.patch
new file mode 100644
index 0000000..6679e3a
--- /dev/null
+++ b/0011-Add-AGPL-3.0-or-later-and-automatically-translate-su.patch
@@ -0,0 +1,73 @@
+From 04f63e0f20d6b517119053c6bc00aa8be3c3a19f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
+Date: Sun, 2 Jun 2019 15:48:45 +0200
+Subject: [PATCH 11/14] Add AGPL-3.0-or-later and automatically translate "+"
+ suffix into "-or-later"
+
+This way we don't need to add all the deprecated variants with "+" suffix.
+
+Fixes #84.
+---
+ rust2rpm/licensing.py | 14 ++++++++++----
+ rust2rpm/spdx_to_fedora.csv | 4 +---
+ 2 files changed, 11 insertions(+), 7 deletions(-)
+
+diff --git a/rust2rpm/licensing.py b/rust2rpm/licensing.py
+index 233903e..6ca4e45 100644
+--- a/rust2rpm/licensing.py
++++ b/rust2rpm/licensing.py
+@@ -35,18 +35,24 @@ def translate_license_fedora(license):
+ elif tag.upper() == 'AND':
+ final.append('and')
+ else:
+- mapped = spdx_to_fedora_map().get(tag, None)
++ if tag.endswith('+'):
++ key = tag[:-1] + '-or-later'
++ fulltag = f'{tag} ({key})'
++ else:
++ key = fulltag = tag
++
++ mapped = spdx_to_fedora_map().get(key, None)
+ if mapped is None:
+- comments += f'# FIXME: Upstream uses unknown SPDX tag {tag}!'
++ comments += f'# FIXME: Upstream uses unknown SPDX tag {fulltag}!'
+ final.append(tag)
+ elif mapped == '':
+- comments += f"# FIXME: Upstream SPDX tag {tag} not listed in Fedora's good licenses list.\n"
++ comments += f"# FIXME: Upstream SPDX tag {fulltag} not listed in Fedora's good licenses list.\n"
+ comments += "# FIXME: This package might not be allowed in Fedora!\n"
+ final.append(tag)
+ else:
+ final.append(mapped)
+ if mapped != tag:
+- print(f'Upstream license tag {tag} translated to {mapped}',
++ print(f'Upstream license tag {fulltag} translated to {mapped}',
+ file=_sys.stderr)
+ return (' '.join(final), comments or None)
+
+diff --git a/rust2rpm/spdx_to_fedora.csv b/rust2rpm/spdx_to_fedora.csv
+index a3f9604..006d80c 100644
+--- a/rust2rpm/spdx_to_fedora.csv
++++ b/rust2rpm/spdx_to_fedora.csv
+@@ -138,17 +138,15 @@ Giftware License,Giftware,Giftware,,,
+ GL2PS License,GL2PS,GL2PS,,,
+ Glulxe License,Glulxe,Glulxe,,,
+ GNU Affero General Public License v3.0,AGPL-3.0,AGPLv3,Affero General Public License 3.0,,
++GNU Affero General Public License v3.0 or later,AGPL-3.0-or-later,AGPLv3+,Affero General Public License 3.0 or later,,
+ GNU Free Documentation License v1.1,GFDL-1.1,,,This specific version not on Fedora list,
+ GNU Free Documentation License v1.2,GFDL-1.2,,,This specific version not on Fedora list,
+ GNU Free Documentation License v1.3,GFDL-1.3,GFDL,,,
+ GNU General Public License v1.0 only,GPL-1.0,GPLv1,,,
+-GNU General Public License v1.0 or later,GPL-1.0+,GPLv1+,,,
+ GNU General Public License v1.0 or later,GPL-1.0-or-later,GPLv1+,,,
+ GNU General Public License v2.0 only,GPL-2.0,GPLv2,,,
+-GNU General Public License v2.0 or later,GPL-2.0+,GPLv2+,,,
+ GNU General Public License v2.0 or later,GPL-2.0-or-later,GPLv2+,,,
+ GNU General Public License v3.0 only,GPL-3.0,GPLv3,,,
+-GNU General Public License v3.0 or later,GPL-3.0+,GPLv3+,,,
+ GNU General Public License v3.0 or later,GPL-3.0-or-later,GPLv3+,,,
+ GNU Lesser General Public License v2.1 only,LGPL-2.1,LGPLv2,,,
+ GNU Lesser General Public License v3.0 only,LGPL-3.0,LGPLv3,,,
+--
+2.22.0.rc3
+
diff --git a/0012-Add-translate-license-to-translate-a-specific-licens.patch b/0012-Add-translate-license-to-translate-a-specific-licens.patch
new file mode 100644
index 0000000..18e32a2
--- /dev/null
+++ b/0012-Add-translate-license-to-translate-a-specific-licens.patch
@@ -0,0 +1,50 @@
+From d9b2cef72e129963ac082ec3737a877785232123 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
+Date: Sun, 2 Jun 2019 15:45:13 +0200
+Subject: [PATCH 12/14] Add --translate-license to translate a specific license
+
+Before, all known licenses would be listed by --show-license-map, so
+grepping the list was enough to find a license. But now we support
+alternative syntaxes, so this is not enough. Add a call to translate a
+specific license:
+
+$ python3 -m rust2rpm --translate-license GPL-3.0+
+Upstream license tag GPL-3.0+ (GPL-3.0-or-later) translated to GPLv3+
+GPLv3+
+
+$ python3 -m rust2rpm --show-license-map | grep -F GPL-3.0+
+(nada)
+---
+ rust2rpm/__main__.py | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
+index a7674fd..c55dacc 100644
+--- a/rust2rpm/__main__.py
++++ b/rust2rpm/__main__.py
+@@ -222,6 +222,8 @@ def main():
+ formatter_class=argparse.RawTextHelpFormatter)
+ parser.add_argument("--show-license-map", action="store_true",
+ help="Print license mappings and exit")
++ parser.add_argument("--translate-license", action="store_true",
++ help="Print mapping for specified license and exit")
+ parser.add_argument("--no-auto-changelog-entry", action="store_true",
+ help="Do not generate a changelog entry")
+ parser.add_argument("-", "--stdout", action="store_true",
+@@ -248,6 +250,13 @@ def main():
+ licensing.dump_sdpx_to_fedora_map(sys.stdout)
+ return
+
++ if args.translate_license:
++ license, comments = licensing.translate_license(args.target, args.crate)
++ if comments:
++ print(comments)
++ print(license)
++ return
++
+ if args.crate is None:
+ parser.error("required crate/path argument missing")
+
+--
+2.22.0.rc3
+
diff --git a/0013-Implement-__cargo_skip_build.patch b/0013-Implement-__cargo_skip_build.patch
new file mode 100644
index 0000000..b4942f3
--- /dev/null
+++ b/0013-Implement-__cargo_skip_build.patch
@@ -0,0 +1,189 @@
+From 7b06496a5c1ded5e3cf59d6af0e757974c6ff704 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Sat, 8 Jun 2019 19:35:38 +0200
+Subject: [PATCH 13/14] Implement %__cargo_skip_build
+
+We need to have an easy way how to skip doing 'cargo build' to speedup a
+module builds.
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ data/macros.cargo | 80 ++++++++++++++++++++++++------------
+ rust2rpm/templates/main.spec | 34 ++++++++-------
+ 2 files changed, 72 insertions(+), 42 deletions(-)
+
+diff --git a/data/macros.cargo b/data/macros.cargo
+index a60289a..961732d 100644
+--- a/data/macros.cargo
++++ b/data/macros.cargo
+@@ -10,6 +10,21 @@
+
+ %cargo_registry %{_datadir}/cargo/registry
+
++# If crate not in _build_crates and _module_build is set, we should skip the build
++%__cargo_skip_build %{lua:
++local crate = rpm.expand('%{crate}')
++local build_crate = false
++for w in rpm.expand('%{?_build_crates}'):gmatch('%S+') do
++ if w == crate then
++ build_crate = true
++ break
++ end
++end
++if (rpm.expand('%{defined _module_build}') ~= '0' and not build_crate) then
++ print(1)
++else
++ print(0)
++end}
+ %__cargo_is_lib() %__cargo_inspector --target-kinds Cargo.toml | grep -q -F -x "$(printf 'lib\\\nrlib\\\nproc-macro')"
+ %__cargo_is_bin() %__cargo_inspector --target-kinds Cargo.toml | grep -q -F -x bin
+
+@@ -49,27 +64,35 @@ EOF\
+ }
+
+ %cargo_generate_buildrequires(af:) \
+-%{__cargo_inspector} -BR %{__cargo_parse_opts %{-a} %{-f:-f%{-f*}}} Cargo.toml \
+-%if %{with check} \
+-%{__cargo_inspector} -TR Cargo.toml \
++%if ! 0%{?__cargo_skip_build} \
++ %{__cargo_inspector} -BR %{__cargo_parse_opts %{-a} %{-f:-f%{-f*}}} Cargo.toml \
++ %if %{with check} \
++ %{__cargo_inspector} -TR Cargo.toml \
++ %endif \
+ %endif
+
+-%cargo_build(naf:) %{shrink:\
+-%{__cargo} build \
+- %{__cargo_common_opts} \
+- --release \
+- %{__cargo_parse_opts %{-n} %{-a} %{-f:-f%{-f*}}} \
+- %* \
+-}
++%cargo_build(naf:) \
++%if ! 0%{?__cargo_skip_build} \
++ %{shrink:\
++ %{__cargo} build \
++ %{__cargo_common_opts} \
++ --release \
++ %{__cargo_parse_opts %{-n} %{-a} %{-f:-f%{-f*}}} \
++ %* \
++ } \
++%endif
+
+-%cargo_test(naf:) %{shrink:\
+-%{__cargo} test \
+- %{__cargo_common_opts} \
+- --release \
+- --no-fail-fast \
+- %{__cargo_parse_opts %{-n} %{-a} %{-f:-f%{-f*}}} \
+- %* \
+-}
++%cargo_test(naf:) \
++%if ! 0%{?__cargo_skip_build} \
++ %{shrink:\
++ %{__cargo} test \
++ %{__cargo_common_opts} \
++ --release \
++ --no-fail-fast \
++ %{__cargo_parse_opts %{-n} %{-a} %{-f:-f%{-f*}}} \
++ %* \
++ } \
++%endif
+
+ %cargo_install(t:naf:) (\
+ set -eu \
+@@ -88,15 +111,18 @@ if %__cargo_is_lib; then \
+ %{__rm} -f $REG_DIR/Cargo.toml.{orig,deps} \
+ echo '{"files":{},"package":""}' > $REG_DIR/.cargo-checksum.json \
+ fi \
+-if %__cargo_is_bin; then \
+- %{shrink:%{__cargo} install \
+- %{__cargo_common_opts} \
+- --path . \
+- %{__cargo_parse_opts %{-n} %{-a} %{-f:-f%{-f*}}} \
+- %* \
+- }\
+- %{__rm} %{buildroot}%{_prefix}/.crates.toml \
+-fi \
++%if ! %__cargo_skip_build \
++ if %__cargo_is_bin; then \
++ %{shrink:\
++ %{__cargo} install \
++ %{__cargo_common_opts} \
++ --path . \
++ %{__cargo_parse_opts %{-n} %{-a} %{-f:-f%{-f*}}} \
++ %* \
++ } \
++ %{__rm} %{buildroot}%{_prefix}/.crates.toml \
++ fi \
++%endif \
+ )
+
+ %__cargo_feature_from_name(n:) %{lua:
+diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
+index 660bb60..69d23d7 100644
+--- a/rust2rpm/templates/main.spec
++++ b/rust2rpm/templates/main.spec
+@@ -42,26 +42,28 @@ ExclusiveArch: %{rust_arches}
+
+ BuildRequires: rust-packaging
+ {% if not generate_buildrequires %}
+-{% if not all_features %}
+-{% set buildrequires = normalize_deps(md.requires("default", resolve=True))|sort %}
+-{% else %}
+-{% set buildrequires = normalize_deps(md.all_dependencies)|sort %}
+-{% set cargo_args = " -a" %}
+-{% endif %}
+-{% for req in buildrequires %}
++%if ! %{__cargo_skip_build}
++ {% if not all_features %}
++ {% set buildrequires = normalize_deps(md.requires("default", resolve=True))|sort %}
++ {% else %}
++ {% set buildrequires = normalize_deps(md.all_dependencies)|sort %}
++ {% set cargo_args = " -a" %}
++ {% endif %}
++ {% for req in buildrequires %}
+ BuildRequires: {{ req }}
+-{% endfor %}
+-{% set testrequires = normalize_deps(md.dev_dependencies)|sort %}
+-{% if testrequires|length > 0 %}
++ {% endfor %}
++ {% set testrequires = normalize_deps(md.dev_dependencies)|sort %}
++ {% if testrequires|length > 0 %}
+ %if %{with check}
+- {% for req in testrequires %}
++ {% for req in testrequires %}
+ BuildRequires: {{ req }}
+- {% endfor %}
++ {% endfor %}
+ %endif
+-{% endif %}
+-{% for req in to_list(distconf.get("buildrequires"))|sort %}
++ {% endif %}
++ {% for req in to_list(distconf.get("buildrequires"))|sort %}
+ BuildRequires: {{ req }}
+-{% endfor %}
++ {% endfor %}
++%endif
+ {% endif %}
+
+ %global _description %{expand:
+@@ -75,6 +77,7 @@ BuildRequires: {{ req }}
+ %description %{_description}
+
+ {% if include_main %}
++%if ! %{__cargo_skip_build}
+ %package -n %{crate}
+ Summary: %{summary}
+ {% if rust_group is defined %}
+@@ -96,6 +99,7 @@ Requires: {{ req }}
+ {% for bin in bins %}
+ %{_bindir}/{{ bin.name }}
+ {% endfor %}
++%endif
+
+ {% endif -%}
+
+--
+2.22.0.rc3
+
diff --git a/0014-Set-BuildArch-noarch-with-__cargo_skip_build.patch b/0014-Set-BuildArch-noarch-with-__cargo_skip_build.patch
new file mode 100644
index 0000000..63a2895
--- /dev/null
+++ b/0014-Set-BuildArch-noarch-with-__cargo_skip_build.patch
@@ -0,0 +1,30 @@
+From b345d23e7a11357d828751e4db47a0685cfe207b Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Sat, 8 Jun 2019 20:01:12 +0200
+Subject: [PATCH 14/14] Set BuildArch: noarch with %__cargo_skip_build
+
+We do not need to spawn 7 tasks for each architecture to copy same files
+over and over.
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ rust2rpm/templates/main.spec | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
+index 69d23d7..b4734b7 100644
+--- a/rust2rpm/templates/main.spec
++++ b/rust2rpm/templates/main.spec
+@@ -39,6 +39,9 @@ Patch0: {{ patch_file }}
+ {% endif %}
+
+ ExclusiveArch: %{rust_arches}
++%if ! %{__cargo_skip_build}
++BuildArch: noarch
++%endif
+
+ BuildRequires: rust-packaging
+ {% if not generate_buildrequires %}
+--
+2.22.0.rc3
+
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 8019a55..1dd8d19 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -5,12 +5,26 @@
Name: rust-packaging
Version: 9
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
URL: https://pagure.io/fedora-rust/rust2rpm
Source0: https://releases.pagure.org/fedora-rust/rust2rpm/rust2rpm-%{version}.tar.xz
+Patch0001: 0001-templates-Do-not-put-empty-line-after-changelog.patch
+Patch0002: 0002-licensing-translate-GPL-123.patch
+Patch0003: 0003-licensing-add-or-later-variants-for-GPL-licenses.patch
+Patch0004: 0004-Move-version-string-to-the-python-code.patch
+Patch0005: 0005-Check-usr-lib-os-release-in-addition-to-etc-os-relea.patch
+Patch0006: 0006-Include-rust2rpm-version-info-in-the-generated-spec-.patch
+Patch0007: 0007-Bump-classifiers.patch
+Patch0008: 0008-Mangle-summary-automagically.patch
+Patch0009: 0009-Use-expand-for-description.patch
+Patch0010: 0010-Remove-more-common-prefixes.patch
+Patch0011: 0011-Add-AGPL-3.0-or-later-and-automatically-translate-su.patch
+Patch0012: 0012-Add-translate-license-to-translate-a-specific-licens.patch
+Patch0013: 0013-Implement-__cargo_skip_build.patch
+Patch0014: 0014-Set-BuildArch-noarch-with-__cargo_skip_build.patch
ExclusiveArch: %{rust_arches}
@@ -43,7 +57,6 @@ Provides: rust2rpm = %{version}-%{release}
%prep
%autosetup -n rust2rpm-%{version} -p1
-sed -i -e '/# Generated by/s/$/-%{version}-%{release}/' rust2rpm/templates/main.spec
%build
%py3_build
@@ -72,6 +85,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sat Jun 08 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 9-2
+- Backport patches from upstream
+
* Sun May 05 09:18:19 CEST 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 9-1
- Update to 9
commit 86b1326176be07f628a303eb54f10da6912f77f3
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sun May 5 09:19:39 2019 +0200
Update to 9
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/.gitignore b/.gitignore
index 4caa509..b86ab64 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@
/rust2rpm-6.tar.xz
/rust2rpm-7.tar.xz
/rust2rpm-8.tar.xz
+/rust2rpm-9.tar.xz
diff --git a/rust-packaging.spec b/rust-packaging.spec
index df5cab2..8019a55 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -4,7 +4,7 @@
%global debug_package %{nil}
Name: rust-packaging
-Version: 8
+Version: 9
Release: 1%{?dist}
Summary: RPM macros for building Rust packages on various architectures
@@ -43,6 +43,7 @@ Provides: rust2rpm = %{version}-%{release}
%prep
%autosetup -n rust2rpm-%{version} -p1
+sed -i -e '/# Generated by/s/$/-%{version}-%{release}/' rust2rpm/templates/main.spec
%build
%py3_build
@@ -58,6 +59,7 @@ py.test-%{python3_version} -vv test.py
%endif
%files
+%license LICENSE
%{_rpmmacrodir}/macros.rust
%{_rpmmacrodir}/macros.cargo
%{_fileattrsdir}/cargo.attr
@@ -70,6 +72,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sun May 05 09:18:19 CEST 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 9-1
+- Update to 9
+
* Tue Apr 23 21:18:12 CEST 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 8-1
- Update to 8
diff --git a/sources b/sources
index 673e133..4561ec6 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (rust2rpm-8.tar.xz) = 43b6bc664e456861557bd075e26855d5bf328c6adc2e20a55a378d40208f4e2b6c9ede02f55833f9bd7e67d0b354432cfb24b503d5ca84e73e9c7a41c048949c
+SHA512 (rust2rpm-9.tar.xz) = 64ba9f22aa7a205c4e418783689cb3d380d32d7358c2a5162713a6425cc6ea7fb0b0c82698b89934368b3b7961589e6b332655bda5c9b64fc2dc5488cf8b0c5e
commit d833ac8b68a7986b43fa47d63ddef32a902f7a8f
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue Apr 23 21:18:43 2019 +0200
Update to 8
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/.gitignore b/.gitignore
index aa71c2c..4caa509 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
/rust2rpm-5.tar.xz
/rust2rpm-6.tar.xz
/rust2rpm-7.tar.xz
+/rust2rpm-8.tar.xz
diff --git a/rust-packaging.spec b/rust-packaging.spec
index f9db08f..df5cab2 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -4,7 +4,7 @@
%global debug_package %{nil}
Name: rust-packaging
-Version: 7
+Version: 8
Release: 1%{?dist}
Summary: RPM macros for building Rust packages on various architectures
@@ -70,6 +70,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Tue Apr 23 21:18:12 CEST 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 8-1
+- Update to 8
+
* Tue Apr 23 16:17:30 CEST 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 7-1
- Update to 7
diff --git a/sources b/sources
index bd3fb1f..673e133 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (rust2rpm-7.tar.xz) = 8ef6d882cdb44673a60fac51e43d3ed6913e1df70e5e5596c4b4464c5361bf16cad66b9380eea2cf95ddcacfb1ca0291a20e0fac757756ddcd63bb9dd7dc9e93
+SHA512 (rust2rpm-8.tar.xz) = 43b6bc664e456861557bd075e26855d5bf328c6adc2e20a55a378d40208f4e2b6c9ede02f55833f9bd7e67d0b354432cfb24b503d5ca84e73e9c7a41c048949c
commit 1b37f08c707d7f52a93555b56e31303a81e2684f
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue Apr 23 16:18:29 2019 +0200
Update to 7
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/.gitignore b/.gitignore
index 388ca95..aa71c2c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
/rust2rpm-4.tar.xz
/rust2rpm-5.tar.xz
/rust2rpm-6.tar.xz
+/rust2rpm-7.tar.xz
diff --git a/0001-name-spec-patch_file-by-real-crate-name.patch b/0001-name-spec-patch_file-by-real-crate-name.patch
deleted file mode 100644
index d8df04a..0000000
--- a/0001-name-spec-patch_file-by-real-crate-name.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 0dc9fc182edf0791ca697f587e48dd39948d63c1 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Mon, 10 Sep 2018 23:37:40 +0200
-Subject: [PATCH 01/19] name spec/patch_file by real crate name
-
-When renaming using patch file, we really want to change file names too.
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- rust2rpm/__main__.py | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
-index dc78828..1575ce6 100644
---- a/rust2rpm/__main__.py
-+++ b/rust2rpm/__main__.py
-@@ -218,7 +218,7 @@ def main():
- template = JINJA_ENV.get_template("main.spec")
-
- if args.patch and len(diff) > 0:
-- patch_file = "{}-fix-metadata.diff".format(crate)
-+ patch_file = "{}-fix-metadata.diff".format(metadata.name)
- else:
- patch_file = None
-
-@@ -269,7 +269,7 @@ def main():
- kwargs["license"] = license
- kwargs["license_comments"] = comments
-
-- spec_file = "rust-{}.spec".format(crate)
-+ spec_file = "rust-{}.spec".format(metadata.name)
- spec_contents = template.render(md=metadata, patch_file=patch_file, **kwargs)
- if args.stdout:
- print("# {}".format(spec_file))
---
-2.21.0
-
diff --git a/0002-generate-doc-statements.patch b/0002-generate-doc-statements.patch
deleted file mode 100644
index 7d5550b..0000000
--- a/0002-generate-doc-statements.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 561280a0ea35f226ef243526be2bbb656db44af6 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Mon, 10 Sep 2018 23:40:18 +0200
-Subject: [PATCH 02/19] generate %doc statements
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- rust2rpm/metadata.py | 2 ++
- rust2rpm/templates/main.spec | 6 ++++++
- 2 files changed, 8 insertions(+)
-
-diff --git a/rust2rpm/metadata.py b/rust2rpm/metadata.py
-index 5dae1d3..f52d968 100644
---- a/rust2rpm/metadata.py
-+++ b/rust2rpm/metadata.py
-@@ -140,6 +140,7 @@ class Metadata(object):
- self.name = None
- self.license = None
- self.license_file = None
-+ self.readme = None
- self.description = None
- self.version = None
- self._targets = []
-@@ -156,6 +157,7 @@ class Metadata(object):
- self.name = md["name"]
- self.license = md["license"]
- self.license_file = md["license_file"]
-+ self.readme = md["readme"]
- self.description = md.get("description")
- self.version = md["version"]
- version = "={}".format(self.version)
-diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
-index 1aeb969..2e9f841 100644
---- a/rust2rpm/templates/main.spec
-+++ b/rust2rpm/templates/main.spec
-@@ -137,6 +137,9 @@ which use %{crate} from crates.io.
- {% if md.license_file is not none %}
- %license {{ md.license_file }}
- {% endif %}
-+{% if md.readme is not none %}
-+%doc {{ md.readme }}
-+{% endif %}
- {% for bin in bins %}
- %{_bindir}/{{ bin.name }}
- {% endfor %}
-@@ -147,6 +150,9 @@ which use %{crate} from crates.io.
- {% if md.license_file is not none %}
- %license {{ md.license_file }}
- {% endif %}
-+{% if md.readme is not none %}
-+%doc {{ md.readme }}
-+{% endif %}
- %{cargo_registry}/%{crate}-%{version}/
-
- {% endif %}
---
-2.21.0
-
diff --git a/0003-do-better-for-renamed-crates.patch b/0003-do-better-for-renamed-crates.patch
deleted file mode 100644
index 97d5815..0000000
--- a/0003-do-better-for-renamed-crates.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From 2050880140d4953b9ebdc7211e30df3ccf5dd61d Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Tue, 11 Sep 2018 00:06:50 +0200
-Subject: [PATCH 03/19] do better for renamed crates
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- rust2rpm/__main__.py | 7 ++++---
- rust2rpm/templates/main.spec | 13 ++++++++++++-
- 2 files changed, 16 insertions(+), 4 deletions(-)
-
-diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
-index 1575ce6..e993e7b 100644
---- a/rust2rpm/__main__.py
-+++ b/rust2rpm/__main__.py
-@@ -180,7 +180,7 @@ def make_diff_metadata(crate, version, patch=False, store=False):
- diff = make_patch(toml, enabled=patch)
- metadata = Metadata.from_file(toml)
- if store:
-- shutil.copy2(cratef, os.path.join(os.getcwd(), f"{crate}-{version}.crate"))
-+ shutil.copy2(cratef, os.path.join(os.getcwd(), f"{metadata.name}-{version}.crate"))
- return crate, diff, metadata
-
- def main():
-@@ -218,11 +218,12 @@ def main():
- template = JINJA_ENV.get_template("main.spec")
-
- if args.patch and len(diff) > 0:
-- patch_file = "{}-fix-metadata.diff".format(metadata.name)
-+ patch_file = f"{metadata.name}-fix-metadata.diff"
- else:
- patch_file = None
-
- kwargs = {}
-+ kwargs["crate"] = crate
- kwargs["target"] = args.target
- bins = [tgt for tgt in metadata.targets if tgt.kind == "bin"]
- libs = [tgt for tgt in metadata.targets if tgt.kind in ("lib", "rlib", "proc-macro")]
-@@ -269,7 +270,7 @@ def main():
- kwargs["license"] = license
- kwargs["license_comments"] = comments
-
-- spec_file = "rust-{}.spec".format(metadata.name)
-+ spec_file = f"rust-{metadata.name}.spec"
- spec_contents = template.render(md=metadata, patch_file=patch_file, **kwargs)
- if args.stdout:
- print("# {}".format(spec_file))
-diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
-index 2e9f841..7dbcc3f 100644
---- a/rust2rpm/templates/main.spec
-+++ b/rust2rpm/templates/main.spec
-@@ -6,6 +6,9 @@
- {% endif %}
-
- %global crate {{ md.name }}
-+{% if md.name != crate %}
-+%global real_crate {{ crate }}
-+{% endif %}
-
- Name: rust-%{crate}
- Version: {{ md.version }}
-@@ -27,8 +30,12 @@ License: {{ license|default("# FIXME") }}
- {% if license_comments is not none %}
- {{ license_comments }}
- {% endif %}
--URL: https://crates.io/crates/{{ md.name }}
-+URL: https://crates.io/crates/{{ crate }}
-+{% if md.name != crate %}
-+Source0: https://crates.io/api/v1/crates/%{real_crate}/%{version}/download#/%{crat...
-+{% else %}
- Source0: https://crates.io/api/v1/crates/%{crate}/%{version}/download#/%{crate}-%{...
-+{% endif %}
- {% if patch_file is not none %}
- {% if target == "opensuse" %}
- # PATCH-FIX-OPENSUSE {{ patch_file }} -- Initial patched metadata
-@@ -118,7 +125,11 @@ which use %{crate} from crates.io.
-
- {% endif %}
- %prep
-+{% if md.name != crate %}
-+%autosetup -n %{real_crate}-%{version} -p1
-+{% else %}
- %autosetup -n %{crate}-%{version} -p1
-+{% endif %}
- %cargo_prep
-
- %build
---
-2.21.0
-
diff --git a/0004-remove-pre-3.6-leftovers.patch b/0004-remove-pre-3.6-leftovers.patch
deleted file mode 100644
index 017fb26..0000000
--- a/0004-remove-pre-3.6-leftovers.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From e6e9cbbb71199c2773b47fa21f1c917a167c1743 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Tue, 11 Sep 2018 10:43:53 +0200
-Subject: [PATCH 04/19] remove pre-3.6 leftovers
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- rust2rpm/metadata.py | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/rust2rpm/metadata.py b/rust2rpm/metadata.py
-index f52d968..5adeb65 100644
---- a/rust2rpm/metadata.py
-+++ b/rust2rpm/metadata.py
-@@ -203,8 +203,6 @@ class Metadata(object):
-
- @classmethod
- def from_file(cls, path):
-- do_decode = sys.version_info < (3, 6)
- metadata = subprocess.check_output(["cargo", "read-manifest",
-- "--manifest-path={}".format(path)],
-- universal_newlines=do_decode)
-+ "--manifest-path={}".format(path)])
- return cls.from_json(json.loads(metadata))
---
-2.21.0
-
diff --git a/0005-Remove-half-downloaded-crate-on-C.patch b/0005-Remove-half-downloaded-crate-on-C.patch
deleted file mode 100644
index 033815b..0000000
--- a/0005-Remove-half-downloaded-crate-on-C.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 2f12c83d14afe71e9efed2d1be62e1e610e602e9 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
-Date: Fri, 17 Aug 2018 10:03:48 +0200
-Subject: [PATCH 05/19] Remove half-downloaded crate on ^C
-
-Subsequent invocations would fail with an error about a corrupted file.
-We don't have support for resuming a failed download, so let's remove the
-partial download results.
----
- rust2rpm/__main__.py | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
-index e993e7b..8e6f6eb 100644
---- a/rust2rpm/__main__.py
-+++ b/rust2rpm/__main__.py
-@@ -83,6 +83,14 @@ def file_mtime(path):
- t = datetime.fromtimestamp(os.stat(path).st_mtime, timezone.utc)
- return t.astimezone().isoformat()
-
-+(a)contextlib.contextmanager
-+def remove_on_error(path):
-+ try:
-+ yield
-+ except: # this is supposed to include ^C
-+ os.unlink(path)
-+ raise
-+
- def local_toml(toml, version):
- if os.path.isdir(toml):
- toml = os.path.join(toml, "Cargo.toml")
-@@ -110,7 +118,8 @@ def download(crate, version):
- req = requests.get(url, stream=True)
- req.raise_for_status()
- total = int(req.headers["Content-Length"])
-- with open(cratef, "wb") as f:
-+ with remove_on_error(cratef), \
-+ open(cratef, "wb") as f:
- for chunk in tqdm.tqdm(req.iter_content(), "Downloading {}".format(cratef_base),
- total=total, unit="B", unit_scale=True):
- f.write(chunk)
---
-2.21.0
-
diff --git a/0006-Throw-an-error-if-s-is-used-without-a-crate.patch b/0006-Throw-an-error-if-s-is-used-without-a-crate.patch
deleted file mode 100644
index 861d233..0000000
--- a/0006-Throw-an-error-if-s-is-used-without-a-crate.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 5a1cde5b8dcaea74ebb2050879036bf46df63adc Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
-Date: Fri, 17 Aug 2018 10:18:59 +0200
-Subject: [PATCH 06/19] Throw an error if -s is used without a crate
-
-In the future we might want to be smarter and find the crate, but let's at least
-not ignore the option completely.
----
- rust2rpm/__main__.py | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
-index 8e6f6eb..f23ebbc 100644
---- a/rust2rpm/__main__.py
-+++ b/rust2rpm/__main__.py
-@@ -178,6 +178,9 @@ def make_diff_metadata(crate, version, patch=False, store=False):
- if crate.endswith(".crate"):
- cratef, crate, version = local_crate(crate, version)
- else:
-+ if store:
-+ raise ValueError('--store-crate can only be used for a crate')
-+
- toml, crate, version = local_toml(crate, version)
- diff = make_patch(toml, enabled=patch, tmpfile=True)
- metadata = Metadata.from_file(toml)
---
-2.21.0
-
diff --git a/0007-split-features-into-subpackages.patch b/0007-split-features-into-subpackages.patch
deleted file mode 100644
index acf5911..0000000
--- a/0007-split-features-into-subpackages.patch
+++ /dev/null
@@ -1,1064 +0,0 @@
-From 2cac5e5ad5ff5472923ce333bef59679612bbaa2 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Fri, 26 Oct 2018 11:20:13 +0200
-Subject: [PATCH 07/19] split features into subpackages
-
-References: https://discussion.fedoraproject.org/t/rfc-new-crates-packaging-design-fe...
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- data/cargo.attr | 4 +-
- data/macros.cargo | 10 +
- rust2rpm/__main__.py | 11 +-
- rust2rpm/inspector.py | 22 ++-
- rust2rpm/metadata.py | 317 ++++++++++++++++----------------
- rust2rpm/templates/main.spec | 142 +++++++-------
- test.py | 347 ++++-------------------------------
- 7 files changed, 298 insertions(+), 555 deletions(-)
-
-diff --git a/data/cargo.attr b/data/cargo.attr
-index 392a72b..4910b5c 100644
---- a/data/cargo.attr
-+++ b/data/cargo.attr
-@@ -1,3 +1,3 @@
--%__cargo_provides %{_bindir}/cargo-inspector --provides
--%__cargo_requires %{_bindir}/cargo-inspector --requires
-+%__cargo_provides %{_bindir}/cargo-inspector --provides --feature=%{__cargo_feature_from_name -n %{name}}
-+%__cargo_requires %{_bindir}/cargo-inspector --requires --feature=%{__cargo_feature_from_name -n %{name}}
- %__cargo_path ^%{cargo_registry}/[^/]+/Cargo\\.toml$
-diff --git a/data/macros.cargo b/data/macros.cargo
-index a0c456a..7fb025b 100644
---- a/data/macros.cargo
-+++ b/data/macros.cargo
-@@ -84,3 +84,13 @@ if %__cargo_is_bin; then \
- %{__rm} %{buildroot}%{_prefix}/.crates.toml \
- fi \
- )
-+
-+%__cargo_feature_from_name(n:) %{lua:
-+local name = rpm.expand("%{-n*}")
-+local feature = string.match(name, "^.+%+(.+)-devel$")
-+if feature == nil then
-+ print()
-+else
-+ print(feature)
-+end
-+}
-diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
-index f23ebbc..d19cb47 100644
---- a/rust2rpm/__main__.py
-+++ b/rust2rpm/__main__.py
-@@ -18,15 +18,19 @@ import requests
- import tqdm
-
- from . import Metadata, licensing
-+from .metadata import normalize_deps
-
- DEFAULT_EDITOR = "vi"
- XDG_CACHE_HOME = os.getenv("XDG_CACHE_HOME", os.path.expanduser("~/.cache"))
- CACHEDIR = os.path.join(XDG_CACHE_HOME, "rust2rpm")
- API_URL = "https://crates.io/api/v1/"
- JINJA_ENV = jinja2.Environment(loader=jinja2.ChoiceLoader([
-- jinja2.FileSystemLoader(["/"]),
-- jinja2.PackageLoader("rust2rpm", "templates"), ]),
-- trim_blocks=True, lstrip_blocks=True)
-+ jinja2.FileSystemLoader(["/"]),
-+ jinja2.PackageLoader("rust2rpm", "templates"),
-+ ]),
-+ extensions=["jinja2.ext.do"],
-+ trim_blocks=True,
-+ lstrip_blocks=True)
-
- def get_default_target():
- # TODO: add fallback for /usr/lib/os-release
-@@ -227,6 +231,7 @@ def main():
- patch=args.patch,
- store=args.store_crate)
-
-+ JINJA_ENV.globals["normalize_deps"] = normalize_deps
- template = JINJA_ENV.get_template("main.spec")
-
- if args.patch and len(diff) > 0:
-diff --git a/rust2rpm/inspector.py b/rust2rpm/inspector.py
-index 2d488b2..9e79e88 100644
---- a/rust2rpm/inspector.py
-+++ b/rust2rpm/inspector.py
-@@ -1,8 +1,8 @@
- import argparse
--import itertools
- import sys
-
- from . import Metadata
-+from .metadata import normalize_deps
-
- def main():
- parser = argparse.ArgumentParser()
-@@ -10,18 +10,23 @@ def main():
- group.add_argument("-n", "--name", action="store_true", help="Print name")
- group.add_argument("-v", "--version", action="store_true", help="Print version")
- group.add_argument("-t", "--target-kinds", action="store_true", help="Print target kinds")
-+ group.add_argument("-l", "--list-features", action="store_true", help="Print features")
- group.add_argument("-P", "--provides", action="store_true", help="Print Provides")
- group.add_argument("-R", "--requires", action="store_true", help="Print Requires")
- group.add_argument("-BR", "--build-requires", action="store_true", help="Print BuildRequires")
- group.add_argument("-TR", "--test-requires", action="store_true", help="Print TestRequires")
-+ parser.add_argument("-f", "--feature", help="Feature to work on")
- parser.add_argument("file", nargs="*", help="Path(s) to Cargo.toml")
- args = parser.parse_args()
-
- files = args.file or sys.stdin.readlines()
-
-+ if not args.feature:
-+ args.feature = None
-+
- def print_deps(deps):
- if len(deps) > 0:
-- print("\n".join(str(dep) for dep in deps))
-+ print("\n".join(sorted(normalize_deps(deps))))
-
- for f in files:
- f = f.rstrip()
-@@ -32,17 +37,20 @@ def main():
- print(md.version)
- if args.target_kinds:
- print("\n".join(set(tgt.kind for tgt in md.targets)))
-+ if args.list_features:
-+ for f in sorted(f for f in md.dependencies if f is not None):
-+ print(f)
- if args.provides:
-- print_deps(md.provides)
-- if args.requires or args.build_requires:
-- print_deps(list(itertools.chain(md.requires, md.build_requires)))
-- if args.test_requires:
-- print_deps(md.test_requires)
-+ print(md.provides(args.feature))
- if args.requires:
- # Someone should own /usr/share/cargo/registry
- print("cargo")
-+ print_deps(md.requires(args.feature))
- if args.build_requires:
- print("rust-packaging")
-+ print_deps(md.requires(args.feature or "default", resolve=True))
-+ if args.test_requires:
-+ print_deps(md.dev_dependencies)
-
- if __name__ == "__main__":
- main()
-diff --git a/rust2rpm/metadata.py b/rust2rpm/metadata.py
-index 5adeb65..4929cdd 100644
---- a/rust2rpm/metadata.py
-+++ b/rust2rpm/metadata.py
-@@ -1,208 +1,207 @@
- __all__ = ["Dependency", "Metadata"]
-
--import itertools
-+import copy
- import json
- import subprocess
--import sys
-
- import semantic_version as semver
- import rustcfg
-
--class Target(object):
-- def __init__(self, kind, name):
-- self.kind = kind
-+class Target:
-+ def __init__(self, name, kind):
- self.name = name
-+ self.kind = kind
-
- def __repr__(self):
-- return "<Target {self.kind}|{self.name}>".format(self=self)
--
--
--def _req_to_str(name, spec=None, feature=None):
-- f_part = "/{}".format(feature) if feature is not None else ""
-- basestr = "crate({}{})".format(name, f_part)
-- if spec is None:
-- return basestr
-- if spec.kind == spec.KIND_EQUAL:
-- spec.kind = spec.KIND_SHORTEQ
-- if spec.kind == spec.KIND_ANY:
-- if spec.spec == "":
-- # Just wildcard
-- return basestr
-- else:
-- # Wildcard in string
-- assert False, spec.spec
-- version = str(spec.spec).replace("-", "~")
-- return "{} {} {}".format(basestr, spec.kind, version)
-+ return f"<Target {self.name} ({self.kind})>"
-
--class Dependency(object):
-- def __init__(self, name, req, features=(), provides=False):
-+class Dependency:
-+ def __init__(self, name, req=None, features=(), optional=False):
- self.name = name
-- self.spec = self._parse_req(req)
-+ self.req = req
- self.features = features
-- self.provides = provides
-- if self.provides:
-- if len(self.spec.specs) > 1 or \
-- (len(self.spec.specs) == 1 and self.spec.specs[0].kind != self.spec.specs[0].KIND_EQUAL):
-- raise Exception("Provides can't be applied to ranged version, {!r}".format(self.spec))
--
-- def __repr__(self):
-- if self.provides:
-- spec = self.spec.specs[0]
-- provs = [_req_to_str(self.name, spec)]
-- for feature in self.features:
-- provs.append(_req_to_str(self.name, spec, feature))
-- return " and ".join(provs)
--
-- reqs = [_req_to_str(self.name, spec=req) for req in self.spec.specs]
-- features = [_req_to_str(self.name, feature=feature) for feature in self.features]
-+ self.optional = optional
-
-- use_rich = False
-- if len(reqs) > 1:
-- reqstr = "({})".format(" with ".join(reqs))
-- use_rich = True
-- elif len(reqs) == 1:
-- reqstr = reqs[0]
-- else:
-- reqstr = ""
-- if len(features) > 0:
-- featurestr = " with ".join(features)
-- use_rich = True
-- else:
-- featurestr = ""
--
-- if use_rich:
-- if reqstr and featurestr:
-- return "({} with {})".format(reqstr, featurestr)
-- elif reqstr and not featurestr:
-- return reqstr
-- elif not reqstr and featurestr:
-- return "({})".format(featurestr)
-- else:
-- assert False
-- else:
-- return reqstr
-+ @classmethod
-+ def from_json(cls, metadata):
-+ features = set(metadata['features'])
-+ if metadata['uses_default_features']:
-+ features.add('default')
-+ kwargs = {'name': metadata['name'],
-+ 'req': metadata['req'],
-+ 'optional': metadata['optional'],
-+ 'features': features}
-+ return cls(**kwargs)
-
- @staticmethod
-- def _parse_req(s):
-- if "*" in s and s != "*":
-- # XXX: https://github.com/rbarrois/python-semanticversion/issues/51
-- s = "~{}".format(s.replace(".*", "", 1))
-- if ".*" in s:
-- s = s.replace(".*", "")
-- spec = semver.Spec(s.replace(" ", ""))
-- parsed = []
-+ def _normalize_req(req):
-+ if "*" in req and req != "*":
-+ raise NotImplementedError(f"'*' is not supported: {req}")
-+ spec = semver.Spec(req.replace(" ", ""))
-+ reqs = []
- for req in spec.specs:
-- ver = req.spec
- if req.kind == req.KIND_ANY:
-- parsed.append("*")
-+ # Any means any
- continue
-+ ver = req.spec
-+ if ver.prerelease:
-+ raise NotImplementedError(f"Pre-release requirement is not supported: {ver}")
-+ if req.kind in (req.KIND_NEQ, req.KIND_EMPTY):
-+ raise NotImplementedError(f"'!=' and empty kinds are not supported: {req}")
- coerced = semver.Version.coerce(str(ver))
-- if req.kind in (req.KIND_CARET, req.KIND_TILDE):
-- if ver.prerelease:
-- # pre-release versions only match the same x.y.z
-- if ver.patch is not None:
-- upper = ver.next_patch()
-- elif ver.minor is not None:
-- upper = ver.next_minor()
-- else:
-- upper = ver.next_major()
-- elif req.kind == req.KIND_CARET:
-- if ver.major == 0:
-- if ver.minor is not None:
-- if ver.patch is None or ver.minor != 0:
-- upper = ver.next_minor()
-- else:
-- upper = ver.next_patch()
-+ if req.kind == req.KIND_EQUAL:
-+ req.kind = req.KIND_SHORTEQ
-+ if req.kind in (req.KIND_CARET, req.KIND_COMPATIBLE):
-+ if ver.major == 0:
-+ if ver.minor is not None:
-+ if ver.minor != 0 or ver.patch is None:
-+ upper = ver.next_minor()
- else:
-- upper = ver.next_major()
-+ upper = ver.next_patch()
- else:
- upper = ver.next_major()
-- elif req.kind == req.KIND_TILDE:
-- if ver.minor is None:
-- upper = ver.next_major()
-- else:
-- upper = ver.next_minor()
- else:
-- assert False
-- parsed.append(">={}".format(coerced))
-- parsed.append("<{}".format(upper))
-- elif req.kind == req.KIND_NEQ:
-- parsed.append(">{}".format(coerced))
-- parsed.append("<{}".format(coerced))
-- elif req.kind in (req.KIND_EQUAL, req.KIND_GT, req.KIND_GTE, req.KIND_LT, req.KIND_LTE):
-- parsed.append("{}{}".format(req.kind, coerced))
-+ upper = ver.next_major()
-+ reqs.append((">=", coerced))
-+ reqs.append(("<", upper))
-+ elif req.kind == req.KIND_TILDE:
-+ if ver.minor is None:
-+ upper = ver.next_major()
-+ else:
-+ upper = ver.next_minor()
-+ reqs.append((">=", coerced))
-+ reqs.append(("<", upper))
-+ elif req.kind in (req.KIND_SHORTEQ,
-+ req.KIND_GT,
-+ req.KIND_GTE,
-+ req.KIND_LT,
-+ req.KIND_LTE):
-+ reqs.append((str(req.kind), coerced))
- else:
-- assert False, req.kind
-- return semver.Spec(",".join(parsed))
-+ raise AssertionError(f"Found unhandled kind: {req.kind}")
-+ return reqs
-
--class Metadata(object):
-- def __init__(self):
-- self.name = None
-+ @staticmethod
-+ def _apply_reqs(name, reqs, feature=None):
-+ fstr = f"/{feature}" if feature is not None else ""
-+ cap = f"crate({name}{fstr})"
-+ if not reqs:
-+ return cap
-+ deps = " with ".join(f"{cap} {op} {version}" for op, version in reqs)
-+ if len(reqs) > 1:
-+ return f"({deps})"
-+ else:
-+ return deps
-+
-+ def normalize(self):
-+ return [self._apply_reqs(self.name, self._normalize_req(self.req), feature)
-+ for feature in self.features or (None,)]
-+
-+ def __repr__(self):
-+ return f"<Dependency: {self.name} {self.req} ({', '.join(sorted(self.features))})>"
-+
-+ def __str__(self):
-+ return "\n".join(self.normalize())
-+
-+class Metadata:
-+ def __init__(self, name, version):
-+ self.name = name
-+ self.version = version
- self.license = None
- self.license_file = None
- self.readme = None
- self.description = None
-- self.version = None
-- self._targets = []
-- self.provides = []
-- self.requires = []
-- self.build_requires = []
-- self.test_requires = []
-+ self.targets = set()
-+ self.dependencies = {}
-+ self.dev_dependencies = set()
-
- @classmethod
- def from_json(cls, metadata):
-- self = cls()
--
- md = metadata
-- self.name = md["name"]
-+ self = cls(md["name"], md["version"])
-+
- self.license = md["license"]
- self.license_file = md["license_file"]
- self.readme = md["readme"]
- self.description = md.get("description")
-- self.version = md["version"]
-- version = "={}".format(self.version)
--
-- # Targets
-- self.targets = [Target(tgt["kind"][0], tgt["name"]) for tgt in md["targets"]]
--
-- # Provides
-- # All optional dependencies are also features
-- # https://github.com/rust-lang/cargo/issues/4911
-- features = itertools.chain((x["name"] for x in md["dependencies"] if x["optional"]),
-- md["features"])
-- provides = Dependency(self.name, version, features=features, provides=True)
-- self.provides = str(provides).split(" and ")
--
-- ev = rustcfg.Evaluator.platform()
--
-- # Dependencies
-- for dep in md["dependencies"]:
-- kind = dep["kind"]
-- if kind is None:
-- requires = self.requires
-- elif kind == "build":
-- requires = self.build_requires
-- elif kind == "dev":
-- requires = self.test_requires
-- else:
-- raise ValueError("Unknown kind: {!r}, please report bug.".format(kind))
-
-- target = dep["target"]
-- if target is None:
-- pass
-+ # dependencies + build-dependencies runtime
-+ deps_by_name = {dep["name"]: Dependency.from_json(dep)
-+ for dep in md["dependencies"]
-+ if dep["kind"] != "dev"}
-+
-+ deps_by_feature = {}
-+ for feature, f_deps in md["features"].items():
-+ features = {None}
-+ deps = set()
-+ for dep in f_deps:
-+ if dep in md["features"]:
-+ features.add(dep)
-+ else:
-+ pkg, _, f = dep.partition("/")
-+ dep = copy.deepcopy(deps_by_name[pkg])
-+ if f:
-+ dep.features = {f}
-+ deps.add(dep)
-+ deps_by_feature[feature] = (features, deps)
-+
-+ mandatory_deps = set()
-+ for dep in deps_by_name.values():
-+ if dep.optional:
-+ deps_by_feature[dep.name] = ({None}, {copy.deepcopy(dep)})
- else:
-- cond = ev.parse_and_eval(target)
-- if not cond:
-- print(f'Dependency {dep["name"]} for target {target!r} is not needed, ignoring.',
-- file=sys.stderr)
-- continue
-+ mandatory_deps.add(copy.deepcopy(dep))
-+ deps_by_feature[None] = (set(), mandatory_deps)
-+
-+ if "default" not in deps_by_feature:
-+ deps_by_feature["default"] = ({None}, set())
-
-- requires.append(Dependency(dep["name"], dep["req"], features=dep["features"]))
-+ self.dependencies = deps_by_feature
-+ self.dev_dependencies = {Dependency.from_json(dep)
-+ for dep in md["dependencies"]
-+ if dep["kind"] == "dev"}
-+
-+ self.targets = {Target(tgt["name"], tgt["kind"][0])
-+ for tgt in md["targets"]}
-
- return self
-
- @classmethod
- def from_file(cls, path):
- metadata = subprocess.check_output(["cargo", "read-manifest",
-- "--manifest-path={}".format(path)])
-+ f"--manifest-path={path}"])
- return cls.from_json(json.loads(metadata))
-+
-+ @property
-+ def all_dependencies(self):
-+ return set().union(*(x[1] for x in self.dependencies.values()))
-+
-+ def provides(self, feature=None):
-+ if feature not in self.dependencies:
-+ raise KeyError(f"Feature {feature!r} doesn't exist")
-+ return Dependency(self.name, f"={self.version}", features={feature})
-+
-+ @classmethod
-+ def _resolve(cls, deps_by_feature, feature):
-+ all_features = set()
-+ all_deps = set()
-+ ff, dd = copy.deepcopy(deps_by_feature[feature])
-+ all_features |= ff
-+ all_deps |= dd
-+ for f in ff:
-+ ff1, dd1 = cls._resolve(deps_by_feature, f)
-+ all_features |= ff1
-+ all_deps |= dd1
-+ return all_features, all_deps
-+
-+ def requires(self, feature=None, resolve=False):
-+ if resolve:
-+ return self._resolve(self.dependencies, feature)[1]
-+ else:
-+ features, deps = self.dependencies[feature]
-+ fdeps = set(Dependency(self.name, f"={self.version}", features={feature})
-+ for feature in features)
-+ return fdeps | deps
-+
-+def normalize_deps(deps):
-+ return set().union(*(d.normalize() for d in deps))
-diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
-index 7dbcc3f..0d9a80b 100644
---- a/rust2rpm/templates/main.spec
-+++ b/rust2rpm/templates/main.spec
-@@ -48,82 +48,102 @@ Patch0: {{ patch_file }}
- ExclusiveArch: %{rust_arches}
-
- BuildRequires: rust-packaging
--{% if include_build_requires %}
--{% if md.requires|length > 0 %}
--# [dependencies]
--{% for req in md.requires|sort(attribute="name") %}
-+{# We will put all non-optional and optional dependencies until
-+ https://github.com/rust-lang/cargo/issues/5133
-+ is solved
-+{% set buildrequires = normalize_deps(md.requires("default", resolve=True))|sort %}
-+#}
-+{% set buildrequires = normalize_deps(md.all_dependencies)|sort %}
-+{% for req in buildrequires %}
- BuildRequires: {{ req }}
- {% endfor %}
--{% endif %}
--{% if md.build_requires|length > 0 %}
--# [build-dependencies]
--{% for req in md.build_requires|sort(attribute="name") %}
--BuildRequires: {{ req }}
--{% endfor %}
--{% endif %}
--{% if md.test_requires|length > 0 %}
-+{% set testrequires = normalize_deps(md.dev_dependencies)|sort %}
-+{% if testrequires|length > 0 %}
- %if %{with check}
--# [dev-dependencies]
--{% for req in md.test_requires|sort(attribute="name") %}
-+ {% for req in testrequires %}
- BuildRequires: {{ req }}
--{% endfor %}
-+ {% endfor %}
- %endif
- {% endif %}
--{% endif %}
-
--%description
-+%global _description \
-+{% if md.description is none %}
- %{summary}.
-+{% else %}
-+{{ md.description|wordwrap(wrapstring="\\\n")|trim }}
-+{% endif %}
-+
-+%description %{_description}
-
- {% if include_main %}
- %package -n %{crate}
- Summary: %{summary}
--{% if rust_group is defined %}
-+ {% if rust_group is defined %}
- Group: # FIXME
--{% endif %}
-+ {% endif %}
-
- %description -n %{crate}
- %{summary}.
-
--{% endif %}
-+%files -n %{crate}
-+ {% if md.license_file is not none %}
-+%license {{ md.license_file }}
-+ {% endif %}
-+ {% if md.readme is not none %}
-+%doc {{ md.readme }}
-+ {% endif %}
-+ {% for bin in bins %}
-+%{_bindir}/{{ bin.name }}
-+ {% endfor %}
-+
-+{% endif -%}
-+
- {% if include_devel %}
--%package devel
-+ {% set features = md.dependencies.keys()|list %}
-+ {% do features.remove(None) %}
-+ {% do features.remove("default") %}
-+ {% set features = features|sort %}
-+ {% do features.insert(0, None) %}
-+ {% do features.insert(1, "default") %}
-+ {% for feature in features %}
-+ {% set pkg = "-n %%{name}+%s-devel"|format(feature) if feature is not none else " devel" %}
-+%package {{ pkg }}
- Summary: %{summary}
--{% if rust_group is defined %}
-+ {% if rust_group is defined %}
- Group: {{ rust_group }}
--{% endif %}
-+ {% endif %}
- BuildArch: noarch
--{% if include_provides %}
--{% for prv in md.provides %}
--Provides: {{ prv }}
--{% endfor %}
--{% endif %}
--{% if include_requires %}
-+ {% if include_provides %}
-+Provides: {{ md.provides(feature) }}
-+ {% endif %}
-+ {% if include_requires %}
- Requires: cargo
--{% if md.requires|length > 0 %}
--# [dependencies]
--{% for req in md.requires|sort(attribute="name") %}
--Requires: {{ req }}
--{% endfor %}
--{% endif %}
--{% if md.build_requires|length > 0 %}
--# [build-dependencies]
--{% for req in md.build_requires|sort(attribute="name") %}
-+ {% for req in md.requires(feature)|map("string")|sort %}
- Requires: {{ req }}
--{% endfor %}
--{% endif %}
--{% endif %}
-+ {% endfor %}
-+ {% endif %}
-
--%description devel
--{% if md.description is none %}
--%{summary}.
--{% else %}
--{{ md.description|wordwrap|trim }}
--{% endif %}
-+%description {{ pkg }} %{_description}
-
- This package contains library source intended for building other packages
--which use %{crate} from crates.io.
-+which use {% if feature is not none %}"{{ feature }}" feature of {% endif %}"%{crate}" crate.
-+
-+%files {{ pkg }}
-+ {% if feature is none %}
-+ {% if md.license_file is not none %}
-+%license {{ md.license_file }}
-+ {% endif %}
-+ {% if md.readme is not none %}
-+%doc {{ md.readme }}
-+ {% endif %}
-+%{cargo_registry}/%{crate}-%{version}/
-+ {% else %}
-+%ghost %{cargo_registry}/%{crate}-%{version}/Cargo.toml
-+ {% endif %}
-+
-+ {% endfor %}
-+{% endif -%}
-
--{% endif %}
- %prep
- {% if md.name != crate %}
- %autosetup -n %{real_crate}-%{version} -p1
-@@ -143,29 +163,5 @@ which use %{crate} from crates.io.
- %cargo_test
- %endif
-
--{% if include_main %}
--%files -n %{crate}
--{% if md.license_file is not none %}
--%license {{ md.license_file }}
--{% endif %}
--{% if md.readme is not none %}
--%doc {{ md.readme }}
--{% endif %}
--{% for bin in bins %}
--%{_bindir}/{{ bin.name }}
--{% endfor %}
--
--{% endif %}
--{% if include_devel %}
--%files devel
--{% if md.license_file is not none %}
--%license {{ md.license_file }}
--{% endif %}
--{% if md.readme is not none %}
--%doc {{ md.readme }}
--{% endif %}
--%{cargo_registry}/%{crate}-%{version}/
--
--{% endif %}
- %changelog
- {% include target ~ "-changelog.spec.inc" %}
-diff --git a/test.py b/test.py
-index b856fdd..30263b4 100644
---- a/test.py
-+++ b/test.py
-@@ -1,318 +1,43 @@
--import os
--import shutil
--import subprocess
--import sys
--import tempfile
--import textwrap
--
- import pytest
-
- import rust2rpm
-
--DUMMY_LIB = """
--pub fn say_hello() {
-- println!("Hello, World!");
--}
--"""
--DEPGEN = os.path.join(os.path.dirname(__file__), "cargodeps.py")
--
--
--(a)pytest.mark.parametrize("req, features, rpmdep", [
-- ("=1.0.0", [],
-- "crate(test) = 1.0.0"),
-- ("=1.0.0", ["feature"],
-- "(crate(test) = 1.0.0 with crate(test/feature))"),
-- (">=1.0.0,<2.0.0", [],
-+(a)pytest.mark.parametrize("req, rpmdep", [
-+ ("^1.2.3",
-+ "(crate(test) >= 1.2.3 with crate(test) < 2.0.0)"),
-+ ("^1.2",
-+ "(crate(test) >= 1.2.0 with crate(test) < 2.0.0)"),
-+ ("^1",
- "(crate(test) >= 1.0.0 with crate(test) < 2.0.0)"),
-- (">=1.0.0,<2.0.0", ["feature"],
-- "((crate(test) >= 1.0.0 with crate(test) < 2.0.0) with crate(test/feature))"),
-+ ("^0.2.3",
-+ "(crate(test) >= 0.2.3 with crate(test) < 0.3.0)"),
-+ ("^0.2",
-+ "(crate(test) >= 0.2.0 with crate(test) < 0.3.0)"),
-+ ("^0.0.3",
-+ "(crate(test) >= 0.0.3 with crate(test) < 0.0.4)"),
-+ ("^0.0",
-+ "(crate(test) >= 0.0.0 with crate(test) < 0.1.0)"),
-+ ("^0",
-+ "(crate(test) >= 0.0.0 with crate(test) < 1.0.0)"),
-+ ("~1.2.3",
-+ "(crate(test) >= 1.2.3 with crate(test) < 1.3.0)"),
-+ ("~1.2",
-+ "(crate(test) >= 1.2.0 with crate(test) < 1.3.0)"),
-+ ("~1",
-+ "(crate(test) >= 1.0.0 with crate(test) < 2.0.0)"),
-+ ("*",
-+ "crate(test)"),
-+ (">= 1.2.0",
-+ "crate(test) >= 1.2.0"),
-+ ("> 1",
-+ "crate(test) > 1.0.0"),
-+ ("< 2",
-+ "crate(test) < 2.0.0"),
-+ ("= 1.2.3",
-+ "crate(test) = 1.2.3"),
-+ (">= 1.2, < 1.5",
-+ "(crate(test) >= 1.2.0 with crate(test) < 1.5.0)"),
- ])
--def test_dependency(req, features, rpmdep):
-- dep = rust2rpm.Dependency("test", req, features)
-+def test_dependency(req, rpmdep):
-+ dep = rust2rpm.Dependency("test", req)
- assert str(dep) == rpmdep
--
--(a)pytest.fixture
--def cargo_toml(request):
-- def make_cargo_toml(contents):
-- toml = os.path.join(tmpdir, "Cargo.toml")
-- with open(toml, "w") as fobj:
-- fobj.write(textwrap.dedent(contents))
-- return toml
--
-- tmpdir = tempfile.mkdtemp(prefix="cargo-deps-")
-- srcdir = os.path.join(tmpdir, "src")
-- os.mkdir(srcdir)
-- with open(os.path.join(srcdir, "lib.rs"), "w") as fobj:
-- fobj.write(DUMMY_LIB)
--
-- def finalize():
-- shutil.rmtree(tmpdir)
-- request.addfinalizer(finalize)
--
-- return make_cargo_toml
--
--(a)pytest.mark.parametrize("toml, provides, requires", [
--
-- # Basic provides
-- ("""
-- [package]
-- name = "hello"
-- version = "0.0.0"
-- """,
-- ["crate(hello) = 0.0.0"],
-- []),
--
-- # Basic provides for feature
-- ("""
-- [package]
-- name = "hello"
-- version = "1.2.3"
--
-- [features]
-- color = []
-- """,
-- ["crate(hello) = 1.2.3",
-- "crate(hello/color) = 1.2.3"],
-- []),
--
-- # Provides for optional dependencies
-- ("""
-- [package]
-- name = "hello"
-- version = "1.2.3"
--
-- [dependencies]
-- non_optional = "1"
-- serde = { version = "1", optional = true }
-- rand = { version = "0.4", optional = true }
--
-- [features]
-- std = []
-- v1 = ["rand"]
-- """,
-- ["crate(hello) = 1.2.3",
-- "crate(hello/rand) = 1.2.3",
-- "crate(hello/serde) = 1.2.3",
-- "crate(hello/std) = 1.2.3",
-- "crate(hello/v1) = 1.2.3"],
-- ["(crate(non_optional) >= 1.0.0 with crate(non_optional) < 2.0.0)",
-- "(crate(rand) >= 0.4.0 with crate(rand) < 0.5.0)",
-- "(crate(serde) >= 1.0.0 with crate(serde) < 2.0.0)"]),
--
-- # Caret requirements
-- ("""
-- [package]
-- name = "hello"
-- version = "0.0.0"
--
-- [dependencies]
-- libc = "^0"
-- """,
-- ["crate(hello) = 0.0.0"],
-- ["(crate(libc) >= 0.0.0 with crate(libc) < 1.0.0)"]),
-- ("""
-- [package]
-- name = "hello"
-- version = "0.0.0"
--
-- [dependencies]
-- libc = "^0.0"
-- """,
-- ["crate(hello) = 0.0.0"],
-- ["(crate(libc) >= 0.0.0 with crate(libc) < 0.1.0)"]),
-- ("""
-- [package]
-- name = "hello"
-- version = "0.0.0"
--
-- [dependencies]
-- libc = "^0.0.3"
-- """,
-- ["crate(hello) = 0.0.0"],
-- ["(crate(libc) >= 0.0.3 with crate(libc) < 0.0.4)"]),
-- ("""
-- [package]
-- name = "hello"
-- version = "0.0.0"
--
-- [dependencies]
-- libc = "^0.2.3"
-- """,
-- ["crate(hello) = 0.0.0"],
-- ["(crate(libc) >= 0.2.3 with crate(libc) < 0.3.0)"]),
-- ("""
-- [package]
-- name = "hello"
-- version = "0.0.0"
--
-- [dependencies]
-- libc = "^1"
-- """,
-- ["crate(hello) = 0.0.0"],
-- ["(crate(libc) >= 1.0.0 with crate(libc) < 2.0.0)"]),
-- ("""
-- [package]
-- name = "hello"
-- version = "0.0.0"
--
-- [dependencies]
-- libc = "^1.2"
-- """,
-- ["crate(hello) = 0.0.0"],
-- ["(crate(libc) >= 1.2.0 with crate(libc) < 2.0.0)"]),
-- ("""
-- [package]
-- name = "hello"
-- version = "0.0.0"
--
-- [dependencies]
-- libc = "^1.2.3"
-- """,
-- ["crate(hello) = 0.0.0"],
-- ["(crate(libc) >= 1.2.3 with crate(libc) < 2.0.0)"]),
--
-- # Tilde requirements
-- ("""
-- [package]
-- name = "hello"
-- version = "0.0.0"
--
-- [dependencies]
-- libc = "~1"
-- """,
-- ["crate(hello) = 0.0.0"],
-- ["(crate(libc) >= 1.0.0 with crate(libc) < 2.0.0)"]),
-- ("""
-- [package]
-- name = "hello"
-- version = "0.0.0"
--
-- [dependencies]
-- libc = "~1.2"
-- """,
-- ["crate(hello) = 0.0.0"],
-- ["(crate(libc) >= 1.2.0 with crate(libc) < 1.3.0)"]),
-- ("""
-- [package]
-- name = "hello"
-- version = "0.0.0"
--
-- [dependencies]
-- libc = "~1.2.3"
-- """,
-- ["crate(hello) = 0.0.0"],
-- ["(crate(libc) >= 1.2.3 with crate(libc) < 1.3.0)"]),
--
-- # Wildcard requirements
-- ("""
-- [package]
-- name = "hello"
-- version = "0.0.0"
--
-- [dependencies]
-- libc = "*"
-- """,
-- ["crate(hello) = 0.0.0"],
-- ["crate(libc)"]),
-- ("""
-- [package]
-- name = "hello"
-- version = "0.0.0"
--
-- [dependencies]
-- libc = "1.*"
-- """,
-- ["crate(hello) = 0.0.0"],
-- ["(crate(libc) >= 1.0.0 with crate(libc) < 2.0.0)"]),
-- ("""
-- [package]
-- name = "hello"
-- version = "0.0.0"
--
-- [dependencies]
-- libc = "1.2.*"
-- """,
-- ["crate(hello) = 0.0.0"],
-- ["(crate(libc) >= 1.2.0 with crate(libc) < 1.3.0)"]),
-- ("""
-- [package]
-- name = "hello"
-- version = "0.0.0"
--
-- [dependencies]
-- libc = "1.*.*"
-- """,
-- ["crate(hello) = 0.0.0"],
-- ["(crate(libc) >= 1.0.0 with crate(libc) < 2.0.0)"]),
--
-- # Inequality requirements
-- ("""
-- [package]
-- name = "hello"
-- version = "0.0.0"
--
-- [dependencies]
-- libc = ">= 1.2.0"
-- """,
-- ["crate(hello) = 0.0.0"],
-- ["crate(libc) >= 1.2.0"]),
-- ("""
-- [package]
-- name = "hello"
-- version = "0.0.0"
--
-- [dependencies]
-- libc = "> 1"
-- """,
-- ["crate(hello) = 0.0.0"],
-- ["crate(libc) > 1.0.0"]),
-- ("""
-- [package]
-- name = "hello"
-- version = "0.0.0"
--
-- [dependencies]
-- libc = "< 2"
-- """,
-- ["crate(hello) = 0.0.0"],
-- ["crate(libc) < 2.0.0"]),
-- ("""
-- [package]
-- name = "hello"
-- version = "0.0.0"
--
-- [dependencies]
-- libc = "= 1.2.3"
-- """,
-- ["crate(hello) = 0.0.0"],
-- ["crate(libc) = 1.2.3"]),
--
-- # Multiple requirements
-- ("""
-- [package]
-- name = "hello"
-- version = "0.0.0"
--
-- [dependencies]
-- libc = ">= 1.2, < 1.5"
-- """,
-- ["crate(hello) = 0.0.0"],
-- ["(crate(libc) >= 1.2.0 with crate(libc) < 1.5.0)"]),
--
-- # Pre-release requirements
-- ("""
-- [package]
-- name = "hello"
-- version = "0.0.0-alpha"
--
-- [dependencies]
-- foo-bar = "1.2.3-beta"
-- """,
-- ["crate(hello) = 0.0.0~alpha"],
-- ["(crate(foo-bar) >= 1.2.3~beta with crate(foo-bar) < 1.2.3)"]),
--
--])
--def test_depgen(toml, provides, requires, cargo_toml):
-- md = rust2rpm.Metadata.from_file(cargo_toml(toml))
-- assert [str(x) for x in md.provides] == provides
-- assert [str(x) for x in md.requires] == requires
---
-2.21.0
-
diff --git a/0008-add-support-for-dependencies-with-same-name.patch b/0008-add-support-for-dependencies-with-same-name.patch
deleted file mode 100644
index 5412d76..0000000
--- a/0008-add-support-for-dependencies-with-same-name.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From a1d3a84645aa7bbe5ca07b60bead1ddf90a21cc1 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Tue, 30 Oct 2018 20:37:38 +0100
-Subject: [PATCH 08/19] add support for dependencies with same name
-
-Reported-by: Josh Stone <jistone(a)redhat.com>
-References: https://internals.rust-lang.org/t/optional-dependencies-with-same-name/8728
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- rust2rpm/metadata.py | 32 ++++++++++++++++++++------------
- 1 file changed, 20 insertions(+), 12 deletions(-)
-
-diff --git a/rust2rpm/metadata.py b/rust2rpm/metadata.py
-index 4929cdd..328b67a 100644
---- a/rust2rpm/metadata.py
-+++ b/rust2rpm/metadata.py
-@@ -1,5 +1,6 @@
- __all__ = ["Dependency", "Metadata"]
-
-+import collections
- import copy
- import json
- import subprocess
-@@ -126,9 +127,11 @@ class Metadata:
- self.description = md.get("description")
-
- # dependencies + build-dependencies runtime
-- deps_by_name = {dep["name"]: Dependency.from_json(dep)
-- for dep in md["dependencies"]
-- if dep["kind"] != "dev"}
-+ deps_by_name = collections.defaultdict(list)
-+ for dep in md["dependencies"]:
-+ if dep["kind"] == "dev":
-+ continue
-+ deps_by_name[dep["name"]].append(Dependency.from_json(dep))
-
- deps_by_feature = {}
- for feature, f_deps in md["features"].items():
-@@ -139,18 +142,23 @@ class Metadata:
- features.add(dep)
- else:
- pkg, _, f = dep.partition("/")
-- dep = copy.deepcopy(deps_by_name[pkg])
-- if f:
-- dep.features = {f}
-- deps.add(dep)
-+ for dep in deps_by_name[pkg]:
-+ dep = copy.deepcopy(dep)
-+ if f:
-+ dep.features = {f}
-+ deps.add(dep)
- deps_by_feature[feature] = (features, deps)
-
- mandatory_deps = set()
-- for dep in deps_by_name.values():
-- if dep.optional:
-- deps_by_feature[dep.name] = ({None}, {copy.deepcopy(dep)})
-- else:
-- mandatory_deps.add(copy.deepcopy(dep))
-+ for name, deps in deps_by_name.items():
-+ fdeps = set()
-+ for dep in deps:
-+ if dep.optional:
-+ fdeps.add(copy.deepcopy(dep))
-+ else:
-+ mandatory_deps.add(copy.deepcopy(dep))
-+ if fdeps:
-+ deps_by_feature[name] = ({None}, fdeps)
- deps_by_feature[None] = (set(), mandatory_deps)
-
- if "default" not in deps_by_feature:
---
-2.21.0
-
diff --git a/0009-add-support-for-feeding-user-configuration.patch b/0009-add-support-for-feeding-user-configuration.patch
deleted file mode 100644
index 8985513..0000000
--- a/0009-add-support-for-feeding-user-configuration.patch
+++ /dev/null
@@ -1,148 +0,0 @@
-From 197150ee2e862edcd46f7ab02c9e4d17e49ca75d Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Wed, 31 Oct 2018 18:03:21 +0100
-Subject: [PATCH 09/19] add support for feeding user configuration
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- README.md | 26 ++++++++++++++++++++++++++
- README.rst | 5 -----
- rust2rpm/__main__.py | 13 +++++++++++++
- rust2rpm/templates/main.spec | 17 ++++++++++++++++-
- 4 files changed, 55 insertions(+), 6 deletions(-)
- create mode 100644 README.md
- delete mode 100644 README.rst
-
-diff --git a/README.md b/README.md
-new file mode 100644
-index 0000000..22b4b30
---- /dev/null
-+++ b/README.md
-@@ -0,0 +1,26 @@
-+# rust2rpm
-+
-+Convert Rust crates to RPM.
-+
-+## `.rust2rpm.conf`
-+
-+You can place configuration file which is used as source for additional
-+information for spec generation.
-+
-+Some simple example would be better than many words ;)
-+
-+```ini
-+[DEFAULT]
-+buildrequires =
-+ pkgconfig(foo) >= 1.2.3
-+lib.requires =
-+ pkgconfig(foo) >= 1.2.3
-+
-+[fedora]
-+bin.requires =
-+ findutils
-+buildrequires =
-+lib.requires =
-+lib+default.requires =
-+ pkgconfig(bar) >= 2.0.0
-+```
-diff --git a/README.rst b/README.rst
-deleted file mode 100644
-index 8866027..0000000
---- a/README.rst
-+++ /dev/null
-@@ -1,5 +0,0 @@
--========
--rust2rpm
--========
--
--Convert Rust crates to RPM.
-diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
-index d19cb47..c691274 100644
---- a/rust2rpm/__main__.py
-+++ b/rust2rpm/__main__.py
-@@ -199,6 +199,11 @@ def make_diff_metadata(crate, version, patch=False, store=False):
- shutil.copy2(cratef, os.path.join(os.getcwd(), f"{metadata.name}-{version}.crate"))
- return crate, diff, metadata
-
-+def to_list(s):
-+ if not s:
-+ return []
-+ return list(filter(None, (l.strip() for l in s.splitlines())))
-+
- def main():
- parser = argparse.ArgumentParser("rust2rpm",
- formatter_class=argparse.RawTextHelpFormatter)
-@@ -232,6 +237,7 @@ def main():
- store=args.store_crate)
-
- JINJA_ENV.globals["normalize_deps"] = normalize_deps
-+ JINJA_ENV.globals["to_list"] = to_list
- template = JINJA_ENV.get_template("main.spec")
-
- if args.patch and len(diff) > 0:
-@@ -287,6 +293,13 @@ def main():
- kwargs["license"] = license
- kwargs["license_comments"] = comments
-
-+ conf = configparser.ConfigParser(interpolation=configparser.ExtendedInterpolation())
-+ conf.read(".rust2rpm.conf")
-+ if args.target not in conf:
-+ conf.add_section(args.target)
-+
-+ kwargs["distconf"] = conf[args.target]
-+
- spec_file = f"rust-{metadata.name}.spec"
- spec_contents = template.render(md=metadata, patch_file=patch_file, **kwargs)
- if args.stdout:
-diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
-index 0d9a80b..d901e6d 100644
---- a/rust2rpm/templates/main.spec
-+++ b/rust2rpm/templates/main.spec
-@@ -65,6 +65,9 @@ BuildRequires: {{ req }}
- {% endfor %}
- %endif
- {% endif %}
-+{% for req in to_list(distconf.get("buildrequires"))|sort %}
-+BuildRequires: {{ req }}
-+{% endfor %}
-
- %global _description \
- {% if md.description is none %}
-@@ -81,6 +84,9 @@ Summary: %{summary}
- {% if rust_group is defined %}
- Group: # FIXME
- {% endif %}
-+ {% for req in to_list(distconf.get("bin.requires"))|sort %}
-+Requires: {{ req }}
-+ {% endfor %}
-
- %description -n %{crate}
- %{summary}.
-@@ -106,7 +112,13 @@ Group: # FIXME
- {% do features.insert(0, None) %}
- {% do features.insert(1, "default") %}
- {% for feature in features %}
-- {% set pkg = "-n %%{name}+%s-devel"|format(feature) if feature is not none else " devel" %}
-+ {% if feature is none %}
-+ {% set pkg = " devel" %}
-+ {% set conf_prefix = "lib" %}
-+ {% else %}
-+ {% set pkg = "-n %%{name}+%s-devel"|format(feature) %}
-+ {% set conf_prefix = "lib+%s"|format(feature) %}
-+ {% endif %}
- %package {{ pkg }}
- Summary: %{summary}
- {% if rust_group is defined %}
-@@ -122,6 +134,9 @@ Requires: cargo
- Requires: {{ req }}
- {% endfor %}
- {% endif %}
-+ {% for req in to_list(distconf.get("%s.requires"|format(conf_prefix)))|sort %}
-+Requires: {{ req }}
-+ {% endfor %}
-
- %description {{ pkg }} %{_description}
-
---
-2.21.0
-
diff --git a/0010-trivial-use-f-strings-everywhere.patch b/0010-trivial-use-f-strings-everywhere.patch
deleted file mode 100644
index c98be77..0000000
--- a/0010-trivial-use-f-strings-everywhere.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From 83ea3796cd28ec7689b39e7dc7a70bd11af1abf1 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Wed, 31 Oct 2018 17:00:58 +0100
-Subject: [PATCH 10/19] trivial: use f-strings everywhere
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- rust2rpm/__main__.py | 22 +++++++++++-----------
- 1 file changed, 11 insertions(+), 11 deletions(-)
-
-diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
-index c691274..b60e6c4 100644
---- a/rust2rpm/__main__.py
-+++ b/rust2rpm/__main__.py
-@@ -79,7 +79,7 @@ def detect_packager():
- if git is not None:
- name = subprocess.check_output([git, "config", "user.name"], universal_newlines=True).strip()
- email = subprocess.check_output([git, "config", "user.email"], universal_newlines=True).strip()
-- return "{} <{}>".format(name, email)
-+ return f"{name} <{email}>"
-
- return None
-
-@@ -108,23 +108,23 @@ def local_crate(crate, version):
- def download(crate, version):
- if version is None:
- # Now we need to get latest version
-- url = requests.compat.urljoin(API_URL, "crates/{}/versions".format(crate))
-+ url = requests.compat.urljoin(API_URL, f"crates/{crate}/versions")
- req = requests.get(url)
- req.raise_for_status()
- versions = req.json()["versions"]
- version = next(version["num"] for version in versions if not version["yanked"])
-
- os.makedirs(CACHEDIR, exist_ok=True)
-- cratef_base = "{}-{}.crate".format(crate, version)
-+ cratef_base = f"{crate}-{version}.crate"
- cratef = os.path.join(CACHEDIR, cratef_base)
- if not os.path.isfile(cratef):
-- url = requests.compat.urljoin(API_URL, "crates/{}/{}/download#".format(crate, version))
-+ url = requests.compat.urljoin(API_URL, f"crates/{crate}/{version}/download#")
- req = requests.get(url, stream=True)
- req.raise_for_status()
- total = int(req.headers["Content-Length"])
- with remove_on_error(cratef), \
- open(cratef, "wb") as f:
-- for chunk in tqdm.tqdm(req.iter_content(), "Downloading {}".format(cratef_base),
-+ for chunk in tqdm.tqdm(req.iter_content(), f"Downloading {cratef_base}".format(cratef_base),
- total=total, unit="B", unit_scale=True):
- f.write(chunk)
- return cratef, crate, version
-@@ -132,14 +132,14 @@ def download(crate, version):
- @contextlib.contextmanager
- def toml_from_crate(cratef, crate, version):
- with tempfile.TemporaryDirectory() as tmpdir:
-- target_dir = "{}/".format(tmpdir)
-+ target_dir = f"{tmpdir}/"
- with tarfile.open(cratef, "r") as archive:
- for n in archive.getnames():
- if not os.path.abspath(os.path.join(target_dir, n)).startswith(target_dir):
- raise Exception("Unsafe filenames!")
- archive.extractall(target_dir)
-- toml_relpath = "{}-{}/Cargo.toml".format(crate, version)
-- toml = "{}/{}".format(tmpdir, toml_relpath)
-+ toml_relpath = f"{crate}-{version}/Cargo.toml"
-+ toml = f"{tmpdir}/{toml_relpath}"
- if not os.path.isfile(toml):
- raise IOError("crate does not contain Cargo.toml file")
- yield toml
-@@ -270,7 +270,7 @@ def main():
- kwargs["include_provides"] = True
- kwargs["include_requires"] = True
- else:
-- assert False, "Unknown target {!r}".format(args.target)
-+ assert False, f"Unknown target {args.target!r}"
-
- if args.target == "mageia":
- kwargs["pkg_release"] = "%mkrel 1"
-@@ -303,10 +303,10 @@ def main():
- spec_file = f"rust-{metadata.name}.spec"
- spec_contents = template.render(md=metadata, patch_file=patch_file, **kwargs)
- if args.stdout:
-- print("# {}".format(spec_file))
-+ print(f"# {spec_file}")
- print(spec_contents)
- if patch_file is not None:
-- print("# {}".format(patch_file))
-+ print(f"# {patch_file}")
- print("".join(diff), end="")
- else:
- with open(spec_file, "w") as fobj:
---
-2.21.0
-
diff --git a/0011-Add-option-to-not-generate-a-default-changelog-entry.patch b/0011-Add-option-to-not-generate-a-default-changelog-entry.patch
deleted file mode 100644
index 8457b4a..0000000
--- a/0011-Add-option-to-not-generate-a-default-changelog-entry.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 294c6f571c0f4f7ed5a4fcb34142b0d332c55f29 Mon Sep 17 00:00:00 2001
-From: Neal Gompa <ngompa13(a)gmail.com>
-Date: Sun, 11 Nov 2018 11:06:27 -0500
-Subject: [PATCH 11/19] Add option to not generate a default changelog entry
-
-For Rust packages created through the OBS source service, the
-changelog is managed by an external <pkg>.changes file that is
-transformed into an RPM changelog and appended to the spec file
-automatically by the Open Build Service.
-
-Having a default entry means that the changelog handling will not
-always work correctly and package builds may fail due to changelog
-entries not being in reverse chronological order.
-
-This also is a future enabler for other workflows for external
-changelog management in automated package builds.
-
-Signed-off-by: Neal Gompa <ngompa13(a)gmail.com>
----
- rust2rpm/__main__.py | 7 +++++++
- rust2rpm/templates/main.spec | 4 +++-
- 2 files changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
-index b60e6c4..747328e 100644
---- a/rust2rpm/__main__.py
-+++ b/rust2rpm/__main__.py
-@@ -209,6 +209,8 @@ def main():
- formatter_class=argparse.RawTextHelpFormatter)
- parser.add_argument("--show-license-map", action="store_true",
- help="Print license mappings and exit")
-+ parser.add_argument("--no-auto-changelog-entry", action="store_true",
-+ help="Do not generate a changelog entry")
- parser.add_argument("-", "--stdout", action="store_true",
- help="Print spec and patches into stdout")
- parser.add_argument("-t", "--target", action="store",
-@@ -261,6 +263,11 @@ def main():
- raise ValueError("No bins and no libs")
- kwargs["include_devel"] = is_lib
-
-+ if args.no_auto_changelog_entry:
-+ kwargs["auto_changelog_entry"] = False
-+ else:
-+ kwargs["auto_changelog_entry"] = True
-+
- if args.target in ("fedora", "mageia", "opensuse"):
- kwargs["include_build_requires"] = True
- kwargs["include_provides"] = False
-diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
-index d901e6d..84bd97d 100644
---- a/rust2rpm/templates/main.spec
-+++ b/rust2rpm/templates/main.spec
-@@ -179,4 +179,6 @@ which use {% if feature is not none %}"{{ feature }}" feature of {% endif %}"%{c
- %endif
-
- %changelog
--{% include target ~ "-changelog.spec.inc" %}
-+{% if auto_changelog_entry %}
-+ {% include target ~ "-changelog.spec.inc" %}
-+{% endif %}
---
-2.21.0
-
diff --git a/0012-Set-CARGO_HOME-to-the-local-.config.patch b/0012-Set-CARGO_HOME-to-the-local-.config.patch
deleted file mode 100644
index e9e37de..0000000
--- a/0012-Set-CARGO_HOME-to-the-local-.config.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From b4e25038296cd57eba639a059e8baaf139a5d287 Mon Sep 17 00:00:00 2001
-From: Josh Stone <jistone(a)redhat.com>
-Date: Fri, 7 Dec 2018 13:58:41 -0800
-Subject: [PATCH 12/19] Set CARGO_HOME to the local .config
-
----
- data/macros.cargo | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/data/macros.cargo b/data/macros.cargo
-index 7fb025b..e760721 100644
---- a/data/macros.cargo
-+++ b/data/macros.cargo
-@@ -1,4 +1,8 @@
--%__cargo %{_bindir}/cargo
-+# Since cargo 1.31, install only uses $CARGO_HOME/config, ignoring $PWD.
-+# https://github.com/rust-lang/cargo/issues/6397
-+# But we can set CARGO_HOME locally, which is a good idea anyway to make sure
-+# it never writes to ~/.cargo during rpmbuild.
-+%__cargo %{_bindir}/env CARGO_HOME=.cargo %{_bindir}/cargo
- %__cargo_common_opts %{?_smp_mflags}
- %__cargo_inspector %{_bindir}/cargo-inspector
-
---
-2.21.0
-
diff --git a/0013-Set-the-install-root-in-.cargo-config.patch b/0013-Set-the-install-root-in-.cargo-config.patch
deleted file mode 100644
index 0b97943..0000000
--- a/0013-Set-the-install-root-in-.cargo-config.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From a04e95bc4f807139bd3c4b75f46fd9a60ec1db8f Mon Sep 17 00:00:00 2001
-From: Josh Stone <jistone(a)redhat.com>
-Date: Fri, 7 Dec 2018 13:59:03 -0800
-Subject: [PATCH 13/19] Set the install root in .cargo/config
-
----
- data/macros.cargo | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/data/macros.cargo b/data/macros.cargo
-index e760721..9a9ce6a 100644
---- a/data/macros.cargo
-+++ b/data/macros.cargo
-@@ -20,6 +20,9 @@ rustc = "%{__rustc}"\
- rustdoc = "%{__rustdoc}"\
- rustflags = %{__global_rustflags_toml}\
- \
-+[install]\
-+root = "%{buildroot}%{_prefix}"\
-+\
- [term]\
- verbose = true\
- \
-@@ -81,7 +84,6 @@ if %__cargo_is_bin; then \
- %{shrink:%{__cargo} install \
- %{__cargo_common_opts} \
- --path . \
-- --root %{buildroot}%{_prefix} \
- %{__cargo_parse_opts %{-n} %{-a} %{-f:-f%{-f*}}} \
- %* \
- }\
---
-2.21.0
-
diff --git a/0014-licensing-fix-zlib-license-translation.patch b/0014-licensing-fix-zlib-license-translation.patch
deleted file mode 100644
index a04f0db..0000000
--- a/0014-licensing-fix-zlib-license-translation.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 7c00b0f29085166b1a89aec766945b10dc7aca23 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
-Date: Sat, 1 Dec 2018 15:40:08 +0100
-Subject: [PATCH 14/19] licensing: fix zlib license translation
-
-The file was mangled, and something about "teeworlds" was inserted
-into the line for zlib. The spdx database doesn't list "teeworlds
-license", so let's just remove that part.
-Both [1] and [2] agree that "zlib" and "zlib license" are the same thing.
-
-[1] https://spdx.org/licenses/Zlib
-[2] https://fedoraproject.org/wiki/Licensing:Main#Good_Licenses
-
-Fixes #61.
----
- rust2rpm/spdx_to_fedora.csv | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/rust2rpm/spdx_to_fedora.csv b/rust2rpm/spdx_to_fedora.csv
-index 829571a..1ca5a7e 100644
---- a/rust2rpm/spdx_to_fedora.csv
-+++ b/rust2rpm/spdx_to_fedora.csv
-@@ -306,8 +306,7 @@ Zed License,Zed,Zed,,,
- Zend License v2.0,Zend-2.0,Zend,,,
- Zimbra Public License v1.3,Zimbra-1.3,,,Fedora bad list,
- Zimbra Public License v1.4,Zimbra-1.4,,,not on Fedora list,
--zlib License,Zlib,"zlib
--Teeworlds",,,Teeworlds License
-+zlib License,Zlib,zlib,,,
- zlib/libpng License with Acknowledgement,zlib-acknowledgement,zlib with acknowledgement,,,
- Zope Public License 1.1,ZPL-1.1,,,This specific version not on Fedora list,
- Zope Public License 2.0,ZPL-2.0,ZPLv2.0,,,
---
-2.21.0
-
diff --git a/0015-licensing-rename-EPL-to-EPL-1.0-and-add-EPL-2.0.patch b/0015-licensing-rename-EPL-to-EPL-1.0-and-add-EPL-2.0.patch
deleted file mode 100644
index ffe83aa..0000000
--- a/0015-licensing-rename-EPL-to-EPL-1.0-and-add-EPL-2.0.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From b0d2756917b380a5d66d2407dbeb8891c51875e8 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
-Date: Sat, 1 Dec 2018 15:46:08 +0100
-Subject: [PATCH 15/19] licensing: rename EPL to EPL-1.0 and add EPL-2.0
-
-According to https://fedoraproject.org/wiki/Licensing:Main#Software_License_List
-EPL-1.0 and EPL-2.0 are the short tags that should be used now.
-(C.f. https://spdx.org/licenses/EPL-2.0.html.)
-
-Fixes #64.
----
- rust2rpm/spdx_to_fedora.csv | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/rust2rpm/spdx_to_fedora.csv b/rust2rpm/spdx_to_fedora.csv
-index 1ca5a7e..c42e66e 100644
---- a/rust2rpm/spdx_to_fedora.csv
-+++ b/rust2rpm/spdx_to_fedora.csv
-@@ -112,7 +112,8 @@ DOC License,DOC,DOC,,,
- Dotseqn License,Dotseqn,Dotseqn,,,
- DSDP License,DSDP,DSDP,,,
- dvipdfm License,dvipdfm,dvipdfm,,,
--Eclipse Public License 1.0,EPL-1.0,EPL,,,
-+Eclipse Public License 1.0,EPL-1.0,EPL-1.0,,,
-+Eclipse Public License 2.0,EPL-2.0,EPL-2.0,,,
- Educational Community License v1.0,ECL-1.0,ECL 1.0,,,
- Educational Community License v2.0,ECL-2.0,ECL 2.0,,,
- eGenix.com Public License 1.1.0,eGenix,eGenix,,,
---
-2.21.0
-
diff --git a/0016-Add-support-for-prerelease-versions.patch b/0016-Add-support-for-prerelease-versions.patch
deleted file mode 100644
index cbffd10..0000000
--- a/0016-Add-support-for-prerelease-versions.patch
+++ /dev/null
@@ -1,160 +0,0 @@
-From 00c0c5cec90d5d6abbfd4acb2f5d65439b4bfd27 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Sat, 26 Jan 2019 08:33:37 +0100
-Subject: [PATCH 16/19] Add support for prerelease versions
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- data/macros.rust-srpm | 38 ++++++++++++++++++++++++++++++++++++
- rust2rpm/metadata.py | 18 +++++++++++------
- rust2rpm/templates/main.spec | 10 +++-------
- test.py | 8 ++++++++
- 4 files changed, 61 insertions(+), 13 deletions(-)
-
-diff --git a/data/macros.rust-srpm b/data/macros.rust-srpm
-index f2bae9d..872b87f 100644
---- a/data/macros.rust-srpm
-+++ b/data/macros.rust-srpm
-@@ -1 +1,39 @@
- %rust_arches x86_64 i686 armv7hl aarch64 ppc64 ppc64le s390x
-+%version_no_tilde() %{lua:
-+ local sep = rpm.expand('%1')
-+ local ver = rpm.expand('%2')
-+\
-+ if sep == '%1' then
-+ sep = '-'
-+ end
-+\
-+ if ver == '%2' then
-+ ver = rpm.expand('%version')
-+ end
-+ ver = ver:gsub('~', sep)
-+\
-+ print(ver)
-+}
-+%__crates_url https://crates.io/api/v1/crates/
-+%crates_source() %{lua:
-+ local crate = rpm.expand('%1')
-+ local version = rpm.expand('%2')
-+ local url = rpm.expand('%__crates_url')
-+\
-+ if crate == '%1' then
-+ crate = rpm.expand('%real_crate')
-+ end
-+ if crate == '%real_crate' then
-+ crate = rpm.expand('%crate')
-+ end
-+ if crate == '%crate' then
-+ crate = rpm.expand('%name')
-+ end
-+\
-+ if version == '%2' then
-+ version = rpm.expand('%version')
-+ end
-+ version = version:gsub('~', '-')
-+\
-+ print(url .. crate .. '/' .. version .. '/download#/' .. crate .. '-' .. version .. '.crate')
-+}
-diff --git a/rust2rpm/metadata.py b/rust2rpm/metadata.py
-index 328b67a..f0718d5 100644
---- a/rust2rpm/metadata.py
-+++ b/rust2rpm/metadata.py
-@@ -45,11 +45,13 @@ class Dependency:
- # Any means any
- continue
- ver = req.spec
-- if ver.prerelease:
-- raise NotImplementedError(f"Pre-release requirement is not supported: {ver}")
- if req.kind in (req.KIND_NEQ, req.KIND_EMPTY):
- raise NotImplementedError(f"'!=' and empty kinds are not supported: {req}")
-- coerced = semver.Version.coerce(str(ver))
-+ coerced = str(semver.Version.coerce(str(ver)))
-+ if ver.prerelease:
-+ coerced = coerced.replace("-", "~")
-+ # This will advance us to closest stable version (2.0.0-beta.6 2.0.0)
-+ ver = ver.next_patch()
- if req.kind == req.KIND_EQUAL:
- req.kind = req.KIND_SHORTEQ
- if req.kind in (req.KIND_CARET, req.KIND_COMPATIBLE):
-@@ -107,7 +109,11 @@ class Dependency:
- class Metadata:
- def __init__(self, name, version):
- self.name = name
-- self.version = version
-+ self._version = version
-+ version_normalized = Dependency._normalize_req(f"={self._version}")
-+ if len(version_normalized) != 1:
-+ raise Exception(f"Incorrect version: {self._version}")
-+ self.version = version_normalized[0][1]
- self.license = None
- self.license_file = None
- self.readme = None
-@@ -187,7 +193,7 @@ class Metadata:
- def provides(self, feature=None):
- if feature not in self.dependencies:
- raise KeyError(f"Feature {feature!r} doesn't exist")
-- return Dependency(self.name, f"={self.version}", features={feature})
-+ return Dependency(self.name, f"={self._version}", features={feature})
-
- @classmethod
- def _resolve(cls, deps_by_feature, feature):
-@@ -207,7 +213,7 @@ class Metadata:
- return self._resolve(self.dependencies, feature)[1]
- else:
- features, deps = self.dependencies[feature]
-- fdeps = set(Dependency(self.name, f"={self.version}", features={feature})
-+ fdeps = set(Dependency(self.name, f"={self._version}", features={feature})
- for feature in features)
- return fdeps | deps
-
-diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
-index 84bd97d..1ebef7b 100644
---- a/rust2rpm/templates/main.spec
-+++ b/rust2rpm/templates/main.spec
-@@ -31,11 +31,7 @@ License: {{ license|default("# FIXME") }}
- {{ license_comments }}
- {% endif %}
- URL: https://crates.io/crates/{{ crate }}
--{% if md.name != crate %}
--Source0: https://crates.io/api/v1/crates/%{real_crate}/%{version}/download#/%{crat...
--{% else %}
--Source0: https://crates.io/api/v1/crates/%{crate}/%{version}/download#/%{crate}-%{...
--{% endif %}
-+Source: %{crates_source}
- {% if patch_file is not none %}
- {% if target == "opensuse" %}
- # PATCH-FIX-OPENSUSE {{ patch_file }} -- Initial patched metadata
-@@ -161,9 +157,9 @@ which use {% if feature is not none %}"{{ feature }}" feature of {% endif %}"%{c
-
- %prep
- {% if md.name != crate %}
--%autosetup -n %{real_crate}-%{version} -p1
-+%autosetup -n %{real_crate}-%{version_no_tilde} -p1
- {% else %}
--%autosetup -n %{crate}-%{version} -p1
-+%autosetup -n %{crate}-%{version_no_tilde} -p1
- {% endif %}
- %cargo_prep
-
-diff --git a/test.py b/test.py
-index 30263b4..035df79 100644
---- a/test.py
-+++ b/test.py
-@@ -37,6 +37,14 @@ import rust2rpm
- "crate(test) = 1.2.3"),
- (">= 1.2, < 1.5",
- "(crate(test) >= 1.2.0 with crate(test) < 1.5.0)"),
-+ ("^2.0.0-alpha.6",
-+ "(crate(test) >= 2.0.0~alpha.6 with crate(test) < 3.0.0)"),
-+ ("^0.1.0-alpha.6",
-+ "(crate(test) >= 0.1.0~alpha.6 with crate(test) < 0.2.0)"),
-+ ("^0.0.1-alpha.6",
-+ "(crate(test) >= 0.0.1~alpha.6 with crate(test) < 0.0.2)"),
-+ ("^0.0.0-alpha.6",
-+ "(crate(test) >= 0.0.0~alpha.6 with crate(test) < 0.0.1)"),
- ])
- def test_dependency(req, rpmdep):
- dep = rust2rpm.Dependency("test", req)
---
-2.21.0
-
diff --git a/0017-data-Cargo-doesn-t-escape-paths-with-space.patch b/0017-data-Cargo-doesn-t-escape-paths-with-space.patch
deleted file mode 100644
index 0d031b0..0000000
--- a/0017-data-Cargo-doesn-t-escape-paths-with-space.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 84a73bfa24ce11602a1f19554dc495125be4d0aa Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Sun, 17 Feb 2019 17:19:25 +0100
-Subject: [PATCH 17/19] data: Cargo doesn't escape paths with space
-
-When building matrixmultiply v0.2.2:
-
-BUILDSTDERR: /usr/bin/cp: cannot stat 'spare': No such file or directory
-BUILDSTDERR: /usr/bin/cp: failed to get attributes of 'kernels': No such file or directory
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- data/macros.cargo | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/data/macros.cargo b/data/macros.cargo
-index 9a9ce6a..9a375d0 100644
---- a/data/macros.cargo
-+++ b/data/macros.cargo
-@@ -74,7 +74,7 @@ if %__cargo_is_lib; then \
- CRATE_VERSION=$(%__cargo_inspector --version Cargo.toml) \
- REG_DIR=%{buildroot}%{cargo_registry}/$CRATE_NAME-$CRATE_VERSION \
- %{__mkdir} -p $REG_DIR \
-- %{__cargo} package -l | xargs %{__cp} --parents -a -t $REG_DIR \
-+ %{__cargo} package -l | xargs -d '\n' %{__cp} --parents -a -t $REG_DIR \
- %if ! %{with check} \
- %{__cp} -a Cargo.toml.orig $REG_DIR/Cargo.toml \
- %endif \
---
-2.21.0
-
diff --git a/0018-data-Escape-n-properly.patch b/0018-data-Escape-n-properly.patch
deleted file mode 100644
index c9bffdf..0000000
--- a/0018-data-Escape-n-properly.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 7f0a499ff3fca046869ab754151ae068903c4ab9 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Sun, 10 Mar 2019 10:14:28 +0100
-Subject: [PATCH 18/19] data: Escape `\n` properly
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- data/macros.cargo | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/data/macros.cargo b/data/macros.cargo
-index 9a375d0..96dc354 100644
---- a/data/macros.cargo
-+++ b/data/macros.cargo
-@@ -74,7 +74,7 @@ if %__cargo_is_lib; then \
- CRATE_VERSION=$(%__cargo_inspector --version Cargo.toml) \
- REG_DIR=%{buildroot}%{cargo_registry}/$CRATE_NAME-$CRATE_VERSION \
- %{__mkdir} -p $REG_DIR \
-- %{__cargo} package -l | xargs -d '\n' %{__cp} --parents -a -t $REG_DIR \
-+ %{__cargo} package -l | xargs -d '\\\n' %{__cp} --parents -a -t $REG_DIR \
- %if ! %{with check} \
- %{__cp} -a Cargo.toml.orig $REG_DIR/Cargo.toml \
- %endif \
---
-2.21.0
-
diff --git a/0019-Do-not-pull-optional-dependencies.patch b/0019-Do-not-pull-optional-dependencies.patch
deleted file mode 100644
index 814c920..0000000
--- a/0019-Do-not-pull-optional-dependencies.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 604938a8bab778c58333643c3e069533327699e2 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Sat, 9 Mar 2019 22:04:49 +0100
-Subject: [PATCH 19/19] Do not pull optional dependencies
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- data/macros.cargo | 20 +++++++++++---------
- rust2rpm/templates/main.spec | 5 -----
- 2 files changed, 11 insertions(+), 14 deletions(-)
-
-diff --git a/data/macros.cargo b/data/macros.cargo
-index 96dc354..999d787 100644
---- a/data/macros.cargo
-+++ b/data/macros.cargo
-@@ -2,8 +2,10 @@
- # https://github.com/rust-lang/cargo/issues/6397
- # But we can set CARGO_HOME locally, which is a good idea anyway to make sure
- # it never writes to ~/.cargo during rpmbuild.
--%__cargo %{_bindir}/env CARGO_HOME=.cargo %{_bindir}/cargo
--%__cargo_common_opts %{?_smp_mflags}
-+# We also need RUSTC_BOOTSTRAP since we use -Z avoid-dev-deps
-+# until it gets stabilized: https://github.com/rust-lang/cargo/issues/5133
-+%__cargo %{_bindir}/env CARGO_HOME=.cargo RUSTC_BOOTSTRAP=1 %{_bindir}/cargo
-+%__cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps
- %__cargo_inspector %{_bindir}/cargo-inspector
-
- %cargo_registry %{_datadir}/cargo/registry
-@@ -36,10 +38,6 @@ registry = "https://crates.io"\
- replace-with = "local-registry"\
- EOF\
- %{__rm} -f Cargo.lock \
--%if ! %{with check} \
--# https://github.com/rust-lang/cargo/issues/3732 \
--%{__awk} -i inplace -v INPLACE_SUFFIX=.orig '/^\\\[dev-dependencies/{f=1;next} /^\\\[/{f=0}; !f' Cargo.toml \
--%endif \
- )
-
- %__cargo_parse_opts(naf:) %{shrink:\
-@@ -74,10 +72,14 @@ if %__cargo_is_lib; then \
- CRATE_VERSION=$(%__cargo_inspector --version Cargo.toml) \
- REG_DIR=%{buildroot}%{cargo_registry}/$CRATE_NAME-$CRATE_VERSION \
- %{__mkdir} -p $REG_DIR \
-+# Drop all dependency/features information \
-+# so that cargo doesn't fail resolving dependencies: \
-+# https://github.com/rust-lang/cargo/pull/6729 \
-+ %{__awk} -i inplace -v INPLACE_SUFFIX=.deps '/^\\\[((.+\\\.)?((dev|build)-)?dependencies|features)/{f=1;next} /^\\\[/{f=0}; !f' Cargo.toml \
- %{__cargo} package -l | xargs -d '\\\n' %{__cp} --parents -a -t $REG_DIR \
--%if ! %{with check} \
-- %{__cp} -a Cargo.toml.orig $REG_DIR/Cargo.toml \
--%endif \
-+ %{__mv} Cargo.toml{.deps,} \
-+ %{__cp} -a Cargo.toml $REG_DIR/Cargo.toml \
-+ %{__rm} -f $REG_DIR/Cargo.toml.orig \
- echo '{"files":{},"package":""}' > $REG_DIR/.cargo-checksum.json \
- fi \
- if %__cargo_is_bin; then \
-diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
-index 1ebef7b..f0c5445 100644
---- a/rust2rpm/templates/main.spec
-+++ b/rust2rpm/templates/main.spec
-@@ -44,12 +44,7 @@ Patch0: {{ patch_file }}
- ExclusiveArch: %{rust_arches}
-
- BuildRequires: rust-packaging
--{# We will put all non-optional and optional dependencies until
-- https://github.com/rust-lang/cargo/issues/5133
-- is solved
- {% set buildrequires = normalize_deps(md.requires("default", resolve=True))|sort %}
--#}
--{% set buildrequires = normalize_deps(md.all_dependencies)|sort %}
- {% for req in buildrequires %}
- BuildRequires: {{ req }}
- {% endfor %}
---
-2.21.0
-
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 7412fdf..f9db08f 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -4,33 +4,13 @@
%global debug_package %{nil}
Name: rust-packaging
-Version: 6
-Release: 28%{?dist}
+Version: 7
+Release: 1%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
URL: https://pagure.io/fedora-rust/rust2rpm
Source0: https://releases.pagure.org/fedora-rust/rust2rpm/rust2rpm-%{version}.tar.xz
-Patch0001: 0001-name-spec-patch_file-by-real-crate-name.patch
-Patch0002: 0002-generate-doc-statements.patch
-Patch0003: 0003-do-better-for-renamed-crates.patch
-Patch0004: 0004-remove-pre-3.6-leftovers.patch
-Patch0005: 0005-Remove-half-downloaded-crate-on-C.patch
-Patch0006: 0006-Throw-an-error-if-s-is-used-without-a-crate.patch
-Patch0007: 0007-split-features-into-subpackages.patch
-Patch0008: 0008-add-support-for-dependencies-with-same-name.patch
-Patch0009: 0009-add-support-for-feeding-user-configuration.patch
-Patch0010: 0010-trivial-use-f-strings-everywhere.patch
-Patch0011: 0011-Add-option-to-not-generate-a-default-changelog-entry.patch
-Patch0012: 0012-Set-CARGO_HOME-to-the-local-.config.patch
-Patch0013: 0013-Set-the-install-root-in-.cargo-config.patch
-Patch0014: 0014-licensing-fix-zlib-license-translation.patch
-Patch0015: 0015-licensing-rename-EPL-to-EPL-1.0-and-add-EPL-2.0.patch
-Patch0016: 0016-Add-support-for-prerelease-versions.patch
-Patch0017: 0017-data-Cargo-doesn-t-escape-paths-with-space.patch
-Patch0018: 0018-data-Escape-n-properly.patch
-# https://pagure.io/fedora-rust/rust2rpm/pull-request/68
-Patch0019: 0019-Do-not-pull-optional-dependencies.patch
ExclusiveArch: %{rust_arches}
@@ -53,7 +33,6 @@ BuildRequires: python3-setuptools
BuildRequires: python3-pytest
BuildRequires: cargo
BuildRequires: python3dist(semantic-version)
-BuildRequires: python3dist(rustcfg)
%endif
Requires: cargo
Provides: rust2rpm = %{version}-%{release}
@@ -91,6 +70,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Tue Apr 23 16:17:30 CEST 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 7-1
+- Update to 7
+
* Sun Mar 10 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-28
- Install $PWD/Cargo.toml into $REG_DIR/Cargo.toml
diff --git a/sources b/sources
index 9f6fa6f..bd3fb1f 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (rust2rpm-6.tar.xz) = 408988351156d858f7429d990d7330f216b54add671c6e90e54917e717ad6f2b3b99e414289c252e6a2b5dfad73ce430ac73f03265f6e174ef53edcee34d0fe2
+SHA512 (rust2rpm-7.tar.xz) = 8ef6d882cdb44673a60fac51e43d3ed6913e1df70e5e5596c4b4464c5361bf16cad66b9380eea2cf95ddcacfb1ca0291a20e0fac757756ddcd63bb9dd7dc9e93
commit 9d3869c3408529507f7902b2b2903f0de9edf4a3
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Mon Mar 11 00:09:20 2019 +0100
Install $PWD/Cargo.toml into $REG_DIR/Cargo.toml
For things which are just including files, deps one doesn't get
installed into the registry.
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0019-Do-not-pull-optional-dependencies.patch b/0019-Do-not-pull-optional-dependencies.patch
index 5b8a70e..814c920 100644
--- a/0019-Do-not-pull-optional-dependencies.patch
+++ b/0019-Do-not-pull-optional-dependencies.patch
@@ -1,4 +1,4 @@
-From 643bf0d32982b67854a39586244b25f54518de02 Mon Sep 17 00:00:00 2001
+From 604938a8bab778c58333643c3e069533327699e2 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat, 9 Mar 2019 22:04:49 +0100
Subject: [PATCH 19/19] Do not pull optional dependencies
@@ -10,7 +10,7 @@ Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
2 files changed, 11 insertions(+), 14 deletions(-)
diff --git a/data/macros.cargo b/data/macros.cargo
-index 96dc354..f950e79 100644
+index 96dc354..999d787 100644
--- a/data/macros.cargo
+++ b/data/macros.cargo
@@ -2,8 +2,10 @@
@@ -50,7 +50,7 @@ index 96dc354..f950e79 100644
- %{__cp} -a Cargo.toml.orig $REG_DIR/Cargo.toml \
-%endif \
+ %{__mv} Cargo.toml{.deps,} \
-+ %{__mv} $REG_DIR/Cargo.toml{.deps,} \
++ %{__cp} -a Cargo.toml $REG_DIR/Cargo.toml \
+ %{__rm} -f $REG_DIR/Cargo.toml.orig \
echo '{"files":{},"package":""}' > $REG_DIR/.cargo-checksum.json \
fi \
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 0ea39e1..7412fdf 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -5,7 +5,7 @@
Name: rust-packaging
Version: 6
-Release: 27%{?dist}
+Release: 28%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -91,6 +91,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sun Mar 10 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-28
+- Install $PWD/Cargo.toml into $REG_DIR/Cargo.toml
+
* Sun Mar 10 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-27
- Restore Cargo.toml.deps into $PWD/Cargo.toml
commit 56c2dbcef5aaf80855873b67964e94c48d137df3
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sun Mar 10 23:34:05 2019 +0100
Restore Cargo.toml.deps into $PWD/Cargo.toml
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0019-Do-not-pull-optional-dependencies.patch b/0019-Do-not-pull-optional-dependencies.patch
index 80d715a..5b8a70e 100644
--- a/0019-Do-not-pull-optional-dependencies.patch
+++ b/0019-Do-not-pull-optional-dependencies.patch
@@ -1,16 +1,16 @@
-From 72d9afecc6da319e1d59170f07a7b78afbbb1a68 Mon Sep 17 00:00:00 2001
+From 643bf0d32982b67854a39586244b25f54518de02 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat, 9 Mar 2019 22:04:49 +0100
Subject: [PATCH 19/19] Do not pull optional dependencies
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
- data/macros.cargo | 13 +++++++++++--
+ data/macros.cargo | 20 +++++++++++---------
rust2rpm/templates/main.spec | 5 -----
- 2 files changed, 11 insertions(+), 7 deletions(-)
+ 2 files changed, 11 insertions(+), 14 deletions(-)
diff --git a/data/macros.cargo b/data/macros.cargo
-index 96dc354..b1a2e0b 100644
+index 96dc354..f950e79 100644
--- a/data/macros.cargo
+++ b/data/macros.cargo
@@ -2,8 +2,10 @@
@@ -26,7 +26,18 @@ index 96dc354..b1a2e0b 100644
%__cargo_inspector %{_bindir}/cargo-inspector
%cargo_registry %{_datadir}/cargo/registry
-@@ -74,10 +76,17 @@ if %__cargo_is_lib; then \
+@@ -36,10 +38,6 @@ registry = "https://crates.io"\
+ replace-with = "local-registry"\
+ EOF\
+ %{__rm} -f Cargo.lock \
+-%if ! %{with check} \
+-# https://github.com/rust-lang/cargo/issues/3732 \
+-%{__awk} -i inplace -v INPLACE_SUFFIX=.orig '/^\\\[dev-dependencies/{f=1;next} /^\\\[/{f=0}; !f' Cargo.toml \
+-%endif \
+ )
+
+ %__cargo_parse_opts(naf:) %{shrink:\
+@@ -74,10 +72,14 @@ if %__cargo_is_lib; then \
CRATE_VERSION=$(%__cargo_inspector --version Cargo.toml) \
REG_DIR=%{buildroot}%{cargo_registry}/$CRATE_NAME-$CRATE_VERSION \
%{__mkdir} -p $REG_DIR \
@@ -35,12 +46,12 @@ index 96dc354..b1a2e0b 100644
+# https://github.com/rust-lang/cargo/pull/6729 \
+ %{__awk} -i inplace -v INPLACE_SUFFIX=.deps '/^\\\[((.+\\\.)?((dev|build)-)?dependencies|features)/{f=1;next} /^\\\[/{f=0}; !f' Cargo.toml \
%{__cargo} package -l | xargs -d '\\\n' %{__cp} --parents -a -t $REG_DIR \
- %if ! %{with check} \
- %{__cp} -a Cargo.toml.orig $REG_DIR/Cargo.toml \
-+%else \
-+ %{__cp} -a Cargo.toml.deps $REG_DIR/Cargo.toml \
- %endif \
-+ %{__rm} -f $REG_DIR/Cargo.toml.{orig,deps} \
+-%if ! %{with check} \
+- %{__cp} -a Cargo.toml.orig $REG_DIR/Cargo.toml \
+-%endif \
++ %{__mv} Cargo.toml{.deps,} \
++ %{__mv} $REG_DIR/Cargo.toml{.deps,} \
++ %{__rm} -f $REG_DIR/Cargo.toml.orig \
echo '{"files":{},"package":""}' > $REG_DIR/.cargo-checksum.json \
fi \
if %__cargo_is_bin; then \
diff --git a/rust-packaging.spec b/rust-packaging.spec
index f315a93..0ea39e1 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -5,7 +5,7 @@
Name: rust-packaging
Version: 6
-Release: 26%{?dist}
+Release: 27%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -91,6 +91,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sun Mar 10 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-27
+- Restore Cargo.toml.deps into $PWD/Cargo.toml
+
* Sun Mar 10 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-26
- Strip out target dependencies too
commit 2736dc0ce240753e28a3a2d5092925317eb8b5fe
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sun Mar 10 20:12:00 2019 +0100
Strip out target dependencies too
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0019-Do-not-pull-optional-dependencies.patch b/0019-Do-not-pull-optional-dependencies.patch
index 0d746e6..80d715a 100644
--- a/0019-Do-not-pull-optional-dependencies.patch
+++ b/0019-Do-not-pull-optional-dependencies.patch
@@ -1,4 +1,4 @@
-From 5fbb0558d401c26f04e274b6b1fc5b0ed9d6e4cd Mon Sep 17 00:00:00 2001
+From 72d9afecc6da319e1d59170f07a7b78afbbb1a68 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat, 9 Mar 2019 22:04:49 +0100
Subject: [PATCH 19/19] Do not pull optional dependencies
@@ -10,7 +10,7 @@ Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
2 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/data/macros.cargo b/data/macros.cargo
-index 96dc354..a816578 100644
+index 96dc354..b1a2e0b 100644
--- a/data/macros.cargo
+++ b/data/macros.cargo
@@ -2,8 +2,10 @@
@@ -33,7 +33,7 @@ index 96dc354..a816578 100644
+# Drop all dependency/features information \
+# so that cargo doesn't fail resolving dependencies: \
+# https://github.com/rust-lang/cargo/pull/6729 \
-+ %{__awk} -i inplace -v INPLACE_SUFFIX=.deps '/^\\\[((dev-)?dependencies|features)/{f=1;next} /^\\\[/{f=0}; !f' Cargo.toml \
++ %{__awk} -i inplace -v INPLACE_SUFFIX=.deps '/^\\\[((.+\\\.)?((dev|build)-)?dependencies|features)/{f=1;next} /^\\\[/{f=0}; !f' Cargo.toml \
%{__cargo} package -l | xargs -d '\\\n' %{__cp} --parents -a -t $REG_DIR \
%if ! %{with check} \
%{__cp} -a Cargo.toml.orig $REG_DIR/Cargo.toml \
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 2418d1d..f315a93 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -5,7 +5,7 @@
Name: rust-packaging
Version: 6
-Release: 25%{?dist}
+Release: 26%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -91,6 +91,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sun Mar 10 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-26
+- Strip out target dependencies too
+
* Sun Mar 10 2019 Igor Gnatenko <ignatnekobrain(a)fedoraproject.org> - 6-25
- Do not error on removing files which do not exist
commit e9a1f98b3d12d3661a330dc1ff11a1593f8a594e
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sun Mar 10 10:42:12 2019 +0100
Do not error on removing files which do not exist
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0019-Do-not-pull-optional-dependencies.patch b/0019-Do-not-pull-optional-dependencies.patch
index 363fdc4..0d746e6 100644
--- a/0019-Do-not-pull-optional-dependencies.patch
+++ b/0019-Do-not-pull-optional-dependencies.patch
@@ -1,4 +1,4 @@
-From ccc7ed42c168675efc4b9719dad12800b92450d5 Mon Sep 17 00:00:00 2001
+From 5fbb0558d401c26f04e274b6b1fc5b0ed9d6e4cd Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat, 9 Mar 2019 22:04:49 +0100
Subject: [PATCH 19/19] Do not pull optional dependencies
@@ -10,7 +10,7 @@ Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
2 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/data/macros.cargo b/data/macros.cargo
-index 96dc354..4e8f0c9 100644
+index 96dc354..a816578 100644
--- a/data/macros.cargo
+++ b/data/macros.cargo
@@ -2,8 +2,10 @@
@@ -40,7 +40,7 @@ index 96dc354..4e8f0c9 100644
+%else \
+ %{__cp} -a Cargo.toml.deps $REG_DIR/Cargo.toml \
%endif \
-+ %{__rm} $REG_DIR/Cargo.toml.{orig,deps} \
++ %{__rm} -f $REG_DIR/Cargo.toml.{orig,deps} \
echo '{"files":{},"package":""}' > $REG_DIR/.cargo-checksum.json \
fi \
if %__cargo_is_bin; then \
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 80e49bc..2418d1d 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -5,7 +5,7 @@
Name: rust-packaging
Version: 6
-Release: 24%{?dist}
+Release: 25%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -91,6 +91,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sun Mar 10 2019 Igor Gnatenko <ignatnekobrain(a)fedoraproject.org> - 6-25
+- Do not error on removing files which do not exist
+
* Sun Mar 10 2019 Igor Gnatenko <ignatnekobrain(a)fedoraproject.org> - 6-24
- Escape `\n` properly in macro file
commit 60f3d8f016932795e43c88d70d9bb7d733da9a92
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sun Mar 10 10:16:51 2019 +0100
Escape `\n` properly in macro file
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0001-name-spec-patch_file-by-real-crate-name.patch b/0001-name-spec-patch_file-by-real-crate-name.patch
index 54c5624..d8df04a 100644
--- a/0001-name-spec-patch_file-by-real-crate-name.patch
+++ b/0001-name-spec-patch_file-by-real-crate-name.patch
@@ -1,7 +1,7 @@
From 0dc9fc182edf0791ca697f587e48dd39948d63c1 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Mon, 10 Sep 2018 23:37:40 +0200
-Subject: [PATCH 01/18] name spec/patch_file by real crate name
+Subject: [PATCH 01/19] name spec/patch_file by real crate name
When renaming using patch file, we really want to change file names too.
diff --git a/0002-generate-doc-statements.patch b/0002-generate-doc-statements.patch
index 5264c8d..7d5550b 100644
--- a/0002-generate-doc-statements.patch
+++ b/0002-generate-doc-statements.patch
@@ -1,7 +1,7 @@
From 561280a0ea35f226ef243526be2bbb656db44af6 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Mon, 10 Sep 2018 23:40:18 +0200
-Subject: [PATCH 02/18] generate %doc statements
+Subject: [PATCH 02/19] generate %doc statements
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
diff --git a/0003-do-better-for-renamed-crates.patch b/0003-do-better-for-renamed-crates.patch
index 2f72093..97d5815 100644
--- a/0003-do-better-for-renamed-crates.patch
+++ b/0003-do-better-for-renamed-crates.patch
@@ -1,7 +1,7 @@
From 2050880140d4953b9ebdc7211e30df3ccf5dd61d Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue, 11 Sep 2018 00:06:50 +0200
-Subject: [PATCH 03/18] do better for renamed crates
+Subject: [PATCH 03/19] do better for renamed crates
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
diff --git a/0004-remove-pre-3.6-leftovers.patch b/0004-remove-pre-3.6-leftovers.patch
index 34dcf6a..017fb26 100644
--- a/0004-remove-pre-3.6-leftovers.patch
+++ b/0004-remove-pre-3.6-leftovers.patch
@@ -1,7 +1,7 @@
From e6e9cbbb71199c2773b47fa21f1c917a167c1743 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue, 11 Sep 2018 10:43:53 +0200
-Subject: [PATCH 04/18] remove pre-3.6 leftovers
+Subject: [PATCH 04/19] remove pre-3.6 leftovers
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
diff --git a/0005-Remove-half-downloaded-crate-on-C.patch b/0005-Remove-half-downloaded-crate-on-C.patch
index 6546060..033815b 100644
--- a/0005-Remove-half-downloaded-crate-on-C.patch
+++ b/0005-Remove-half-downloaded-crate-on-C.patch
@@ -1,7 +1,7 @@
From 2f12c83d14afe71e9efed2d1be62e1e610e602e9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
Date: Fri, 17 Aug 2018 10:03:48 +0200
-Subject: [PATCH 05/18] Remove half-downloaded crate on ^C
+Subject: [PATCH 05/19] Remove half-downloaded crate on ^C
Subsequent invocations would fail with an error about a corrupted file.
We don't have support for resuming a failed download, so let's remove the
diff --git a/0006-Throw-an-error-if-s-is-used-without-a-crate.patch b/0006-Throw-an-error-if-s-is-used-without-a-crate.patch
index 8efbc88..861d233 100644
--- a/0006-Throw-an-error-if-s-is-used-without-a-crate.patch
+++ b/0006-Throw-an-error-if-s-is-used-without-a-crate.patch
@@ -1,7 +1,7 @@
From 5a1cde5b8dcaea74ebb2050879036bf46df63adc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
Date: Fri, 17 Aug 2018 10:18:59 +0200
-Subject: [PATCH 06/18] Throw an error if -s is used without a crate
+Subject: [PATCH 06/19] Throw an error if -s is used without a crate
In the future we might want to be smarter and find the crate, but let's at least
not ignore the option completely.
diff --git a/0007-split-features-into-subpackages.patch b/0007-split-features-into-subpackages.patch
index 9aba559..acf5911 100644
--- a/0007-split-features-into-subpackages.patch
+++ b/0007-split-features-into-subpackages.patch
@@ -1,7 +1,7 @@
From 2cac5e5ad5ff5472923ce333bef59679612bbaa2 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Fri, 26 Oct 2018 11:20:13 +0200
-Subject: [PATCH 07/18] split features into subpackages
+Subject: [PATCH 07/19] split features into subpackages
References: https://discussion.fedoraproject.org/t/rfc-new-crates-packaging-design-fe...
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0008-add-support-for-dependencies-with-same-name.patch b/0008-add-support-for-dependencies-with-same-name.patch
index 30b6c33..5412d76 100644
--- a/0008-add-support-for-dependencies-with-same-name.patch
+++ b/0008-add-support-for-dependencies-with-same-name.patch
@@ -1,7 +1,7 @@
From a1d3a84645aa7bbe5ca07b60bead1ddf90a21cc1 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue, 30 Oct 2018 20:37:38 +0100
-Subject: [PATCH 08/18] add support for dependencies with same name
+Subject: [PATCH 08/19] add support for dependencies with same name
Reported-by: Josh Stone <jistone(a)redhat.com>
References: https://internals.rust-lang.org/t/optional-dependencies-with-same-name/8728
diff --git a/0009-add-support-for-feeding-user-configuration.patch b/0009-add-support-for-feeding-user-configuration.patch
index e2abc6e..8985513 100644
--- a/0009-add-support-for-feeding-user-configuration.patch
+++ b/0009-add-support-for-feeding-user-configuration.patch
@@ -1,7 +1,7 @@
From 197150ee2e862edcd46f7ab02c9e4d17e49ca75d Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Wed, 31 Oct 2018 18:03:21 +0100
-Subject: [PATCH 09/18] add support for feeding user configuration
+Subject: [PATCH 09/19] add support for feeding user configuration
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
diff --git a/0010-trivial-use-f-strings-everywhere.patch b/0010-trivial-use-f-strings-everywhere.patch
index dd9436d..c98be77 100644
--- a/0010-trivial-use-f-strings-everywhere.patch
+++ b/0010-trivial-use-f-strings-everywhere.patch
@@ -1,7 +1,7 @@
From 83ea3796cd28ec7689b39e7dc7a70bd11af1abf1 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Wed, 31 Oct 2018 17:00:58 +0100
-Subject: [PATCH 10/18] trivial: use f-strings everywhere
+Subject: [PATCH 10/19] trivial: use f-strings everywhere
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
diff --git a/0011-Add-option-to-not-generate-a-default-changelog-entry.patch b/0011-Add-option-to-not-generate-a-default-changelog-entry.patch
index c03faa6..8457b4a 100644
--- a/0011-Add-option-to-not-generate-a-default-changelog-entry.patch
+++ b/0011-Add-option-to-not-generate-a-default-changelog-entry.patch
@@ -1,7 +1,7 @@
From 294c6f571c0f4f7ed5a4fcb34142b0d332c55f29 Mon Sep 17 00:00:00 2001
From: Neal Gompa <ngompa13(a)gmail.com>
Date: Sun, 11 Nov 2018 11:06:27 -0500
-Subject: [PATCH 11/18] Add option to not generate a default changelog entry
+Subject: [PATCH 11/19] Add option to not generate a default changelog entry
For Rust packages created through the OBS source service, the
changelog is managed by an external <pkg>.changes file that is
diff --git a/0012-Set-CARGO_HOME-to-the-local-.config.patch b/0012-Set-CARGO_HOME-to-the-local-.config.patch
index a8e5ea1..e9e37de 100644
--- a/0012-Set-CARGO_HOME-to-the-local-.config.patch
+++ b/0012-Set-CARGO_HOME-to-the-local-.config.patch
@@ -1,7 +1,7 @@
From b4e25038296cd57eba639a059e8baaf139a5d287 Mon Sep 17 00:00:00 2001
From: Josh Stone <jistone(a)redhat.com>
Date: Fri, 7 Dec 2018 13:58:41 -0800
-Subject: [PATCH 12/18] Set CARGO_HOME to the local .config
+Subject: [PATCH 12/19] Set CARGO_HOME to the local .config
---
data/macros.cargo | 6 +++++-
diff --git a/0013-Set-the-install-root-in-.cargo-config.patch b/0013-Set-the-install-root-in-.cargo-config.patch
index e2ef86e..0b97943 100644
--- a/0013-Set-the-install-root-in-.cargo-config.patch
+++ b/0013-Set-the-install-root-in-.cargo-config.patch
@@ -1,7 +1,7 @@
From a04e95bc4f807139bd3c4b75f46fd9a60ec1db8f Mon Sep 17 00:00:00 2001
From: Josh Stone <jistone(a)redhat.com>
Date: Fri, 7 Dec 2018 13:59:03 -0800
-Subject: [PATCH 13/18] Set the install root in .cargo/config
+Subject: [PATCH 13/19] Set the install root in .cargo/config
---
data/macros.cargo | 4 +++-
diff --git a/0014-licensing-fix-zlib-license-translation.patch b/0014-licensing-fix-zlib-license-translation.patch
index fc8a165..a04f0db 100644
--- a/0014-licensing-fix-zlib-license-translation.patch
+++ b/0014-licensing-fix-zlib-license-translation.patch
@@ -1,7 +1,7 @@
From 7c00b0f29085166b1a89aec766945b10dc7aca23 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
Date: Sat, 1 Dec 2018 15:40:08 +0100
-Subject: [PATCH 14/18] licensing: fix zlib license translation
+Subject: [PATCH 14/19] licensing: fix zlib license translation
The file was mangled, and something about "teeworlds" was inserted
into the line for zlib. The spdx database doesn't list "teeworlds
diff --git a/0015-licensing-rename-EPL-to-EPL-1.0-and-add-EPL-2.0.patch b/0015-licensing-rename-EPL-to-EPL-1.0-and-add-EPL-2.0.patch
index 76be3f8..ffe83aa 100644
--- a/0015-licensing-rename-EPL-to-EPL-1.0-and-add-EPL-2.0.patch
+++ b/0015-licensing-rename-EPL-to-EPL-1.0-and-add-EPL-2.0.patch
@@ -1,7 +1,7 @@
From b0d2756917b380a5d66d2407dbeb8891c51875e8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
Date: Sat, 1 Dec 2018 15:46:08 +0100
-Subject: [PATCH 15/18] licensing: rename EPL to EPL-1.0 and add EPL-2.0
+Subject: [PATCH 15/19] licensing: rename EPL to EPL-1.0 and add EPL-2.0
According to https://fedoraproject.org/wiki/Licensing:Main#Software_License_List
EPL-1.0 and EPL-2.0 are the short tags that should be used now.
diff --git a/0016-Add-support-for-prerelease-versions.patch b/0016-Add-support-for-prerelease-versions.patch
index 187a47d..cbffd10 100644
--- a/0016-Add-support-for-prerelease-versions.patch
+++ b/0016-Add-support-for-prerelease-versions.patch
@@ -1,7 +1,7 @@
From 00c0c5cec90d5d6abbfd4acb2f5d65439b4bfd27 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat, 26 Jan 2019 08:33:37 +0100
-Subject: [PATCH 16/18] Add support for prerelease versions
+Subject: [PATCH 16/19] Add support for prerelease versions
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
diff --git a/0017-data-Cargo-doesn-t-escape-paths-with-space.patch b/0017-data-Cargo-doesn-t-escape-paths-with-space.patch
index 90dadeb..0d031b0 100644
--- a/0017-data-Cargo-doesn-t-escape-paths-with-space.patch
+++ b/0017-data-Cargo-doesn-t-escape-paths-with-space.patch
@@ -1,7 +1,7 @@
From 84a73bfa24ce11602a1f19554dc495125be4d0aa Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sun, 17 Feb 2019 17:19:25 +0100
-Subject: [PATCH 17/18] data: Cargo doesn't escape paths with space
+Subject: [PATCH 17/19] data: Cargo doesn't escape paths with space
When building matrixmultiply v0.2.2:
diff --git a/0018-Do-not-pull-optional-dependencies.patch b/0018-Do-not-pull-optional-dependencies.patch
deleted file mode 100644
index 68f2a8c..0000000
--- a/0018-Do-not-pull-optional-dependencies.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From b0f34c2b6a7b8ca5b924e5c230f1271826114cb0 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Sat, 9 Mar 2019 22:04:49 +0100
-Subject: [PATCH 18/18] Do not pull optional dependencies
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- data/macros.cargo | 13 +++++++++++--
- rust2rpm/templates/main.spec | 5 -----
- 2 files changed, 11 insertions(+), 7 deletions(-)
-
-diff --git a/data/macros.cargo b/data/macros.cargo
-index 9a375d0..0e382c8 100644
---- a/data/macros.cargo
-+++ b/data/macros.cargo
-@@ -2,8 +2,10 @@
- # https://github.com/rust-lang/cargo/issues/6397
- # But we can set CARGO_HOME locally, which is a good idea anyway to make sure
- # it never writes to ~/.cargo during rpmbuild.
--%__cargo %{_bindir}/env CARGO_HOME=.cargo %{_bindir}/cargo
--%__cargo_common_opts %{?_smp_mflags}
-+# We also need RUSTC_BOOTSTRAP since we use -Z avoid-dev-deps
-+# until it gets stabilized: https://github.com/rust-lang/cargo/issues/5133
-+%__cargo %{_bindir}/env CARGO_HOME=.cargo RUSTC_BOOTSTRAP=1 %{_bindir}/cargo
-+%__cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps
- %__cargo_inspector %{_bindir}/cargo-inspector
-
- %cargo_registry %{_datadir}/cargo/registry
-@@ -74,10 +76,17 @@ if %__cargo_is_lib; then \
- CRATE_VERSION=$(%__cargo_inspector --version Cargo.toml) \
- REG_DIR=%{buildroot}%{cargo_registry}/$CRATE_NAME-$CRATE_VERSION \
- %{__mkdir} -p $REG_DIR \
-+# Drop all dependency/features information \
-+# so that cargo doesn't fail resolving dependencies: \
-+# https://github.com/rust-lang/cargo/pull/6729 \
-+ %{__awk} -i inplace -v INPLACE_SUFFIX=.deps '/^\\\[((dev-)?dependencies|features)/{f=1;next} /^\\\[/{f=0}; !f' Cargo.toml \
- %{__cargo} package -l | xargs -d '\n' %{__cp} --parents -a -t $REG_DIR \
- %if ! %{with check} \
- %{__cp} -a Cargo.toml.orig $REG_DIR/Cargo.toml \
-+%else \
-+ %{__cp} -a Cargo.toml.deps $REG_DIR/Cargo.toml \
- %endif \
-+ %{__rm} $REG_DIR/Cargo.toml.{orig,deps} \
- echo '{"files":{},"package":""}' > $REG_DIR/.cargo-checksum.json \
- fi \
- if %__cargo_is_bin; then \
-diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
-index 1ebef7b..f0c5445 100644
---- a/rust2rpm/templates/main.spec
-+++ b/rust2rpm/templates/main.spec
-@@ -44,12 +44,7 @@ Patch0: {{ patch_file }}
- ExclusiveArch: %{rust_arches}
-
- BuildRequires: rust-packaging
--{# We will put all non-optional and optional dependencies until
-- https://github.com/rust-lang/cargo/issues/5133
-- is solved
- {% set buildrequires = normalize_deps(md.requires("default", resolve=True))|sort %}
--#}
--{% set buildrequires = normalize_deps(md.all_dependencies)|sort %}
- {% for req in buildrequires %}
- BuildRequires: {{ req }}
- {% endfor %}
---
-2.21.0
-
diff --git a/0018-data-Escape-n-properly.patch b/0018-data-Escape-n-properly.patch
new file mode 100644
index 0000000..c9bffdf
--- /dev/null
+++ b/0018-data-Escape-n-properly.patch
@@ -0,0 +1,26 @@
+From 7f0a499ff3fca046869ab754151ae068903c4ab9 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Sun, 10 Mar 2019 10:14:28 +0100
+Subject: [PATCH 18/19] data: Escape `\n` properly
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ data/macros.cargo | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/data/macros.cargo b/data/macros.cargo
+index 9a375d0..96dc354 100644
+--- a/data/macros.cargo
++++ b/data/macros.cargo
+@@ -74,7 +74,7 @@ if %__cargo_is_lib; then \
+ CRATE_VERSION=$(%__cargo_inspector --version Cargo.toml) \
+ REG_DIR=%{buildroot}%{cargo_registry}/$CRATE_NAME-$CRATE_VERSION \
+ %{__mkdir} -p $REG_DIR \
+- %{__cargo} package -l | xargs -d '\n' %{__cp} --parents -a -t $REG_DIR \
++ %{__cargo} package -l | xargs -d '\\\n' %{__cp} --parents -a -t $REG_DIR \
+ %if ! %{with check} \
+ %{__cp} -a Cargo.toml.orig $REG_DIR/Cargo.toml \
+ %endif \
+--
+2.21.0
+
diff --git a/0019-Do-not-pull-optional-dependencies.patch b/0019-Do-not-pull-optional-dependencies.patch
new file mode 100644
index 0000000..363fdc4
--- /dev/null
+++ b/0019-Do-not-pull-optional-dependencies.patch
@@ -0,0 +1,66 @@
+From ccc7ed42c168675efc4b9719dad12800b92450d5 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Sat, 9 Mar 2019 22:04:49 +0100
+Subject: [PATCH 19/19] Do not pull optional dependencies
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ data/macros.cargo | 13 +++++++++++--
+ rust2rpm/templates/main.spec | 5 -----
+ 2 files changed, 11 insertions(+), 7 deletions(-)
+
+diff --git a/data/macros.cargo b/data/macros.cargo
+index 96dc354..4e8f0c9 100644
+--- a/data/macros.cargo
++++ b/data/macros.cargo
+@@ -2,8 +2,10 @@
+ # https://github.com/rust-lang/cargo/issues/6397
+ # But we can set CARGO_HOME locally, which is a good idea anyway to make sure
+ # it never writes to ~/.cargo during rpmbuild.
+-%__cargo %{_bindir}/env CARGO_HOME=.cargo %{_bindir}/cargo
+-%__cargo_common_opts %{?_smp_mflags}
++# We also need RUSTC_BOOTSTRAP since we use -Z avoid-dev-deps
++# until it gets stabilized: https://github.com/rust-lang/cargo/issues/5133
++%__cargo %{_bindir}/env CARGO_HOME=.cargo RUSTC_BOOTSTRAP=1 %{_bindir}/cargo
++%__cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps
+ %__cargo_inspector %{_bindir}/cargo-inspector
+
+ %cargo_registry %{_datadir}/cargo/registry
+@@ -74,10 +76,17 @@ if %__cargo_is_lib; then \
+ CRATE_VERSION=$(%__cargo_inspector --version Cargo.toml) \
+ REG_DIR=%{buildroot}%{cargo_registry}/$CRATE_NAME-$CRATE_VERSION \
+ %{__mkdir} -p $REG_DIR \
++# Drop all dependency/features information \
++# so that cargo doesn't fail resolving dependencies: \
++# https://github.com/rust-lang/cargo/pull/6729 \
++ %{__awk} -i inplace -v INPLACE_SUFFIX=.deps '/^\\\[((dev-)?dependencies|features)/{f=1;next} /^\\\[/{f=0}; !f' Cargo.toml \
+ %{__cargo} package -l | xargs -d '\\\n' %{__cp} --parents -a -t $REG_DIR \
+ %if ! %{with check} \
+ %{__cp} -a Cargo.toml.orig $REG_DIR/Cargo.toml \
++%else \
++ %{__cp} -a Cargo.toml.deps $REG_DIR/Cargo.toml \
+ %endif \
++ %{__rm} $REG_DIR/Cargo.toml.{orig,deps} \
+ echo '{"files":{},"package":""}' > $REG_DIR/.cargo-checksum.json \
+ fi \
+ if %__cargo_is_bin; then \
+diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
+index 1ebef7b..f0c5445 100644
+--- a/rust2rpm/templates/main.spec
++++ b/rust2rpm/templates/main.spec
+@@ -44,12 +44,7 @@ Patch0: {{ patch_file }}
+ ExclusiveArch: %{rust_arches}
+
+ BuildRequires: rust-packaging
+-{# We will put all non-optional and optional dependencies until
+- https://github.com/rust-lang/cargo/issues/5133
+- is solved
+ {% set buildrequires = normalize_deps(md.requires("default", resolve=True))|sort %}
+-#}
+-{% set buildrequires = normalize_deps(md.all_dependencies)|sort %}
+ {% for req in buildrequires %}
+ BuildRequires: {{ req }}
+ {% endfor %}
+--
+2.21.0
+
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 3f2294c..80e49bc 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -5,7 +5,7 @@
Name: rust-packaging
Version: 6
-Release: 23%{?dist}
+Release: 24%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -28,8 +28,9 @@ Patch0014: 0014-licensing-fix-zlib-license-translation.patch
Patch0015: 0015-licensing-rename-EPL-to-EPL-1.0-and-add-EPL-2.0.patch
Patch0016: 0016-Add-support-for-prerelease-versions.patch
Patch0017: 0017-data-Cargo-doesn-t-escape-paths-with-space.patch
-# https://pagure.io/fedora-rust/rust2rpm/pull-request/68<Paste>
-Patch0018: 0018-Do-not-pull-optional-dependencies.patch
+Patch0018: 0018-data-Escape-n-properly.patch
+# https://pagure.io/fedora-rust/rust2rpm/pull-request/68
+Patch0019: 0019-Do-not-pull-optional-dependencies.patch
ExclusiveArch: %{rust_arches}
@@ -90,6 +91,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sun Mar 10 2019 Igor Gnatenko <ignatnekobrain(a)fedoraproject.org> - 6-24
+- Escape `\n` properly in macro file
+
* Sun Mar 10 2019 Igor Gnatenko <ignatnekobrain(a)fedoraproject.org> - 6-23
- Do not pull optional deps into BRs and trivial fixes
commit 5955f7d37d64720aa2f2f4147085f23fcce36d95
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sun Mar 10 09:49:25 2019 +0100
Do not pull optional deps into BRs and trivial fixes
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0001-name-spec-patch_file-by-real-crate-name.patch b/0001-name-spec-patch_file-by-real-crate-name.patch
index 4d55717..54c5624 100644
--- a/0001-name-spec-patch_file-by-real-crate-name.patch
+++ b/0001-name-spec-patch_file-by-real-crate-name.patch
@@ -1,7 +1,7 @@
From 0dc9fc182edf0791ca697f587e48dd39948d63c1 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Mon, 10 Sep 2018 23:37:40 +0200
-Subject: [PATCH 01/14] name spec/patch_file by real crate name
+Subject: [PATCH 01/18] name spec/patch_file by real crate name
When renaming using patch file, we really want to change file names too.
@@ -33,5 +33,5 @@ index dc78828..1575ce6 100644
if args.stdout:
print("# {}".format(spec_file))
--
-2.20.1
+2.21.0
diff --git a/0002-generate-doc-statements.patch b/0002-generate-doc-statements.patch
index 42ca40d..5264c8d 100644
--- a/0002-generate-doc-statements.patch
+++ b/0002-generate-doc-statements.patch
@@ -1,7 +1,7 @@
From 561280a0ea35f226ef243526be2bbb656db44af6 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Mon, 10 Sep 2018 23:40:18 +0200
-Subject: [PATCH 02/14] generate %doc statements
+Subject: [PATCH 02/18] generate %doc statements
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
@@ -54,5 +54,5 @@ index 1aeb969..2e9f841 100644
{% endif %}
--
-2.20.1
+2.21.0
diff --git a/0003-do-better-for-renamed-crates.patch b/0003-do-better-for-renamed-crates.patch
index 3f1bc98..2f72093 100644
--- a/0003-do-better-for-renamed-crates.patch
+++ b/0003-do-better-for-renamed-crates.patch
@@ -1,7 +1,7 @@
From 2050880140d4953b9ebdc7211e30df3ccf5dd61d Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue, 11 Sep 2018 00:06:50 +0200
-Subject: [PATCH 03/14] do better for renamed crates
+Subject: [PATCH 03/18] do better for renamed crates
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
@@ -86,5 +86,5 @@ index 2e9f841..7dbcc3f 100644
%build
--
-2.20.1
+2.21.0
diff --git a/0004-remove-pre-3.6-leftovers.patch b/0004-remove-pre-3.6-leftovers.patch
index 7133f4e..34dcf6a 100644
--- a/0004-remove-pre-3.6-leftovers.patch
+++ b/0004-remove-pre-3.6-leftovers.patch
@@ -1,7 +1,7 @@
From e6e9cbbb71199c2773b47fa21f1c917a167c1743 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue, 11 Sep 2018 10:43:53 +0200
-Subject: [PATCH 04/14] remove pre-3.6 leftovers
+Subject: [PATCH 04/18] remove pre-3.6 leftovers
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
@@ -23,5 +23,5 @@ index f52d968..5adeb65 100644
+ "--manifest-path={}".format(path)])
return cls.from_json(json.loads(metadata))
--
-2.20.1
+2.21.0
diff --git a/0005-Remove-half-downloaded-crate-on-C.patch b/0005-Remove-half-downloaded-crate-on-C.patch
index 8ae52e4..6546060 100644
--- a/0005-Remove-half-downloaded-crate-on-C.patch
+++ b/0005-Remove-half-downloaded-crate-on-C.patch
@@ -1,7 +1,7 @@
From 2f12c83d14afe71e9efed2d1be62e1e610e602e9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
Date: Fri, 17 Aug 2018 10:03:48 +0200
-Subject: [PATCH 05/14] Remove half-downloaded crate on ^C
+Subject: [PATCH 05/18] Remove half-downloaded crate on ^C
Subsequent invocations would fail with an error about a corrupted file.
We don't have support for resuming a failed download, so let's remove the
@@ -40,5 +40,5 @@ index e993e7b..8e6f6eb 100644
total=total, unit="B", unit_scale=True):
f.write(chunk)
--
-2.20.1
+2.21.0
diff --git a/0006-Throw-an-error-if-s-is-used-without-a-crate.patch b/0006-Throw-an-error-if-s-is-used-without-a-crate.patch
index 8684175..8efbc88 100644
--- a/0006-Throw-an-error-if-s-is-used-without-a-crate.patch
+++ b/0006-Throw-an-error-if-s-is-used-without-a-crate.patch
@@ -1,7 +1,7 @@
From 5a1cde5b8dcaea74ebb2050879036bf46df63adc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
Date: Fri, 17 Aug 2018 10:18:59 +0200
-Subject: [PATCH 06/14] Throw an error if -s is used without a crate
+Subject: [PATCH 06/18] Throw an error if -s is used without a crate
In the future we might want to be smarter and find the crate, but let's at least
not ignore the option completely.
@@ -24,5 +24,5 @@ index 8e6f6eb..f23ebbc 100644
diff = make_patch(toml, enabled=patch, tmpfile=True)
metadata = Metadata.from_file(toml)
--
-2.20.1
+2.21.0
diff --git a/0007-split-features-into-subpackages.patch b/0007-split-features-into-subpackages.patch
index 19fd5e5..9aba559 100644
--- a/0007-split-features-into-subpackages.patch
+++ b/0007-split-features-into-subpackages.patch
@@ -1,7 +1,7 @@
From 2cac5e5ad5ff5472923ce333bef59679612bbaa2 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Fri, 26 Oct 2018 11:20:13 +0200
-Subject: [PATCH 07/14] split features into subpackages
+Subject: [PATCH 07/18] split features into subpackages
References: https://discussion.fedoraproject.org/t/rfc-new-crates-packaging-design-fe...
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
@@ -1060,5 +1060,5 @@ index b856fdd..30263b4 100644
- assert [str(x) for x in md.provides] == provides
- assert [str(x) for x in md.requires] == requires
--
-2.20.1
+2.21.0
diff --git a/0008-add-support-for-dependencies-with-same-name.patch b/0008-add-support-for-dependencies-with-same-name.patch
index f6f2743..30b6c33 100644
--- a/0008-add-support-for-dependencies-with-same-name.patch
+++ b/0008-add-support-for-dependencies-with-same-name.patch
@@ -1,7 +1,7 @@
From a1d3a84645aa7bbe5ca07b60bead1ddf90a21cc1 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue, 30 Oct 2018 20:37:38 +0100
-Subject: [PATCH 08/14] add support for dependencies with same name
+Subject: [PATCH 08/18] add support for dependencies with same name
Reported-by: Josh Stone <jistone(a)redhat.com>
References: https://internals.rust-lang.org/t/optional-dependencies-with-same-name/8728
@@ -70,5 +70,5 @@ index 4929cdd..328b67a 100644
if "default" not in deps_by_feature:
--
-2.20.1
+2.21.0
diff --git a/0009-add-support-for-feeding-user-configuration.patch b/0009-add-support-for-feeding-user-configuration.patch
index 5078943..e2abc6e 100644
--- a/0009-add-support-for-feeding-user-configuration.patch
+++ b/0009-add-support-for-feeding-user-configuration.patch
@@ -1,7 +1,7 @@
From 197150ee2e862edcd46f7ab02c9e4d17e49ca75d Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Wed, 31 Oct 2018 18:03:21 +0100
-Subject: [PATCH 09/14] add support for feeding user configuration
+Subject: [PATCH 09/18] add support for feeding user configuration
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
@@ -144,5 +144,5 @@ index 0d9a80b..d901e6d 100644
%description {{ pkg }} %{_description}
--
-2.20.1
+2.21.0
diff --git a/0010-trivial-use-f-strings-everywhere.patch b/0010-trivial-use-f-strings-everywhere.patch
index 72c5828..dd9436d 100644
--- a/0010-trivial-use-f-strings-everywhere.patch
+++ b/0010-trivial-use-f-strings-everywhere.patch
@@ -1,7 +1,7 @@
From 83ea3796cd28ec7689b39e7dc7a70bd11af1abf1 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Wed, 31 Oct 2018 17:00:58 +0100
-Subject: [PATCH 10/14] trivial: use f-strings everywhere
+Subject: [PATCH 10/18] trivial: use f-strings everywhere
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
@@ -90,5 +90,5 @@ index c691274..b60e6c4 100644
else:
with open(spec_file, "w") as fobj:
--
-2.20.1
+2.21.0
diff --git a/0011-Add-option-to-not-generate-a-default-changelog-entry.patch b/0011-Add-option-to-not-generate-a-default-changelog-entry.patch
index 4345add..c03faa6 100644
--- a/0011-Add-option-to-not-generate-a-default-changelog-entry.patch
+++ b/0011-Add-option-to-not-generate-a-default-changelog-entry.patch
@@ -1,7 +1,7 @@
From 294c6f571c0f4f7ed5a4fcb34142b0d332c55f29 Mon Sep 17 00:00:00 2001
From: Neal Gompa <ngompa13(a)gmail.com>
Date: Sun, 11 Nov 2018 11:06:27 -0500
-Subject: [PATCH 11/14] Add option to not generate a default changelog entry
+Subject: [PATCH 11/18] Add option to not generate a default changelog entry
For Rust packages created through the OBS source service, the
changelog is managed by an external <pkg>.changes file that is
@@ -59,5 +59,5 @@ index d901e6d..84bd97d 100644
+ {% include target ~ "-changelog.spec.inc" %}
+{% endif %}
--
-2.20.1
+2.21.0
diff --git a/0012-Set-CARGO_HOME-to-the-local-.config.patch b/0012-Set-CARGO_HOME-to-the-local-.config.patch
index ddf86d1..a8e5ea1 100644
--- a/0012-Set-CARGO_HOME-to-the-local-.config.patch
+++ b/0012-Set-CARGO_HOME-to-the-local-.config.patch
@@ -1,7 +1,7 @@
From b4e25038296cd57eba639a059e8baaf139a5d287 Mon Sep 17 00:00:00 2001
From: Josh Stone <jistone(a)redhat.com>
Date: Fri, 7 Dec 2018 13:58:41 -0800
-Subject: [PATCH 12/14] Set CARGO_HOME to the local .config
+Subject: [PATCH 12/18] Set CARGO_HOME to the local .config
---
data/macros.cargo | 6 +++++-
@@ -22,5 +22,5 @@ index 7fb025b..e760721 100644
%__cargo_inspector %{_bindir}/cargo-inspector
--
-2.20.1
+2.21.0
diff --git a/0013-Set-the-install-root-in-.cargo-config.patch b/0013-Set-the-install-root-in-.cargo-config.patch
index baa5e3a..e2ef86e 100644
--- a/0013-Set-the-install-root-in-.cargo-config.patch
+++ b/0013-Set-the-install-root-in-.cargo-config.patch
@@ -1,7 +1,7 @@
From a04e95bc4f807139bd3c4b75f46fd9a60ec1db8f Mon Sep 17 00:00:00 2001
From: Josh Stone <jistone(a)redhat.com>
Date: Fri, 7 Dec 2018 13:59:03 -0800
-Subject: [PATCH 13/14] Set the install root in .cargo/config
+Subject: [PATCH 13/18] Set the install root in .cargo/config
---
data/macros.cargo | 4 +++-
@@ -30,5 +30,5 @@ index e760721..9a9ce6a 100644
%* \
}\
--
-2.20.1
+2.21.0
diff --git a/0014-Add-support-for-prerelease-versions.patch b/0014-Add-support-for-prerelease-versions.patch
deleted file mode 100644
index e7ec8ef..0000000
--- a/0014-Add-support-for-prerelease-versions.patch
+++ /dev/null
@@ -1,160 +0,0 @@
-From cfe4e77674ccb6e25e54a3749f4ef91b377e808f Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Sat, 26 Jan 2019 08:33:37 +0100
-Subject: [PATCH 14/14] Add support for prerelease versions
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- data/macros.rust-srpm | 38 ++++++++++++++++++++++++++++++++++++
- rust2rpm/metadata.py | 18 +++++++++++------
- rust2rpm/templates/main.spec | 10 +++-------
- test.py | 8 ++++++++
- 4 files changed, 61 insertions(+), 13 deletions(-)
-
-diff --git a/data/macros.rust-srpm b/data/macros.rust-srpm
-index f2bae9d..872b87f 100644
---- a/data/macros.rust-srpm
-+++ b/data/macros.rust-srpm
-@@ -1 +1,39 @@
- %rust_arches x86_64 i686 armv7hl aarch64 ppc64 ppc64le s390x
-+%version_no_tilde() %{lua:
-+ local sep = rpm.expand('%1')
-+ local ver = rpm.expand('%2')
-+\
-+ if sep == '%1' then
-+ sep = '-'
-+ end
-+\
-+ if ver == '%2' then
-+ ver = rpm.expand('%version')
-+ end
-+ ver = ver:gsub('~', sep)
-+\
-+ print(ver)
-+}
-+%__crates_url https://crates.io/api/v1/crates/
-+%crates_source() %{lua:
-+ local crate = rpm.expand('%1')
-+ local version = rpm.expand('%2')
-+ local url = rpm.expand('%__crates_url')
-+\
-+ if crate == '%1' then
-+ crate = rpm.expand('%real_crate')
-+ end
-+ if crate == '%real_crate' then
-+ crate = rpm.expand('%crate')
-+ end
-+ if crate == '%crate' then
-+ crate = rpm.expand('%name')
-+ end
-+\
-+ if version == '%2' then
-+ version = rpm.expand('%version')
-+ end
-+ version = version:gsub('~', '-')
-+\
-+ print(url .. crate .. '/' .. version .. '/download#/' .. crate .. '-' .. version .. '.crate')
-+}
-diff --git a/rust2rpm/metadata.py b/rust2rpm/metadata.py
-index 328b67a..f0718d5 100644
---- a/rust2rpm/metadata.py
-+++ b/rust2rpm/metadata.py
-@@ -45,11 +45,13 @@ class Dependency:
- # Any means any
- continue
- ver = req.spec
-- if ver.prerelease:
-- raise NotImplementedError(f"Pre-release requirement is not supported: {ver}")
- if req.kind in (req.KIND_NEQ, req.KIND_EMPTY):
- raise NotImplementedError(f"'!=' and empty kinds are not supported: {req}")
-- coerced = semver.Version.coerce(str(ver))
-+ coerced = str(semver.Version.coerce(str(ver)))
-+ if ver.prerelease:
-+ coerced = coerced.replace("-", "~")
-+ # This will advance us to closest stable version (2.0.0-beta.6 2.0.0)
-+ ver = ver.next_patch()
- if req.kind == req.KIND_EQUAL:
- req.kind = req.KIND_SHORTEQ
- if req.kind in (req.KIND_CARET, req.KIND_COMPATIBLE):
-@@ -107,7 +109,11 @@ class Dependency:
- class Metadata:
- def __init__(self, name, version):
- self.name = name
-- self.version = version
-+ self._version = version
-+ version_normalized = Dependency._normalize_req(f"={self._version}")
-+ if len(version_normalized) != 1:
-+ raise Exception(f"Incorrect version: {self._version}")
-+ self.version = version_normalized[0][1]
- self.license = None
- self.license_file = None
- self.readme = None
-@@ -187,7 +193,7 @@ class Metadata:
- def provides(self, feature=None):
- if feature not in self.dependencies:
- raise KeyError(f"Feature {feature!r} doesn't exist")
-- return Dependency(self.name, f"={self.version}", features={feature})
-+ return Dependency(self.name, f"={self._version}", features={feature})
-
- @classmethod
- def _resolve(cls, deps_by_feature, feature):
-@@ -207,7 +213,7 @@ class Metadata:
- return self._resolve(self.dependencies, feature)[1]
- else:
- features, deps = self.dependencies[feature]
-- fdeps = set(Dependency(self.name, f"={self.version}", features={feature})
-+ fdeps = set(Dependency(self.name, f"={self._version}", features={feature})
- for feature in features)
- return fdeps | deps
-
-diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
-index 84bd97d..1ebef7b 100644
---- a/rust2rpm/templates/main.spec
-+++ b/rust2rpm/templates/main.spec
-@@ -31,11 +31,7 @@ License: {{ license|default("# FIXME") }}
- {{ license_comments }}
- {% endif %}
- URL: https://crates.io/crates/{{ crate }}
--{% if md.name != crate %}
--Source0: https://crates.io/api/v1/crates/%{real_crate}/%{version}/download#/%{crat...
--{% else %}
--Source0: https://crates.io/api/v1/crates/%{crate}/%{version}/download#/%{crate}-%{...
--{% endif %}
-+Source: %{crates_source}
- {% if patch_file is not none %}
- {% if target == "opensuse" %}
- # PATCH-FIX-OPENSUSE {{ patch_file }} -- Initial patched metadata
-@@ -161,9 +157,9 @@ which use {% if feature is not none %}"{{ feature }}" feature of {% endif %}"%{c
-
- %prep
- {% if md.name != crate %}
--%autosetup -n %{real_crate}-%{version} -p1
-+%autosetup -n %{real_crate}-%{version_no_tilde} -p1
- {% else %}
--%autosetup -n %{crate}-%{version} -p1
-+%autosetup -n %{crate}-%{version_no_tilde} -p1
- {% endif %}
- %cargo_prep
-
-diff --git a/test.py b/test.py
-index 30263b4..035df79 100644
---- a/test.py
-+++ b/test.py
-@@ -37,6 +37,14 @@ import rust2rpm
- "crate(test) = 1.2.3"),
- (">= 1.2, < 1.5",
- "(crate(test) >= 1.2.0 with crate(test) < 1.5.0)"),
-+ ("^2.0.0-alpha.6",
-+ "(crate(test) >= 2.0.0~alpha.6 with crate(test) < 3.0.0)"),
-+ ("^0.1.0-alpha.6",
-+ "(crate(test) >= 0.1.0~alpha.6 with crate(test) < 0.2.0)"),
-+ ("^0.0.1-alpha.6",
-+ "(crate(test) >= 0.0.1~alpha.6 with crate(test) < 0.0.2)"),
-+ ("^0.0.0-alpha.6",
-+ "(crate(test) >= 0.0.0~alpha.6 with crate(test) < 0.0.1)"),
- ])
- def test_dependency(req, rpmdep):
- dep = rust2rpm.Dependency("test", req)
---
-2.20.1
-
diff --git a/0014-licensing-fix-zlib-license-translation.patch b/0014-licensing-fix-zlib-license-translation.patch
new file mode 100644
index 0000000..fc8a165
--- /dev/null
+++ b/0014-licensing-fix-zlib-license-translation.patch
@@ -0,0 +1,35 @@
+From 7c00b0f29085166b1a89aec766945b10dc7aca23 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
+Date: Sat, 1 Dec 2018 15:40:08 +0100
+Subject: [PATCH 14/18] licensing: fix zlib license translation
+
+The file was mangled, and something about "teeworlds" was inserted
+into the line for zlib. The spdx database doesn't list "teeworlds
+license", so let's just remove that part.
+Both [1] and [2] agree that "zlib" and "zlib license" are the same thing.
+
+[1] https://spdx.org/licenses/Zlib
+[2] https://fedoraproject.org/wiki/Licensing:Main#Good_Licenses
+
+Fixes #61.
+---
+ rust2rpm/spdx_to_fedora.csv | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/rust2rpm/spdx_to_fedora.csv b/rust2rpm/spdx_to_fedora.csv
+index 829571a..1ca5a7e 100644
+--- a/rust2rpm/spdx_to_fedora.csv
++++ b/rust2rpm/spdx_to_fedora.csv
+@@ -306,8 +306,7 @@ Zed License,Zed,Zed,,,
+ Zend License v2.0,Zend-2.0,Zend,,,
+ Zimbra Public License v1.3,Zimbra-1.3,,,Fedora bad list,
+ Zimbra Public License v1.4,Zimbra-1.4,,,not on Fedora list,
+-zlib License,Zlib,"zlib
+-Teeworlds",,,Teeworlds License
++zlib License,Zlib,zlib,,,
+ zlib/libpng License with Acknowledgement,zlib-acknowledgement,zlib with acknowledgement,,,
+ Zope Public License 1.1,ZPL-1.1,,,This specific version not on Fedora list,
+ Zope Public License 2.0,ZPL-2.0,ZPLv2.0,,,
+--
+2.21.0
+
diff --git a/0015-licensing-rename-EPL-to-EPL-1.0-and-add-EPL-2.0.patch b/0015-licensing-rename-EPL-to-EPL-1.0-and-add-EPL-2.0.patch
new file mode 100644
index 0000000..76be3f8
--- /dev/null
+++ b/0015-licensing-rename-EPL-to-EPL-1.0-and-add-EPL-2.0.patch
@@ -0,0 +1,31 @@
+From b0d2756917b380a5d66d2407dbeb8891c51875e8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
+Date: Sat, 1 Dec 2018 15:46:08 +0100
+Subject: [PATCH 15/18] licensing: rename EPL to EPL-1.0 and add EPL-2.0
+
+According to https://fedoraproject.org/wiki/Licensing:Main#Software_License_List
+EPL-1.0 and EPL-2.0 are the short tags that should be used now.
+(C.f. https://spdx.org/licenses/EPL-2.0.html.)
+
+Fixes #64.
+---
+ rust2rpm/spdx_to_fedora.csv | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/rust2rpm/spdx_to_fedora.csv b/rust2rpm/spdx_to_fedora.csv
+index 1ca5a7e..c42e66e 100644
+--- a/rust2rpm/spdx_to_fedora.csv
++++ b/rust2rpm/spdx_to_fedora.csv
+@@ -112,7 +112,8 @@ DOC License,DOC,DOC,,,
+ Dotseqn License,Dotseqn,Dotseqn,,,
+ DSDP License,DSDP,DSDP,,,
+ dvipdfm License,dvipdfm,dvipdfm,,,
+-Eclipse Public License 1.0,EPL-1.0,EPL,,,
++Eclipse Public License 1.0,EPL-1.0,EPL-1.0,,,
++Eclipse Public License 2.0,EPL-2.0,EPL-2.0,,,
+ Educational Community License v1.0,ECL-1.0,ECL 1.0,,,
+ Educational Community License v2.0,ECL-2.0,ECL 2.0,,,
+ eGenix.com Public License 1.1.0,eGenix,eGenix,,,
+--
+2.21.0
+
diff --git a/0016-Add-support-for-prerelease-versions.patch b/0016-Add-support-for-prerelease-versions.patch
new file mode 100644
index 0000000..187a47d
--- /dev/null
+++ b/0016-Add-support-for-prerelease-versions.patch
@@ -0,0 +1,160 @@
+From 00c0c5cec90d5d6abbfd4acb2f5d65439b4bfd27 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Sat, 26 Jan 2019 08:33:37 +0100
+Subject: [PATCH 16/18] Add support for prerelease versions
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ data/macros.rust-srpm | 38 ++++++++++++++++++++++++++++++++++++
+ rust2rpm/metadata.py | 18 +++++++++++------
+ rust2rpm/templates/main.spec | 10 +++-------
+ test.py | 8 ++++++++
+ 4 files changed, 61 insertions(+), 13 deletions(-)
+
+diff --git a/data/macros.rust-srpm b/data/macros.rust-srpm
+index f2bae9d..872b87f 100644
+--- a/data/macros.rust-srpm
++++ b/data/macros.rust-srpm
+@@ -1 +1,39 @@
+ %rust_arches x86_64 i686 armv7hl aarch64 ppc64 ppc64le s390x
++%version_no_tilde() %{lua:
++ local sep = rpm.expand('%1')
++ local ver = rpm.expand('%2')
++\
++ if sep == '%1' then
++ sep = '-'
++ end
++\
++ if ver == '%2' then
++ ver = rpm.expand('%version')
++ end
++ ver = ver:gsub('~', sep)
++\
++ print(ver)
++}
++%__crates_url https://crates.io/api/v1/crates/
++%crates_source() %{lua:
++ local crate = rpm.expand('%1')
++ local version = rpm.expand('%2')
++ local url = rpm.expand('%__crates_url')
++\
++ if crate == '%1' then
++ crate = rpm.expand('%real_crate')
++ end
++ if crate == '%real_crate' then
++ crate = rpm.expand('%crate')
++ end
++ if crate == '%crate' then
++ crate = rpm.expand('%name')
++ end
++\
++ if version == '%2' then
++ version = rpm.expand('%version')
++ end
++ version = version:gsub('~', '-')
++\
++ print(url .. crate .. '/' .. version .. '/download#/' .. crate .. '-' .. version .. '.crate')
++}
+diff --git a/rust2rpm/metadata.py b/rust2rpm/metadata.py
+index 328b67a..f0718d5 100644
+--- a/rust2rpm/metadata.py
++++ b/rust2rpm/metadata.py
+@@ -45,11 +45,13 @@ class Dependency:
+ # Any means any
+ continue
+ ver = req.spec
+- if ver.prerelease:
+- raise NotImplementedError(f"Pre-release requirement is not supported: {ver}")
+ if req.kind in (req.KIND_NEQ, req.KIND_EMPTY):
+ raise NotImplementedError(f"'!=' and empty kinds are not supported: {req}")
+- coerced = semver.Version.coerce(str(ver))
++ coerced = str(semver.Version.coerce(str(ver)))
++ if ver.prerelease:
++ coerced = coerced.replace("-", "~")
++ # This will advance us to closest stable version (2.0.0-beta.6 2.0.0)
++ ver = ver.next_patch()
+ if req.kind == req.KIND_EQUAL:
+ req.kind = req.KIND_SHORTEQ
+ if req.kind in (req.KIND_CARET, req.KIND_COMPATIBLE):
+@@ -107,7 +109,11 @@ class Dependency:
+ class Metadata:
+ def __init__(self, name, version):
+ self.name = name
+- self.version = version
++ self._version = version
++ version_normalized = Dependency._normalize_req(f"={self._version}")
++ if len(version_normalized) != 1:
++ raise Exception(f"Incorrect version: {self._version}")
++ self.version = version_normalized[0][1]
+ self.license = None
+ self.license_file = None
+ self.readme = None
+@@ -187,7 +193,7 @@ class Metadata:
+ def provides(self, feature=None):
+ if feature not in self.dependencies:
+ raise KeyError(f"Feature {feature!r} doesn't exist")
+- return Dependency(self.name, f"={self.version}", features={feature})
++ return Dependency(self.name, f"={self._version}", features={feature})
+
+ @classmethod
+ def _resolve(cls, deps_by_feature, feature):
+@@ -207,7 +213,7 @@ class Metadata:
+ return self._resolve(self.dependencies, feature)[1]
+ else:
+ features, deps = self.dependencies[feature]
+- fdeps = set(Dependency(self.name, f"={self.version}", features={feature})
++ fdeps = set(Dependency(self.name, f"={self._version}", features={feature})
+ for feature in features)
+ return fdeps | deps
+
+diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
+index 84bd97d..1ebef7b 100644
+--- a/rust2rpm/templates/main.spec
++++ b/rust2rpm/templates/main.spec
+@@ -31,11 +31,7 @@ License: {{ license|default("# FIXME") }}
+ {{ license_comments }}
+ {% endif %}
+ URL: https://crates.io/crates/{{ crate }}
+-{% if md.name != crate %}
+-Source0: https://crates.io/api/v1/crates/%{real_crate}/%{version}/download#/%{crat...
+-{% else %}
+-Source0: https://crates.io/api/v1/crates/%{crate}/%{version}/download#/%{crate}-%{...
+-{% endif %}
++Source: %{crates_source}
+ {% if patch_file is not none %}
+ {% if target == "opensuse" %}
+ # PATCH-FIX-OPENSUSE {{ patch_file }} -- Initial patched metadata
+@@ -161,9 +157,9 @@ which use {% if feature is not none %}"{{ feature }}" feature of {% endif %}"%{c
+
+ %prep
+ {% if md.name != crate %}
+-%autosetup -n %{real_crate}-%{version} -p1
++%autosetup -n %{real_crate}-%{version_no_tilde} -p1
+ {% else %}
+-%autosetup -n %{crate}-%{version} -p1
++%autosetup -n %{crate}-%{version_no_tilde} -p1
+ {% endif %}
+ %cargo_prep
+
+diff --git a/test.py b/test.py
+index 30263b4..035df79 100644
+--- a/test.py
++++ b/test.py
+@@ -37,6 +37,14 @@ import rust2rpm
+ "crate(test) = 1.2.3"),
+ (">= 1.2, < 1.5",
+ "(crate(test) >= 1.2.0 with crate(test) < 1.5.0)"),
++ ("^2.0.0-alpha.6",
++ "(crate(test) >= 2.0.0~alpha.6 with crate(test) < 3.0.0)"),
++ ("^0.1.0-alpha.6",
++ "(crate(test) >= 0.1.0~alpha.6 with crate(test) < 0.2.0)"),
++ ("^0.0.1-alpha.6",
++ "(crate(test) >= 0.0.1~alpha.6 with crate(test) < 0.0.2)"),
++ ("^0.0.0-alpha.6",
++ "(crate(test) >= 0.0.0~alpha.6 with crate(test) < 0.0.1)"),
+ ])
+ def test_dependency(req, rpmdep):
+ dep = rust2rpm.Dependency("test", req)
+--
+2.21.0
+
diff --git a/0017-data-Cargo-doesn-t-escape-paths-with-space.patch b/0017-data-Cargo-doesn-t-escape-paths-with-space.patch
new file mode 100644
index 0000000..90dadeb
--- /dev/null
+++ b/0017-data-Cargo-doesn-t-escape-paths-with-space.patch
@@ -0,0 +1,31 @@
+From 84a73bfa24ce11602a1f19554dc495125be4d0aa Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Sun, 17 Feb 2019 17:19:25 +0100
+Subject: [PATCH 17/18] data: Cargo doesn't escape paths with space
+
+When building matrixmultiply v0.2.2:
+
+BUILDSTDERR: /usr/bin/cp: cannot stat 'spare': No such file or directory
+BUILDSTDERR: /usr/bin/cp: failed to get attributes of 'kernels': No such file or directory
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ data/macros.cargo | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/data/macros.cargo b/data/macros.cargo
+index 9a9ce6a..9a375d0 100644
+--- a/data/macros.cargo
++++ b/data/macros.cargo
+@@ -74,7 +74,7 @@ if %__cargo_is_lib; then \
+ CRATE_VERSION=$(%__cargo_inspector --version Cargo.toml) \
+ REG_DIR=%{buildroot}%{cargo_registry}/$CRATE_NAME-$CRATE_VERSION \
+ %{__mkdir} -p $REG_DIR \
+- %{__cargo} package -l | xargs %{__cp} --parents -a -t $REG_DIR \
++ %{__cargo} package -l | xargs -d '\n' %{__cp} --parents -a -t $REG_DIR \
+ %if ! %{with check} \
+ %{__cp} -a Cargo.toml.orig $REG_DIR/Cargo.toml \
+ %endif \
+--
+2.21.0
+
diff --git a/0018-Do-not-pull-optional-dependencies.patch b/0018-Do-not-pull-optional-dependencies.patch
new file mode 100644
index 0000000..68f2a8c
--- /dev/null
+++ b/0018-Do-not-pull-optional-dependencies.patch
@@ -0,0 +1,66 @@
+From b0f34c2b6a7b8ca5b924e5c230f1271826114cb0 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Sat, 9 Mar 2019 22:04:49 +0100
+Subject: [PATCH 18/18] Do not pull optional dependencies
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ data/macros.cargo | 13 +++++++++++--
+ rust2rpm/templates/main.spec | 5 -----
+ 2 files changed, 11 insertions(+), 7 deletions(-)
+
+diff --git a/data/macros.cargo b/data/macros.cargo
+index 9a375d0..0e382c8 100644
+--- a/data/macros.cargo
++++ b/data/macros.cargo
+@@ -2,8 +2,10 @@
+ # https://github.com/rust-lang/cargo/issues/6397
+ # But we can set CARGO_HOME locally, which is a good idea anyway to make sure
+ # it never writes to ~/.cargo during rpmbuild.
+-%__cargo %{_bindir}/env CARGO_HOME=.cargo %{_bindir}/cargo
+-%__cargo_common_opts %{?_smp_mflags}
++# We also need RUSTC_BOOTSTRAP since we use -Z avoid-dev-deps
++# until it gets stabilized: https://github.com/rust-lang/cargo/issues/5133
++%__cargo %{_bindir}/env CARGO_HOME=.cargo RUSTC_BOOTSTRAP=1 %{_bindir}/cargo
++%__cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps
+ %__cargo_inspector %{_bindir}/cargo-inspector
+
+ %cargo_registry %{_datadir}/cargo/registry
+@@ -74,10 +76,17 @@ if %__cargo_is_lib; then \
+ CRATE_VERSION=$(%__cargo_inspector --version Cargo.toml) \
+ REG_DIR=%{buildroot}%{cargo_registry}/$CRATE_NAME-$CRATE_VERSION \
+ %{__mkdir} -p $REG_DIR \
++# Drop all dependency/features information \
++# so that cargo doesn't fail resolving dependencies: \
++# https://github.com/rust-lang/cargo/pull/6729 \
++ %{__awk} -i inplace -v INPLACE_SUFFIX=.deps '/^\\\[((dev-)?dependencies|features)/{f=1;next} /^\\\[/{f=0}; !f' Cargo.toml \
+ %{__cargo} package -l | xargs -d '\n' %{__cp} --parents -a -t $REG_DIR \
+ %if ! %{with check} \
+ %{__cp} -a Cargo.toml.orig $REG_DIR/Cargo.toml \
++%else \
++ %{__cp} -a Cargo.toml.deps $REG_DIR/Cargo.toml \
+ %endif \
++ %{__rm} $REG_DIR/Cargo.toml.{orig,deps} \
+ echo '{"files":{},"package":""}' > $REG_DIR/.cargo-checksum.json \
+ fi \
+ if %__cargo_is_bin; then \
+diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
+index 1ebef7b..f0c5445 100644
+--- a/rust2rpm/templates/main.spec
++++ b/rust2rpm/templates/main.spec
+@@ -44,12 +44,7 @@ Patch0: {{ patch_file }}
+ ExclusiveArch: %{rust_arches}
+
+ BuildRequires: rust-packaging
+-{# We will put all non-optional and optional dependencies until
+- https://github.com/rust-lang/cargo/issues/5133
+- is solved
+ {% set buildrequires = normalize_deps(md.requires("default", resolve=True))|sort %}
+-#}
+-{% set buildrequires = normalize_deps(md.all_dependencies)|sort %}
+ {% for req in buildrequires %}
+ BuildRequires: {{ req }}
+ {% endfor %}
+--
+2.21.0
+
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 374a238..3f2294c 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -5,7 +5,7 @@
Name: rust-packaging
Version: 6
-Release: 22%{?dist}
+Release: 23%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -24,7 +24,12 @@ Patch0010: 0010-trivial-use-f-strings-everywhere.patch
Patch0011: 0011-Add-option-to-not-generate-a-default-changelog-entry.patch
Patch0012: 0012-Set-CARGO_HOME-to-the-local-.config.patch
Patch0013: 0013-Set-the-install-root-in-.cargo-config.patch
-Patch0014: 0014-Add-support-for-prerelease-versions.patch
+Patch0014: 0014-licensing-fix-zlib-license-translation.patch
+Patch0015: 0015-licensing-rename-EPL-to-EPL-1.0-and-add-EPL-2.0.patch
+Patch0016: 0016-Add-support-for-prerelease-versions.patch
+Patch0017: 0017-data-Cargo-doesn-t-escape-paths-with-space.patch
+# https://pagure.io/fedora-rust/rust2rpm/pull-request/68<Paste>
+Patch0018: 0018-Do-not-pull-optional-dependencies.patch
ExclusiveArch: %{rust_arches}
@@ -85,6 +90,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sun Mar 10 2019 Igor Gnatenko <ignatnekobrain(a)fedoraproject.org> - 6-23
+- Do not pull optional deps into BRs and trivial fixes
+
* Sat Feb 02 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 6-22
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
commit 17a86d1495e6c6374add1f4f72dee83b14930d2e
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Sat Feb 2 14:06:10 2019 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 29dc5ec..374a238 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -5,7 +5,7 @@
Name: rust-packaging
Version: 6
-Release: 21%{?dist}
+Release: 22%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -85,6 +85,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sat Feb 02 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 6-22
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
* Sat Jan 26 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-21
- Use %%version_no_tilde
commit 6d95cfa0b0f183cb32e9a8818e582b16780a2296
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat Jan 26 12:07:13 2019 +0100
Use %version_no_tilde
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0014-Add-support-for-prerelease-versions.patch b/0014-Add-support-for-prerelease-versions.patch
index d4c48ef..e7ec8ef 100644
--- a/0014-Add-support-for-prerelease-versions.patch
+++ b/0014-Add-support-for-prerelease-versions.patch
@@ -1,24 +1,39 @@
-From 769506caf08edb5ea2342d9add22e4db1b347375 Mon Sep 17 00:00:00 2001
+From cfe4e77674ccb6e25e54a3749f4ef91b377e808f Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat, 26 Jan 2019 08:33:37 +0100
Subject: [PATCH 14/14] Add support for prerelease versions
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
- data/macros.rust-srpm | 23 +++++++++++++++++++++++
- rust2rpm/metadata.py | 18 ++++++++++++------
- rust2rpm/templates/main.spec | 6 +-----
+ data/macros.rust-srpm | 38 ++++++++++++++++++++++++++++++++++++
+ rust2rpm/metadata.py | 18 +++++++++++------
+ rust2rpm/templates/main.spec | 10 +++-------
test.py | 8 ++++++++
- 4 files changed, 44 insertions(+), 11 deletions(-)
+ 4 files changed, 61 insertions(+), 13 deletions(-)
diff --git a/data/macros.rust-srpm b/data/macros.rust-srpm
-index f2bae9d..bd21cb5 100644
+index f2bae9d..872b87f 100644
--- a/data/macros.rust-srpm
+++ b/data/macros.rust-srpm
-@@ -1 +1,24 @@
+@@ -1 +1,39 @@
%rust_arches x86_64 i686 armv7hl aarch64 ppc64 ppc64le s390x
++%version_no_tilde() %{lua:
++ local sep = rpm.expand('%1')
++ local ver = rpm.expand('%2')
++\
++ if sep == '%1' then
++ sep = '-'
++ end
++\
++ if ver == '%2' then
++ ver = rpm.expand('%version')
++ end
++ ver = ver:gsub('~', sep)
++\
++ print(ver)
++}
+%__crates_url https://crates.io/api/v1/crates/
-+%crates_source %{lua:
++%crates_source() %{lua:
+ local crate = rpm.expand('%1')
+ local version = rpm.expand('%2')
+ local url = rpm.expand('%__crates_url')
@@ -93,7 +108,7 @@ index 328b67a..f0718d5 100644
return fdeps | deps
diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
-index 84bd97d..f67e023 100644
+index 84bd97d..1ebef7b 100644
--- a/rust2rpm/templates/main.spec
+++ b/rust2rpm/templates/main.spec
@@ -31,11 +31,7 @@ License: {{ license|default("# FIXME") }}
@@ -109,6 +124,18 @@ index 84bd97d..f67e023 100644
{% if patch_file is not none %}
{% if target == "opensuse" %}
# PATCH-FIX-OPENSUSE {{ patch_file }} -- Initial patched metadata
+@@ -161,9 +157,9 @@ which use {% if feature is not none %}"{{ feature }}" feature of {% endif %}"%{c
+
+ %prep
+ {% if md.name != crate %}
+-%autosetup -n %{real_crate}-%{version} -p1
++%autosetup -n %{real_crate}-%{version_no_tilde} -p1
+ {% else %}
+-%autosetup -n %{crate}-%{version} -p1
++%autosetup -n %{crate}-%{version_no_tilde} -p1
+ {% endif %}
+ %cargo_prep
+
diff --git a/test.py b/test.py
index 30263b4..035df79 100644
--- a/test.py
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 2162d19..29dc5ec 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -5,7 +5,7 @@
Name: rust-packaging
Version: 6
-Release: 20%{?dist}
+Release: 21%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -85,6 +85,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sat Jan 26 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-21
+- Use %%version_no_tilde
+
* Sat Jan 26 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-20
- Trivial fixes for pre-release versions
commit 2c9257ea1223fa871a2bdbd80a29eefde7b5fe5b
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat Jan 26 10:36:39 2019 +0100
Trivial fixes for pre-release versions
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0014-Add-support-for-prerelease-versions.patch b/0014-Add-support-for-prerelease-versions.patch
index cf16439..d4c48ef 100644
--- a/0014-Add-support-for-prerelease-versions.patch
+++ b/0014-Add-support-for-prerelease-versions.patch
@@ -1,14 +1,45 @@
-From 29a3c1b84e0971fc0c2edf483ae3b04139c19b32 Mon Sep 17 00:00:00 2001
+From 769506caf08edb5ea2342d9add22e4db1b347375 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat, 26 Jan 2019 08:33:37 +0100
Subject: [PATCH 14/14] Add support for prerelease versions
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
- rust2rpm/metadata.py | 18 ++++++++++++------
- test.py | 8 ++++++++
- 2 files changed, 20 insertions(+), 6 deletions(-)
+ data/macros.rust-srpm | 23 +++++++++++++++++++++++
+ rust2rpm/metadata.py | 18 ++++++++++++------
+ rust2rpm/templates/main.spec | 6 +-----
+ test.py | 8 ++++++++
+ 4 files changed, 44 insertions(+), 11 deletions(-)
+diff --git a/data/macros.rust-srpm b/data/macros.rust-srpm
+index f2bae9d..bd21cb5 100644
+--- a/data/macros.rust-srpm
++++ b/data/macros.rust-srpm
+@@ -1 +1,24 @@
+ %rust_arches x86_64 i686 armv7hl aarch64 ppc64 ppc64le s390x
++%__crates_url https://crates.io/api/v1/crates/
++%crates_source %{lua:
++ local crate = rpm.expand('%1')
++ local version = rpm.expand('%2')
++ local url = rpm.expand('%__crates_url')
++\
++ if crate == '%1' then
++ crate = rpm.expand('%real_crate')
++ end
++ if crate == '%real_crate' then
++ crate = rpm.expand('%crate')
++ end
++ if crate == '%crate' then
++ crate = rpm.expand('%name')
++ end
++\
++ if version == '%2' then
++ version = rpm.expand('%version')
++ end
++ version = version:gsub('~', '-')
++\
++ print(url .. crate .. '/' .. version .. '/download#/' .. crate .. '-' .. version .. '.crate')
++}
diff --git a/rust2rpm/metadata.py b/rust2rpm/metadata.py
index 328b67a..f0718d5 100644
--- a/rust2rpm/metadata.py
@@ -61,6 +92,23 @@ index 328b67a..f0718d5 100644
for feature in features)
return fdeps | deps
+diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
+index 84bd97d..f67e023 100644
+--- a/rust2rpm/templates/main.spec
++++ b/rust2rpm/templates/main.spec
+@@ -31,11 +31,7 @@ License: {{ license|default("# FIXME") }}
+ {{ license_comments }}
+ {% endif %}
+ URL: https://crates.io/crates/{{ crate }}
+-{% if md.name != crate %}
+-Source0: https://crates.io/api/v1/crates/%{real_crate}/%{version}/download#/%{crat...
+-{% else %}
+-Source0: https://crates.io/api/v1/crates/%{crate}/%{version}/download#/%{crate}-%{...
+-{% endif %}
++Source: %{crates_source}
+ {% if patch_file is not none %}
+ {% if target == "opensuse" %}
+ # PATCH-FIX-OPENSUSE {{ patch_file }} -- Initial patched metadata
diff --git a/test.py b/test.py
index 30263b4..035df79 100644
--- a/test.py
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 0d97e56..2162d19 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -5,7 +5,7 @@
Name: rust-packaging
Version: 6
-Release: 19%{?dist}
+Release: 20%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -85,6 +85,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sat Jan 26 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-20
+- Trivial fixes for pre-release versions
+
* Sat Jan 26 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-19
- Add support for pre-release versions
commit b078c549828898a71063bac9e3104b5a915b92ec
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat Jan 26 09:31:56 2019 +0100
Add support for pre-release versions
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0001-name-spec-patch_file-by-real-crate-name.patch b/0001-name-spec-patch_file-by-real-crate-name.patch
index 1f65e7f..4d55717 100644
--- a/0001-name-spec-patch_file-by-real-crate-name.patch
+++ b/0001-name-spec-patch_file-by-real-crate-name.patch
@@ -1,7 +1,7 @@
From 0dc9fc182edf0791ca697f587e48dd39948d63c1 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Mon, 10 Sep 2018 23:37:40 +0200
-Subject: [PATCH 01/13] name spec/patch_file by real crate name
+Subject: [PATCH 01/14] name spec/patch_file by real crate name
When renaming using patch file, we really want to change file names too.
@@ -33,5 +33,5 @@ index dc78828..1575ce6 100644
if args.stdout:
print("# {}".format(spec_file))
--
-2.20.0.rc2
+2.20.1
diff --git a/0002-generate-doc-statements.patch b/0002-generate-doc-statements.patch
index 581990d..42ca40d 100644
--- a/0002-generate-doc-statements.patch
+++ b/0002-generate-doc-statements.patch
@@ -1,7 +1,7 @@
From 561280a0ea35f226ef243526be2bbb656db44af6 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Mon, 10 Sep 2018 23:40:18 +0200
-Subject: [PATCH 02/13] generate %doc statements
+Subject: [PATCH 02/14] generate %doc statements
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
@@ -54,5 +54,5 @@ index 1aeb969..2e9f841 100644
{% endif %}
--
-2.20.0.rc2
+2.20.1
diff --git a/0003-do-better-for-renamed-crates.patch b/0003-do-better-for-renamed-crates.patch
index 1640604..3f1bc98 100644
--- a/0003-do-better-for-renamed-crates.patch
+++ b/0003-do-better-for-renamed-crates.patch
@@ -1,7 +1,7 @@
From 2050880140d4953b9ebdc7211e30df3ccf5dd61d Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue, 11 Sep 2018 00:06:50 +0200
-Subject: [PATCH 03/13] do better for renamed crates
+Subject: [PATCH 03/14] do better for renamed crates
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
@@ -86,5 +86,5 @@ index 2e9f841..7dbcc3f 100644
%build
--
-2.20.0.rc2
+2.20.1
diff --git a/0004-remove-pre-3.6-leftovers.patch b/0004-remove-pre-3.6-leftovers.patch
index 0ba106c..7133f4e 100644
--- a/0004-remove-pre-3.6-leftovers.patch
+++ b/0004-remove-pre-3.6-leftovers.patch
@@ -1,7 +1,7 @@
From e6e9cbbb71199c2773b47fa21f1c917a167c1743 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue, 11 Sep 2018 10:43:53 +0200
-Subject: [PATCH 04/13] remove pre-3.6 leftovers
+Subject: [PATCH 04/14] remove pre-3.6 leftovers
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
@@ -23,5 +23,5 @@ index f52d968..5adeb65 100644
+ "--manifest-path={}".format(path)])
return cls.from_json(json.loads(metadata))
--
-2.20.0.rc2
+2.20.1
diff --git a/0005-Remove-half-downloaded-crate-on-C.patch b/0005-Remove-half-downloaded-crate-on-C.patch
index 6f67bb9..8ae52e4 100644
--- a/0005-Remove-half-downloaded-crate-on-C.patch
+++ b/0005-Remove-half-downloaded-crate-on-C.patch
@@ -1,7 +1,7 @@
From 2f12c83d14afe71e9efed2d1be62e1e610e602e9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
Date: Fri, 17 Aug 2018 10:03:48 +0200
-Subject: [PATCH 05/13] Remove half-downloaded crate on ^C
+Subject: [PATCH 05/14] Remove half-downloaded crate on ^C
Subsequent invocations would fail with an error about a corrupted file.
We don't have support for resuming a failed download, so let's remove the
@@ -40,5 +40,5 @@ index e993e7b..8e6f6eb 100644
total=total, unit="B", unit_scale=True):
f.write(chunk)
--
-2.20.0.rc2
+2.20.1
diff --git a/0006-Throw-an-error-if-s-is-used-without-a-crate.patch b/0006-Throw-an-error-if-s-is-used-without-a-crate.patch
index cc09ce2..8684175 100644
--- a/0006-Throw-an-error-if-s-is-used-without-a-crate.patch
+++ b/0006-Throw-an-error-if-s-is-used-without-a-crate.patch
@@ -1,7 +1,7 @@
From 5a1cde5b8dcaea74ebb2050879036bf46df63adc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
Date: Fri, 17 Aug 2018 10:18:59 +0200
-Subject: [PATCH 06/13] Throw an error if -s is used without a crate
+Subject: [PATCH 06/14] Throw an error if -s is used without a crate
In the future we might want to be smarter and find the crate, but let's at least
not ignore the option completely.
@@ -24,5 +24,5 @@ index 8e6f6eb..f23ebbc 100644
diff = make_patch(toml, enabled=patch, tmpfile=True)
metadata = Metadata.from_file(toml)
--
-2.20.0.rc2
+2.20.1
diff --git a/0007-split-features-into-subpackages.patch b/0007-split-features-into-subpackages.patch
index 52d253e..19fd5e5 100644
--- a/0007-split-features-into-subpackages.patch
+++ b/0007-split-features-into-subpackages.patch
@@ -1,7 +1,7 @@
From 2cac5e5ad5ff5472923ce333bef59679612bbaa2 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Fri, 26 Oct 2018 11:20:13 +0200
-Subject: [PATCH 07/13] split features into subpackages
+Subject: [PATCH 07/14] split features into subpackages
References: https://discussion.fedoraproject.org/t/rfc-new-crates-packaging-design-fe...
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
@@ -1060,5 +1060,5 @@ index b856fdd..30263b4 100644
- assert [str(x) for x in md.provides] == provides
- assert [str(x) for x in md.requires] == requires
--
-2.20.0.rc2
+2.20.1
diff --git a/0008-add-support-for-dependencies-with-same-name.patch b/0008-add-support-for-dependencies-with-same-name.patch
index 378edfc..f6f2743 100644
--- a/0008-add-support-for-dependencies-with-same-name.patch
+++ b/0008-add-support-for-dependencies-with-same-name.patch
@@ -1,7 +1,7 @@
From a1d3a84645aa7bbe5ca07b60bead1ddf90a21cc1 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue, 30 Oct 2018 20:37:38 +0100
-Subject: [PATCH 08/13] add support for dependencies with same name
+Subject: [PATCH 08/14] add support for dependencies with same name
Reported-by: Josh Stone <jistone(a)redhat.com>
References: https://internals.rust-lang.org/t/optional-dependencies-with-same-name/8728
@@ -70,5 +70,5 @@ index 4929cdd..328b67a 100644
if "default" not in deps_by_feature:
--
-2.20.0.rc2
+2.20.1
diff --git a/0009-add-support-for-feeding-user-configuration.patch b/0009-add-support-for-feeding-user-configuration.patch
index b130ebe..5078943 100644
--- a/0009-add-support-for-feeding-user-configuration.patch
+++ b/0009-add-support-for-feeding-user-configuration.patch
@@ -1,7 +1,7 @@
From 197150ee2e862edcd46f7ab02c9e4d17e49ca75d Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Wed, 31 Oct 2018 18:03:21 +0100
-Subject: [PATCH 09/13] add support for feeding user configuration
+Subject: [PATCH 09/14] add support for feeding user configuration
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
@@ -144,5 +144,5 @@ index 0d9a80b..d901e6d 100644
%description {{ pkg }} %{_description}
--
-2.20.0.rc2
+2.20.1
diff --git a/0010-trivial-use-f-strings-everywhere.patch b/0010-trivial-use-f-strings-everywhere.patch
index f6ff2f4..72c5828 100644
--- a/0010-trivial-use-f-strings-everywhere.patch
+++ b/0010-trivial-use-f-strings-everywhere.patch
@@ -1,7 +1,7 @@
From 83ea3796cd28ec7689b39e7dc7a70bd11af1abf1 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Wed, 31 Oct 2018 17:00:58 +0100
-Subject: [PATCH 10/13] trivial: use f-strings everywhere
+Subject: [PATCH 10/14] trivial: use f-strings everywhere
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
@@ -90,5 +90,5 @@ index c691274..b60e6c4 100644
else:
with open(spec_file, "w") as fobj:
--
-2.20.0.rc2
+2.20.1
diff --git a/0011-Add-option-to-not-generate-a-default-changelog-entry.patch b/0011-Add-option-to-not-generate-a-default-changelog-entry.patch
index ccad736..4345add 100644
--- a/0011-Add-option-to-not-generate-a-default-changelog-entry.patch
+++ b/0011-Add-option-to-not-generate-a-default-changelog-entry.patch
@@ -1,7 +1,7 @@
From 294c6f571c0f4f7ed5a4fcb34142b0d332c55f29 Mon Sep 17 00:00:00 2001
From: Neal Gompa <ngompa13(a)gmail.com>
Date: Sun, 11 Nov 2018 11:06:27 -0500
-Subject: [PATCH 11/13] Add option to not generate a default changelog entry
+Subject: [PATCH 11/14] Add option to not generate a default changelog entry
For Rust packages created through the OBS source service, the
changelog is managed by an external <pkg>.changes file that is
@@ -59,5 +59,5 @@ index d901e6d..84bd97d 100644
+ {% include target ~ "-changelog.spec.inc" %}
+{% endif %}
--
-2.20.0.rc2
+2.20.1
diff --git a/0012-Set-CARGO_HOME-to-the-local-.config.patch b/0012-Set-CARGO_HOME-to-the-local-.config.patch
index 9f81757..ddf86d1 100644
--- a/0012-Set-CARGO_HOME-to-the-local-.config.patch
+++ b/0012-Set-CARGO_HOME-to-the-local-.config.patch
@@ -1,7 +1,7 @@
From b4e25038296cd57eba639a059e8baaf139a5d287 Mon Sep 17 00:00:00 2001
From: Josh Stone <jistone(a)redhat.com>
Date: Fri, 7 Dec 2018 13:58:41 -0800
-Subject: [PATCH 12/13] Set CARGO_HOME to the local .config
+Subject: [PATCH 12/14] Set CARGO_HOME to the local .config
---
data/macros.cargo | 6 +++++-
@@ -22,5 +22,5 @@ index 7fb025b..e760721 100644
%__cargo_inspector %{_bindir}/cargo-inspector
--
-2.20.0.rc2
+2.20.1
diff --git a/0013-Set-the-install-root-in-.cargo-config.patch b/0013-Set-the-install-root-in-.cargo-config.patch
index cb106e8..baa5e3a 100644
--- a/0013-Set-the-install-root-in-.cargo-config.patch
+++ b/0013-Set-the-install-root-in-.cargo-config.patch
@@ -1,7 +1,7 @@
From a04e95bc4f807139bd3c4b75f46fd9a60ec1db8f Mon Sep 17 00:00:00 2001
From: Josh Stone <jistone(a)redhat.com>
Date: Fri, 7 Dec 2018 13:59:03 -0800
-Subject: [PATCH 13/13] Set the install root in .cargo/config
+Subject: [PATCH 13/14] Set the install root in .cargo/config
---
data/macros.cargo | 4 +++-
@@ -30,5 +30,5 @@ index e760721..9a9ce6a 100644
%* \
}\
--
-2.20.0.rc2
+2.20.1
diff --git a/0014-Add-support-for-prerelease-versions.patch b/0014-Add-support-for-prerelease-versions.patch
new file mode 100644
index 0000000..cf16439
--- /dev/null
+++ b/0014-Add-support-for-prerelease-versions.patch
@@ -0,0 +1,85 @@
+From 29a3c1b84e0971fc0c2edf483ae3b04139c19b32 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Sat, 26 Jan 2019 08:33:37 +0100
+Subject: [PATCH 14/14] Add support for prerelease versions
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ rust2rpm/metadata.py | 18 ++++++++++++------
+ test.py | 8 ++++++++
+ 2 files changed, 20 insertions(+), 6 deletions(-)
+
+diff --git a/rust2rpm/metadata.py b/rust2rpm/metadata.py
+index 328b67a..f0718d5 100644
+--- a/rust2rpm/metadata.py
++++ b/rust2rpm/metadata.py
+@@ -45,11 +45,13 @@ class Dependency:
+ # Any means any
+ continue
+ ver = req.spec
+- if ver.prerelease:
+- raise NotImplementedError(f"Pre-release requirement is not supported: {ver}")
+ if req.kind in (req.KIND_NEQ, req.KIND_EMPTY):
+ raise NotImplementedError(f"'!=' and empty kinds are not supported: {req}")
+- coerced = semver.Version.coerce(str(ver))
++ coerced = str(semver.Version.coerce(str(ver)))
++ if ver.prerelease:
++ coerced = coerced.replace("-", "~")
++ # This will advance us to closest stable version (2.0.0-beta.6 2.0.0)
++ ver = ver.next_patch()
+ if req.kind == req.KIND_EQUAL:
+ req.kind = req.KIND_SHORTEQ
+ if req.kind in (req.KIND_CARET, req.KIND_COMPATIBLE):
+@@ -107,7 +109,11 @@ class Dependency:
+ class Metadata:
+ def __init__(self, name, version):
+ self.name = name
+- self.version = version
++ self._version = version
++ version_normalized = Dependency._normalize_req(f"={self._version}")
++ if len(version_normalized) != 1:
++ raise Exception(f"Incorrect version: {self._version}")
++ self.version = version_normalized[0][1]
+ self.license = None
+ self.license_file = None
+ self.readme = None
+@@ -187,7 +193,7 @@ class Metadata:
+ def provides(self, feature=None):
+ if feature not in self.dependencies:
+ raise KeyError(f"Feature {feature!r} doesn't exist")
+- return Dependency(self.name, f"={self.version}", features={feature})
++ return Dependency(self.name, f"={self._version}", features={feature})
+
+ @classmethod
+ def _resolve(cls, deps_by_feature, feature):
+@@ -207,7 +213,7 @@ class Metadata:
+ return self._resolve(self.dependencies, feature)[1]
+ else:
+ features, deps = self.dependencies[feature]
+- fdeps = set(Dependency(self.name, f"={self.version}", features={feature})
++ fdeps = set(Dependency(self.name, f"={self._version}", features={feature})
+ for feature in features)
+ return fdeps | deps
+
+diff --git a/test.py b/test.py
+index 30263b4..035df79 100644
+--- a/test.py
++++ b/test.py
+@@ -37,6 +37,14 @@ import rust2rpm
+ "crate(test) = 1.2.3"),
+ (">= 1.2, < 1.5",
+ "(crate(test) >= 1.2.0 with crate(test) < 1.5.0)"),
++ ("^2.0.0-alpha.6",
++ "(crate(test) >= 2.0.0~alpha.6 with crate(test) < 3.0.0)"),
++ ("^0.1.0-alpha.6",
++ "(crate(test) >= 0.1.0~alpha.6 with crate(test) < 0.2.0)"),
++ ("^0.0.1-alpha.6",
++ "(crate(test) >= 0.0.1~alpha.6 with crate(test) < 0.0.2)"),
++ ("^0.0.0-alpha.6",
++ "(crate(test) >= 0.0.0~alpha.6 with crate(test) < 0.0.1)"),
+ ])
+ def test_dependency(req, rpmdep):
+ dep = rust2rpm.Dependency("test", req)
+--
+2.20.1
+
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 5b5682d..0d97e56 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -5,7 +5,7 @@
Name: rust-packaging
Version: 6
-Release: 18%{?dist}
+Release: 19%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -24,6 +24,7 @@ Patch0010: 0010-trivial-use-f-strings-everywhere.patch
Patch0011: 0011-Add-option-to-not-generate-a-default-changelog-entry.patch
Patch0012: 0012-Set-CARGO_HOME-to-the-local-.config.patch
Patch0013: 0013-Set-the-install-root-in-.cargo-config.patch
+Patch0014: 0014-Add-support-for-prerelease-versions.patch
ExclusiveArch: %{rust_arches}
@@ -84,6 +85,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sat Jan 26 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-19
+- Add support for pre-release versions
+
* Fri Dec 07 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-18
- Set CARGO_HOME
commit 6745bc623a3106cefedced2c8073010a7ac732aa
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Fri Dec 7 23:17:39 2018 +0100
Set CARGO_HOME
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0001-name-spec-patch_file-by-real-crate-name.patch b/0001-name-spec-patch_file-by-real-crate-name.patch
index 3049ab2..1f65e7f 100644
--- a/0001-name-spec-patch_file-by-real-crate-name.patch
+++ b/0001-name-spec-patch_file-by-real-crate-name.patch
@@ -1,7 +1,7 @@
From 0dc9fc182edf0791ca697f587e48dd39948d63c1 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Mon, 10 Sep 2018 23:37:40 +0200
-Subject: [PATCH 01/10] name spec/patch_file by real crate name
+Subject: [PATCH 01/13] name spec/patch_file by real crate name
When renaming using patch file, we really want to change file names too.
@@ -33,5 +33,5 @@ index dc78828..1575ce6 100644
if args.stdout:
print("# {}".format(spec_file))
--
-2.19.1
+2.20.0.rc2
diff --git a/0002-generate-doc-statements.patch b/0002-generate-doc-statements.patch
index fb8f36b..581990d 100644
--- a/0002-generate-doc-statements.patch
+++ b/0002-generate-doc-statements.patch
@@ -1,7 +1,7 @@
From 561280a0ea35f226ef243526be2bbb656db44af6 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Mon, 10 Sep 2018 23:40:18 +0200
-Subject: [PATCH 02/10] generate %doc statements
+Subject: [PATCH 02/13] generate %doc statements
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
@@ -54,5 +54,5 @@ index 1aeb969..2e9f841 100644
{% endif %}
--
-2.19.1
+2.20.0.rc2
diff --git a/0003-do-better-for-renamed-crates.patch b/0003-do-better-for-renamed-crates.patch
index e70a367..1640604 100644
--- a/0003-do-better-for-renamed-crates.patch
+++ b/0003-do-better-for-renamed-crates.patch
@@ -1,7 +1,7 @@
From 2050880140d4953b9ebdc7211e30df3ccf5dd61d Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue, 11 Sep 2018 00:06:50 +0200
-Subject: [PATCH 03/10] do better for renamed crates
+Subject: [PATCH 03/13] do better for renamed crates
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
@@ -86,5 +86,5 @@ index 2e9f841..7dbcc3f 100644
%build
--
-2.19.1
+2.20.0.rc2
diff --git a/0004-remove-pre-3.6-leftovers.patch b/0004-remove-pre-3.6-leftovers.patch
index 0f2a391..0ba106c 100644
--- a/0004-remove-pre-3.6-leftovers.patch
+++ b/0004-remove-pre-3.6-leftovers.patch
@@ -1,7 +1,7 @@
From e6e9cbbb71199c2773b47fa21f1c917a167c1743 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue, 11 Sep 2018 10:43:53 +0200
-Subject: [PATCH 04/10] remove pre-3.6 leftovers
+Subject: [PATCH 04/13] remove pre-3.6 leftovers
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
@@ -23,5 +23,5 @@ index f52d968..5adeb65 100644
+ "--manifest-path={}".format(path)])
return cls.from_json(json.loads(metadata))
--
-2.19.1
+2.20.0.rc2
diff --git a/0005-Remove-half-downloaded-crate-on-C.patch b/0005-Remove-half-downloaded-crate-on-C.patch
index 6daebcc..6f67bb9 100644
--- a/0005-Remove-half-downloaded-crate-on-C.patch
+++ b/0005-Remove-half-downloaded-crate-on-C.patch
@@ -1,7 +1,7 @@
From 2f12c83d14afe71e9efed2d1be62e1e610e602e9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
Date: Fri, 17 Aug 2018 10:03:48 +0200
-Subject: [PATCH 05/10] Remove half-downloaded crate on ^C
+Subject: [PATCH 05/13] Remove half-downloaded crate on ^C
Subsequent invocations would fail with an error about a corrupted file.
We don't have support for resuming a failed download, so let's remove the
@@ -40,5 +40,5 @@ index e993e7b..8e6f6eb 100644
total=total, unit="B", unit_scale=True):
f.write(chunk)
--
-2.19.1
+2.20.0.rc2
diff --git a/0006-Throw-an-error-if-s-is-used-without-a-crate.patch b/0006-Throw-an-error-if-s-is-used-without-a-crate.patch
index 1f2a4e0..cc09ce2 100644
--- a/0006-Throw-an-error-if-s-is-used-without-a-crate.patch
+++ b/0006-Throw-an-error-if-s-is-used-without-a-crate.patch
@@ -1,7 +1,7 @@
From 5a1cde5b8dcaea74ebb2050879036bf46df63adc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
Date: Fri, 17 Aug 2018 10:18:59 +0200
-Subject: [PATCH 06/10] Throw an error if -s is used without a crate
+Subject: [PATCH 06/13] Throw an error if -s is used without a crate
In the future we might want to be smarter and find the crate, but let's at least
not ignore the option completely.
@@ -24,5 +24,5 @@ index 8e6f6eb..f23ebbc 100644
diff = make_patch(toml, enabled=patch, tmpfile=True)
metadata = Metadata.from_file(toml)
--
-2.19.1
+2.20.0.rc2
diff --git a/0007-split-features-into-subpackages.patch b/0007-split-features-into-subpackages.patch
index ac08472..52d253e 100644
--- a/0007-split-features-into-subpackages.patch
+++ b/0007-split-features-into-subpackages.patch
@@ -1,7 +1,7 @@
From 2cac5e5ad5ff5472923ce333bef59679612bbaa2 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Fri, 26 Oct 2018 11:20:13 +0200
-Subject: [PATCH 07/10] split features into subpackages
+Subject: [PATCH 07/13] split features into subpackages
References: https://discussion.fedoraproject.org/t/rfc-new-crates-packaging-design-fe...
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
@@ -1060,5 +1060,5 @@ index b856fdd..30263b4 100644
- assert [str(x) for x in md.provides] == provides
- assert [str(x) for x in md.requires] == requires
--
-2.19.1
+2.20.0.rc2
diff --git a/0008-add-support-for-dependencies-with-same-name.patch b/0008-add-support-for-dependencies-with-same-name.patch
index d63d0c4..378edfc 100644
--- a/0008-add-support-for-dependencies-with-same-name.patch
+++ b/0008-add-support-for-dependencies-with-same-name.patch
@@ -1,7 +1,7 @@
From a1d3a84645aa7bbe5ca07b60bead1ddf90a21cc1 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue, 30 Oct 2018 20:37:38 +0100
-Subject: [PATCH 08/10] add support for dependencies with same name
+Subject: [PATCH 08/13] add support for dependencies with same name
Reported-by: Josh Stone <jistone(a)redhat.com>
References: https://internals.rust-lang.org/t/optional-dependencies-with-same-name/8728
@@ -70,5 +70,5 @@ index 4929cdd..328b67a 100644
if "default" not in deps_by_feature:
--
-2.19.1
+2.20.0.rc2
diff --git a/0009-add-support-for-feeding-user-configuration.patch b/0009-add-support-for-feeding-user-configuration.patch
index 233c11c..b130ebe 100644
--- a/0009-add-support-for-feeding-user-configuration.patch
+++ b/0009-add-support-for-feeding-user-configuration.patch
@@ -1,7 +1,7 @@
From 197150ee2e862edcd46f7ab02c9e4d17e49ca75d Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Wed, 31 Oct 2018 18:03:21 +0100
-Subject: [PATCH 09/10] add support for feeding user configuration
+Subject: [PATCH 09/13] add support for feeding user configuration
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
@@ -144,5 +144,5 @@ index 0d9a80b..d901e6d 100644
%description {{ pkg }} %{_description}
--
-2.19.1
+2.20.0.rc2
diff --git a/0010-trivial-use-f-strings-everywhere.patch b/0010-trivial-use-f-strings-everywhere.patch
index 32bae14..f6ff2f4 100644
--- a/0010-trivial-use-f-strings-everywhere.patch
+++ b/0010-trivial-use-f-strings-everywhere.patch
@@ -1,7 +1,7 @@
From 83ea3796cd28ec7689b39e7dc7a70bd11af1abf1 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Wed, 31 Oct 2018 17:00:58 +0100
-Subject: [PATCH 10/10] trivial: use f-strings everywhere
+Subject: [PATCH 10/13] trivial: use f-strings everywhere
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
@@ -90,5 +90,5 @@ index c691274..b60e6c4 100644
else:
with open(spec_file, "w") as fobj:
--
-2.19.1
+2.20.0.rc2
diff --git a/0011-Add-option-to-not-generate-a-default-changelog-entry.patch b/0011-Add-option-to-not-generate-a-default-changelog-entry.patch
new file mode 100644
index 0000000..ccad736
--- /dev/null
+++ b/0011-Add-option-to-not-generate-a-default-changelog-entry.patch
@@ -0,0 +1,63 @@
+From 294c6f571c0f4f7ed5a4fcb34142b0d332c55f29 Mon Sep 17 00:00:00 2001
+From: Neal Gompa <ngompa13(a)gmail.com>
+Date: Sun, 11 Nov 2018 11:06:27 -0500
+Subject: [PATCH 11/13] Add option to not generate a default changelog entry
+
+For Rust packages created through the OBS source service, the
+changelog is managed by an external <pkg>.changes file that is
+transformed into an RPM changelog and appended to the spec file
+automatically by the Open Build Service.
+
+Having a default entry means that the changelog handling will not
+always work correctly and package builds may fail due to changelog
+entries not being in reverse chronological order.
+
+This also is a future enabler for other workflows for external
+changelog management in automated package builds.
+
+Signed-off-by: Neal Gompa <ngompa13(a)gmail.com>
+---
+ rust2rpm/__main__.py | 7 +++++++
+ rust2rpm/templates/main.spec | 4 +++-
+ 2 files changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
+index b60e6c4..747328e 100644
+--- a/rust2rpm/__main__.py
++++ b/rust2rpm/__main__.py
+@@ -209,6 +209,8 @@ def main():
+ formatter_class=argparse.RawTextHelpFormatter)
+ parser.add_argument("--show-license-map", action="store_true",
+ help="Print license mappings and exit")
++ parser.add_argument("--no-auto-changelog-entry", action="store_true",
++ help="Do not generate a changelog entry")
+ parser.add_argument("-", "--stdout", action="store_true",
+ help="Print spec and patches into stdout")
+ parser.add_argument("-t", "--target", action="store",
+@@ -261,6 +263,11 @@ def main():
+ raise ValueError("No bins and no libs")
+ kwargs["include_devel"] = is_lib
+
++ if args.no_auto_changelog_entry:
++ kwargs["auto_changelog_entry"] = False
++ else:
++ kwargs["auto_changelog_entry"] = True
++
+ if args.target in ("fedora", "mageia", "opensuse"):
+ kwargs["include_build_requires"] = True
+ kwargs["include_provides"] = False
+diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
+index d901e6d..84bd97d 100644
+--- a/rust2rpm/templates/main.spec
++++ b/rust2rpm/templates/main.spec
+@@ -179,4 +179,6 @@ which use {% if feature is not none %}"{{ feature }}" feature of {% endif %}"%{c
+ %endif
+
+ %changelog
+-{% include target ~ "-changelog.spec.inc" %}
++{% if auto_changelog_entry %}
++ {% include target ~ "-changelog.spec.inc" %}
++{% endif %}
+--
+2.20.0.rc2
+
diff --git a/0012-Set-CARGO_HOME-to-the-local-.config.patch b/0012-Set-CARGO_HOME-to-the-local-.config.patch
new file mode 100644
index 0000000..9f81757
--- /dev/null
+++ b/0012-Set-CARGO_HOME-to-the-local-.config.patch
@@ -0,0 +1,26 @@
+From b4e25038296cd57eba639a059e8baaf139a5d287 Mon Sep 17 00:00:00 2001
+From: Josh Stone <jistone(a)redhat.com>
+Date: Fri, 7 Dec 2018 13:58:41 -0800
+Subject: [PATCH 12/13] Set CARGO_HOME to the local .config
+
+---
+ data/macros.cargo | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/data/macros.cargo b/data/macros.cargo
+index 7fb025b..e760721 100644
+--- a/data/macros.cargo
++++ b/data/macros.cargo
+@@ -1,4 +1,8 @@
+-%__cargo %{_bindir}/cargo
++# Since cargo 1.31, install only uses $CARGO_HOME/config, ignoring $PWD.
++# https://github.com/rust-lang/cargo/issues/6397
++# But we can set CARGO_HOME locally, which is a good idea anyway to make sure
++# it never writes to ~/.cargo during rpmbuild.
++%__cargo %{_bindir}/env CARGO_HOME=.cargo %{_bindir}/cargo
+ %__cargo_common_opts %{?_smp_mflags}
+ %__cargo_inspector %{_bindir}/cargo-inspector
+
+--
+2.20.0.rc2
+
diff --git a/0013-Set-the-install-root-in-.cargo-config.patch b/0013-Set-the-install-root-in-.cargo-config.patch
new file mode 100644
index 0000000..cb106e8
--- /dev/null
+++ b/0013-Set-the-install-root-in-.cargo-config.patch
@@ -0,0 +1,34 @@
+From a04e95bc4f807139bd3c4b75f46fd9a60ec1db8f Mon Sep 17 00:00:00 2001
+From: Josh Stone <jistone(a)redhat.com>
+Date: Fri, 7 Dec 2018 13:59:03 -0800
+Subject: [PATCH 13/13] Set the install root in .cargo/config
+
+---
+ data/macros.cargo | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/data/macros.cargo b/data/macros.cargo
+index e760721..9a9ce6a 100644
+--- a/data/macros.cargo
++++ b/data/macros.cargo
+@@ -20,6 +20,9 @@ rustc = "%{__rustc}"\
+ rustdoc = "%{__rustdoc}"\
+ rustflags = %{__global_rustflags_toml}\
+ \
++[install]\
++root = "%{buildroot}%{_prefix}"\
++\
+ [term]\
+ verbose = true\
+ \
+@@ -81,7 +84,6 @@ if %__cargo_is_bin; then \
+ %{shrink:%{__cargo} install \
+ %{__cargo_common_opts} \
+ --path . \
+- --root %{buildroot}%{_prefix} \
+ %{__cargo_parse_opts %{-n} %{-a} %{-f:-f%{-f*}}} \
+ %* \
+ }\
+--
+2.20.0.rc2
+
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 98fa000..5b5682d 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -5,7 +5,7 @@
Name: rust-packaging
Version: 6
-Release: 17%{?dist}
+Release: 18%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -17,11 +17,13 @@ Patch0003: 0003-do-better-for-renamed-crates.patch
Patch0004: 0004-remove-pre-3.6-leftovers.patch
Patch0005: 0005-Remove-half-downloaded-crate-on-C.patch
Patch0006: 0006-Throw-an-error-if-s-is-used-without-a-crate.patch
-# Still in PR
Patch0007: 0007-split-features-into-subpackages.patch
Patch0008: 0008-add-support-for-dependencies-with-same-name.patch
Patch0009: 0009-add-support-for-feeding-user-configuration.patch
Patch0010: 0010-trivial-use-f-strings-everywhere.patch
+Patch0011: 0011-Add-option-to-not-generate-a-default-changelog-entry.patch
+Patch0012: 0012-Set-CARGO_HOME-to-the-local-.config.patch
+Patch0013: 0013-Set-the-install-root-in-.cargo-config.patch
ExclusiveArch: %{rust_arches}
@@ -82,6 +84,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Fri Dec 07 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-18
+- Set CARGO_HOME
+
* Sat Nov 03 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-17
- Update patchset
commit 04e7ad287a632a68ccd10cfd35a636852108ad28
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat Nov 3 21:45:54 2018 +0100
Update patchset
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0007-split-features-into-subpackages.patch b/0007-split-features-into-subpackages.patch
index 519b6ac..ac08472 100644
--- a/0007-split-features-into-subpackages.patch
+++ b/0007-split-features-into-subpackages.patch
@@ -1,4 +1,4 @@
-From 5471c1916a5e947ba1b21343b70abd6d4aaf97de Mon Sep 17 00:00:00 2001
+From 2cac5e5ad5ff5472923ce333bef59679612bbaa2 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Fri, 26 Oct 2018 11:20:13 +0200
Subject: [PATCH 07/10] split features into subpackages
@@ -7,12 +7,13 @@ References: https://discussion.fedoraproject.org/t/rfc-new-crates-packaging-desi
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
data/cargo.attr | 4 +-
- data/macros.cargo | 10 ++
+ data/macros.cargo | 10 +
rust2rpm/__main__.py | 11 +-
rust2rpm/inspector.py | 22 ++-
- rust2rpm/metadata.py | 315 +++++++++++++++++------------------
- rust2rpm/templates/main.spec | 142 ++++++++--------
- 6 files changed, 260 insertions(+), 244 deletions(-)
+ rust2rpm/metadata.py | 317 ++++++++++++++++----------------
+ rust2rpm/templates/main.spec | 142 +++++++-------
+ test.py | 347 ++++-------------------------------
+ 7 files changed, 298 insertions(+), 555 deletions(-)
diff --git a/data/cargo.attr b/data/cargo.attr
index 392a72b..4910b5c 100644
@@ -143,10 +144,10 @@ index 2d488b2..9e79e88 100644
if __name__ == "__main__":
main()
diff --git a/rust2rpm/metadata.py b/rust2rpm/metadata.py
-index 5adeb65..119dea5 100644
+index 5adeb65..4929cdd 100644
--- a/rust2rpm/metadata.py
+++ b/rust2rpm/metadata.py
-@@ -1,208 +1,205 @@
+@@ -1,208 +1,207 @@
__all__ = ["Dependency", "Metadata"]
-import itertools
@@ -260,8 +261,8 @@ index 5adeb65..119dea5 100644
- spec = semver.Spec(s.replace(" ", ""))
- parsed = []
+ def _normalize_req(req):
-+ if "*" in req:
-+ return NotImplemented
++ if "*" in req and req != "*":
++ raise NotImplementedError(f"'*' is not supported: {req}")
+ spec = semver.Spec(req.replace(" ", ""))
+ reqs = []
for req in spec.specs:
@@ -271,8 +272,10 @@ index 5adeb65..119dea5 100644
+ # Any means any
continue
+ ver = req.spec
-+ if ver.prerelease or req.kind in (req.KIND_NEQ, req.KIND_EMPTY):
-+ return NotImplemented
++ if ver.prerelease:
++ raise NotImplementedError(f"Pre-release requirement is not supported: {ver}")
++ if req.kind in (req.KIND_NEQ, req.KIND_EMPTY):
++ raise NotImplementedError(f"'!=' and empty kinds are not supported: {req}")
coerced = semver.Version.coerce(str(ver))
- if req.kind in (req.KIND_CARET, req.KIND_TILDE):
- if ver.prerelease:
@@ -697,6 +700,365 @@ index 7dbcc3f..0d9a80b 100644
-{% endif %}
%changelog
{% include target ~ "-changelog.spec.inc" %}
+diff --git a/test.py b/test.py
+index b856fdd..30263b4 100644
+--- a/test.py
++++ b/test.py
+@@ -1,318 +1,43 @@
+-import os
+-import shutil
+-import subprocess
+-import sys
+-import tempfile
+-import textwrap
+-
+ import pytest
+
+ import rust2rpm
+
+-DUMMY_LIB = """
+-pub fn say_hello() {
+- println!("Hello, World!");
+-}
+-"""
+-DEPGEN = os.path.join(os.path.dirname(__file__), "cargodeps.py")
+-
+-
+-(a)pytest.mark.parametrize("req, features, rpmdep", [
+- ("=1.0.0", [],
+- "crate(test) = 1.0.0"),
+- ("=1.0.0", ["feature"],
+- "(crate(test) = 1.0.0 with crate(test/feature))"),
+- (">=1.0.0,<2.0.0", [],
++(a)pytest.mark.parametrize("req, rpmdep", [
++ ("^1.2.3",
++ "(crate(test) >= 1.2.3 with crate(test) < 2.0.0)"),
++ ("^1.2",
++ "(crate(test) >= 1.2.0 with crate(test) < 2.0.0)"),
++ ("^1",
+ "(crate(test) >= 1.0.0 with crate(test) < 2.0.0)"),
+- (">=1.0.0,<2.0.0", ["feature"],
+- "((crate(test) >= 1.0.0 with crate(test) < 2.0.0) with crate(test/feature))"),
++ ("^0.2.3",
++ "(crate(test) >= 0.2.3 with crate(test) < 0.3.0)"),
++ ("^0.2",
++ "(crate(test) >= 0.2.0 with crate(test) < 0.3.0)"),
++ ("^0.0.3",
++ "(crate(test) >= 0.0.3 with crate(test) < 0.0.4)"),
++ ("^0.0",
++ "(crate(test) >= 0.0.0 with crate(test) < 0.1.0)"),
++ ("^0",
++ "(crate(test) >= 0.0.0 with crate(test) < 1.0.0)"),
++ ("~1.2.3",
++ "(crate(test) >= 1.2.3 with crate(test) < 1.3.0)"),
++ ("~1.2",
++ "(crate(test) >= 1.2.0 with crate(test) < 1.3.0)"),
++ ("~1",
++ "(crate(test) >= 1.0.0 with crate(test) < 2.0.0)"),
++ ("*",
++ "crate(test)"),
++ (">= 1.2.0",
++ "crate(test) >= 1.2.0"),
++ ("> 1",
++ "crate(test) > 1.0.0"),
++ ("< 2",
++ "crate(test) < 2.0.0"),
++ ("= 1.2.3",
++ "crate(test) = 1.2.3"),
++ (">= 1.2, < 1.5",
++ "(crate(test) >= 1.2.0 with crate(test) < 1.5.0)"),
+ ])
+-def test_dependency(req, features, rpmdep):
+- dep = rust2rpm.Dependency("test", req, features)
++def test_dependency(req, rpmdep):
++ dep = rust2rpm.Dependency("test", req)
+ assert str(dep) == rpmdep
+-
+-(a)pytest.fixture
+-def cargo_toml(request):
+- def make_cargo_toml(contents):
+- toml = os.path.join(tmpdir, "Cargo.toml")
+- with open(toml, "w") as fobj:
+- fobj.write(textwrap.dedent(contents))
+- return toml
+-
+- tmpdir = tempfile.mkdtemp(prefix="cargo-deps-")
+- srcdir = os.path.join(tmpdir, "src")
+- os.mkdir(srcdir)
+- with open(os.path.join(srcdir, "lib.rs"), "w") as fobj:
+- fobj.write(DUMMY_LIB)
+-
+- def finalize():
+- shutil.rmtree(tmpdir)
+- request.addfinalizer(finalize)
+-
+- return make_cargo_toml
+-
+-(a)pytest.mark.parametrize("toml, provides, requires", [
+-
+- # Basic provides
+- ("""
+- [package]
+- name = "hello"
+- version = "0.0.0"
+- """,
+- ["crate(hello) = 0.0.0"],
+- []),
+-
+- # Basic provides for feature
+- ("""
+- [package]
+- name = "hello"
+- version = "1.2.3"
+-
+- [features]
+- color = []
+- """,
+- ["crate(hello) = 1.2.3",
+- "crate(hello/color) = 1.2.3"],
+- []),
+-
+- # Provides for optional dependencies
+- ("""
+- [package]
+- name = "hello"
+- version = "1.2.3"
+-
+- [dependencies]
+- non_optional = "1"
+- serde = { version = "1", optional = true }
+- rand = { version = "0.4", optional = true }
+-
+- [features]
+- std = []
+- v1 = ["rand"]
+- """,
+- ["crate(hello) = 1.2.3",
+- "crate(hello/rand) = 1.2.3",
+- "crate(hello/serde) = 1.2.3",
+- "crate(hello/std) = 1.2.3",
+- "crate(hello/v1) = 1.2.3"],
+- ["(crate(non_optional) >= 1.0.0 with crate(non_optional) < 2.0.0)",
+- "(crate(rand) >= 0.4.0 with crate(rand) < 0.5.0)",
+- "(crate(serde) >= 1.0.0 with crate(serde) < 2.0.0)"]),
+-
+- # Caret requirements
+- ("""
+- [package]
+- name = "hello"
+- version = "0.0.0"
+-
+- [dependencies]
+- libc = "^0"
+- """,
+- ["crate(hello) = 0.0.0"],
+- ["(crate(libc) >= 0.0.0 with crate(libc) < 1.0.0)"]),
+- ("""
+- [package]
+- name = "hello"
+- version = "0.0.0"
+-
+- [dependencies]
+- libc = "^0.0"
+- """,
+- ["crate(hello) = 0.0.0"],
+- ["(crate(libc) >= 0.0.0 with crate(libc) < 0.1.0)"]),
+- ("""
+- [package]
+- name = "hello"
+- version = "0.0.0"
+-
+- [dependencies]
+- libc = "^0.0.3"
+- """,
+- ["crate(hello) = 0.0.0"],
+- ["(crate(libc) >= 0.0.3 with crate(libc) < 0.0.4)"]),
+- ("""
+- [package]
+- name = "hello"
+- version = "0.0.0"
+-
+- [dependencies]
+- libc = "^0.2.3"
+- """,
+- ["crate(hello) = 0.0.0"],
+- ["(crate(libc) >= 0.2.3 with crate(libc) < 0.3.0)"]),
+- ("""
+- [package]
+- name = "hello"
+- version = "0.0.0"
+-
+- [dependencies]
+- libc = "^1"
+- """,
+- ["crate(hello) = 0.0.0"],
+- ["(crate(libc) >= 1.0.0 with crate(libc) < 2.0.0)"]),
+- ("""
+- [package]
+- name = "hello"
+- version = "0.0.0"
+-
+- [dependencies]
+- libc = "^1.2"
+- """,
+- ["crate(hello) = 0.0.0"],
+- ["(crate(libc) >= 1.2.0 with crate(libc) < 2.0.0)"]),
+- ("""
+- [package]
+- name = "hello"
+- version = "0.0.0"
+-
+- [dependencies]
+- libc = "^1.2.3"
+- """,
+- ["crate(hello) = 0.0.0"],
+- ["(crate(libc) >= 1.2.3 with crate(libc) < 2.0.0)"]),
+-
+- # Tilde requirements
+- ("""
+- [package]
+- name = "hello"
+- version = "0.0.0"
+-
+- [dependencies]
+- libc = "~1"
+- """,
+- ["crate(hello) = 0.0.0"],
+- ["(crate(libc) >= 1.0.0 with crate(libc) < 2.0.0)"]),
+- ("""
+- [package]
+- name = "hello"
+- version = "0.0.0"
+-
+- [dependencies]
+- libc = "~1.2"
+- """,
+- ["crate(hello) = 0.0.0"],
+- ["(crate(libc) >= 1.2.0 with crate(libc) < 1.3.0)"]),
+- ("""
+- [package]
+- name = "hello"
+- version = "0.0.0"
+-
+- [dependencies]
+- libc = "~1.2.3"
+- """,
+- ["crate(hello) = 0.0.0"],
+- ["(crate(libc) >= 1.2.3 with crate(libc) < 1.3.0)"]),
+-
+- # Wildcard requirements
+- ("""
+- [package]
+- name = "hello"
+- version = "0.0.0"
+-
+- [dependencies]
+- libc = "*"
+- """,
+- ["crate(hello) = 0.0.0"],
+- ["crate(libc)"]),
+- ("""
+- [package]
+- name = "hello"
+- version = "0.0.0"
+-
+- [dependencies]
+- libc = "1.*"
+- """,
+- ["crate(hello) = 0.0.0"],
+- ["(crate(libc) >= 1.0.0 with crate(libc) < 2.0.0)"]),
+- ("""
+- [package]
+- name = "hello"
+- version = "0.0.0"
+-
+- [dependencies]
+- libc = "1.2.*"
+- """,
+- ["crate(hello) = 0.0.0"],
+- ["(crate(libc) >= 1.2.0 with crate(libc) < 1.3.0)"]),
+- ("""
+- [package]
+- name = "hello"
+- version = "0.0.0"
+-
+- [dependencies]
+- libc = "1.*.*"
+- """,
+- ["crate(hello) = 0.0.0"],
+- ["(crate(libc) >= 1.0.0 with crate(libc) < 2.0.0)"]),
+-
+- # Inequality requirements
+- ("""
+- [package]
+- name = "hello"
+- version = "0.0.0"
+-
+- [dependencies]
+- libc = ">= 1.2.0"
+- """,
+- ["crate(hello) = 0.0.0"],
+- ["crate(libc) >= 1.2.0"]),
+- ("""
+- [package]
+- name = "hello"
+- version = "0.0.0"
+-
+- [dependencies]
+- libc = "> 1"
+- """,
+- ["crate(hello) = 0.0.0"],
+- ["crate(libc) > 1.0.0"]),
+- ("""
+- [package]
+- name = "hello"
+- version = "0.0.0"
+-
+- [dependencies]
+- libc = "< 2"
+- """,
+- ["crate(hello) = 0.0.0"],
+- ["crate(libc) < 2.0.0"]),
+- ("""
+- [package]
+- name = "hello"
+- version = "0.0.0"
+-
+- [dependencies]
+- libc = "= 1.2.3"
+- """,
+- ["crate(hello) = 0.0.0"],
+- ["crate(libc) = 1.2.3"]),
+-
+- # Multiple requirements
+- ("""
+- [package]
+- name = "hello"
+- version = "0.0.0"
+-
+- [dependencies]
+- libc = ">= 1.2, < 1.5"
+- """,
+- ["crate(hello) = 0.0.0"],
+- ["(crate(libc) >= 1.2.0 with crate(libc) < 1.5.0)"]),
+-
+- # Pre-release requirements
+- ("""
+- [package]
+- name = "hello"
+- version = "0.0.0-alpha"
+-
+- [dependencies]
+- foo-bar = "1.2.3-beta"
+- """,
+- ["crate(hello) = 0.0.0~alpha"],
+- ["(crate(foo-bar) >= 1.2.3~beta with crate(foo-bar) < 1.2.3)"]),
+-
+-])
+-def test_depgen(toml, provides, requires, cargo_toml):
+- md = rust2rpm.Metadata.from_file(cargo_toml(toml))
+- assert [str(x) for x in md.provides] == provides
+- assert [str(x) for x in md.requires] == requires
--
2.19.1
diff --git a/0008-add-support-for-dependencies-with-same-name.patch b/0008-add-support-for-dependencies-with-same-name.patch
index 1932281..d63d0c4 100644
--- a/0008-add-support-for-dependencies-with-same-name.patch
+++ b/0008-add-support-for-dependencies-with-same-name.patch
@@ -1,4 +1,4 @@
-From 8905032db2b0198c6426011807f3b75fc91c38b5 Mon Sep 17 00:00:00 2001
+From a1d3a84645aa7bbe5ca07b60bead1ddf90a21cc1 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue, 30 Oct 2018 20:37:38 +0100
Subject: [PATCH 08/10] add support for dependencies with same name
@@ -11,7 +11,7 @@ Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
1 file changed, 20 insertions(+), 12 deletions(-)
diff --git a/rust2rpm/metadata.py b/rust2rpm/metadata.py
-index 119dea5..febf1e5 100644
+index 4929cdd..328b67a 100644
--- a/rust2rpm/metadata.py
+++ b/rust2rpm/metadata.py
@@ -1,5 +1,6 @@
@@ -21,7 +21,7 @@ index 119dea5..febf1e5 100644
import copy
import json
import subprocess
-@@ -124,9 +125,11 @@ class Metadata:
+@@ -126,9 +127,11 @@ class Metadata:
self.description = md.get("description")
# dependencies + build-dependencies runtime
@@ -36,7 +36,7 @@ index 119dea5..febf1e5 100644
deps_by_feature = {}
for feature, f_deps in md["features"].items():
-@@ -137,18 +140,23 @@ class Metadata:
+@@ -139,18 +142,23 @@ class Metadata:
features.add(dep)
else:
pkg, _, f = dep.partition("/")
diff --git a/0009-add-support-for-feeding-user-configuration.patch b/0009-add-support-for-feeding-user-configuration.patch
index d811dac..233c11c 100644
--- a/0009-add-support-for-feeding-user-configuration.patch
+++ b/0009-add-support-for-feeding-user-configuration.patch
@@ -1,4 +1,4 @@
-From 9ef415cbd5e204849793a16fa1b8a9ed40c0be73 Mon Sep 17 00:00:00 2001
+From 197150ee2e862edcd46f7ab02c9e4d17e49ca75d Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Wed, 31 Oct 2018 18:03:21 +0100
Subject: [PATCH 09/10] add support for feeding user configuration
diff --git a/0010-trivial-use-f-strings-everywhere.patch b/0010-trivial-use-f-strings-everywhere.patch
index dd42d58..32bae14 100644
--- a/0010-trivial-use-f-strings-everywhere.patch
+++ b/0010-trivial-use-f-strings-everywhere.patch
@@ -1,4 +1,4 @@
-From be0464ab8a235b4c3b49e711140c2de2f0dcf6d8 Mon Sep 17 00:00:00 2001
+From 83ea3796cd28ec7689b39e7dc7a70bd11af1abf1 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Wed, 31 Oct 2018 17:00:58 +0100
Subject: [PATCH 10/10] trivial: use f-strings everywhere
diff --git a/rust-packaging.spec b/rust-packaging.spec
index f80f490..98fa000 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -1,12 +1,11 @@
-# Tests need fixing after patches
-%bcond_with check
+%bcond_without check
%{?python_enable_dependency_generator}
# https://pagure.io/koji/issue/659
%global debug_package %{nil}
Name: rust-packaging
Version: 6
-Release: 16%{?dist}
+Release: 17%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -83,6 +82,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sat Nov 03 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-17
+- Update patchset
+
* Sat Nov 03 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-16
- Make package archful
commit 965e2b87b5dc2618aacb99bd2875fc673f6746eb
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat Nov 3 10:15:56 2018 +0100
Make package archful
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 524b739..f80f490 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -1,10 +1,12 @@
# Tests need fixing after patches
%bcond_with check
%{?python_enable_dependency_generator}
+# https://pagure.io/koji/issue/659
+%global debug_package %{nil}
Name: rust-packaging
Version: 6
-Release: 15%{?dist}
+Release: 16%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -22,8 +24,7 @@ Patch0008: 0008-add-support-for-dependencies-with-same-name.patch
Patch0009: 0009-add-support-for-feeding-user-configuration.patch
Patch0010: 0010-trivial-use-f-strings-everywhere.patch
-BuildArch: noarch
-ExclusiveArch: %{rust_arches} noarch
+ExclusiveArch: %{rust_arches}
# gawk is needed for stripping dev-deps in macro, 4.1.0 is needed for inplace feature
Requires: gawk >= 4.1.0
@@ -82,6 +83,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sat Nov 03 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-16
+- Make package archful
+
* Fri Nov 02 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-15
- Support .rust2rpm.conf
commit 5ab9ed56cb2342f2e30413ce4cf1d3c499b5bfd2
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Fri Nov 2 17:05:14 2018 +0100
update patches
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0007-split-features-into-subpackages.patch b/0007-split-features-into-subpackages.patch
index 0d4c7e2..519b6ac 100644
--- a/0007-split-features-into-subpackages.patch
+++ b/0007-split-features-into-subpackages.patch
@@ -1,4 +1,4 @@
-From 6f95899a21799054165858cacbe588a2a8bc6020 Mon Sep 17 00:00:00 2001
+From 5471c1916a5e947ba1b21343b70abd6d4aaf97de Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Fri, 26 Oct 2018 11:20:13 +0200
Subject: [PATCH 07/10] split features into subpackages
diff --git a/0008-add-support-for-dependencies-with-same-name.patch b/0008-add-support-for-dependencies-with-same-name.patch
index 490338c..1932281 100644
--- a/0008-add-support-for-dependencies-with-same-name.patch
+++ b/0008-add-support-for-dependencies-with-same-name.patch
@@ -1,4 +1,4 @@
-From a5fd01ecd0fd600a096c060ddfe77a21f54b045f Mon Sep 17 00:00:00 2001
+From 8905032db2b0198c6426011807f3b75fc91c38b5 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue, 30 Oct 2018 20:37:38 +0100
Subject: [PATCH 08/10] add support for dependencies with same name
diff --git a/0009-add-support-for-feeding-user-configuration.patch b/0009-add-support-for-feeding-user-configuration.patch
index 1a33fae..d811dac 100644
--- a/0009-add-support-for-feeding-user-configuration.patch
+++ b/0009-add-support-for-feeding-user-configuration.patch
@@ -1,4 +1,4 @@
-From 52b6ff8d55d59ace29950621ed41175ac31fa90c Mon Sep 17 00:00:00 2001
+From 9ef415cbd5e204849793a16fa1b8a9ed40c0be73 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Wed, 31 Oct 2018 18:03:21 +0100
Subject: [PATCH 09/10] add support for feeding user configuration
@@ -57,7 +57,7 @@ index 8866027..0000000
-
-Convert Rust crates to RPM.
diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
-index d19cb47..18fac5c 100644
+index d19cb47..c691274 100644
--- a/rust2rpm/__main__.py
+++ b/rust2rpm/__main__.py
@@ -199,6 +199,11 @@ def make_diff_metadata(crate, version, patch=False, store=False):
@@ -84,7 +84,7 @@ index d19cb47..18fac5c 100644
kwargs["license"] = license
kwargs["license_comments"] = comments
-+ conf = configparser.ConfigParser()
++ conf = configparser.ConfigParser(interpolation=configparser.ExtendedInterpolation())
+ conf.read(".rust2rpm.conf")
+ if args.target not in conf:
+ conf.add_section(args.target)
diff --git a/0010-trivial-use-f-strings-everywhere.patch b/0010-trivial-use-f-strings-everywhere.patch
index 3d8ca14..dd42d58 100644
--- a/0010-trivial-use-f-strings-everywhere.patch
+++ b/0010-trivial-use-f-strings-everywhere.patch
@@ -1,4 +1,4 @@
-From 00ed1ce05d9dd4c8042f27ca959350ce34fb1be5 Mon Sep 17 00:00:00 2001
+From be0464ab8a235b4c3b49e711140c2de2f0dcf6d8 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Wed, 31 Oct 2018 17:00:58 +0100
Subject: [PATCH 10/10] trivial: use f-strings everywhere
@@ -9,7 +9,7 @@ Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
-index 18fac5c..b4eb624 100644
+index c691274..b60e6c4 100644
--- a/rust2rpm/__main__.py
+++ b/rust2rpm/__main__.py
@@ -79,7 +79,7 @@ def detect_packager():
commit ae59ba471de8c4fbf9b5b99030f71b5758ce1a2e
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Fri Nov 2 17:00:14 2018 +0100
Support .rust2rpm.conf
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0001-name-spec-patch_file-by-real-crate-name.patch b/0001-name-spec-patch_file-by-real-crate-name.patch
index 27fbbfa..3049ab2 100644
--- a/0001-name-spec-patch_file-by-real-crate-name.patch
+++ b/0001-name-spec-patch_file-by-real-crate-name.patch
@@ -1,7 +1,7 @@
From 0dc9fc182edf0791ca697f587e48dd39948d63c1 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Mon, 10 Sep 2018 23:37:40 +0200
-Subject: [PATCH 1/8] name spec/patch_file by real crate name
+Subject: [PATCH 01/10] name spec/patch_file by real crate name
When renaming using patch file, we really want to change file names too.
diff --git a/0002-generate-doc-statements.patch b/0002-generate-doc-statements.patch
index fb5ec59..fb8f36b 100644
--- a/0002-generate-doc-statements.patch
+++ b/0002-generate-doc-statements.patch
@@ -1,7 +1,7 @@
From 561280a0ea35f226ef243526be2bbb656db44af6 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Mon, 10 Sep 2018 23:40:18 +0200
-Subject: [PATCH 2/8] generate %doc statements
+Subject: [PATCH 02/10] generate %doc statements
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
diff --git a/0003-do-better-for-renamed-crates.patch b/0003-do-better-for-renamed-crates.patch
index 0c9c3fd..e70a367 100644
--- a/0003-do-better-for-renamed-crates.patch
+++ b/0003-do-better-for-renamed-crates.patch
@@ -1,7 +1,7 @@
From 2050880140d4953b9ebdc7211e30df3ccf5dd61d Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue, 11 Sep 2018 00:06:50 +0200
-Subject: [PATCH 3/8] do better for renamed crates
+Subject: [PATCH 03/10] do better for renamed crates
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
diff --git a/0004-remove-pre-3.6-leftovers.patch b/0004-remove-pre-3.6-leftovers.patch
index 79d041d..0f2a391 100644
--- a/0004-remove-pre-3.6-leftovers.patch
+++ b/0004-remove-pre-3.6-leftovers.patch
@@ -1,7 +1,7 @@
From e6e9cbbb71199c2773b47fa21f1c917a167c1743 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue, 11 Sep 2018 10:43:53 +0200
-Subject: [PATCH 4/8] remove pre-3.6 leftovers
+Subject: [PATCH 04/10] remove pre-3.6 leftovers
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
diff --git a/0005-Remove-half-downloaded-crate-on-C.patch b/0005-Remove-half-downloaded-crate-on-C.patch
index ef0eb21..6daebcc 100644
--- a/0005-Remove-half-downloaded-crate-on-C.patch
+++ b/0005-Remove-half-downloaded-crate-on-C.patch
@@ -1,7 +1,7 @@
From 2f12c83d14afe71e9efed2d1be62e1e610e602e9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
Date: Fri, 17 Aug 2018 10:03:48 +0200
-Subject: [PATCH 5/8] Remove half-downloaded crate on ^C
+Subject: [PATCH 05/10] Remove half-downloaded crate on ^C
Subsequent invocations would fail with an error about a corrupted file.
We don't have support for resuming a failed download, so let's remove the
diff --git a/0006-Throw-an-error-if-s-is-used-without-a-crate.patch b/0006-Throw-an-error-if-s-is-used-without-a-crate.patch
index 44bc5b1..1f2a4e0 100644
--- a/0006-Throw-an-error-if-s-is-used-without-a-crate.patch
+++ b/0006-Throw-an-error-if-s-is-used-without-a-crate.patch
@@ -1,7 +1,7 @@
From 5a1cde5b8dcaea74ebb2050879036bf46df63adc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
Date: Fri, 17 Aug 2018 10:18:59 +0200
-Subject: [PATCH 6/8] Throw an error if -s is used without a crate
+Subject: [PATCH 06/10] Throw an error if -s is used without a crate
In the future we might want to be smarter and find the crate, but let's at least
not ignore the option completely.
diff --git a/0007-split-features-into-subpackages.patch b/0007-split-features-into-subpackages.patch
index fe96334..0d4c7e2 100644
--- a/0007-split-features-into-subpackages.patch
+++ b/0007-split-features-into-subpackages.patch
@@ -1,7 +1,7 @@
-From d7caa1148d5fcac70030e3fb1eb698927e69960f Mon Sep 17 00:00:00 2001
+From 6f95899a21799054165858cacbe588a2a8bc6020 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Fri, 26 Oct 2018 11:20:13 +0200
-Subject: [PATCH 7/8] split features into subpackages
+Subject: [PATCH 07/10] split features into subpackages
References: https://discussion.fedoraproject.org/t/rfc-new-crates-packaging-design-fe...
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0008-add-support-for-dependencies-with-same-name.patch b/0008-add-support-for-dependencies-with-same-name.patch
index dbbad89..490338c 100644
--- a/0008-add-support-for-dependencies-with-same-name.patch
+++ b/0008-add-support-for-dependencies-with-same-name.patch
@@ -1,7 +1,7 @@
-From 129d556d19d2e41135f5e98ed028d7d00e66b524 Mon Sep 17 00:00:00 2001
+From a5fd01ecd0fd600a096c060ddfe77a21f54b045f Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue, 30 Oct 2018 20:37:38 +0100
-Subject: [PATCH 8/8] add support for dependencies with same name
+Subject: [PATCH 08/10] add support for dependencies with same name
Reported-by: Josh Stone <jistone(a)redhat.com>
References: https://internals.rust-lang.org/t/optional-dependencies-with-same-name/8728
diff --git a/0009-add-support-for-feeding-user-configuration.patch b/0009-add-support-for-feeding-user-configuration.patch
new file mode 100644
index 0000000..1a33fae
--- /dev/null
+++ b/0009-add-support-for-feeding-user-configuration.patch
@@ -0,0 +1,148 @@
+From 52b6ff8d55d59ace29950621ed41175ac31fa90c Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Wed, 31 Oct 2018 18:03:21 +0100
+Subject: [PATCH 09/10] add support for feeding user configuration
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ README.md | 26 ++++++++++++++++++++++++++
+ README.rst | 5 -----
+ rust2rpm/__main__.py | 13 +++++++++++++
+ rust2rpm/templates/main.spec | 17 ++++++++++++++++-
+ 4 files changed, 55 insertions(+), 6 deletions(-)
+ create mode 100644 README.md
+ delete mode 100644 README.rst
+
+diff --git a/README.md b/README.md
+new file mode 100644
+index 0000000..22b4b30
+--- /dev/null
++++ b/README.md
+@@ -0,0 +1,26 @@
++# rust2rpm
++
++Convert Rust crates to RPM.
++
++## `.rust2rpm.conf`
++
++You can place configuration file which is used as source for additional
++information for spec generation.
++
++Some simple example would be better than many words ;)
++
++```ini
++[DEFAULT]
++buildrequires =
++ pkgconfig(foo) >= 1.2.3
++lib.requires =
++ pkgconfig(foo) >= 1.2.3
++
++[fedora]
++bin.requires =
++ findutils
++buildrequires =
++lib.requires =
++lib+default.requires =
++ pkgconfig(bar) >= 2.0.0
++```
+diff --git a/README.rst b/README.rst
+deleted file mode 100644
+index 8866027..0000000
+--- a/README.rst
++++ /dev/null
+@@ -1,5 +0,0 @@
+-========
+-rust2rpm
+-========
+-
+-Convert Rust crates to RPM.
+diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
+index d19cb47..18fac5c 100644
+--- a/rust2rpm/__main__.py
++++ b/rust2rpm/__main__.py
+@@ -199,6 +199,11 @@ def make_diff_metadata(crate, version, patch=False, store=False):
+ shutil.copy2(cratef, os.path.join(os.getcwd(), f"{metadata.name}-{version}.crate"))
+ return crate, diff, metadata
+
++def to_list(s):
++ if not s:
++ return []
++ return list(filter(None, (l.strip() for l in s.splitlines())))
++
+ def main():
+ parser = argparse.ArgumentParser("rust2rpm",
+ formatter_class=argparse.RawTextHelpFormatter)
+@@ -232,6 +237,7 @@ def main():
+ store=args.store_crate)
+
+ JINJA_ENV.globals["normalize_deps"] = normalize_deps
++ JINJA_ENV.globals["to_list"] = to_list
+ template = JINJA_ENV.get_template("main.spec")
+
+ if args.patch and len(diff) > 0:
+@@ -287,6 +293,13 @@ def main():
+ kwargs["license"] = license
+ kwargs["license_comments"] = comments
+
++ conf = configparser.ConfigParser()
++ conf.read(".rust2rpm.conf")
++ if args.target not in conf:
++ conf.add_section(args.target)
++
++ kwargs["distconf"] = conf[args.target]
++
+ spec_file = f"rust-{metadata.name}.spec"
+ spec_contents = template.render(md=metadata, patch_file=patch_file, **kwargs)
+ if args.stdout:
+diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
+index 0d9a80b..d901e6d 100644
+--- a/rust2rpm/templates/main.spec
++++ b/rust2rpm/templates/main.spec
+@@ -65,6 +65,9 @@ BuildRequires: {{ req }}
+ {% endfor %}
+ %endif
+ {% endif %}
++{% for req in to_list(distconf.get("buildrequires"))|sort %}
++BuildRequires: {{ req }}
++{% endfor %}
+
+ %global _description \
+ {% if md.description is none %}
+@@ -81,6 +84,9 @@ Summary: %{summary}
+ {% if rust_group is defined %}
+ Group: # FIXME
+ {% endif %}
++ {% for req in to_list(distconf.get("bin.requires"))|sort %}
++Requires: {{ req }}
++ {% endfor %}
+
+ %description -n %{crate}
+ %{summary}.
+@@ -106,7 +112,13 @@ Group: # FIXME
+ {% do features.insert(0, None) %}
+ {% do features.insert(1, "default") %}
+ {% for feature in features %}
+- {% set pkg = "-n %%{name}+%s-devel"|format(feature) if feature is not none else " devel" %}
++ {% if feature is none %}
++ {% set pkg = " devel" %}
++ {% set conf_prefix = "lib" %}
++ {% else %}
++ {% set pkg = "-n %%{name}+%s-devel"|format(feature) %}
++ {% set conf_prefix = "lib+%s"|format(feature) %}
++ {% endif %}
+ %package {{ pkg }}
+ Summary: %{summary}
+ {% if rust_group is defined %}
+@@ -122,6 +134,9 @@ Requires: cargo
+ Requires: {{ req }}
+ {% endfor %}
+ {% endif %}
++ {% for req in to_list(distconf.get("%s.requires"|format(conf_prefix)))|sort %}
++Requires: {{ req }}
++ {% endfor %}
+
+ %description {{ pkg }} %{_description}
+
+--
+2.19.1
+
diff --git a/0010-trivial-use-f-strings-everywhere.patch b/0010-trivial-use-f-strings-everywhere.patch
new file mode 100644
index 0000000..3d8ca14
--- /dev/null
+++ b/0010-trivial-use-f-strings-everywhere.patch
@@ -0,0 +1,94 @@
+From 00ed1ce05d9dd4c8042f27ca959350ce34fb1be5 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Wed, 31 Oct 2018 17:00:58 +0100
+Subject: [PATCH 10/10] trivial: use f-strings everywhere
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ rust2rpm/__main__.py | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
+index 18fac5c..b4eb624 100644
+--- a/rust2rpm/__main__.py
++++ b/rust2rpm/__main__.py
+@@ -79,7 +79,7 @@ def detect_packager():
+ if git is not None:
+ name = subprocess.check_output([git, "config", "user.name"], universal_newlines=True).strip()
+ email = subprocess.check_output([git, "config", "user.email"], universal_newlines=True).strip()
+- return "{} <{}>".format(name, email)
++ return f"{name} <{email}>"
+
+ return None
+
+@@ -108,23 +108,23 @@ def local_crate(crate, version):
+ def download(crate, version):
+ if version is None:
+ # Now we need to get latest version
+- url = requests.compat.urljoin(API_URL, "crates/{}/versions".format(crate))
++ url = requests.compat.urljoin(API_URL, f"crates/{crate}/versions")
+ req = requests.get(url)
+ req.raise_for_status()
+ versions = req.json()["versions"]
+ version = next(version["num"] for version in versions if not version["yanked"])
+
+ os.makedirs(CACHEDIR, exist_ok=True)
+- cratef_base = "{}-{}.crate".format(crate, version)
++ cratef_base = f"{crate}-{version}.crate"
+ cratef = os.path.join(CACHEDIR, cratef_base)
+ if not os.path.isfile(cratef):
+- url = requests.compat.urljoin(API_URL, "crates/{}/{}/download#".format(crate, version))
++ url = requests.compat.urljoin(API_URL, f"crates/{crate}/{version}/download#")
+ req = requests.get(url, stream=True)
+ req.raise_for_status()
+ total = int(req.headers["Content-Length"])
+ with remove_on_error(cratef), \
+ open(cratef, "wb") as f:
+- for chunk in tqdm.tqdm(req.iter_content(), "Downloading {}".format(cratef_base),
++ for chunk in tqdm.tqdm(req.iter_content(), f"Downloading {cratef_base}".format(cratef_base),
+ total=total, unit="B", unit_scale=True):
+ f.write(chunk)
+ return cratef, crate, version
+@@ -132,14 +132,14 @@ def download(crate, version):
+ @contextlib.contextmanager
+ def toml_from_crate(cratef, crate, version):
+ with tempfile.TemporaryDirectory() as tmpdir:
+- target_dir = "{}/".format(tmpdir)
++ target_dir = f"{tmpdir}/"
+ with tarfile.open(cratef, "r") as archive:
+ for n in archive.getnames():
+ if not os.path.abspath(os.path.join(target_dir, n)).startswith(target_dir):
+ raise Exception("Unsafe filenames!")
+ archive.extractall(target_dir)
+- toml_relpath = "{}-{}/Cargo.toml".format(crate, version)
+- toml = "{}/{}".format(tmpdir, toml_relpath)
++ toml_relpath = f"{crate}-{version}/Cargo.toml"
++ toml = f"{tmpdir}/{toml_relpath}"
+ if not os.path.isfile(toml):
+ raise IOError("crate does not contain Cargo.toml file")
+ yield toml
+@@ -270,7 +270,7 @@ def main():
+ kwargs["include_provides"] = True
+ kwargs["include_requires"] = True
+ else:
+- assert False, "Unknown target {!r}".format(args.target)
++ assert False, f"Unknown target {args.target!r}"
+
+ if args.target == "mageia":
+ kwargs["pkg_release"] = "%mkrel 1"
+@@ -303,10 +303,10 @@ def main():
+ spec_file = f"rust-{metadata.name}.spec"
+ spec_contents = template.render(md=metadata, patch_file=patch_file, **kwargs)
+ if args.stdout:
+- print("# {}".format(spec_file))
++ print(f"# {spec_file}")
+ print(spec_contents)
+ if patch_file is not None:
+- print("# {}".format(patch_file))
++ print(f"# {patch_file}")
+ print("".join(diff), end="")
+ else:
+ with open(spec_file, "w") as fobj:
+--
+2.19.1
+
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 21198c6..524b739 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -4,7 +4,7 @@
Name: rust-packaging
Version: 6
-Release: 14%{?dist}
+Release: 15%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -19,6 +19,8 @@ Patch0006: 0006-Throw-an-error-if-s-is-used-without-a-crate.patch
# Still in PR
Patch0007: 0007-split-features-into-subpackages.patch
Patch0008: 0008-add-support-for-dependencies-with-same-name.patch
+Patch0009: 0009-add-support-for-feeding-user-configuration.patch
+Patch0010: 0010-trivial-use-f-strings-everywhere.patch
BuildArch: noarch
ExclusiveArch: %{rust_arches} noarch
@@ -80,6 +82,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Fri Nov 02 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-15
+- Support .rust2rpm.conf
+
* Wed Oct 31 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-14
- Fix syntax error
commit a31cf1d2bad4be6805604ffb0230bf09d4f3f45f
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Wed Oct 31 11:40:04 2018 +0100
fix syntax error
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0008-add-support-for-dependencies-with-same-name.patch b/0008-add-support-for-dependencies-with-same-name.patch
index 5d8af44..dbbad89 100644
--- a/0008-add-support-for-dependencies-with-same-name.patch
+++ b/0008-add-support-for-dependencies-with-same-name.patch
@@ -1,4 +1,4 @@
-From 6b5c116b0369a0a6c6ecb40c8bcc0974a36fa714 Mon Sep 17 00:00:00 2001
+From 129d556d19d2e41135f5e98ed028d7d00e66b524 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue, 30 Oct 2018 20:37:38 +0100
Subject: [PATCH 8/8] add support for dependencies with same name
@@ -11,7 +11,7 @@ Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
1 file changed, 20 insertions(+), 12 deletions(-)
diff --git a/rust2rpm/metadata.py b/rust2rpm/metadata.py
-index 119dea5..10c0011 100644
+index 119dea5..febf1e5 100644
--- a/rust2rpm/metadata.py
+++ b/rust2rpm/metadata.py
@@ -1,5 +1,6 @@
@@ -57,7 +57,7 @@ index 119dea5..10c0011 100644
- deps_by_feature[dep.name] = ({None}, {copy.deepcopy(dep)})
- else:
- mandatory_deps.add(copy.deepcopy(dep))
-+ for deps in deps_by_name.values():
++ for name, deps in deps_by_name.items():
+ fdeps = set()
+ for dep in deps:
+ if dep.optional:
diff --git a/rust-packaging.spec b/rust-packaging.spec
index c5bd19c..21198c6 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -4,7 +4,7 @@
Name: rust-packaging
Version: 6
-Release: 13%{?dist}
+Release: 14%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -80,6 +80,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Wed Oct 31 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-14
+- Fix syntax error
+
* Tue Oct 30 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-13
- Support multiple dependencies with same name
commit 7b23eaea0455f811e2ffad86346e9470612f9e8a
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue Oct 30 20:47:39 2018 +0100
support multiple dependencies with same name
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0001-name-spec-patch_file-by-real-crate-name.patch b/0001-name-spec-patch_file-by-real-crate-name.patch
index 7a14de3..27fbbfa 100644
--- a/0001-name-spec-patch_file-by-real-crate-name.patch
+++ b/0001-name-spec-patch_file-by-real-crate-name.patch
@@ -1,7 +1,7 @@
From 0dc9fc182edf0791ca697f587e48dd39948d63c1 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Mon, 10 Sep 2018 23:37:40 +0200
-Subject: [PATCH 1/7] name spec/patch_file by real crate name
+Subject: [PATCH 1/8] name spec/patch_file by real crate name
When renaming using patch file, we really want to change file names too.
diff --git a/0002-generate-doc-statements.patch b/0002-generate-doc-statements.patch
index 3bb4409..fb5ec59 100644
--- a/0002-generate-doc-statements.patch
+++ b/0002-generate-doc-statements.patch
@@ -1,7 +1,7 @@
From 561280a0ea35f226ef243526be2bbb656db44af6 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Mon, 10 Sep 2018 23:40:18 +0200
-Subject: [PATCH 2/7] generate %doc statements
+Subject: [PATCH 2/8] generate %doc statements
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
diff --git a/0003-do-better-for-renamed-crates.patch b/0003-do-better-for-renamed-crates.patch
index a501e87..0c9c3fd 100644
--- a/0003-do-better-for-renamed-crates.patch
+++ b/0003-do-better-for-renamed-crates.patch
@@ -1,7 +1,7 @@
From 2050880140d4953b9ebdc7211e30df3ccf5dd61d Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue, 11 Sep 2018 00:06:50 +0200
-Subject: [PATCH 3/7] do better for renamed crates
+Subject: [PATCH 3/8] do better for renamed crates
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
diff --git a/0004-remove-pre-3.6-leftovers.patch b/0004-remove-pre-3.6-leftovers.patch
index 5e7848c..79d041d 100644
--- a/0004-remove-pre-3.6-leftovers.patch
+++ b/0004-remove-pre-3.6-leftovers.patch
@@ -1,7 +1,7 @@
From e6e9cbbb71199c2773b47fa21f1c917a167c1743 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue, 11 Sep 2018 10:43:53 +0200
-Subject: [PATCH 4/7] remove pre-3.6 leftovers
+Subject: [PATCH 4/8] remove pre-3.6 leftovers
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
---
diff --git a/0005-Remove-half-downloaded-crate-on-C.patch b/0005-Remove-half-downloaded-crate-on-C.patch
index d822219..ef0eb21 100644
--- a/0005-Remove-half-downloaded-crate-on-C.patch
+++ b/0005-Remove-half-downloaded-crate-on-C.patch
@@ -1,7 +1,7 @@
From 2f12c83d14afe71e9efed2d1be62e1e610e602e9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
Date: Fri, 17 Aug 2018 10:03:48 +0200
-Subject: [PATCH 5/7] Remove half-downloaded crate on ^C
+Subject: [PATCH 5/8] Remove half-downloaded crate on ^C
Subsequent invocations would fail with an error about a corrupted file.
We don't have support for resuming a failed download, so let's remove the
diff --git a/0006-Throw-an-error-if-s-is-used-without-a-crate.patch b/0006-Throw-an-error-if-s-is-used-without-a-crate.patch
index 44219dd..44bc5b1 100644
--- a/0006-Throw-an-error-if-s-is-used-without-a-crate.patch
+++ b/0006-Throw-an-error-if-s-is-used-without-a-crate.patch
@@ -1,7 +1,7 @@
From 5a1cde5b8dcaea74ebb2050879036bf46df63adc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
Date: Fri, 17 Aug 2018 10:18:59 +0200
-Subject: [PATCH 6/7] Throw an error if -s is used without a crate
+Subject: [PATCH 6/8] Throw an error if -s is used without a crate
In the future we might want to be smarter and find the crate, but let's at least
not ignore the option completely.
diff --git a/0007-split-features-into-subpackages.patch b/0007-split-features-into-subpackages.patch
index 5455ccc..fe96334 100644
--- a/0007-split-features-into-subpackages.patch
+++ b/0007-split-features-into-subpackages.patch
@@ -1,7 +1,7 @@
-From a61a367883b7cd60f600d25958fb634c530500fa Mon Sep 17 00:00:00 2001
+From d7caa1148d5fcac70030e3fb1eb698927e69960f Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Fri, 26 Oct 2018 11:20:13 +0200
-Subject: [PATCH 7/7] split features into subpackages
+Subject: [PATCH 7/8] split features into subpackages
References: https://discussion.fedoraproject.org/t/rfc-new-crates-packaging-design-fe...
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
@@ -11,8 +11,8 @@ Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
rust2rpm/__main__.py | 11 +-
rust2rpm/inspector.py | 22 ++-
rust2rpm/metadata.py | 315 +++++++++++++++++------------------
- rust2rpm/templates/main.spec | 141 ++++++++--------
- 6 files changed, 259 insertions(+), 244 deletions(-)
+ rust2rpm/templates/main.spec | 142 ++++++++--------
+ 6 files changed, 260 insertions(+), 244 deletions(-)
diff --git a/data/cargo.attr b/data/cargo.attr
index 392a72b..4910b5c 100644
@@ -512,10 +512,10 @@ index 5adeb65..119dea5 100644
+def normalize_deps(deps):
+ return set().union(*(d.normalize() for d in deps))
diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
-index 7dbcc3f..27a448f 100644
+index 7dbcc3f..0d9a80b 100644
--- a/rust2rpm/templates/main.spec
+++ b/rust2rpm/templates/main.spec
-@@ -48,82 +48,101 @@ Patch0: {{ patch_file }}
+@@ -48,82 +48,102 @@ Patch0: {{ patch_file }}
ExclusiveArch: %{rust_arches}
BuildRequires: rust-packaging
@@ -586,6 +586,7 @@ index 7dbcc3f..27a448f 100644
+ {% for bin in bins %}
+%{_bindir}/{{ bin.name }}
+ {% endfor %}
++
+{% endif -%}
+
{% if include_devel %}
@@ -666,7 +667,7 @@ index 7dbcc3f..27a448f 100644
%prep
{% if md.name != crate %}
%autosetup -n %{real_crate}-%{version} -p1
-@@ -143,29 +162,5 @@ which use %{crate} from crates.io.
+@@ -143,29 +163,5 @@ which use %{crate} from crates.io.
%cargo_test
%endif
diff --git a/0008-add-support-for-dependencies-with-same-name.patch b/0008-add-support-for-dependencies-with-same-name.patch
new file mode 100644
index 0000000..5d8af44
--- /dev/null
+++ b/0008-add-support-for-dependencies-with-same-name.patch
@@ -0,0 +1,74 @@
+From 6b5c116b0369a0a6c6ecb40c8bcc0974a36fa714 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Tue, 30 Oct 2018 20:37:38 +0100
+Subject: [PATCH 8/8] add support for dependencies with same name
+
+Reported-by: Josh Stone <jistone(a)redhat.com>
+References: https://internals.rust-lang.org/t/optional-dependencies-with-same-name/8728
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ rust2rpm/metadata.py | 32 ++++++++++++++++++++------------
+ 1 file changed, 20 insertions(+), 12 deletions(-)
+
+diff --git a/rust2rpm/metadata.py b/rust2rpm/metadata.py
+index 119dea5..10c0011 100644
+--- a/rust2rpm/metadata.py
++++ b/rust2rpm/metadata.py
+@@ -1,5 +1,6 @@
+ __all__ = ["Dependency", "Metadata"]
+
++import collections
+ import copy
+ import json
+ import subprocess
+@@ -124,9 +125,11 @@ class Metadata:
+ self.description = md.get("description")
+
+ # dependencies + build-dependencies runtime
+- deps_by_name = {dep["name"]: Dependency.from_json(dep)
+- for dep in md["dependencies"]
+- if dep["kind"] != "dev"}
++ deps_by_name = collections.defaultdict(list)
++ for dep in md["dependencies"]:
++ if dep["kind"] == "dev":
++ continue
++ deps_by_name[dep["name"]].append(Dependency.from_json(dep))
+
+ deps_by_feature = {}
+ for feature, f_deps in md["features"].items():
+@@ -137,18 +140,23 @@ class Metadata:
+ features.add(dep)
+ else:
+ pkg, _, f = dep.partition("/")
+- dep = copy.deepcopy(deps_by_name[pkg])
+- if f:
+- dep.features = {f}
+- deps.add(dep)
++ for dep in deps_by_name[pkg]:
++ dep = copy.deepcopy(dep)
++ if f:
++ dep.features = {f}
++ deps.add(dep)
+ deps_by_feature[feature] = (features, deps)
+
+ mandatory_deps = set()
+- for dep in deps_by_name.values():
+- if dep.optional:
+- deps_by_feature[dep.name] = ({None}, {copy.deepcopy(dep)})
+- else:
+- mandatory_deps.add(copy.deepcopy(dep))
++ for deps in deps_by_name.values():
++ fdeps = set()
++ for dep in deps:
++ if dep.optional:
++ fdeps.add(copy.deepcopy(dep))
++ else:
++ mandatory_deps.add(copy.deepcopy(dep))
++ if fdeps:
++ deps_by_feature[name] = ({None}, fdeps)
+ deps_by_feature[None] = (set(), mandatory_deps)
+
+ if "default" not in deps_by_feature:
+--
+2.19.1
+
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 157a08e..c5bd19c 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -4,7 +4,7 @@
Name: rust-packaging
Version: 6
-Release: 12%{?dist}
+Release: 13%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -18,6 +18,7 @@ Patch0005: 0005-Remove-half-downloaded-crate-on-C.patch
Patch0006: 0006-Throw-an-error-if-s-is-used-without-a-crate.patch
# Still in PR
Patch0007: 0007-split-features-into-subpackages.patch
+Patch0008: 0008-add-support-for-dependencies-with-same-name.patch
BuildArch: noarch
ExclusiveArch: %{rust_arches} noarch
@@ -79,6 +80,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Tue Oct 30 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-13
+- Support multiple dependencies with same name
+
* Sat Oct 27 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-12
- Fix requirements with space
commit 28d6d0d63a2ba1fc30449fb504ba7cdbe9bee3c2
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat Oct 27 12:57:42 2018 +0200
fix dependencies with space
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0007-split-features-into-subpackages.patch b/0007-split-features-into-subpackages.patch
index 79909ab..5455ccc 100644
--- a/0007-split-features-into-subpackages.patch
+++ b/0007-split-features-into-subpackages.patch
@@ -1,4 +1,4 @@
-From 571ba6b1f2a886b40a7de76980cd8c479015cc9e Mon Sep 17 00:00:00 2001
+From a61a367883b7cd60f600d25958fb634c530500fa Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Fri, 26 Oct 2018 11:20:13 +0200
Subject: [PATCH 7/7] split features into subpackages
@@ -143,7 +143,7 @@ index 2d488b2..9e79e88 100644
if __name__ == "__main__":
main()
diff --git a/rust2rpm/metadata.py b/rust2rpm/metadata.py
-index 5adeb65..95aa142 100644
+index 5adeb65..119dea5 100644
--- a/rust2rpm/metadata.py
+++ b/rust2rpm/metadata.py
@@ -1,208 +1,205 @@
@@ -262,7 +262,7 @@ index 5adeb65..95aa142 100644
+ def _normalize_req(req):
+ if "*" in req:
+ return NotImplemented
-+ spec = semver.Spec(req)
++ spec = semver.Spec(req.replace(" ", ""))
+ reqs = []
for req in spec.specs:
- ver = req.spec
diff --git a/rust-packaging.spec b/rust-packaging.spec
index e206b06..157a08e 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -4,7 +4,7 @@
Name: rust-packaging
Version: 6
-Release: 11%{?dist}
+Release: 12%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -79,6 +79,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sat Oct 27 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-12
+- Fix requirements with space
+
* Fri Oct 26 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-11
- Trivial fixes to last patchset
commit c28b58679db5bd1910f1edc87c2c0c0231805cd4
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Fri Oct 26 20:57:20 2018 +0200
trivial fixes to last patchset
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0007-split-features-into-subpackages.patch b/0007-split-features-into-subpackages.patch
index 58e5e8d..79909ab 100644
--- a/0007-split-features-into-subpackages.patch
+++ b/0007-split-features-into-subpackages.patch
@@ -1,4 +1,4 @@
-From 83a9b92d68e8c5d6f2ab75b287be7ea69275fb90 Mon Sep 17 00:00:00 2001
+From 571ba6b1f2a886b40a7de76980cd8c479015cc9e Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Fri, 26 Oct 2018 11:20:13 +0200
Subject: [PATCH 7/7] split features into subpackages
@@ -512,7 +512,7 @@ index 5adeb65..95aa142 100644
+def normalize_deps(deps):
+ return set().union(*(d.normalize() for d in deps))
diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
-index 7dbcc3f..4acfab7 100644
+index 7dbcc3f..27a448f 100644
--- a/rust2rpm/templates/main.spec
+++ b/rust2rpm/templates/main.spec
@@ -48,82 +48,101 @@ Patch0: {{ patch_file }}
@@ -613,7 +613,7 @@ index 7dbcc3f..4acfab7 100644
-{% endif %}
-{% if include_requires %}
+ {% if include_provides %}
-+Provides: {{ md.provides() }}
++Provides: {{ md.provides(feature) }}
+ {% endif %}
+ {% if include_requires %}
Requires: cargo
@@ -644,7 +644,7 @@ index 7dbcc3f..4acfab7 100644
This package contains library source intended for building other packages
-which use %{crate} from crates.io.
-+which use {% if feature is not none %}"{{ feature }}" of {% endif %}"%{crate}" crate.
++which use {% if feature is not none %}"{{ feature }}" feature of {% endif %}"%{crate}" crate.
+
+%files {{ pkg }}
+ {% if feature is none %}
diff --git a/rust-packaging.spec b/rust-packaging.spec
index a7ba418..e206b06 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -4,7 +4,7 @@
Name: rust-packaging
Version: 6
-Release: 10%{?dist}
+Release: 11%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -79,6 +79,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Fri Oct 26 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-11
+- Trivial fixes to last patchset
+
* Fri Oct 26 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-10
- Split features into subpackages
commit 0cf7c3e18ab067d1fc0a7d37e901914c64b48d1e
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Fri Oct 26 15:59:03 2018 +0200
split features into subpackages
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0001-name-spec-patch_file-by-real-crate-name.patch b/0001-name-spec-patch_file-by-real-crate-name.patch
new file mode 100644
index 0000000..7a14de3
--- /dev/null
+++ b/0001-name-spec-patch_file-by-real-crate-name.patch
@@ -0,0 +1,37 @@
+From 0dc9fc182edf0791ca697f587e48dd39948d63c1 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Mon, 10 Sep 2018 23:37:40 +0200
+Subject: [PATCH 1/7] name spec/patch_file by real crate name
+
+When renaming using patch file, we really want to change file names too.
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ rust2rpm/__main__.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
+index dc78828..1575ce6 100644
+--- a/rust2rpm/__main__.py
++++ b/rust2rpm/__main__.py
+@@ -218,7 +218,7 @@ def main():
+ template = JINJA_ENV.get_template("main.spec")
+
+ if args.patch and len(diff) > 0:
+- patch_file = "{}-fix-metadata.diff".format(crate)
++ patch_file = "{}-fix-metadata.diff".format(metadata.name)
+ else:
+ patch_file = None
+
+@@ -269,7 +269,7 @@ def main():
+ kwargs["license"] = license
+ kwargs["license_comments"] = comments
+
+- spec_file = "rust-{}.spec".format(crate)
++ spec_file = "rust-{}.spec".format(metadata.name)
+ spec_contents = template.render(md=metadata, patch_file=patch_file, **kwargs)
+ if args.stdout:
+ print("# {}".format(spec_file))
+--
+2.19.1
+
diff --git a/0002-generate-doc-statements.patch b/0002-generate-doc-statements.patch
new file mode 100644
index 0000000..3bb4409
--- /dev/null
+++ b/0002-generate-doc-statements.patch
@@ -0,0 +1,58 @@
+From 561280a0ea35f226ef243526be2bbb656db44af6 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Mon, 10 Sep 2018 23:40:18 +0200
+Subject: [PATCH 2/7] generate %doc statements
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ rust2rpm/metadata.py | 2 ++
+ rust2rpm/templates/main.spec | 6 ++++++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/rust2rpm/metadata.py b/rust2rpm/metadata.py
+index 5dae1d3..f52d968 100644
+--- a/rust2rpm/metadata.py
++++ b/rust2rpm/metadata.py
+@@ -140,6 +140,7 @@ class Metadata(object):
+ self.name = None
+ self.license = None
+ self.license_file = None
++ self.readme = None
+ self.description = None
+ self.version = None
+ self._targets = []
+@@ -156,6 +157,7 @@ class Metadata(object):
+ self.name = md["name"]
+ self.license = md["license"]
+ self.license_file = md["license_file"]
++ self.readme = md["readme"]
+ self.description = md.get("description")
+ self.version = md["version"]
+ version = "={}".format(self.version)
+diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
+index 1aeb969..2e9f841 100644
+--- a/rust2rpm/templates/main.spec
++++ b/rust2rpm/templates/main.spec
+@@ -137,6 +137,9 @@ which use %{crate} from crates.io.
+ {% if md.license_file is not none %}
+ %license {{ md.license_file }}
+ {% endif %}
++{% if md.readme is not none %}
++%doc {{ md.readme }}
++{% endif %}
+ {% for bin in bins %}
+ %{_bindir}/{{ bin.name }}
+ {% endfor %}
+@@ -147,6 +150,9 @@ which use %{crate} from crates.io.
+ {% if md.license_file is not none %}
+ %license {{ md.license_file }}
+ {% endif %}
++{% if md.readme is not none %}
++%doc {{ md.readme }}
++{% endif %}
+ %{cargo_registry}/%{crate}-%{version}/
+
+ {% endif %}
+--
+2.19.1
+
diff --git a/0003-do-better-for-renamed-crates.patch b/0003-do-better-for-renamed-crates.patch
new file mode 100644
index 0000000..a501e87
--- /dev/null
+++ b/0003-do-better-for-renamed-crates.patch
@@ -0,0 +1,90 @@
+From 2050880140d4953b9ebdc7211e30df3ccf5dd61d Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Tue, 11 Sep 2018 00:06:50 +0200
+Subject: [PATCH 3/7] do better for renamed crates
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ rust2rpm/__main__.py | 7 ++++---
+ rust2rpm/templates/main.spec | 13 ++++++++++++-
+ 2 files changed, 16 insertions(+), 4 deletions(-)
+
+diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
+index 1575ce6..e993e7b 100644
+--- a/rust2rpm/__main__.py
++++ b/rust2rpm/__main__.py
+@@ -180,7 +180,7 @@ def make_diff_metadata(crate, version, patch=False, store=False):
+ diff = make_patch(toml, enabled=patch)
+ metadata = Metadata.from_file(toml)
+ if store:
+- shutil.copy2(cratef, os.path.join(os.getcwd(), f"{crate}-{version}.crate"))
++ shutil.copy2(cratef, os.path.join(os.getcwd(), f"{metadata.name}-{version}.crate"))
+ return crate, diff, metadata
+
+ def main():
+@@ -218,11 +218,12 @@ def main():
+ template = JINJA_ENV.get_template("main.spec")
+
+ if args.patch and len(diff) > 0:
+- patch_file = "{}-fix-metadata.diff".format(metadata.name)
++ patch_file = f"{metadata.name}-fix-metadata.diff"
+ else:
+ patch_file = None
+
+ kwargs = {}
++ kwargs["crate"] = crate
+ kwargs["target"] = args.target
+ bins = [tgt for tgt in metadata.targets if tgt.kind == "bin"]
+ libs = [tgt for tgt in metadata.targets if tgt.kind in ("lib", "rlib", "proc-macro")]
+@@ -269,7 +270,7 @@ def main():
+ kwargs["license"] = license
+ kwargs["license_comments"] = comments
+
+- spec_file = "rust-{}.spec".format(metadata.name)
++ spec_file = f"rust-{metadata.name}.spec"
+ spec_contents = template.render(md=metadata, patch_file=patch_file, **kwargs)
+ if args.stdout:
+ print("# {}".format(spec_file))
+diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
+index 2e9f841..7dbcc3f 100644
+--- a/rust2rpm/templates/main.spec
++++ b/rust2rpm/templates/main.spec
+@@ -6,6 +6,9 @@
+ {% endif %}
+
+ %global crate {{ md.name }}
++{% if md.name != crate %}
++%global real_crate {{ crate }}
++{% endif %}
+
+ Name: rust-%{crate}
+ Version: {{ md.version }}
+@@ -27,8 +30,12 @@ License: {{ license|default("# FIXME") }}
+ {% if license_comments is not none %}
+ {{ license_comments }}
+ {% endif %}
+-URL: https://crates.io/crates/{{ md.name }}
++URL: https://crates.io/crates/{{ crate }}
++{% if md.name != crate %}
++Source0: https://crates.io/api/v1/crates/%{real_crate}/%{version}/download#/%{crat...
++{% else %}
+ Source0: https://crates.io/api/v1/crates/%{crate}/%{version}/download#/%{crate}-%{...
++{% endif %}
+ {% if patch_file is not none %}
+ {% if target == "opensuse" %}
+ # PATCH-FIX-OPENSUSE {{ patch_file }} -- Initial patched metadata
+@@ -118,7 +125,11 @@ which use %{crate} from crates.io.
+
+ {% endif %}
+ %prep
++{% if md.name != crate %}
++%autosetup -n %{real_crate}-%{version} -p1
++{% else %}
+ %autosetup -n %{crate}-%{version} -p1
++{% endif %}
+ %cargo_prep
+
+ %build
+--
+2.19.1
+
diff --git a/0004-remove-pre-3.6-leftovers.patch b/0004-remove-pre-3.6-leftovers.patch
new file mode 100644
index 0000000..5e7848c
--- /dev/null
+++ b/0004-remove-pre-3.6-leftovers.patch
@@ -0,0 +1,27 @@
+From e6e9cbbb71199c2773b47fa21f1c917a167c1743 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Tue, 11 Sep 2018 10:43:53 +0200
+Subject: [PATCH 4/7] remove pre-3.6 leftovers
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ rust2rpm/metadata.py | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/rust2rpm/metadata.py b/rust2rpm/metadata.py
+index f52d968..5adeb65 100644
+--- a/rust2rpm/metadata.py
++++ b/rust2rpm/metadata.py
+@@ -203,8 +203,6 @@ class Metadata(object):
+
+ @classmethod
+ def from_file(cls, path):
+- do_decode = sys.version_info < (3, 6)
+ metadata = subprocess.check_output(["cargo", "read-manifest",
+- "--manifest-path={}".format(path)],
+- universal_newlines=do_decode)
++ "--manifest-path={}".format(path)])
+ return cls.from_json(json.loads(metadata))
+--
+2.19.1
+
diff --git a/0005-Remove-half-downloaded-crate-on-C.patch b/0005-Remove-half-downloaded-crate-on-C.patch
new file mode 100644
index 0000000..d822219
--- /dev/null
+++ b/0005-Remove-half-downloaded-crate-on-C.patch
@@ -0,0 +1,44 @@
+From 2f12c83d14afe71e9efed2d1be62e1e610e602e9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
+Date: Fri, 17 Aug 2018 10:03:48 +0200
+Subject: [PATCH 5/7] Remove half-downloaded crate on ^C
+
+Subsequent invocations would fail with an error about a corrupted file.
+We don't have support for resuming a failed download, so let's remove the
+partial download results.
+---
+ rust2rpm/__main__.py | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
+index e993e7b..8e6f6eb 100644
+--- a/rust2rpm/__main__.py
++++ b/rust2rpm/__main__.py
+@@ -83,6 +83,14 @@ def file_mtime(path):
+ t = datetime.fromtimestamp(os.stat(path).st_mtime, timezone.utc)
+ return t.astimezone().isoformat()
+
++(a)contextlib.contextmanager
++def remove_on_error(path):
++ try:
++ yield
++ except: # this is supposed to include ^C
++ os.unlink(path)
++ raise
++
+ def local_toml(toml, version):
+ if os.path.isdir(toml):
+ toml = os.path.join(toml, "Cargo.toml")
+@@ -110,7 +118,8 @@ def download(crate, version):
+ req = requests.get(url, stream=True)
+ req.raise_for_status()
+ total = int(req.headers["Content-Length"])
+- with open(cratef, "wb") as f:
++ with remove_on_error(cratef), \
++ open(cratef, "wb") as f:
+ for chunk in tqdm.tqdm(req.iter_content(), "Downloading {}".format(cratef_base),
+ total=total, unit="B", unit_scale=True):
+ f.write(chunk)
+--
+2.19.1
+
diff --git a/0006-Throw-an-error-if-s-is-used-without-a-crate.patch b/0006-Throw-an-error-if-s-is-used-without-a-crate.patch
new file mode 100644
index 0000000..44219dd
--- /dev/null
+++ b/0006-Throw-an-error-if-s-is-used-without-a-crate.patch
@@ -0,0 +1,28 @@
+From 5a1cde5b8dcaea74ebb2050879036bf46df63adc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
+Date: Fri, 17 Aug 2018 10:18:59 +0200
+Subject: [PATCH 6/7] Throw an error if -s is used without a crate
+
+In the future we might want to be smarter and find the crate, but let's at least
+not ignore the option completely.
+---
+ rust2rpm/__main__.py | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
+index 8e6f6eb..f23ebbc 100644
+--- a/rust2rpm/__main__.py
++++ b/rust2rpm/__main__.py
+@@ -178,6 +178,9 @@ def make_diff_metadata(crate, version, patch=False, store=False):
+ if crate.endswith(".crate"):
+ cratef, crate, version = local_crate(crate, version)
+ else:
++ if store:
++ raise ValueError('--store-crate can only be used for a crate')
++
+ toml, crate, version = local_toml(crate, version)
+ diff = make_patch(toml, enabled=patch, tmpfile=True)
+ metadata = Metadata.from_file(toml)
+--
+2.19.1
+
diff --git a/0007-split-features-into-subpackages.patch b/0007-split-features-into-subpackages.patch
new file mode 100644
index 0000000..58e5e8d
--- /dev/null
+++ b/0007-split-features-into-subpackages.patch
@@ -0,0 +1,701 @@
+From 83a9b92d68e8c5d6f2ab75b287be7ea69275fb90 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Fri, 26 Oct 2018 11:20:13 +0200
+Subject: [PATCH 7/7] split features into subpackages
+
+References: https://discussion.fedoraproject.org/t/rfc-new-crates-packaging-design-fe...
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ data/cargo.attr | 4 +-
+ data/macros.cargo | 10 ++
+ rust2rpm/__main__.py | 11 +-
+ rust2rpm/inspector.py | 22 ++-
+ rust2rpm/metadata.py | 315 +++++++++++++++++------------------
+ rust2rpm/templates/main.spec | 141 ++++++++--------
+ 6 files changed, 259 insertions(+), 244 deletions(-)
+
+diff --git a/data/cargo.attr b/data/cargo.attr
+index 392a72b..4910b5c 100644
+--- a/data/cargo.attr
++++ b/data/cargo.attr
+@@ -1,3 +1,3 @@
+-%__cargo_provides %{_bindir}/cargo-inspector --provides
+-%__cargo_requires %{_bindir}/cargo-inspector --requires
++%__cargo_provides %{_bindir}/cargo-inspector --provides --feature=%{__cargo_feature_from_name -n %{name}}
++%__cargo_requires %{_bindir}/cargo-inspector --requires --feature=%{__cargo_feature_from_name -n %{name}}
+ %__cargo_path ^%{cargo_registry}/[^/]+/Cargo\\.toml$
+diff --git a/data/macros.cargo b/data/macros.cargo
+index a0c456a..7fb025b 100644
+--- a/data/macros.cargo
++++ b/data/macros.cargo
+@@ -84,3 +84,13 @@ if %__cargo_is_bin; then \
+ %{__rm} %{buildroot}%{_prefix}/.crates.toml \
+ fi \
+ )
++
++%__cargo_feature_from_name(n:) %{lua:
++local name = rpm.expand("%{-n*}")
++local feature = string.match(name, "^.+%+(.+)-devel$")
++if feature == nil then
++ print()
++else
++ print(feature)
++end
++}
+diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
+index f23ebbc..d19cb47 100644
+--- a/rust2rpm/__main__.py
++++ b/rust2rpm/__main__.py
+@@ -18,15 +18,19 @@ import requests
+ import tqdm
+
+ from . import Metadata, licensing
++from .metadata import normalize_deps
+
+ DEFAULT_EDITOR = "vi"
+ XDG_CACHE_HOME = os.getenv("XDG_CACHE_HOME", os.path.expanduser("~/.cache"))
+ CACHEDIR = os.path.join(XDG_CACHE_HOME, "rust2rpm")
+ API_URL = "https://crates.io/api/v1/"
+ JINJA_ENV = jinja2.Environment(loader=jinja2.ChoiceLoader([
+- jinja2.FileSystemLoader(["/"]),
+- jinja2.PackageLoader("rust2rpm", "templates"), ]),
+- trim_blocks=True, lstrip_blocks=True)
++ jinja2.FileSystemLoader(["/"]),
++ jinja2.PackageLoader("rust2rpm", "templates"),
++ ]),
++ extensions=["jinja2.ext.do"],
++ trim_blocks=True,
++ lstrip_blocks=True)
+
+ def get_default_target():
+ # TODO: add fallback for /usr/lib/os-release
+@@ -227,6 +231,7 @@ def main():
+ patch=args.patch,
+ store=args.store_crate)
+
++ JINJA_ENV.globals["normalize_deps"] = normalize_deps
+ template = JINJA_ENV.get_template("main.spec")
+
+ if args.patch and len(diff) > 0:
+diff --git a/rust2rpm/inspector.py b/rust2rpm/inspector.py
+index 2d488b2..9e79e88 100644
+--- a/rust2rpm/inspector.py
++++ b/rust2rpm/inspector.py
+@@ -1,8 +1,8 @@
+ import argparse
+-import itertools
+ import sys
+
+ from . import Metadata
++from .metadata import normalize_deps
+
+ def main():
+ parser = argparse.ArgumentParser()
+@@ -10,18 +10,23 @@ def main():
+ group.add_argument("-n", "--name", action="store_true", help="Print name")
+ group.add_argument("-v", "--version", action="store_true", help="Print version")
+ group.add_argument("-t", "--target-kinds", action="store_true", help="Print target kinds")
++ group.add_argument("-l", "--list-features", action="store_true", help="Print features")
+ group.add_argument("-P", "--provides", action="store_true", help="Print Provides")
+ group.add_argument("-R", "--requires", action="store_true", help="Print Requires")
+ group.add_argument("-BR", "--build-requires", action="store_true", help="Print BuildRequires")
+ group.add_argument("-TR", "--test-requires", action="store_true", help="Print TestRequires")
++ parser.add_argument("-f", "--feature", help="Feature to work on")
+ parser.add_argument("file", nargs="*", help="Path(s) to Cargo.toml")
+ args = parser.parse_args()
+
+ files = args.file or sys.stdin.readlines()
+
++ if not args.feature:
++ args.feature = None
++
+ def print_deps(deps):
+ if len(deps) > 0:
+- print("\n".join(str(dep) for dep in deps))
++ print("\n".join(sorted(normalize_deps(deps))))
+
+ for f in files:
+ f = f.rstrip()
+@@ -32,17 +37,20 @@ def main():
+ print(md.version)
+ if args.target_kinds:
+ print("\n".join(set(tgt.kind for tgt in md.targets)))
++ if args.list_features:
++ for f in sorted(f for f in md.dependencies if f is not None):
++ print(f)
+ if args.provides:
+- print_deps(md.provides)
+- if args.requires or args.build_requires:
+- print_deps(list(itertools.chain(md.requires, md.build_requires)))
+- if args.test_requires:
+- print_deps(md.test_requires)
++ print(md.provides(args.feature))
+ if args.requires:
+ # Someone should own /usr/share/cargo/registry
+ print("cargo")
++ print_deps(md.requires(args.feature))
+ if args.build_requires:
+ print("rust-packaging")
++ print_deps(md.requires(args.feature or "default", resolve=True))
++ if args.test_requires:
++ print_deps(md.dev_dependencies)
+
+ if __name__ == "__main__":
+ main()
+diff --git a/rust2rpm/metadata.py b/rust2rpm/metadata.py
+index 5adeb65..95aa142 100644
+--- a/rust2rpm/metadata.py
++++ b/rust2rpm/metadata.py
+@@ -1,208 +1,205 @@
+ __all__ = ["Dependency", "Metadata"]
+
+-import itertools
++import copy
+ import json
+ import subprocess
+-import sys
+
+ import semantic_version as semver
+ import rustcfg
+
+-class Target(object):
+- def __init__(self, kind, name):
+- self.kind = kind
++class Target:
++ def __init__(self, name, kind):
+ self.name = name
++ self.kind = kind
+
+ def __repr__(self):
+- return "<Target {self.kind}|{self.name}>".format(self=self)
+-
+-
+-def _req_to_str(name, spec=None, feature=None):
+- f_part = "/{}".format(feature) if feature is not None else ""
+- basestr = "crate({}{})".format(name, f_part)
+- if spec is None:
+- return basestr
+- if spec.kind == spec.KIND_EQUAL:
+- spec.kind = spec.KIND_SHORTEQ
+- if spec.kind == spec.KIND_ANY:
+- if spec.spec == "":
+- # Just wildcard
+- return basestr
+- else:
+- # Wildcard in string
+- assert False, spec.spec
+- version = str(spec.spec).replace("-", "~")
+- return "{} {} {}".format(basestr, spec.kind, version)
++ return f"<Target {self.name} ({self.kind})>"
+
+-class Dependency(object):
+- def __init__(self, name, req, features=(), provides=False):
++class Dependency:
++ def __init__(self, name, req=None, features=(), optional=False):
+ self.name = name
+- self.spec = self._parse_req(req)
++ self.req = req
+ self.features = features
+- self.provides = provides
+- if self.provides:
+- if len(self.spec.specs) > 1 or \
+- (len(self.spec.specs) == 1 and self.spec.specs[0].kind != self.spec.specs[0].KIND_EQUAL):
+- raise Exception("Provides can't be applied to ranged version, {!r}".format(self.spec))
+-
+- def __repr__(self):
+- if self.provides:
+- spec = self.spec.specs[0]
+- provs = [_req_to_str(self.name, spec)]
+- for feature in self.features:
+- provs.append(_req_to_str(self.name, spec, feature))
+- return " and ".join(provs)
+-
+- reqs = [_req_to_str(self.name, spec=req) for req in self.spec.specs]
+- features = [_req_to_str(self.name, feature=feature) for feature in self.features]
++ self.optional = optional
+
+- use_rich = False
+- if len(reqs) > 1:
+- reqstr = "({})".format(" with ".join(reqs))
+- use_rich = True
+- elif len(reqs) == 1:
+- reqstr = reqs[0]
+- else:
+- reqstr = ""
+- if len(features) > 0:
+- featurestr = " with ".join(features)
+- use_rich = True
+- else:
+- featurestr = ""
+-
+- if use_rich:
+- if reqstr and featurestr:
+- return "({} with {})".format(reqstr, featurestr)
+- elif reqstr and not featurestr:
+- return reqstr
+- elif not reqstr and featurestr:
+- return "({})".format(featurestr)
+- else:
+- assert False
+- else:
+- return reqstr
++ @classmethod
++ def from_json(cls, metadata):
++ features = set(metadata['features'])
++ if metadata['uses_default_features']:
++ features.add('default')
++ kwargs = {'name': metadata['name'],
++ 'req': metadata['req'],
++ 'optional': metadata['optional'],
++ 'features': features}
++ return cls(**kwargs)
+
+ @staticmethod
+- def _parse_req(s):
+- if "*" in s and s != "*":
+- # XXX: https://github.com/rbarrois/python-semanticversion/issues/51
+- s = "~{}".format(s.replace(".*", "", 1))
+- if ".*" in s:
+- s = s.replace(".*", "")
+- spec = semver.Spec(s.replace(" ", ""))
+- parsed = []
++ def _normalize_req(req):
++ if "*" in req:
++ return NotImplemented
++ spec = semver.Spec(req)
++ reqs = []
+ for req in spec.specs:
+- ver = req.spec
+ if req.kind == req.KIND_ANY:
+- parsed.append("*")
++ # Any means any
+ continue
++ ver = req.spec
++ if ver.prerelease or req.kind in (req.KIND_NEQ, req.KIND_EMPTY):
++ return NotImplemented
+ coerced = semver.Version.coerce(str(ver))
+- if req.kind in (req.KIND_CARET, req.KIND_TILDE):
+- if ver.prerelease:
+- # pre-release versions only match the same x.y.z
+- if ver.patch is not None:
+- upper = ver.next_patch()
+- elif ver.minor is not None:
+- upper = ver.next_minor()
+- else:
+- upper = ver.next_major()
+- elif req.kind == req.KIND_CARET:
+- if ver.major == 0:
+- if ver.minor is not None:
+- if ver.patch is None or ver.minor != 0:
+- upper = ver.next_minor()
+- else:
+- upper = ver.next_patch()
++ if req.kind == req.KIND_EQUAL:
++ req.kind = req.KIND_SHORTEQ
++ if req.kind in (req.KIND_CARET, req.KIND_COMPATIBLE):
++ if ver.major == 0:
++ if ver.minor is not None:
++ if ver.minor != 0 or ver.patch is None:
++ upper = ver.next_minor()
+ else:
+- upper = ver.next_major()
++ upper = ver.next_patch()
+ else:
+ upper = ver.next_major()
+- elif req.kind == req.KIND_TILDE:
+- if ver.minor is None:
+- upper = ver.next_major()
+- else:
+- upper = ver.next_minor()
+ else:
+- assert False
+- parsed.append(">={}".format(coerced))
+- parsed.append("<{}".format(upper))
+- elif req.kind == req.KIND_NEQ:
+- parsed.append(">{}".format(coerced))
+- parsed.append("<{}".format(coerced))
+- elif req.kind in (req.KIND_EQUAL, req.KIND_GT, req.KIND_GTE, req.KIND_LT, req.KIND_LTE):
+- parsed.append("{}{}".format(req.kind, coerced))
++ upper = ver.next_major()
++ reqs.append((">=", coerced))
++ reqs.append(("<", upper))
++ elif req.kind == req.KIND_TILDE:
++ if ver.minor is None:
++ upper = ver.next_major()
++ else:
++ upper = ver.next_minor()
++ reqs.append((">=", coerced))
++ reqs.append(("<", upper))
++ elif req.kind in (req.KIND_SHORTEQ,
++ req.KIND_GT,
++ req.KIND_GTE,
++ req.KIND_LT,
++ req.KIND_LTE):
++ reqs.append((str(req.kind), coerced))
+ else:
+- assert False, req.kind
+- return semver.Spec(",".join(parsed))
++ raise AssertionError(f"Found unhandled kind: {req.kind}")
++ return reqs
+
+-class Metadata(object):
+- def __init__(self):
+- self.name = None
++ @staticmethod
++ def _apply_reqs(name, reqs, feature=None):
++ fstr = f"/{feature}" if feature is not None else ""
++ cap = f"crate({name}{fstr})"
++ if not reqs:
++ return cap
++ deps = " with ".join(f"{cap} {op} {version}" for op, version in reqs)
++ if len(reqs) > 1:
++ return f"({deps})"
++ else:
++ return deps
++
++ def normalize(self):
++ return [self._apply_reqs(self.name, self._normalize_req(self.req), feature)
++ for feature in self.features or (None,)]
++
++ def __repr__(self):
++ return f"<Dependency: {self.name} {self.req} ({', '.join(sorted(self.features))})>"
++
++ def __str__(self):
++ return "\n".join(self.normalize())
++
++class Metadata:
++ def __init__(self, name, version):
++ self.name = name
++ self.version = version
+ self.license = None
+ self.license_file = None
+ self.readme = None
+ self.description = None
+- self.version = None
+- self._targets = []
+- self.provides = []
+- self.requires = []
+- self.build_requires = []
+- self.test_requires = []
++ self.targets = set()
++ self.dependencies = {}
++ self.dev_dependencies = set()
+
+ @classmethod
+ def from_json(cls, metadata):
+- self = cls()
+-
+ md = metadata
+- self.name = md["name"]
++ self = cls(md["name"], md["version"])
++
+ self.license = md["license"]
+ self.license_file = md["license_file"]
+ self.readme = md["readme"]
+ self.description = md.get("description")
+- self.version = md["version"]
+- version = "={}".format(self.version)
+-
+- # Targets
+- self.targets = [Target(tgt["kind"][0], tgt["name"]) for tgt in md["targets"]]
+-
+- # Provides
+- # All optional dependencies are also features
+- # https://github.com/rust-lang/cargo/issues/4911
+- features = itertools.chain((x["name"] for x in md["dependencies"] if x["optional"]),
+- md["features"])
+- provides = Dependency(self.name, version, features=features, provides=True)
+- self.provides = str(provides).split(" and ")
+-
+- ev = rustcfg.Evaluator.platform()
+-
+- # Dependencies
+- for dep in md["dependencies"]:
+- kind = dep["kind"]
+- if kind is None:
+- requires = self.requires
+- elif kind == "build":
+- requires = self.build_requires
+- elif kind == "dev":
+- requires = self.test_requires
+- else:
+- raise ValueError("Unknown kind: {!r}, please report bug.".format(kind))
+
+- target = dep["target"]
+- if target is None:
+- pass
++ # dependencies + build-dependencies runtime
++ deps_by_name = {dep["name"]: Dependency.from_json(dep)
++ for dep in md["dependencies"]
++ if dep["kind"] != "dev"}
++
++ deps_by_feature = {}
++ for feature, f_deps in md["features"].items():
++ features = {None}
++ deps = set()
++ for dep in f_deps:
++ if dep in md["features"]:
++ features.add(dep)
++ else:
++ pkg, _, f = dep.partition("/")
++ dep = copy.deepcopy(deps_by_name[pkg])
++ if f:
++ dep.features = {f}
++ deps.add(dep)
++ deps_by_feature[feature] = (features, deps)
++
++ mandatory_deps = set()
++ for dep in deps_by_name.values():
++ if dep.optional:
++ deps_by_feature[dep.name] = ({None}, {copy.deepcopy(dep)})
+ else:
+- cond = ev.parse_and_eval(target)
+- if not cond:
+- print(f'Dependency {dep["name"]} for target {target!r} is not needed, ignoring.',
+- file=sys.stderr)
+- continue
++ mandatory_deps.add(copy.deepcopy(dep))
++ deps_by_feature[None] = (set(), mandatory_deps)
++
++ if "default" not in deps_by_feature:
++ deps_by_feature["default"] = ({None}, set())
+
+- requires.append(Dependency(dep["name"], dep["req"], features=dep["features"]))
++ self.dependencies = deps_by_feature
++ self.dev_dependencies = {Dependency.from_json(dep)
++ for dep in md["dependencies"]
++ if dep["kind"] == "dev"}
++
++ self.targets = {Target(tgt["name"], tgt["kind"][0])
++ for tgt in md["targets"]}
+
+ return self
+
+ @classmethod
+ def from_file(cls, path):
+ metadata = subprocess.check_output(["cargo", "read-manifest",
+- "--manifest-path={}".format(path)])
++ f"--manifest-path={path}"])
+ return cls.from_json(json.loads(metadata))
++
++ @property
++ def all_dependencies(self):
++ return set().union(*(x[1] for x in self.dependencies.values()))
++
++ def provides(self, feature=None):
++ if feature not in self.dependencies:
++ raise KeyError(f"Feature {feature!r} doesn't exist")
++ return Dependency(self.name, f"={self.version}", features={feature})
++
++ @classmethod
++ def _resolve(cls, deps_by_feature, feature):
++ all_features = set()
++ all_deps = set()
++ ff, dd = copy.deepcopy(deps_by_feature[feature])
++ all_features |= ff
++ all_deps |= dd
++ for f in ff:
++ ff1, dd1 = cls._resolve(deps_by_feature, f)
++ all_features |= ff1
++ all_deps |= dd1
++ return all_features, all_deps
++
++ def requires(self, feature=None, resolve=False):
++ if resolve:
++ return self._resolve(self.dependencies, feature)[1]
++ else:
++ features, deps = self.dependencies[feature]
++ fdeps = set(Dependency(self.name, f"={self.version}", features={feature})
++ for feature in features)
++ return fdeps | deps
++
++def normalize_deps(deps):
++ return set().union(*(d.normalize() for d in deps))
+diff --git a/rust2rpm/templates/main.spec b/rust2rpm/templates/main.spec
+index 7dbcc3f..4acfab7 100644
+--- a/rust2rpm/templates/main.spec
++++ b/rust2rpm/templates/main.spec
+@@ -48,82 +48,101 @@ Patch0: {{ patch_file }}
+ ExclusiveArch: %{rust_arches}
+
+ BuildRequires: rust-packaging
+-{% if include_build_requires %}
+-{% if md.requires|length > 0 %}
+-# [dependencies]
+-{% for req in md.requires|sort(attribute="name") %}
++{# We will put all non-optional and optional dependencies until
++ https://github.com/rust-lang/cargo/issues/5133
++ is solved
++{% set buildrequires = normalize_deps(md.requires("default", resolve=True))|sort %}
++#}
++{% set buildrequires = normalize_deps(md.all_dependencies)|sort %}
++{% for req in buildrequires %}
+ BuildRequires: {{ req }}
+ {% endfor %}
+-{% endif %}
+-{% if md.build_requires|length > 0 %}
+-# [build-dependencies]
+-{% for req in md.build_requires|sort(attribute="name") %}
+-BuildRequires: {{ req }}
+-{% endfor %}
+-{% endif %}
+-{% if md.test_requires|length > 0 %}
++{% set testrequires = normalize_deps(md.dev_dependencies)|sort %}
++{% if testrequires|length > 0 %}
+ %if %{with check}
+-# [dev-dependencies]
+-{% for req in md.test_requires|sort(attribute="name") %}
++ {% for req in testrequires %}
+ BuildRequires: {{ req }}
+-{% endfor %}
++ {% endfor %}
+ %endif
+ {% endif %}
+-{% endif %}
+
+-%description
++%global _description \
++{% if md.description is none %}
+ %{summary}.
++{% else %}
++{{ md.description|wordwrap(wrapstring="\\\n")|trim }}
++{% endif %}
++
++%description %{_description}
+
+ {% if include_main %}
+ %package -n %{crate}
+ Summary: %{summary}
+-{% if rust_group is defined %}
++ {% if rust_group is defined %}
+ Group: # FIXME
+-{% endif %}
++ {% endif %}
+
+ %description -n %{crate}
+ %{summary}.
+
+-{% endif %}
++%files -n %{crate}
++ {% if md.license_file is not none %}
++%license {{ md.license_file }}
++ {% endif %}
++ {% if md.readme is not none %}
++%doc {{ md.readme }}
++ {% endif %}
++ {% for bin in bins %}
++%{_bindir}/{{ bin.name }}
++ {% endfor %}
++{% endif -%}
++
+ {% if include_devel %}
+-%package devel
++ {% set features = md.dependencies.keys()|list %}
++ {% do features.remove(None) %}
++ {% do features.remove("default") %}
++ {% set features = features|sort %}
++ {% do features.insert(0, None) %}
++ {% do features.insert(1, "default") %}
++ {% for feature in features %}
++ {% set pkg = "-n %%{name}+%s-devel"|format(feature) if feature is not none else " devel" %}
++%package {{ pkg }}
+ Summary: %{summary}
+-{% if rust_group is defined %}
++ {% if rust_group is defined %}
+ Group: {{ rust_group }}
+-{% endif %}
++ {% endif %}
+ BuildArch: noarch
+-{% if include_provides %}
+-{% for prv in md.provides %}
+-Provides: {{ prv }}
+-{% endfor %}
+-{% endif %}
+-{% if include_requires %}
++ {% if include_provides %}
++Provides: {{ md.provides() }}
++ {% endif %}
++ {% if include_requires %}
+ Requires: cargo
+-{% if md.requires|length > 0 %}
+-# [dependencies]
+-{% for req in md.requires|sort(attribute="name") %}
+-Requires: {{ req }}
+-{% endfor %}
+-{% endif %}
+-{% if md.build_requires|length > 0 %}
+-# [build-dependencies]
+-{% for req in md.build_requires|sort(attribute="name") %}
++ {% for req in md.requires(feature)|map("string")|sort %}
+ Requires: {{ req }}
+-{% endfor %}
+-{% endif %}
+-{% endif %}
++ {% endfor %}
++ {% endif %}
+
+-%description devel
+-{% if md.description is none %}
+-%{summary}.
+-{% else %}
+-{{ md.description|wordwrap|trim }}
+-{% endif %}
++%description {{ pkg }} %{_description}
+
+ This package contains library source intended for building other packages
+-which use %{crate} from crates.io.
++which use {% if feature is not none %}"{{ feature }}" of {% endif %}"%{crate}" crate.
++
++%files {{ pkg }}
++ {% if feature is none %}
++ {% if md.license_file is not none %}
++%license {{ md.license_file }}
++ {% endif %}
++ {% if md.readme is not none %}
++%doc {{ md.readme }}
++ {% endif %}
++%{cargo_registry}/%{crate}-%{version}/
++ {% else %}
++%ghost %{cargo_registry}/%{crate}-%{version}/Cargo.toml
++ {% endif %}
++
++ {% endfor %}
++{% endif -%}
+
+-{% endif %}
+ %prep
+ {% if md.name != crate %}
+ %autosetup -n %{real_crate}-%{version} -p1
+@@ -143,29 +162,5 @@ which use %{crate} from crates.io.
+ %cargo_test
+ %endif
+
+-{% if include_main %}
+-%files -n %{crate}
+-{% if md.license_file is not none %}
+-%license {{ md.license_file }}
+-{% endif %}
+-{% if md.readme is not none %}
+-%doc {{ md.readme }}
+-{% endif %}
+-{% for bin in bins %}
+-%{_bindir}/{{ bin.name }}
+-{% endfor %}
+-
+-{% endif %}
+-{% if include_devel %}
+-%files devel
+-{% if md.license_file is not none %}
+-%license {{ md.license_file }}
+-{% endif %}
+-{% if md.readme is not none %}
+-%doc {{ md.readme }}
+-{% endif %}
+-%{cargo_registry}/%{crate}-%{version}/
+-
+-{% endif %}
+ %changelog
+ {% include target ~ "-changelog.spec.inc" %}
+--
+2.19.1
+
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 98159e2..a7ba418 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -1,14 +1,23 @@
-%bcond_without check
+# Tests need fixing after patches
+%bcond_with check
%{?python_enable_dependency_generator}
Name: rust-packaging
Version: 6
-Release: 1%{?dist}
+Release: 10%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
URL: https://pagure.io/fedora-rust/rust2rpm
Source0: https://releases.pagure.org/fedora-rust/rust2rpm/rust2rpm-%{version}.tar.xz
+Patch0001: 0001-name-spec-patch_file-by-real-crate-name.patch
+Patch0002: 0002-generate-doc-statements.patch
+Patch0003: 0003-do-better-for-renamed-crates.patch
+Patch0004: 0004-remove-pre-3.6-leftovers.patch
+Patch0005: 0005-Remove-half-downloaded-crate-on-C.patch
+Patch0006: 0006-Throw-an-error-if-s-is-used-without-a-crate.patch
+# Still in PR
+Patch0007: 0007-split-features-into-subpackages.patch
BuildArch: noarch
ExclusiveArch: %{rust_arches} noarch
@@ -70,6 +79,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Fri Oct 26 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-10
+- Split features into subpackages
+
* Sun Sep 02 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-1
- Update to 6
commit faa0f2d171638d6bf82d36c487101cf54abd384c
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sun Sep 2 18:43:27 2018 +0200
add missing BR back
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 495e71d..98159e2 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -31,6 +31,7 @@ BuildRequires: python3-setuptools
%if %{with check}
BuildRequires: python3-pytest
BuildRequires: cargo
+BuildRequires: python3dist(semantic-version)
BuildRequires: python3dist(rustcfg)
%endif
Requires: cargo
commit a85e0d862fa1796d526f242b974c9e5e67fe9567
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sun Sep 2 18:29:13 2018 +0200
Update to 6
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/.gitignore b/.gitignore
index d47206f..388ca95 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
/rust2rpm-4.tar.xz
/rust2rpm-5.tar.xz
+/rust2rpm-6.tar.xz
diff --git a/0001-macros-remove-Cargo.lock.patch b/0001-macros-remove-Cargo.lock.patch
deleted file mode 100644
index 57069a3..0000000
--- a/0001-macros-remove-Cargo.lock.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 5313b352712486b4001827b04d906bdb91be2314 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Mon, 8 Jan 2018 23:57:03 +0100
-Subject: [PATCH 1/5] macros: remove Cargo.lock
-
-cargo-package automatically strips it out, but we package also some
-things directly from git.
-
-Acked-by: Josh Stone <jistone(a)redhat.com>
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- data/macros.cargo | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/data/macros.cargo b/data/macros.cargo
-index ebf3edb..288554c 100644
---- a/data/macros.cargo
-+++ b/data/macros.cargo
-@@ -27,7 +27,8 @@ directory = "%{cargo_registry}"\
- [source.crates-io]\
- registry = "https://crates.io"\
- replace-with = "local-registry"\
--EOF\
-+EOF \
-+%{__rm} -f Cargo.lock \
- %if ! %{with check} \
- # https://github.com/rust-lang/cargo/issues/3732 \
- %{__awk} -i inplace -v INPLACE_SUFFIX=.orig '/^\\\[dev-dependencies/{f=1;next} /^\\\[/{f=0}; !f' Cargo.toml \
---
-2.18.0.rc2
-
diff --git a/0002-macros-remove-spurious-whitespace.patch b/0002-macros-remove-spurious-whitespace.patch
deleted file mode 100644
index 9e11804..0000000
--- a/0002-macros-remove-spurious-whitespace.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From cd6329635329fc7742a18f7ed0933298a0c56cf7 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Tue, 9 Jan 2018 06:52:36 +0100
-Subject: [PATCH 2/5] macros: remove spurious whitespace
-
-Fixes: https://pagure.io/fedora-rust/rust2rpm/issue/48
-Reported-by: Josh Stone <jistone(a)redhat.com>
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- data/macros.cargo | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/data/macros.cargo b/data/macros.cargo
-index 288554c..67b1950 100644
---- a/data/macros.cargo
-+++ b/data/macros.cargo
-@@ -27,7 +27,7 @@ directory = "%{cargo_registry}"\
- [source.crates-io]\
- registry = "https://crates.io"\
- replace-with = "local-registry"\
--EOF \
-+EOF\
- %{__rm} -f Cargo.lock \
- %if ! %{with check} \
- # https://github.com/rust-lang/cargo/issues/3732 \
---
-2.18.0.rc2
-
diff --git a/0003-macros-pass-__cargo_common_opts-to-cargo_install.patch b/0003-macros-pass-__cargo_common_opts-to-cargo_install.patch
deleted file mode 100644
index c5ff4b6..0000000
--- a/0003-macros-pass-__cargo_common_opts-to-cargo_install.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From c5bab762f56bf07cd0f4a2e2d58b7c295cddedd8 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Tue, 20 Feb 2018 22:04:35 +0100
-Subject: [PATCH 3/5] macros: pass %__cargo_common_opts to %cargo_install
-
-Reason this has not been done before is that cargo-install doesn't
-understand --release. Let's just add it to other commands and be done
-with it.
-
-Reported-by: Josh Stone <jistone(a)redhat.com>
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- data/macros.cargo | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/data/macros.cargo b/data/macros.cargo
-index 67b1950..22721e9 100644
---- a/data/macros.cargo
-+++ b/data/macros.cargo
-@@ -1,5 +1,5 @@
- %__cargo %{_bindir}/cargo
--%__cargo_common_opts --release %{?_smp_mflags}
-+%__cargo_common_opts %{?_smp_mflags}
- %__cargo_inspector %{_bindir}/cargo-inspector
-
- %cargo_registry %{_datadir}/cargo/registry
-@@ -35,9 +35,9 @@ EOF\
- %endif \
- )
-
--%cargo_build %__cargo build %{__cargo_common_opts}
-+%cargo_build %__cargo build --release %{__cargo_common_opts}
-
--%cargo_test %__cargo test %{__cargo_common_opts} --no-fail-fast
-+%cargo_test %__cargo test --release %{__cargo_common_opts} --no-fail-fast
-
- %cargo_install (\
- set -eu \
-@@ -53,7 +53,7 @@ if %__cargo_is_lib; then \
- echo '{"files":{},"package":""}' > $REG_DIR/.cargo-checksum.json \
- fi \
- if %__cargo_is_bin; then \
-- %__cargo install %{?_smp_mflags} --path . --root %{buildroot}%{_prefix} \
-+ %__cargo install %{__cargo_common_opts} --path . --root %{buildroot}%{_prefix} \
- %{__rm} %{buildroot}%{_prefix}/.crates.toml \
- fi \
- )
---
-2.18.0.rc2
-
diff --git a/0004-macros-make-cargo_-macros-parametric.patch b/0004-macros-make-cargo_-macros-parametric.patch
deleted file mode 100644
index 8d8028a..0000000
--- a/0004-macros-make-cargo_-macros-parametric.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From c9ce952e260ec0adb166bd6e1de652a0277d2437 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Fri, 22 Jun 2018 21:04:59 +0200
-Subject: [PATCH 4/5] macros: make %cargo_* macros parametric
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Unfortunately cargo-install doesn't accept --target-dir, so have to pass
-setting through envvar.
-
-Also %{shrink:} them so it looks nicer in build log.
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- data/macros.cargo | 62 ++++++++++++++++++++++++++++++++++-------------
- 1 file changed, 45 insertions(+), 17 deletions(-)
-
-diff --git a/data/macros.cargo b/data/macros.cargo
-index 22721e9..96a2931 100644
---- a/data/macros.cargo
-+++ b/data/macros.cargo
-@@ -35,25 +35,53 @@ EOF\
- %endif \
- )
-
--%cargo_build %__cargo build --release %{__cargo_common_opts}
-+%__cargo_parse_opts(t:naf:) %{shrink:\
-+%{-f:%{-a:%{error:Can't specify both -f(%{-f*}) and -a}}} \
-+ %{-t:--target-dir %{-t*}} \
-+ %{-n:--no-default-features} \
-+ %{-a:--all-features} \
-+ %{-f:--features %{-f*}} \
-+ %{nil}
-+}
-
--%cargo_test %__cargo test --release %{__cargo_common_opts} --no-fail-fast
-+%cargo_build(t:naf:) %{shrink:\
-+%{__cargo} build \
-+ %{__cargo_common_opts} \
-+ --release \
-+ %{__cargo_parse_opts %{-t:-t%{-t*}} %{-n} %{-a} %{-f:-f%{-f*}}} \
-+ %* \
-+}
-
--%cargo_install (\
--set -eu \
--if %__cargo_is_lib; then \
-- CRATE_NAME=$(%__cargo_inspector --name Cargo.toml) \
-- CRATE_VERSION=$(%__cargo_inspector --version Cargo.toml) \
-- REG_DIR=%{buildroot}%{cargo_registry}/$CRATE_NAME-$CRATE_VERSION \
-- %{__mkdir} -p $REG_DIR \
-- %__cargo package -l | xargs %{__cp} --parents -a -t $REG_DIR \
--%if ! %{with check} \
-- %{__cp} -a Cargo.toml.orig $REG_DIR/Cargo.toml \
--%endif \
-- echo '{"files":{},"package":""}' > $REG_DIR/.cargo-checksum.json \
-+%cargo_test(t:naf:) %{shrink:\
-+%{__cargo} test \
-+ %{__cargo_common_opts} \
-+ --release \
-+ --no-fail-fast \
-+ %{__cargo_parse_opts %{-t:-t%{-t*}} %{-n} %{-a} %{-f:-f%{-f*}}} \
-+ %* \
-+}
-+
-+%cargo_install(t:naf:) (\
-+set -eu \
-+if %__cargo_is_lib; then \
-+ CRATE_NAME=$(%__cargo_inspector --name Cargo.toml) \
-+ CRATE_VERSION=$(%__cargo_inspector --version Cargo.toml) \
-+ REG_DIR=%{buildroot}%{cargo_registry}/$CRATE_NAME-$CRATE_VERSION \
-+ %{__mkdir} -p $REG_DIR \
-+ %{__cargo} package -l | xargs %{__cp} --parents -a -t $REG_DIR \
-+%if ! %{with check} \
-+ %{__cp} -a Cargo.toml.orig $REG_DIR/Cargo.toml \
-+%endif \
-+ echo '{"files":{},"package":""}' > $REG_DIR/.cargo-checksum.json \
- fi \
--if %__cargo_is_bin; then \
-- %__cargo install %{__cargo_common_opts} --path . --root %{buildroot}%{_prefix} \
-- %{__rm} %{buildroot}%{_prefix}/.crates.toml \
-+if %__cargo_is_bin; then \
-+ %{shrink:%{-t:CARGO_TARGET_DIR=%{-t*}} %{__cargo} install \
-+ %{__cargo_common_opts} \
-+ --path . \
-+ --root %{buildroot}%{_prefix} \
-+ %{__cargo_parse_opts %{-n} %{-a} %{-f:-f%{-f*}}} \
-+ %* \
-+ }\
-+ %{__rm} %{buildroot}%{_prefix}/.crates.toml \
- fi \
- )
---
-2.18.0.rc2
-
diff --git a/0005-macros-remove-support-for-target-dir.patch b/0005-macros-remove-support-for-target-dir.patch
deleted file mode 100644
index e8fbfcc..0000000
--- a/0005-macros-remove-support-for-target-dir.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 80237720ae3397fc66d8f06e13f868c4bd2723c1 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Fri, 22 Jun 2018 21:53:09 +0200
-Subject: [PATCH 5/5] macros: remove support for target-dir
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- data/macros.cargo | 31 +++++++++++++++----------------
- 1 file changed, 15 insertions(+), 16 deletions(-)
-
-diff --git a/data/macros.cargo b/data/macros.cargo
-index 96a2931..a0c456a 100644
---- a/data/macros.cargo
-+++ b/data/macros.cargo
-@@ -35,30 +35,29 @@ EOF\
- %endif \
- )
-
--%__cargo_parse_opts(t:naf:) %{shrink:\
-+%__cargo_parse_opts(naf:) %{shrink:\
- %{-f:%{-a:%{error:Can't specify both -f(%{-f*}) and -a}}} \
-- %{-t:--target-dir %{-t*}} \
- %{-n:--no-default-features} \
- %{-a:--all-features} \
- %{-f:--features %{-f*}} \
- %{nil}
- }
-
--%cargo_build(t:naf:) %{shrink:\
--%{__cargo} build \
-- %{__cargo_common_opts} \
-- --release \
-- %{__cargo_parse_opts %{-t:-t%{-t*}} %{-n} %{-a} %{-f:-f%{-f*}}} \
-- %* \
-+%cargo_build(naf:) %{shrink:\
-+%{__cargo} build \
-+ %{__cargo_common_opts} \
-+ --release \
-+ %{__cargo_parse_opts %{-n} %{-a} %{-f:-f%{-f*}}} \
-+ %* \
- }
-
--%cargo_test(t:naf:) %{shrink:\
--%{__cargo} test \
-- %{__cargo_common_opts} \
-- --release \
-- --no-fail-fast \
-- %{__cargo_parse_opts %{-t:-t%{-t*}} %{-n} %{-a} %{-f:-f%{-f*}}} \
-- %* \
-+%cargo_test(naf:) %{shrink:\
-+%{__cargo} test \
-+ %{__cargo_common_opts} \
-+ --release \
-+ --no-fail-fast \
-+ %{__cargo_parse_opts %{-n} %{-a} %{-f:-f%{-f*}}} \
-+ %* \
- }
-
- %cargo_install(t:naf:) (\
-@@ -75,7 +74,7 @@ if %__cargo_is_lib; then \
- echo '{"files":{},"package":""}' > $REG_DIR/.cargo-checksum.json \
- fi \
- if %__cargo_is_bin; then \
-- %{shrink:%{-t:CARGO_TARGET_DIR=%{-t*}} %{__cargo} install \
-+ %{shrink:%{__cargo} install \
- %{__cargo_common_opts} \
- --path . \
- --root %{buildroot}%{_prefix} \
---
-2.18.0.rc2
-
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 016f782..495e71d 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -1,18 +1,14 @@
%bcond_without check
+%{?python_enable_dependency_generator}
Name: rust-packaging
-Version: 5
-Release: 11%{?dist}
+Version: 6
+Release: 1%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
URL: https://pagure.io/fedora-rust/rust2rpm
Source0: https://releases.pagure.org/fedora-rust/rust2rpm/rust2rpm-%{version}.tar.xz
-Patch0001: 0001-macros-remove-Cargo.lock.patch
-Patch0002: 0002-macros-remove-spurious-whitespace.patch
-Patch0003: 0003-macros-pass-__cargo_common_opts-to-cargo_install.patch
-Patch0004: 0004-macros-make-cargo_-macros-parametric.patch
-Patch0005: 0005-macros-remove-support-for-target-dir.patch
BuildArch: noarch
ExclusiveArch: %{rust_arches} noarch
@@ -23,8 +19,6 @@ Requires: python3-rust2rpm = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: rust-srpm-macros = %{version}
Requires: rust
Requires: cargo
-# Remove in F29
-Obsoletes: rust-rpm-macros < 2-2
%description
The package provides macros for building projects in Rust
@@ -37,14 +31,9 @@ BuildRequires: python3-setuptools
%if %{with check}
BuildRequires: python3-pytest
BuildRequires: cargo
-BuildRequires: python3-semantic_version
+BuildRequires: python3dist(rustcfg)
%endif
Requires: cargo
-Requires: python3-semantic_version
-Requires: python3-jinja2
-Requires: python3-requests
-Requires: python3-tqdm
-Obsoletes: rust2rpm < 1-8
Provides: rust2rpm = %{version}-%{release}
%{?python_provide:%python_provide python3-rust2rpm}
@@ -80,6 +69,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sun Sep 02 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 6-1
+- Update to 6
+
* Sat Jul 14 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 5-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
diff --git a/sources b/sources
index 0745d57..9f6fa6f 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (rust2rpm-5.tar.xz) = e61c0c9351b3bc76b576fc57950b96793f805109e56d1021da94e5dfceb9d299c868f980de298d6a7f85e1b3477f785df7b5615c702e6a0ac25070fbffc013f3
+SHA512 (rust2rpm-6.tar.xz) = 408988351156d858f7429d990d7330f216b54add671c6e90e54917e717ad6f2b3b99e414289c252e6a2b5dfad73ce430ac73f03265f6e174ef53edcee34d0fe2
commit 84bf5595e3951aa209c83c79c4564d69cf8d32bd
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Sat Jul 14 05:20:48 2018 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 73d8668..016f782 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -2,7 +2,7 @@
Name: rust-packaging
Version: 5
-Release: 10%{?dist}
+Release: 11%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -80,6 +80,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sat Jul 14 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 5-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
* Mon Jul 02 2018 Miro Hronok <mhroncok(a)redhat.com> - 5-10
- Rebuilt for Python 3.7
commit b5750174ce98b9754d480856c3662e6a910bef83
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Jul 2 18:24:06 2018 +0200
Rebuilt for Python 3.7
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 1b4c7c2..73d8668 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -2,7 +2,7 @@
Name: rust-packaging
Version: 5
-Release: 9%{?dist}
+Release: 10%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -80,6 +80,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Mon Jul 02 2018 Miro Hronok <mhroncok(a)redhat.com> - 5-10
+- Rebuilt for Python 3.7
+
* Mon Jul 02 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 5-9
- Rebuilt for Python 3.7
commit 104d9fcc10c4002f0e0f3f39e93c8e9737f08487
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Mon Jul 2 17:19:07 2018 +0100
Rebuilt for Python 3.7
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/rust-packaging.spec b/rust-packaging.spec
index dabffa1..1b4c7c2 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -2,7 +2,7 @@
Name: rust-packaging
Version: 5
-Release: 8%{?dist}
+Release: 9%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -80,6 +80,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Mon Jul 02 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 5-9
+- Rebuilt for Python 3.7
+
* Fri Jun 22 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 5-8
- Various improvements for %%cargo_* macros
commit fb6d2b02177659c987b42014f5d457cdc76221ed
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Fri Jun 22 21:57:54 2018 +0200
Various improvements for %%cargo_* macros
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0001-macros-remove-Cargo.lock.patch b/0001-macros-remove-Cargo.lock.patch
index eac95b4..57069a3 100644
--- a/0001-macros-remove-Cargo.lock.patch
+++ b/0001-macros-remove-Cargo.lock.patch
@@ -1,7 +1,7 @@
From 5313b352712486b4001827b04d906bdb91be2314 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Mon, 8 Jan 2018 23:57:03 +0100
-Subject: [PATCH 1/3] macros: remove Cargo.lock
+Subject: [PATCH 1/5] macros: remove Cargo.lock
cargo-package automatically strips it out, but we package also some
things directly from git.
@@ -27,5 +27,5 @@ index ebf3edb..288554c 100644
# https://github.com/rust-lang/cargo/issues/3732 \
%{__awk} -i inplace -v INPLACE_SUFFIX=.orig '/^\\\[dev-dependencies/{f=1;next} /^\\\[/{f=0}; !f' Cargo.toml \
--
-2.16.2
+2.18.0.rc2
diff --git a/0002-macros-remove-spurious-whitespace.patch b/0002-macros-remove-spurious-whitespace.patch
index 2033124..9e11804 100644
--- a/0002-macros-remove-spurious-whitespace.patch
+++ b/0002-macros-remove-spurious-whitespace.patch
@@ -1,7 +1,7 @@
From cd6329635329fc7742a18f7ed0933298a0c56cf7 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue, 9 Jan 2018 06:52:36 +0100
-Subject: [PATCH 2/3] macros: remove spurious whitespace
+Subject: [PATCH 2/5] macros: remove spurious whitespace
Fixes: https://pagure.io/fedora-rust/rust2rpm/issue/48
Reported-by: Josh Stone <jistone(a)redhat.com>
@@ -24,5 +24,5 @@ index 288554c..67b1950 100644
%if ! %{with check} \
# https://github.com/rust-lang/cargo/issues/3732 \
--
-2.16.2
+2.18.0.rc2
diff --git a/0003-macros-pass-__cargo_common_opts-to-cargo_install.patch b/0003-macros-pass-__cargo_common_opts-to-cargo_install.patch
index f719a78..c5ff4b6 100644
--- a/0003-macros-pass-__cargo_common_opts-to-cargo_install.patch
+++ b/0003-macros-pass-__cargo_common_opts-to-cargo_install.patch
@@ -1,7 +1,7 @@
From c5bab762f56bf07cd0f4a2e2d58b7c295cddedd8 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue, 20 Feb 2018 22:04:35 +0100
-Subject: [PATCH 3/3] macros: pass %__cargo_common_opts to %cargo_install
+Subject: [PATCH 3/5] macros: pass %__cargo_common_opts to %cargo_install
Reason this has not been done before is that cargo-install doesn't
understand --release. Let's just add it to other commands and be done
@@ -46,5 +46,5 @@ index 67b1950..22721e9 100644
fi \
)
--
-2.16.2
+2.18.0.rc2
diff --git a/0004-macros-make-cargo_-macros-parametric.patch b/0004-macros-make-cargo_-macros-parametric.patch
new file mode 100644
index 0000000..8d8028a
--- /dev/null
+++ b/0004-macros-make-cargo_-macros-parametric.patch
@@ -0,0 +1,96 @@
+From c9ce952e260ec0adb166bd6e1de652a0277d2437 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Fri, 22 Jun 2018 21:04:59 +0200
+Subject: [PATCH 4/5] macros: make %cargo_* macros parametric
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Unfortunately cargo-install doesn't accept --target-dir, so have to pass
+setting through envvar.
+
+Also %{shrink:} them so it looks nicer in build log.
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ data/macros.cargo | 62 ++++++++++++++++++++++++++++++++++-------------
+ 1 file changed, 45 insertions(+), 17 deletions(-)
+
+diff --git a/data/macros.cargo b/data/macros.cargo
+index 22721e9..96a2931 100644
+--- a/data/macros.cargo
++++ b/data/macros.cargo
+@@ -35,25 +35,53 @@ EOF\
+ %endif \
+ )
+
+-%cargo_build %__cargo build --release %{__cargo_common_opts}
++%__cargo_parse_opts(t:naf:) %{shrink:\
++%{-f:%{-a:%{error:Can't specify both -f(%{-f*}) and -a}}} \
++ %{-t:--target-dir %{-t*}} \
++ %{-n:--no-default-features} \
++ %{-a:--all-features} \
++ %{-f:--features %{-f*}} \
++ %{nil}
++}
+
+-%cargo_test %__cargo test --release %{__cargo_common_opts} --no-fail-fast
++%cargo_build(t:naf:) %{shrink:\
++%{__cargo} build \
++ %{__cargo_common_opts} \
++ --release \
++ %{__cargo_parse_opts %{-t:-t%{-t*}} %{-n} %{-a} %{-f:-f%{-f*}}} \
++ %* \
++}
+
+-%cargo_install (\
+-set -eu \
+-if %__cargo_is_lib; then \
+- CRATE_NAME=$(%__cargo_inspector --name Cargo.toml) \
+- CRATE_VERSION=$(%__cargo_inspector --version Cargo.toml) \
+- REG_DIR=%{buildroot}%{cargo_registry}/$CRATE_NAME-$CRATE_VERSION \
+- %{__mkdir} -p $REG_DIR \
+- %__cargo package -l | xargs %{__cp} --parents -a -t $REG_DIR \
+-%if ! %{with check} \
+- %{__cp} -a Cargo.toml.orig $REG_DIR/Cargo.toml \
+-%endif \
+- echo '{"files":{},"package":""}' > $REG_DIR/.cargo-checksum.json \
++%cargo_test(t:naf:) %{shrink:\
++%{__cargo} test \
++ %{__cargo_common_opts} \
++ --release \
++ --no-fail-fast \
++ %{__cargo_parse_opts %{-t:-t%{-t*}} %{-n} %{-a} %{-f:-f%{-f*}}} \
++ %* \
++}
++
++%cargo_install(t:naf:) (\
++set -eu \
++if %__cargo_is_lib; then \
++ CRATE_NAME=$(%__cargo_inspector --name Cargo.toml) \
++ CRATE_VERSION=$(%__cargo_inspector --version Cargo.toml) \
++ REG_DIR=%{buildroot}%{cargo_registry}/$CRATE_NAME-$CRATE_VERSION \
++ %{__mkdir} -p $REG_DIR \
++ %{__cargo} package -l | xargs %{__cp} --parents -a -t $REG_DIR \
++%if ! %{with check} \
++ %{__cp} -a Cargo.toml.orig $REG_DIR/Cargo.toml \
++%endif \
++ echo '{"files":{},"package":""}' > $REG_DIR/.cargo-checksum.json \
+ fi \
+-if %__cargo_is_bin; then \
+- %__cargo install %{__cargo_common_opts} --path . --root %{buildroot}%{_prefix} \
+- %{__rm} %{buildroot}%{_prefix}/.crates.toml \
++if %__cargo_is_bin; then \
++ %{shrink:%{-t:CARGO_TARGET_DIR=%{-t*}} %{__cargo} install \
++ %{__cargo_common_opts} \
++ --path . \
++ --root %{buildroot}%{_prefix} \
++ %{__cargo_parse_opts %{-n} %{-a} %{-f:-f%{-f*}}} \
++ %* \
++ }\
++ %{__rm} %{buildroot}%{_prefix}/.crates.toml \
+ fi \
+ )
+--
+2.18.0.rc2
+
diff --git a/0005-macros-remove-support-for-target-dir.patch b/0005-macros-remove-support-for-target-dir.patch
new file mode 100644
index 0000000..e8fbfcc
--- /dev/null
+++ b/0005-macros-remove-support-for-target-dir.patch
@@ -0,0 +1,71 @@
+From 80237720ae3397fc66d8f06e13f868c4bd2723c1 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Fri, 22 Jun 2018 21:53:09 +0200
+Subject: [PATCH 5/5] macros: remove support for target-dir
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ data/macros.cargo | 31 +++++++++++++++----------------
+ 1 file changed, 15 insertions(+), 16 deletions(-)
+
+diff --git a/data/macros.cargo b/data/macros.cargo
+index 96a2931..a0c456a 100644
+--- a/data/macros.cargo
++++ b/data/macros.cargo
+@@ -35,30 +35,29 @@ EOF\
+ %endif \
+ )
+
+-%__cargo_parse_opts(t:naf:) %{shrink:\
++%__cargo_parse_opts(naf:) %{shrink:\
+ %{-f:%{-a:%{error:Can't specify both -f(%{-f*}) and -a}}} \
+- %{-t:--target-dir %{-t*}} \
+ %{-n:--no-default-features} \
+ %{-a:--all-features} \
+ %{-f:--features %{-f*}} \
+ %{nil}
+ }
+
+-%cargo_build(t:naf:) %{shrink:\
+-%{__cargo} build \
+- %{__cargo_common_opts} \
+- --release \
+- %{__cargo_parse_opts %{-t:-t%{-t*}} %{-n} %{-a} %{-f:-f%{-f*}}} \
+- %* \
++%cargo_build(naf:) %{shrink:\
++%{__cargo} build \
++ %{__cargo_common_opts} \
++ --release \
++ %{__cargo_parse_opts %{-n} %{-a} %{-f:-f%{-f*}}} \
++ %* \
+ }
+
+-%cargo_test(t:naf:) %{shrink:\
+-%{__cargo} test \
+- %{__cargo_common_opts} \
+- --release \
+- --no-fail-fast \
+- %{__cargo_parse_opts %{-t:-t%{-t*}} %{-n} %{-a} %{-f:-f%{-f*}}} \
+- %* \
++%cargo_test(naf:) %{shrink:\
++%{__cargo} test \
++ %{__cargo_common_opts} \
++ --release \
++ --no-fail-fast \
++ %{__cargo_parse_opts %{-n} %{-a} %{-f:-f%{-f*}}} \
++ %* \
+ }
+
+ %cargo_install(t:naf:) (\
+@@ -75,7 +74,7 @@ if %__cargo_is_lib; then \
+ echo '{"files":{},"package":""}' > $REG_DIR/.cargo-checksum.json \
+ fi \
+ if %__cargo_is_bin; then \
+- %{shrink:%{-t:CARGO_TARGET_DIR=%{-t*}} %{__cargo} install \
++ %{shrink:%{__cargo} install \
+ %{__cargo_common_opts} \
+ --path . \
+ --root %{buildroot}%{_prefix} \
+--
+2.18.0.rc2
+
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 9f6162f..dabffa1 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -2,7 +2,7 @@
Name: rust-packaging
Version: 5
-Release: 7%{?dist}
+Release: 8%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -11,6 +11,8 @@ Source0: https://releases.pagure.org/fedora-rust/rust2rpm/rust2rpm-%{vers
Patch0001: 0001-macros-remove-Cargo.lock.patch
Patch0002: 0002-macros-remove-spurious-whitespace.patch
Patch0003: 0003-macros-pass-__cargo_common_opts-to-cargo_install.patch
+Patch0004: 0004-macros-make-cargo_-macros-parametric.patch
+Patch0005: 0005-macros-remove-support-for-target-dir.patch
BuildArch: noarch
ExclusiveArch: %{rust_arches} noarch
@@ -78,6 +80,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Fri Jun 22 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 5-8
+- Various improvements for %%cargo_* macros
+
* Tue Jun 19 2018 Miro Hronok <mhroncok(a)redhat.com> - 5-7
- Rebuilt for Python 3.7
commit fe7dc1b94a637386dbda072d8f7ceede532637c8
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue Jun 19 11:27:00 2018 +0200
Rebuilt for Python 3.7
diff --git a/rust-packaging.spec b/rust-packaging.spec
index f6ce2e1..9f6162f 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -2,7 +2,7 @@
Name: rust-packaging
Version: 5
-Release: 6%{?dist}
+Release: 7%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -78,6 +78,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Tue Jun 19 2018 Miro Hronok <mhroncok(a)redhat.com> - 5-7
+- Rebuilt for Python 3.7
+
* Wed Feb 21 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 5-6
- Pass %%__cargo_common_opts to %%cargo_install
commit 6e2f4c83784eb959fcfafea022f6c78770dadf3d
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Wed Feb 21 08:15:29 2018 +0100
Pass %__cargo_common_opts to %cargo_install
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0001-macros-remove-Cargo.lock.patch b/0001-macros-remove-Cargo.lock.patch
index 435710c..eac95b4 100644
--- a/0001-macros-remove-Cargo.lock.patch
+++ b/0001-macros-remove-Cargo.lock.patch
@@ -1,7 +1,7 @@
From 5313b352712486b4001827b04d906bdb91be2314 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Mon, 8 Jan 2018 23:57:03 +0100
-Subject: [PATCH 1/2] macros: remove Cargo.lock
+Subject: [PATCH 1/3] macros: remove Cargo.lock
cargo-package automatically strips it out, but we package also some
things directly from git.
@@ -27,5 +27,5 @@ index ebf3edb..288554c 100644
# https://github.com/rust-lang/cargo/issues/3732 \
%{__awk} -i inplace -v INPLACE_SUFFIX=.orig '/^\\\[dev-dependencies/{f=1;next} /^\\\[/{f=0}; !f' Cargo.toml \
--
-2.15.1
+2.16.2
diff --git a/0002-macros-remove-spurious-whitespace.patch b/0002-macros-remove-spurious-whitespace.patch
index 522e2b0..2033124 100644
--- a/0002-macros-remove-spurious-whitespace.patch
+++ b/0002-macros-remove-spurious-whitespace.patch
@@ -1,7 +1,7 @@
From cd6329635329fc7742a18f7ed0933298a0c56cf7 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue, 9 Jan 2018 06:52:36 +0100
-Subject: [PATCH 2/2] macros: remove spurious whitespace
+Subject: [PATCH 2/3] macros: remove spurious whitespace
Fixes: https://pagure.io/fedora-rust/rust2rpm/issue/48
Reported-by: Josh Stone <jistone(a)redhat.com>
@@ -24,5 +24,5 @@ index 288554c..67b1950 100644
%if ! %{with check} \
# https://github.com/rust-lang/cargo/issues/3732 \
--
-2.15.1
+2.16.2
diff --git a/0003-macros-pass-__cargo_common_opts-to-cargo_install.patch b/0003-macros-pass-__cargo_common_opts-to-cargo_install.patch
new file mode 100644
index 0000000..f719a78
--- /dev/null
+++ b/0003-macros-pass-__cargo_common_opts-to-cargo_install.patch
@@ -0,0 +1,50 @@
+From c5bab762f56bf07cd0f4a2e2d58b7c295cddedd8 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Tue, 20 Feb 2018 22:04:35 +0100
+Subject: [PATCH 3/3] macros: pass %__cargo_common_opts to %cargo_install
+
+Reason this has not been done before is that cargo-install doesn't
+understand --release. Let's just add it to other commands and be done
+with it.
+
+Reported-by: Josh Stone <jistone(a)redhat.com>
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ data/macros.cargo | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/data/macros.cargo b/data/macros.cargo
+index 67b1950..22721e9 100644
+--- a/data/macros.cargo
++++ b/data/macros.cargo
+@@ -1,5 +1,5 @@
+ %__cargo %{_bindir}/cargo
+-%__cargo_common_opts --release %{?_smp_mflags}
++%__cargo_common_opts %{?_smp_mflags}
+ %__cargo_inspector %{_bindir}/cargo-inspector
+
+ %cargo_registry %{_datadir}/cargo/registry
+@@ -35,9 +35,9 @@ EOF\
+ %endif \
+ )
+
+-%cargo_build %__cargo build %{__cargo_common_opts}
++%cargo_build %__cargo build --release %{__cargo_common_opts}
+
+-%cargo_test %__cargo test %{__cargo_common_opts} --no-fail-fast
++%cargo_test %__cargo test --release %{__cargo_common_opts} --no-fail-fast
+
+ %cargo_install (\
+ set -eu \
+@@ -53,7 +53,7 @@ if %__cargo_is_lib; then \
+ echo '{"files":{},"package":""}' > $REG_DIR/.cargo-checksum.json \
+ fi \
+ if %__cargo_is_bin; then \
+- %__cargo install %{?_smp_mflags} --path . --root %{buildroot}%{_prefix} \
++ %__cargo install %{__cargo_common_opts} --path . --root %{buildroot}%{_prefix} \
+ %{__rm} %{buildroot}%{_prefix}/.crates.toml \
+ fi \
+ )
+--
+2.16.2
+
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 1d5bfbc..f6ce2e1 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -2,7 +2,7 @@
Name: rust-packaging
Version: 5
-Release: 5%{?dist}
+Release: 6%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -10,6 +10,7 @@ URL: https://pagure.io/fedora-rust/rust2rpm
Source0: https://releases.pagure.org/fedora-rust/rust2rpm/rust2rpm-%{version}.tar.xz
Patch0001: 0001-macros-remove-Cargo.lock.patch
Patch0002: 0002-macros-remove-spurious-whitespace.patch
+Patch0003: 0003-macros-pass-__cargo_common_opts-to-cargo_install.patch
BuildArch: noarch
ExclusiveArch: %{rust_arches} noarch
@@ -41,9 +42,6 @@ Requires: python3-semantic_version
Requires: python3-jinja2
Requires: python3-requests
Requires: python3-tqdm
-%if 0%{?mageia}
-Requires: locales-en
-%endif
Obsoletes: rust2rpm < 1-8
Provides: rust2rpm = %{version}-%{release}
%{?python_provide:%python_provide python3-rust2rpm}
@@ -53,15 +51,6 @@ Provides: rust2rpm = %{version}-%{release}
%prep
%autosetup -n rust2rpm-%{version} -p1
-lang=
-%if 0%{?rhel} && 0%{?rhel} <= 7
-lang=C.UTF-8
-%else
-%if 0%{?mageia}
-lang=en_US.UTF-8
-%endif
-%endif
-[ -z "$lang" ] || sed -r -i -e "s|(%\{_bindir\}/cargo-inspector)|env LANG=$lang \1|" data/cargo.attr data/macros.cargo
%build
%py3_build
@@ -89,6 +78,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Wed Feb 21 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 5-6
+- Pass %%__cargo_common_opts to %%cargo_install
+
* Tue Feb 20 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 5-5
- Explicitly require rust/cargo
commit 210d2aa95c2dbda70e4081d015e87a297a268ece
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue Feb 20 14:21:10 2018 +0100
Explicitly require rust/cargo
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/rust-packaging.spec b/rust-packaging.spec
index eade1ea..1d5bfbc 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -2,7 +2,7 @@
Name: rust-packaging
Version: 5
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -18,6 +18,8 @@ ExclusiveArch: %{rust_arches} noarch
Requires: gawk >= 4.1.0
Requires: python3-rust2rpm = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: rust-srpm-macros = %{version}
+Requires: rust
+Requires: cargo
# Remove in F29
Obsoletes: rust-rpm-macros < 2-2
@@ -87,6 +89,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Tue Feb 20 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 5-5
+- Explicitly require rust/cargo
+
* Fri Feb 09 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 5-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
commit 7edf0c5e79fa9747ef661cc8bd8f3b7ab6acbc81
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Fri Feb 9 15:38:01 2018 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 7b3ccea..eade1ea 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -2,7 +2,7 @@
Name: rust-packaging
Version: 5
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -87,6 +87,9 @@ py.test-%{python3_version} -vv test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Fri Feb 09 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 5-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
* Tue Jan 09 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 5-3
- Fix syntax error
commit 1f1f7784f40645adf884f8c18f3c1f09920a5f9c
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sun Jan 14 17:01:28 2018 +0100
use %_rpmmacrodir and %_fileattrsdir
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 9bef763..7b3ccea 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -66,8 +66,8 @@ lang=en_US.UTF-8
%install
%py3_install
-install -D -p -m 0644 -t %{buildroot}%{_rpmconfigdir}/macros.d data/macros.rust data/macros.cargo
-install -D -p -m 0644 -t %{buildroot}%{_rpmconfigdir}/fileattrs data/cargo.attr
+install -D -p -m 0644 -t %{buildroot}%{_rpmmacrodir} data/macros.rust data/macros.cargo
+install -D -p -m 0644 -t %{buildroot}%{_fileattrsdir} data/cargo.attr
%if %{with check}
%check
@@ -75,9 +75,9 @@ py.test-%{python3_version} -vv test.py
%endif
%files
-%{_rpmconfigdir}/macros.d/macros.rust
-%{_rpmconfigdir}/macros.d/macros.cargo
-%{_rpmconfigdir}/fileattrs/cargo.attr
+%{_rpmmacrodir}/macros.rust
+%{_rpmmacrodir}/macros.cargo
+%{_fileattrsdir}/cargo.attr
%files -n python3-rust2rpm
%license LICENSE
commit e99965a091ab45b9013cc9b8cfe68e1682d66682
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sun Jan 14 17:01:10 2018 +0100
remove obsolete conditions
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/rust-packaging.spec b/rust-packaging.spec
index a47ac1f..9bef763 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -52,7 +52,7 @@ Provides: rust2rpm = %{version}-%{release}
%prep
%autosetup -n rust2rpm-%{version} -p1
lang=
-%if (0%{?fedora} && 0%{?fedora} <= 25) || (0%{?rhel} && 0%{?rhel} <= 7)
+%if 0%{?rhel} && 0%{?rhel} <= 7
lang=C.UTF-8
%else
%if 0%{?mageia}
commit 0e91fb3355fe994f41b16165a44b0e20ba16d8a3
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sun Jan 14 09:07:34 2018 +0100
be super-verbose in tests
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 20d6cc3..a47ac1f 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -71,7 +71,7 @@ install -D -p -m 0644 -t %{buildroot}%{_rpmconfigdir}/fileattrs data/cargo.attr
%if %{with check}
%check
-py.test-%{python3_version} -v test.py
+py.test-%{python3_version} -vv test.py
%endif
%files
commit f45176f7dee892d1048a4f71c762ec74900da55b
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue Jan 9 06:54:39 2018 +0100
Fix syntax error
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0001-macros-remove-Cargo.lock.patch b/0001-macros-remove-Cargo.lock.patch
index c86f872..435710c 100644
--- a/0001-macros-remove-Cargo.lock.patch
+++ b/0001-macros-remove-Cargo.lock.patch
@@ -1,7 +1,7 @@
From 5313b352712486b4001827b04d906bdb91be2314 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Mon, 8 Jan 2018 23:57:03 +0100
-Subject: [PATCH] macros: remove Cargo.lock
+Subject: [PATCH 1/2] macros: remove Cargo.lock
cargo-package automatically strips it out, but we package also some
things directly from git.
diff --git a/0002-macros-remove-spurious-whitespace.patch b/0002-macros-remove-spurious-whitespace.patch
new file mode 100644
index 0000000..522e2b0
--- /dev/null
+++ b/0002-macros-remove-spurious-whitespace.patch
@@ -0,0 +1,28 @@
+From cd6329635329fc7742a18f7ed0933298a0c56cf7 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Tue, 9 Jan 2018 06:52:36 +0100
+Subject: [PATCH 2/2] macros: remove spurious whitespace
+
+Fixes: https://pagure.io/fedora-rust/rust2rpm/issue/48
+Reported-by: Josh Stone <jistone(a)redhat.com>
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ data/macros.cargo | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/data/macros.cargo b/data/macros.cargo
+index 288554c..67b1950 100644
+--- a/data/macros.cargo
++++ b/data/macros.cargo
+@@ -27,7 +27,7 @@ directory = "%{cargo_registry}"\
+ [source.crates-io]\
+ registry = "https://crates.io"\
+ replace-with = "local-registry"\
+-EOF \
++EOF\
+ %{__rm} -f Cargo.lock \
+ %if ! %{with check} \
+ # https://github.com/rust-lang/cargo/issues/3732 \
+--
+2.15.1
+
diff --git a/rust-packaging.spec b/rust-packaging.spec
index af03432..20d6cc3 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -2,13 +2,14 @@
Name: rust-packaging
Version: 5
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
URL: https://pagure.io/fedora-rust/rust2rpm
Source0: https://releases.pagure.org/fedora-rust/rust2rpm/rust2rpm-%{version}.tar.xz
Patch0001: 0001-macros-remove-Cargo.lock.patch
+Patch0002: 0002-macros-remove-spurious-whitespace.patch
BuildArch: noarch
ExclusiveArch: %{rust_arches} noarch
@@ -86,6 +87,9 @@ py.test-%{python3_version} -v test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Tue Jan 09 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 5-3
+- Fix syntax error
+
* Tue Jan 09 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 5-2
- Remove Cargo.lock
commit b22849eefe9f75d9e5e5e364ab740c768324002e
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Tue Jan 9 00:02:01 2018 +0100
Remove Cargo.lock
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0001-macros-remove-Cargo.lock.patch b/0001-macros-remove-Cargo.lock.patch
new file mode 100644
index 0000000..c86f872
--- /dev/null
+++ b/0001-macros-remove-Cargo.lock.patch
@@ -0,0 +1,31 @@
+From 5313b352712486b4001827b04d906bdb91be2314 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Mon, 8 Jan 2018 23:57:03 +0100
+Subject: [PATCH] macros: remove Cargo.lock
+
+cargo-package automatically strips it out, but we package also some
+things directly from git.
+
+Acked-by: Josh Stone <jistone(a)redhat.com>
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ data/macros.cargo | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/data/macros.cargo b/data/macros.cargo
+index ebf3edb..288554c 100644
+--- a/data/macros.cargo
++++ b/data/macros.cargo
+@@ -27,7 +27,8 @@ directory = "%{cargo_registry}"\
+ [source.crates-io]\
+ registry = "https://crates.io"\
+ replace-with = "local-registry"\
+-EOF\
++EOF \
++%{__rm} -f Cargo.lock \
+ %if ! %{with check} \
+ # https://github.com/rust-lang/cargo/issues/3732 \
+ %{__awk} -i inplace -v INPLACE_SUFFIX=.orig '/^\\\[dev-dependencies/{f=1;next} /^\\\[/{f=0}; !f' Cargo.toml \
+--
+2.15.1
+
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 651c352..af03432 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -2,12 +2,13 @@
Name: rust-packaging
Version: 5
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
URL: https://pagure.io/fedora-rust/rust2rpm
Source0: https://releases.pagure.org/fedora-rust/rust2rpm/rust2rpm-%{version}.tar.xz
+Patch0001: 0001-macros-remove-Cargo.lock.patch
BuildArch: noarch
ExclusiveArch: %{rust_arches} noarch
@@ -85,6 +86,9 @@ py.test-%{python3_version} -v test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Tue Jan 09 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 5-2
+- Remove Cargo.lock
+
* Mon Jan 08 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 5-1
- Update to 5
commit 2ce47297c5751f725f2fc720355ef8025225d44b
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Mon Jan 8 20:52:27 2018 +0100
commit sources
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/.gitignore b/.gitignore
index aaa8cf4..d47206f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
/rust2rpm-4.tar.xz
+/rust2rpm-5.tar.xz
diff --git a/sources b/sources
index a81110b..0745d57 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (rust2rpm-4.tar.xz) = d8527c72f34b31086d3c6dbfae7fd25709525e5aa941d9de47efaefb07a04782d8f7c561b258145df1413fbfee5cd76e24d7d3787107aa36e2d9d1a1e6577637
+SHA512 (rust2rpm-5.tar.xz) = e61c0c9351b3bc76b576fc57950b96793f805109e56d1021da94e5dfceb9d299c868f980de298d6a7f85e1b3477f785df7b5615c702e6a0ac25070fbffc013f3
commit f0f5561dea6f3667228f30880e0622f418f2618b
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Mon Jan 8 20:32:16 2018 +0100
Update to 5
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0001-inspector-inject-cargo-dependency-in-runtime.patch b/0001-inspector-inject-cargo-dependency-in-runtime.patch
deleted file mode 100644
index 675f2ca..0000000
--- a/0001-inspector-inject-cargo-dependency-in-runtime.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 9e0a872ece6f5aedf76ffd67044f22c7d0cba8aa Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Fri, 20 Oct 2017 18:04:31 +0200
-Subject: [PATCH 1/3] inspector: inject cargo dependency in runtime
-
-Fixes: https://pagure.io/fedora-rust/rust2rpm/issue/42
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- rust2rpm/__main__.py | 1 +
- rust2rpm/inspector.py | 3 +++
- 2 files changed, 4 insertions(+)
-
-diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
-index 0121a33..bb92fa3 100644
---- a/rust2rpm/__main__.py
-+++ b/rust2rpm/__main__.py
-@@ -91,6 +91,7 @@ Provides: {{ prv }}
- {% endfor %}
- {% endif %}
- {% if include_requires %}
-+Requires: cargo
- {% if md.requires|length > 0 %}
- # [dependencies]
- {% for req in md.requires|sort(attribute="name") %}
-diff --git a/rust2rpm/inspector.py b/rust2rpm/inspector.py
-index d08f1aa..6ccdbc2 100644
---- a/rust2rpm/inspector.py
-+++ b/rust2rpm/inspector.py
-@@ -38,6 +38,9 @@ def main():
- print_deps(list(itertools.chain(md.requires, md.build_requires)))
- if args.test_requires:
- print_deps(md.test_requires)
-+ if args.requires:
-+ # Someone should own /usr/share/cargo/registry
-+ print("cargo")
-
- if __name__ == "__main__":
- main()
---
-2.15.0
-
diff --git a/0002-inspector-inject-rust-packaging-dependency-in-buildt.patch b/0002-inspector-inject-rust-packaging-dependency-in-buildt.patch
deleted file mode 100644
index bfa9764..0000000
--- a/0002-inspector-inject-rust-packaging-dependency-in-buildt.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 45a5caf30060c182fb0ae03a1a7e4e707599aaa3 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Sat, 21 Oct 2017 09:45:30 +0200
-Subject: [PATCH 2/3] inspector: inject rust-packaging dependency in buildtime
-
-For consistency with previous commit.
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- rust2rpm/inspector.py | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/rust2rpm/inspector.py b/rust2rpm/inspector.py
-index 6ccdbc2..2d488b2 100644
---- a/rust2rpm/inspector.py
-+++ b/rust2rpm/inspector.py
-@@ -41,6 +41,8 @@ def main():
- if args.requires:
- # Someone should own /usr/share/cargo/registry
- print("cargo")
-+ if args.build_requires:
-+ print("rust-packaging")
-
- if __name__ == "__main__":
- main()
---
-2.15.0
-
diff --git a/0003-use-cp-instead-of-install.patch b/0003-use-cp-instead-of-install.patch
deleted file mode 100644
index 7c7b726..0000000
--- a/0003-use-cp-instead-of-install.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 59809d4940822edaa361507ecea93b84e3c43ec0 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
-Date: Sat, 4 Nov 2017 15:32:39 +0100
-Subject: [PATCH 3/3] use cp instead of install
-
-We want to preserve original modes and so on.
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
----
- data/macros.cargo | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/data/macros.cargo b/data/macros.cargo
-index 09bbcea..e52f87c 100644
---- a/data/macros.cargo
-+++ b/data/macros.cargo
-@@ -45,9 +45,9 @@ if %__cargo_is_lib; then \
- CRATE_VERSION=$(%__cargo_inspector --version Cargo.toml) \
- REG_DIR=%{buildroot}%{cargo_registry}/$CRATE_NAME-$CRATE_VERSION \
- %{__mkdir} -p $REG_DIR \
-- %__cargo package -l | xargs cp --parents -p -t $REG_DIR \
-+ %__cargo package -l | xargs %{__cp} --parents -a -t $REG_DIR \
- %if ! %{with check} \
-- %{__install} -p Cargo.toml.orig $REG_DIR/Cargo.toml \
-+ %{__cp} -a Cargo.toml.orig $REG_DIR/Cargo.toml \
- %endif \
- echo '{"files":{},"package":""}' > $REG_DIR/.cargo-checksum.json \
- fi \
---
-2.15.0
-
diff --git a/rust-packaging.spec b/rust-packaging.spec
index bbc94f3..651c352 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -1,17 +1,13 @@
%bcond_without check
Name: rust-packaging
-Version: 4
-Release: 7%{?dist}
+Version: 5
+Release: 1%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
URL: https://pagure.io/fedora-rust/rust2rpm
Source0: https://releases.pagure.org/fedora-rust/rust2rpm/rust2rpm-%{version}.tar.xz
-# Commits since last release
-Patch0001: 0001-inspector-inject-cargo-dependency-in-runtime.patch
-Patch0002: 0002-inspector-inject-rust-packaging-dependency-in-buildt.patch
-Patch0003: 0003-use-cp-instead-of-install.patch
BuildArch: noarch
ExclusiveArch: %{rust_arches} noarch
@@ -89,6 +85,9 @@ py.test-%{python3_version} -v test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Mon Jan 08 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 5-1
+- Update to 5
+
* Sat Nov 04 2017 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 4-7
- Add Obsoletes for rust-rpm-macros
commit 1b0abb676f4af171ba164700431e8362f45e5c69
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat Nov 4 15:48:01 2017 +0100
Add Obsoletes for rust-rpm-macros
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 4ee9c1f..bbc94f3 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -2,7 +2,7 @@
Name: rust-packaging
Version: 4
-Release: 6%{?dist}
+Release: 7%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -20,6 +20,8 @@ ExclusiveArch: %{rust_arches} noarch
Requires: gawk >= 4.1.0
Requires: python3-rust2rpm = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: rust-srpm-macros = %{version}
+# Remove in F29
+Obsoletes: rust-rpm-macros < 2-2
%description
The package provides macros for building projects in Rust
@@ -87,6 +89,9 @@ py.test-%{python3_version} -v test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sat Nov 04 2017 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 4-7
+- Add Obsoletes for rust-rpm-macros
+
* Sat Nov 04 2017 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 4-6
- Use cp instead of install
commit d98b1ace2dd0352476b0409f833b6a1d5073c00f
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat Nov 4 15:35:35 2017 +0100
Use cp instead of install
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0001-inspector-inject-cargo-dependency-in-runtime.patch b/0001-inspector-inject-cargo-dependency-in-runtime.patch
index 35e2831..675f2ca 100644
--- a/0001-inspector-inject-cargo-dependency-in-runtime.patch
+++ b/0001-inspector-inject-cargo-dependency-in-runtime.patch
@@ -1,7 +1,7 @@
From 9e0a872ece6f5aedf76ffd67044f22c7d0cba8aa Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Fri, 20 Oct 2017 18:04:31 +0200
-Subject: [PATCH 1/2] inspector: inject cargo dependency in runtime
+Subject: [PATCH 1/3] inspector: inject cargo dependency in runtime
Fixes: https://pagure.io/fedora-rust/rust2rpm/issue/42
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
@@ -37,5 +37,5 @@ index d08f1aa..6ccdbc2 100644
if __name__ == "__main__":
main()
--
-2.14.2
+2.15.0
diff --git a/0002-inspector-inject-rust-packaging-dependency-in-buildt.patch b/0002-inspector-inject-rust-packaging-dependency-in-buildt.patch
index 44777cf..bfa9764 100644
--- a/0002-inspector-inject-rust-packaging-dependency-in-buildt.patch
+++ b/0002-inspector-inject-rust-packaging-dependency-in-buildt.patch
@@ -1,7 +1,7 @@
From 45a5caf30060c182fb0ae03a1a7e4e707599aaa3 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat, 21 Oct 2017 09:45:30 +0200
-Subject: [PATCH 2/2] inspector: inject rust-packaging dependency in buildtime
+Subject: [PATCH 2/3] inspector: inject rust-packaging dependency in buildtime
For consistency with previous commit.
@@ -24,5 +24,5 @@ index 6ccdbc2..2d488b2 100644
if __name__ == "__main__":
main()
--
-2.14.2
+2.15.0
diff --git a/0003-use-cp-instead-of-install.patch b/0003-use-cp-instead-of-install.patch
new file mode 100644
index 0000000..7c7b726
--- /dev/null
+++ b/0003-use-cp-instead-of-install.patch
@@ -0,0 +1,31 @@
+From 59809d4940822edaa361507ecea93b84e3c43ec0 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Sat, 4 Nov 2017 15:32:39 +0100
+Subject: [PATCH 3/3] use cp instead of install
+
+We want to preserve original modes and so on.
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ data/macros.cargo | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/data/macros.cargo b/data/macros.cargo
+index 09bbcea..e52f87c 100644
+--- a/data/macros.cargo
++++ b/data/macros.cargo
+@@ -45,9 +45,9 @@ if %__cargo_is_lib; then \
+ CRATE_VERSION=$(%__cargo_inspector --version Cargo.toml) \
+ REG_DIR=%{buildroot}%{cargo_registry}/$CRATE_NAME-$CRATE_VERSION \
+ %{__mkdir} -p $REG_DIR \
+- %__cargo package -l | xargs cp --parents -p -t $REG_DIR \
++ %__cargo package -l | xargs %{__cp} --parents -a -t $REG_DIR \
+ %if ! %{with check} \
+- %{__install} -p Cargo.toml.orig $REG_DIR/Cargo.toml \
++ %{__cp} -a Cargo.toml.orig $REG_DIR/Cargo.toml \
+ %endif \
+ echo '{"files":{},"package":""}' > $REG_DIR/.cargo-checksum.json \
+ fi \
+--
+2.15.0
+
diff --git a/rust-packaging.spec b/rust-packaging.spec
index edae99b..4ee9c1f 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -2,15 +2,16 @@
Name: rust-packaging
Version: 4
-Release: 5%{?dist}
+Release: 6%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
URL: https://pagure.io/fedora-rust/rust2rpm
Source0: https://releases.pagure.org/fedora-rust/rust2rpm/rust2rpm-%{version}.tar.xz
-# https://pagure.io/fedora-rust/rust2rpm/pull-request/43
+# Commits since last release
Patch0001: 0001-inspector-inject-cargo-dependency-in-runtime.patch
Patch0002: 0002-inspector-inject-rust-packaging-dependency-in-buildt.patch
+Patch0003: 0003-use-cp-instead-of-install.patch
BuildArch: noarch
ExclusiveArch: %{rust_arches} noarch
@@ -86,6 +87,9 @@ py.test-%{python3_version} -v test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sat Nov 04 2017 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 4-6
+- Use cp instead of install
+
* Sat Oct 21 2017 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 4-5
- Generate runtime dependencyon cargo for devel subpackages
commit 6b81b17f09c4168a13a81f0c305ddd13117ef61d
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat Oct 21 09:58:43 2017 +0200
Generate runtime dependencyon cargo for devel subpackages
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/0001-inspector-inject-cargo-dependency-in-runtime.patch b/0001-inspector-inject-cargo-dependency-in-runtime.patch
new file mode 100644
index 0000000..35e2831
--- /dev/null
+++ b/0001-inspector-inject-cargo-dependency-in-runtime.patch
@@ -0,0 +1,41 @@
+From 9e0a872ece6f5aedf76ffd67044f22c7d0cba8aa Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Fri, 20 Oct 2017 18:04:31 +0200
+Subject: [PATCH 1/2] inspector: inject cargo dependency in runtime
+
+Fixes: https://pagure.io/fedora-rust/rust2rpm/issue/42
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ rust2rpm/__main__.py | 1 +
+ rust2rpm/inspector.py | 3 +++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py
+index 0121a33..bb92fa3 100644
+--- a/rust2rpm/__main__.py
++++ b/rust2rpm/__main__.py
+@@ -91,6 +91,7 @@ Provides: {{ prv }}
+ {% endfor %}
+ {% endif %}
+ {% if include_requires %}
++Requires: cargo
+ {% if md.requires|length > 0 %}
+ # [dependencies]
+ {% for req in md.requires|sort(attribute="name") %}
+diff --git a/rust2rpm/inspector.py b/rust2rpm/inspector.py
+index d08f1aa..6ccdbc2 100644
+--- a/rust2rpm/inspector.py
++++ b/rust2rpm/inspector.py
+@@ -38,6 +38,9 @@ def main():
+ print_deps(list(itertools.chain(md.requires, md.build_requires)))
+ if args.test_requires:
+ print_deps(md.test_requires)
++ if args.requires:
++ # Someone should own /usr/share/cargo/registry
++ print("cargo")
+
+ if __name__ == "__main__":
+ main()
+--
+2.14.2
+
diff --git a/0002-inspector-inject-rust-packaging-dependency-in-buildt.patch b/0002-inspector-inject-rust-packaging-dependency-in-buildt.patch
new file mode 100644
index 0000000..44777cf
--- /dev/null
+++ b/0002-inspector-inject-rust-packaging-dependency-in-buildt.patch
@@ -0,0 +1,28 @@
+From 45a5caf30060c182fb0ae03a1a7e4e707599aaa3 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Sat, 21 Oct 2017 09:45:30 +0200
+Subject: [PATCH 2/2] inspector: inject rust-packaging dependency in buildtime
+
+For consistency with previous commit.
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ rust2rpm/inspector.py | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/rust2rpm/inspector.py b/rust2rpm/inspector.py
+index 6ccdbc2..2d488b2 100644
+--- a/rust2rpm/inspector.py
++++ b/rust2rpm/inspector.py
+@@ -41,6 +41,8 @@ def main():
+ if args.requires:
+ # Someone should own /usr/share/cargo/registry
+ print("cargo")
++ if args.build_requires:
++ print("rust-packaging")
+
+ if __name__ == "__main__":
+ main()
+--
+2.14.2
+
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 5de07c4..edae99b 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -2,12 +2,15 @@
Name: rust-packaging
Version: 4
-Release: 3%{?dist}
+Release: 5%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
URL: https://pagure.io/fedora-rust/rust2rpm
Source0: https://releases.pagure.org/fedora-rust/rust2rpm/rust2rpm-%{version}.tar.xz
+# https://pagure.io/fedora-rust/rust2rpm/pull-request/43
+Patch0001: 0001-inspector-inject-cargo-dependency-in-runtime.patch
+Patch0002: 0002-inspector-inject-rust-packaging-dependency-in-buildt.patch
BuildArch: noarch
ExclusiveArch: %{rust_arches} noarch
@@ -83,6 +86,9 @@ py.test-%{python3_version} -v test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Sat Oct 21 2017 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 4-5
+- Generate runtime dependencyon cargo for devel subpackages
+
* Thu Jul 27 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
commit 46f705671d983393718d94f489070362fe07317a
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sat Oct 21 09:57:46 2017 +0200
adopt to new RPM 4.14 behavior for returning proper exit status
Since RPM 4.14, it started to return exit status of last executed
statement which on rawhide returns false so right condition doesn't
run.
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/rust-packaging.spec b/rust-packaging.spec
index fe71057..5de07c4 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -55,7 +55,7 @@ lang=C.UTF-8
lang=en_US.UTF-8
%endif
%endif
-[ -n "$lang" ] && sed -r -i -e "s|(%\{_bindir\}/cargo-inspector)|env LANG=$lang \1|" data/cargo.attr data/macros.cargo
+[ -z "$lang" ] || sed -r -i -e "s|(%\{_bindir\}/cargo-inspector)|env LANG=$lang \1|" data/cargo.attr data/macros.cargo
%build
%py3_build
commit 85772b9e87a16911d2365af1dd20ce50100e2587
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Thu Jul 27 18:01:59 2017 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
diff --git a/rust-packaging.spec b/rust-packaging.spec
index 91e4eb9..fe71057 100644
--- a/rust-packaging.spec
+++ b/rust-packaging.spec
@@ -2,7 +2,7 @@
Name: rust-packaging
Version: 4
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: RPM macros for building Rust packages on various architectures
License: MIT
@@ -83,6 +83,9 @@ py.test-%{python3_version} -v test.py
%{python3_sitelib}/rust2rpm/
%changelog
+* Thu Jul 27 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 4-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
* Sat Jul 08 2017 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 4-2
- Include license
commit 4e5904b9ac6f208d08f51fd46059878856a03db4
Author: Igor Gnatenko <ignatenko(a)redhat.com>
Date: Sun Jul 9 09:22:14 2017 +0200
initial import
Signed-off-by: Igor Gnatenko <ignatenko(a)redhat.com>
diff --git a/.gitignore b/.gitignore
index e69de29..aaa8cf4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/rust2rpm-4.tar.xz
diff --git a/rust-packaging.spec b/rust-packaging.spec
new file mode 100644
index 0000000..91e4eb9
--- /dev/null
+++ b/rust-packaging.spec
@@ -0,0 +1,105 @@
+%bcond_without check
+
+Name: rust-packaging
+Version: 4
+Release: 2%{?dist}
+Summary: RPM macros for building Rust packages on various architectures
+
+License: MIT
+URL: https://pagure.io/fedora-rust/rust2rpm
+Source0: https://releases.pagure.org/fedora-rust/rust2rpm/rust2rpm-%{version}.tar.xz
+
+BuildArch: noarch
+ExclusiveArch: %{rust_arches} noarch
+
+# gawk is needed for stripping dev-deps in macro, 4.1.0 is needed for inplace feature
+Requires: gawk >= 4.1.0
+Requires: python3-rust2rpm = %{?epoch:%{epoch}:}%{version}-%{release}
+Requires: rust-srpm-macros = %{version}
+
+%description
+The package provides macros for building projects in Rust
+on various architectures.
+
+%package -n python3-rust2rpm
+Summary: Convert Rust packages to RPM
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+%if %{with check}
+BuildRequires: python3-pytest
+BuildRequires: cargo
+BuildRequires: python3-semantic_version
+%endif
+Requires: cargo
+Requires: python3-semantic_version
+Requires: python3-jinja2
+Requires: python3-requests
+Requires: python3-tqdm
+%if 0%{?mageia}
+Requires: locales-en
+%endif
+Obsoletes: rust2rpm < 1-8
+Provides: rust2rpm = %{version}-%{release}
+%{?python_provide:%python_provide python3-rust2rpm}
+
+%description -n python3-rust2rpm
+%{summary}.
+
+%prep
+%autosetup -n rust2rpm-%{version} -p1
+lang=
+%if (0%{?fedora} && 0%{?fedora} <= 25) || (0%{?rhel} && 0%{?rhel} <= 7)
+lang=C.UTF-8
+%else
+%if 0%{?mageia}
+lang=en_US.UTF-8
+%endif
+%endif
+[ -n "$lang" ] && sed -r -i -e "s|(%\{_bindir\}/cargo-inspector)|env LANG=$lang \1|" data/cargo.attr data/macros.cargo
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -D -p -m 0644 -t %{buildroot}%{_rpmconfigdir}/macros.d data/macros.rust data/macros.cargo
+install -D -p -m 0644 -t %{buildroot}%{_rpmconfigdir}/fileattrs data/cargo.attr
+
+%if %{with check}
+%check
+py.test-%{python3_version} -v test.py
+%endif
+
+%files
+%{_rpmconfigdir}/macros.d/macros.rust
+%{_rpmconfigdir}/macros.d/macros.cargo
+%{_rpmconfigdir}/fileattrs/cargo.attr
+
+%files -n python3-rust2rpm
+%license LICENSE
+%{_bindir}/rust2rpm
+%{_bindir}/cargo-inspector
+%{python3_sitelib}/rust2rpm-*.egg-info/
+%{python3_sitelib}/rust2rpm/
+
+%changelog
+* Sat Jul 08 2017 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 4-2
+- Include license
+
+* Sat Jul 08 2017 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 4-1
+- Update to 4
+
+* Fri Jun 23 2017 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3-5
+- Explicitly set rustdoc path
+
+* Wed Jun 21 2017 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3-4
+- Mageia doesn't have C.UTF-8 lang
+
+* Wed Jun 21 2017 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3-3
+- Switch cargo_registry to /usr/share/cargo/registry
+
+* Wed Jun 14 2017 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3-2
+- Set C.UTF-8 for cargo inspector where python doesn't do locale coercing
+
+* Tue Jun 13 2017 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3-1
+- Initial package
diff --git a/sources b/sources
index e69de29..a81110b 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (rust2rpm-4.tar.xz) = d8527c72f34b31086d3c6dbfae7fd25709525e5aa941d9de47efaefb07a04782d8f7c561b258145df1413fbfee5cd76e24d7d3787107aa36e2d9d1a1e6577637
4 years, 6 months
Architecture specific change in rpms/nbdkit.git
by githook-noreply@fedoraproject.org
The package rpms/nbdkit.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/nbdkit.git/commit/?id=656a67d0b6a....
Change:
-%ifnarch %{ix86} x86_64
Thanks.
Full change:
============
commit 656a67d0b6a43b87484712b0e5f2ab4a8cbcca5f
Author: Richard W.M. Jones <rjones(a)redhat.com>
Date: Thu Oct 24 14:30:44 2019 +0100
New upstream version 1.15.6.
diff --git a/nbdkit.spec b/nbdkit.spec
index 57b452d..3caf080 100644
--- a/nbdkit.spec
+++ b/nbdkit.spec
@@ -27,7 +27,7 @@
%global source_directory 1.15-development
Name: nbdkit
-Version: 1.15.5
+Version: 1.15.6
Release: 1%{?dist}
Summary: NBD server
@@ -41,13 +41,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name
Source2: libguestfs.keyring
%endif
-# Make tests/test-captive.sh and tests/test-socket-activation stable.
-# All upstream after nbdkit 1.15.5.
-Patch1: 0001-tests-test-captive.sh-Increase-sleep-times.patch
-Patch2: 0002-tests-test-captive.sh-Remove-useless-sleep.patch
-Patch3: 0003-tests-test-socket-activation.c-Don-t-check-nbdkit-ex.patch
-Patch4: 0004-tests-test-captive.sh-Better-test-for-pidfile.patch
-
%if 0%{patches_touch_autotools}
BuildRequires: autoconf, automake, libtool
%endif
@@ -602,13 +595,6 @@ make %{?_smp_mflags}
# Delete libtool crap.
find $RPM_BUILD_ROOT -name '*.la' -delete
-# Delete the VDDK plugin on !x86 architectures since it is not
-# applicable there.
-%ifnarch %{ix86} x86_64
-rm $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-vddk-plugin.so
-rm $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-vddk-plugin.1*
-%endif
-
# If cargo happens to be installed on the machine then the
# rust plugin is built. Delete it if this happens.
rm -f $RPM_BUILD_ROOT%{_mandir}/man3/nbdkit-rust-plugin.3*
@@ -916,6 +902,9 @@ make %{?_smp_mflags} check || {
%changelog
+* Fri Oct 24 2019 Richard W.M. Jones <rjones(a)redhat.com> - 1.15.6-1
+- New upstream version 1.15.6.
+
* Sat Oct 19 2019 Richard W.M. Jones <rjones(a)redhat.com> - 1.15.5-1
- New upstream release 1.15.5.
diff --git a/sources b/sources
index be4f378..b4f9d98 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (nbdkit-1.15.5.tar.gz) = ab148286c5c307d2e4c6c6ad5796f752f4f332d478cd71b984b6d7329c9a392e2e27bfc9a70b4927b3610b346c39d77eceb19de5102989340715e3e884d89429
-SHA512 (nbdkit-1.15.5.tar.gz.sig) = 8d4b4a9d95c99ec4c8643566887f1ab077a54b1638a1b759b7922a731b955569b3326db181fb7c1f58e01f97255b3e989cbf4fd28404f46bcbe15499c579a250
+SHA512 (nbdkit-1.15.6.tar.gz) = 680c6ae630ddfe848f7157d3f1c05874d9abef2184a06f4fc69b92a74ea60299a8c1e0006215cfeb32573e21febd9e85e423f1ed1e05669f79fd3fe411c040a0
+SHA512 (nbdkit-1.15.6.tar.gz.sig) = f7a489012dc01963521de619c1f2c035247c845ee514e1d901e547f874da292888635daf296f6b4652c26ef0a07400de56b285e3a00742d1e93515302214bf28
4 years, 6 months
Architecture specific change in rpms/darktable.git
by githook-noreply@fedoraproject.org
The package rpms/darktable.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/darktable.git/commit/?id=43500bca....
Change:
-ExclusiveArch: x86_64
Thanks.
Full change:
============
commit fb2b8cc241f661168275929242275ed148556b61
Author: Germano Massullo <germano.massullo(a)gmail.com>
Date: Thu Oct 24 10:35:54 2019 +0200
moved a comment from cmake flags
diff --git a/darktable.spec b/darktable.spec
index 71b0207..f657934 100644
--- a/darktable.spec
+++ b/darktable.spec
@@ -147,6 +147,7 @@ pushd %{_target_platform}
%endif
..
%else
+# Concerning %%ifarch ppc64le aarch64 read https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91920
%cmake \
-DCMAKE_LIBRARY_PATH:PATH=%{_libdir} \
-DUSE_GEO:BOOLEAN=ON \
@@ -159,7 +160,6 @@ pushd %{_target_platform}
%ifarch ppc64le
-DUSE_OPENCL=OFF \
%endif
-# Read https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91920
%if 0%{?fedora} >= 30
%ifarch ppc64le aarch64
-DUSE_OPENMP=OFF \
commit 43500bca8a3eb39709bbcb9bc77f57227542a4f5
Author: Germano Massullo <germano.massullo(a)gmail.com>
Date: Wed Oct 23 10:38:33 2019 +0200
Enabled again ppc64le and aarch64 architectures, disabling OpenMP
diff --git a/darktable.spec b/darktable.spec
index 48f63b0..71b0207 100644
--- a/darktable.spec
+++ b/darktable.spec
@@ -1,6 +1,6 @@
Name: darktable
Version: 2.6.3
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Utility to organize and develop raw images
@@ -79,12 +79,7 @@ Provides: bundled(lua)
%endif
# uses xmmintrin.h
-# Done it becuase of https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91920
-%if 0%{?fedora} >= 30
-ExclusiveArch: x86_64
-%else
ExclusiveArch: x86_64 aarch64 ppc64le
-%endif
%description
Darktable is a virtual light-table and darkroom for photographers:
@@ -164,6 +159,12 @@ pushd %{_target_platform}
%ifarch ppc64le
-DUSE_OPENCL=OFF \
%endif
+# Read https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91920
+ %if 0%{?fedora} >= 30
+ %ifarch ppc64le aarch64
+ -DUSE_OPENMP=OFF \
+ %endif
+ %endif
..
%endif
@@ -211,6 +212,9 @@ appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/appdata/darktable
%{_libexecdir}/darktable/tools/subr.sh
%changelog
+* Wed Oct 23 2019 Germano Massullo <germano.massullo(a)gmail.com> - 2.6.3-2
+- Enabled again ppc64le and aarch64 architectures, disabling OpenMP. See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91920
+
* Sun Oct 20 2019 Germano Massullo <germano.massullo(a)gmail.com> - 2.6.3-1
- 2.6.3 release
- Enabled again OpenMP
4 years, 6 months
Architecture specific change in rpms/darktable.git
by githook-noreply@fedoraproject.org
The package rpms/darktable.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/darktable.git/commit/?id=43500bca....
Change:
-ExclusiveArch: x86_64
Thanks.
Full change:
============
commit fb2b8cc241f661168275929242275ed148556b61
Author: Germano Massullo <germano.massullo(a)gmail.com>
Date: Thu Oct 24 10:35:54 2019 +0200
moved a comment from cmake flags
diff --git a/darktable.spec b/darktable.spec
index 71b0207..f657934 100644
--- a/darktable.spec
+++ b/darktable.spec
@@ -147,6 +147,7 @@ pushd %{_target_platform}
%endif
..
%else
+# Concerning %%ifarch ppc64le aarch64 read https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91920
%cmake \
-DCMAKE_LIBRARY_PATH:PATH=%{_libdir} \
-DUSE_GEO:BOOLEAN=ON \
@@ -159,7 +160,6 @@ pushd %{_target_platform}
%ifarch ppc64le
-DUSE_OPENCL=OFF \
%endif
-# Read https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91920
%if 0%{?fedora} >= 30
%ifarch ppc64le aarch64
-DUSE_OPENMP=OFF \
commit 43500bca8a3eb39709bbcb9bc77f57227542a4f5
Author: Germano Massullo <germano.massullo(a)gmail.com>
Date: Wed Oct 23 10:38:33 2019 +0200
Enabled again ppc64le and aarch64 architectures, disabling OpenMP
diff --git a/darktable.spec b/darktable.spec
index 48f63b0..71b0207 100644
--- a/darktable.spec
+++ b/darktable.spec
@@ -1,6 +1,6 @@
Name: darktable
Version: 2.6.3
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Utility to organize and develop raw images
@@ -79,12 +79,7 @@ Provides: bundled(lua)
%endif
# uses xmmintrin.h
-# Done it becuase of https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91920
-%if 0%{?fedora} >= 30
-ExclusiveArch: x86_64
-%else
ExclusiveArch: x86_64 aarch64 ppc64le
-%endif
%description
Darktable is a virtual light-table and darkroom for photographers:
@@ -164,6 +159,12 @@ pushd %{_target_platform}
%ifarch ppc64le
-DUSE_OPENCL=OFF \
%endif
+# Read https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91920
+ %if 0%{?fedora} >= 30
+ %ifarch ppc64le aarch64
+ -DUSE_OPENMP=OFF \
+ %endif
+ %endif
..
%endif
@@ -211,6 +212,9 @@ appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/appdata/darktable
%{_libexecdir}/darktable/tools/subr.sh
%changelog
+* Wed Oct 23 2019 Germano Massullo <germano.massullo(a)gmail.com> - 2.6.3-2
+- Enabled again ppc64le and aarch64 architectures, disabling OpenMP. See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91920
+
* Sun Oct 20 2019 Germano Massullo <germano.massullo(a)gmail.com> - 2.6.3-1
- 2.6.3 release
- Enabled again OpenMP
4 years, 6 months