[Report] Packages Restricting Arches
by root
New package excluding arches (8)
============================
- rust-cranelift-codegen-shared
ExclusiveArch: %{rust_arches}
- rust-cranelift-entity
ExclusiveArch: %{rust_arches}
- rust-cursive
ExclusiveArch: %{rust_arches}
- rust-cursive_core
ExclusiveArch: %{rust_arches}
- rust-enum-map
ExclusiveArch: %{rust_arches}
- rust-enum-map-derive
ExclusiveArch: %{rust_arches}
- rust-wasmer_enumset
ExclusiveArch: %{rust_arches}
- rust-wasmer_enumset_derive
ExclusiveArch: %{rust_arches}
List of packages currently excluding arches (2026)
===========================================
- 0ad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- 90-Second-Portraits
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- GoldenCheetah
ExclusiveArch: %{qt5_qtwebengine_arches}
- GtkAda
ExclusiveArch: %{GPRbuild_arches}
- GtkAda3
ExclusiveArch: %{GPRbuild_arches}
- OpenImageIO
ExclusiveArch: x86_64 ppc64le
- OpenMolcas
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- PragmARC
ExclusiveArch: %{GPRbuild_arches}
- R-V8
ExclusiveArch: %{nodejs_arches}
- RdRand
ExclusiveArch: %{ix86} x86_64
- RediSearch
ExclusiveArch: x86_64
- SLOF
ExclusiveArch: ppc64le
- YafaRay
ExclusiveArch: %{ix86} x86_64
- aboot
ExclusiveArch: alpha
- accel-config
ExclusiveArch: %{ix86} x86_64
- acpid
ExclusiveArch: ia64 x86_64 %{ix86} %{arm} aarch64
- ahven
ExclusiveArch: %{GPRbuild_arches}
- algobox
ExclusiveArch: %{qt5_qtwebengine_arches}
- alleyoop
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x %{arm} aarch64
- american-fuzzy-lop
ExclusiveArch: %{ix86} x86_64
- anet
ExclusiveArch: %{GPRbuild_arches}
- anki
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- apmd
ExclusiveArch: %{ix86}
- appstream-generator
ExclusiveArch: %{ldc_arches}
- arduino
ExclusiveArch: %{go_arches}
- arm-trusted-firmware
ExclusiveArch: aarch64
- aunit
ExclusiveArch: %GPRbuild_arches
- avgtime
ExclusiveArch: %{ldc_arches}
- aws
ExclusiveArch: %GPRbuild_arches
- bcal
ExclusiveArch: x86_64 aarch64 ia64 ppc64 ppc64le s390x
- bcc
ExclusiveArch: x86_64 %{power64} aarch64 s390x armv7hl
- bcm283x-firmware
ExclusiveArch: %{arm} aarch64
- berusky2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{mips}
- biosdevname
ExclusiveArch: %{ix86} x86_64
- blender
ExclusiveArch: x86_64 aarch64 ppc64le
- bless
ExclusiveArch: %mono_arches
- bpftrace
ExclusiveArch: x86_64 %{power64} aarch64 s390x
- calamares
ExclusiveArch: %{ix86} x86_64
- calibre
ExclusiveArch: %{qt5_qtwebengine_arches}
- ccdciel
ExclusiveArch: %{fpc_arches}
- cdcollect
ExclusiveArch: %{mono_arches}
- ceph
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- chromium
ExclusiveArch: x86_64 i686
ExclusiveArch: x86_64 i686 aarch64
- cjdns
ExclusiveArch: %{nodejs_arches}
- clevis-pin-tpm2
ExclusiveArch: %{rust_arches}
- cmospwd
ExclusiveArch: %{ix86} x86_64
- cmrt
ExclusiveArch: %{ix86} x86_64 ia64
- coffee-script
ExclusiveArch: %{nodejs_arches} noarch
- colorful
ExclusiveArch: %{fpc_arches}
- cpu-x
ExclusiveArch: i686 x86_64
- cpufetch
ExclusiveArch: %{arm} aarch64 x86_64
- cpuid
ExclusiveArch: %{ix86} x86_64
- cqrlog
ExclusiveArch: %{fpc_arches}
- crash
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- crash-gcore-command
ExclusiveArch: aarch64 ppc64le x86_64
- crash-trace-command
ExclusiveArch: aarch64 ppc64le s390x x86_64
- 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
ExclusiveArch: x86_64 ppc64le
- dbus-parsec
ExclusiveArch: %{rust_arches}
- dbus-sharp
ExclusiveArch: %mono_arches
- dbus-sharp-glib
ExclusiveArch: %mono_arches
- dbxtool
ExclusiveArch: i386 x86_64 aarch64
- deepin-daemon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- deepin-desktop-schemas
ExclusiveArch: %{go_arches}
- dlm
ExclusiveArch: i686 x86_64
- dmidecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- dmtcp
ExclusiveArch: x86_64 aarch64
- docker-distribution
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- dolphin-emu
ExclusiveArch: x86_64 aarch64 ppc64le
- dotnet-build-reference-packages
ExclusiveArch: aarch64 x86_64
ExclusiveArch: x86_64
- dotnet3.1
ExclusiveArch: aarch64 x86_64
ExclusiveArch: x86_64
- dotnet5.0
ExclusiveArch: aarch64 x86_64
ExclusiveArch: x86_64
- dotnet5.0-build-reference-packages
ExclusiveArch: aarch64 x86_64
ExclusiveArch: x86_64
- doublecmd
ExclusiveArch: %{ix86} x86_64
- dpdk
ExclusiveArch: x86_64 i686 aarch64 ppc64le
- dssi-vst
ExclusiveArch: %{ix86} x86_64
- dyninst
ExclusiveArch: %{ix86} x86_64 ppc64le aarch64
- e3
ExclusiveArch: %{ix86} x86_64
- edk2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: x86_64 aarch64
- efibootmgr
ExclusiveArch: %{efi}
- efifs
ExclusiveArch: %{efi}
- efitools
ExclusiveArch: %{efi}
- efivar
ExclusiveArch: %{efi}
- elk
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- emacs-slime
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- enki
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- envytools
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- eric
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- eth-tools
ExclusiveArch: x86_64
- extlinux-bootloader
ExclusiveArch: %{arm} aarch64
- fcitx-libpinyin
ExclusiveArch: %{qt5_qtwebengine_arches}
- fedora-dockerfiles
ExclusiveArch: %{go_arches}
- fes
ExclusiveArch: %{ix86} x86_64
- flannel
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- florist
ExclusiveArch: %{GPRbuild_arches}
- fpc
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64 ppc64le
- frescobaldi
ExclusiveArch: %{qt5_qtwebengine_arches}
- frysk
ExclusiveArch: %{ix86} x86_64 ppc64
- fwts
ExclusiveArch: x86_64 %{arm} aarch64 s390x riscv64 %{power64}
- fwupd-efi
ExclusiveArch: x86_64 aarch64
- fx
ExclusiveArch: %{nodejs_arches} noarch
- ga
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- gbrainy
ExclusiveArch: %mono_arches
- gdata-sharp
ExclusiveArch: %mono_arches
- gdb-exploitable
ExclusiveArch: x86_64 i386
ExclusiveArch: x86_64 noarch
- gearhead1
ExclusiveArch: %{fpc_arches}
- gela-asis
ExclusiveArch: %GPRbuild_arches
- ghdl
ExclusiveArch: %{GNAT_arches}
- ghostwriter
ExclusiveArch: %{qt5_qtwebengine_arches}
- gio-sharp
ExclusiveArch: %mono_arches
- gir-to-d
ExclusiveArch: %{ldc_arches}
- git-octopus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- gitqlient
ExclusiveArch: %{qt5_qtwebengine_arches}
- giver
ExclusiveArch: %{mono_arches}
- gkeyfile-sharp
ExclusiveArch: %mono_arches
- glibc32
ExclusiveArch: x86_64
- glibd
ExclusiveArch: %{ldc_arches}
- gmqcc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- gnatcoll
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-bindings
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-db
ExclusiveArch: %{GPRbuild_arches}
- gnome-boxes
ExclusiveArch: x86_64
- gnome-desktop-sharp
ExclusiveArch: %mono_arches
- gnome-do
ExclusiveArch: %mono_arches
- gnome-guitar
ExclusiveArch: %{mono_arches}
- gnome-keyring-sharp
ExclusiveArch: %mono_arches
- gnome-rdp
ExclusiveArch: %{mono_arches}
- gnome-sharp
ExclusiveArch: %mono_arches
- gnome-subtitles
ExclusiveArch: %mono_arches
- gnu-efi
ExclusiveArch: %{efi}
- go-bindata
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- go-compilers
ExclusiveArch: %{go_arches}
- go-rpm-macros
ExclusiveArch: %{golang_arches} %{gccgo_arches}
- godep
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang
ExclusiveArch: %{golang_arches}
- gomtree
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gotun
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: x86_64
- goverlay
ExclusiveArch: %{fpc_arches}
- gprbuild
ExclusiveArch: %{GPRbuild_arches} %{bootstrap_arch}
- gprolog
ExclusiveArch: x86_64 %{ix86} ppc alpha
- grafana
ExclusiveArch: %{grafana_arches}
- grafana-pcp
ExclusiveArch: %{grafanapcp_arches}
- gtk-sharp-beans
ExclusiveArch: %mono_arches
- gtk-sharp2
ExclusiveArch: %mono_arches
- gtk-sharp3
ExclusiveArch: %{mono_arches}
- gtkd
ExclusiveArch: %{ldc_arches}
- gudev-sharp
ExclusiveArch: %mono_arches
- guestfs-tools
ExclusiveArch: %{kernel_arches}
- hedgewars
ExclusiveArch: %{fpc_arches}
- hsakmt
ExclusiveArch: x86_64 aarch64
- hyena
ExclusiveArch: %{mono_arches}
- hyperscan
ExclusiveArch: x86_64
- hyperv-daemons
ExclusiveArch: i686 x86_64
- i3status-rs
ExclusiveArch: %{rust_arches}
- icaro
ExclusiveArch: %{ix86} x86_64 noarch
- ignition
ExclusiveArch: %{go_arches}
- imvirt
ExclusiveArch: %{ix86} x86_64 ia64
- indistarter
ExclusiveArch: %{fpc_arches}
- infinipath-psm
ExclusiveArch: x86_64
- intel-cmt-cat
ExclusiveArch: x86_64 i686 i586
ExclusiveArch: x86_64 i686 i586
- intel-gmmlib
ExclusiveArch: x86_64 i686
- intel-ipp-crypto-mb
ExclusiveArch: x86_64
ExclusiveArch: x86_64
- intel-ipsec-mb
ExclusiveArch: x86_64
ExclusiveArch: x86_64
- intel-mediasdk
ExclusiveArch: x86_64
- intel-undervolt
ExclusiveArch: i386 x86_64
- ioport
ExclusiveArch: %{ix86} x86_64
- ipmctl
ExclusiveArch: x86_64
- ipw2100-firmware
ExclusiveArch: noarch i386 x86_64
- ipw2200-firmware
ExclusiveArch: noarch i386 x86_64
- ispc
ExclusiveArch: x86_64 aarch64
- iucode-tool
ExclusiveArch: %{ix86} x86_64
- iyfct
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- java-1.8.0-openjdk-aarch32
ExclusiveArch: %{arm}
- keepass
ExclusiveArch: %{mono_arches}
- kernel
ExclusiveArch: x86_64 s390x %{arm} aarch64 ppc64le
ExclusiveArch: noarch i386 i686 x86_64 s390x %{arm} aarch64 ppc64le
- keyring-ima-signer
ExclusiveArch: %{rust_arches}
- kf5-akonadi-search
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-audiocd-kio
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kalarmcal
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kblog
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kcalendarcore
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kcalendarutils
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kitinerary
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kmailtransport
ExclusiveArch: x86_64 %{arm}
- kf5-ktnef
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-libkdcraw
ExclusiveArch: x86_64 ppc64le %{arm}
- kicad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- kiwix-desktop
ExclusiveArch: %{qt5_qtwebengine_arches}
- knot-resolver
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- knotes
ExclusiveArch: x86_64 %{arm}
- kompose
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 s390x
- kubernetes
ExclusiveArch: x86_64 aarch64 ppc64le s390x %{arm}
- lazarus
ExclusiveArch: %{fpc_arches}
- lazpaint
ExclusiveArch: %{fpc_arches}
- ldc
ExclusiveArch: %{ldc_arches}
- libbsr
ExclusiveArch: %{power64}
- libclc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
- libcxl
ExclusiveArch: %{power64}
- libdfp
ExclusiveArch: ppc ppc64 ppc64le s390 s390x x86_64
- libdispatch
ExclusiveArch: x86_64 aarch64
- libguestfs
ExclusiveArch: %{kernel_arches}
- libica
ExclusiveArch: s390 s390x
- libipt
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- libnxz
ExclusiveArch: ppc64le
- libocxl
ExclusiveArch: ppc64le
- libpmemobj-cpp
ExclusiveArch: x86_64
- libpsm2
ExclusiveArch: x86_64
- libquentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- libretro-desmume2015
ExclusiveArch: i686 x86_64
- librtas
ExclusiveArch: %{power64}
- libservicelog
ExclusiveArch: ppc %{power64}
- libsmbios
ExclusiveArch: x86_64 %{ix86}
- libunwind
ExclusiveArch: %{arm} aarch64 hppa ia64 mips ppc %{power64} s390x %{ix86} x86_64
- libva-intel-hybrid-driver
ExclusiveArch: %{ix86} x86_64 ia64
- libvma
ExclusiveArch: x86_64 ppc64le ppc64 aarch64
- libvmi
ExclusiveArch: x86_64
- libvpd
ExclusiveArch: %{power64}
- libxsmm
ExclusiveArch: x86_64
- libzfcphbaapi
ExclusiveArch: s390 s390x
- lightdm
ExclusiveArch: x86_64 ppc64le
- log4net
ExclusiveArch: %mono_arches
- lrmi
ExclusiveArch: %{ix86}
- lsvpd
ExclusiveArch: %{power64}
- luajit
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 s390x ppc64le
- luxcorerender
ExclusiveArch: x86_64
- mactel-boot
ExclusiveArch: x86_64
- manifest-tool
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- mantle
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- matreshka
ExclusiveArch: %GPRbuild_arches
- maxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- mbpfan
ExclusiveArch: x86_64
- mcelog
ExclusiveArch: i686 x86_64
- mediaconch
ExclusiveArch: %{qt5_qtwebengine_arches}
- mellowplayer
ExclusiveArch: %{qt5_qtwebengine_arches}
- memkind
ExclusiveArch: x86_64 ppc64 ppc64le s390x aarch64
- memtest86+
ExclusiveArch: %{ix86} x86_64
- mesos
ExclusiveArch: x86_64
- microcode_ctl
ExclusiveArch: %{ix86} x86_64
- micropython
ExclusiveArch: %{arm} %{ix86} x86_64
- mine_detector
ExclusiveArch: %{GPRbuild_arches}
- minetest
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- mingw-libidn2
ExclusiveArch: %{ix86} x86_64 %{arm}
- mingw-wine-gecko
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- mirrorlist-server
ExclusiveArch: %{rust_arches}
- mkbootdisk
ExclusiveArch: %{ix86} sparc sparc64 x86_64
- mod_mono
ExclusiveArch: %mono_arches
- module-build-service
ExclusiveArch: %{ix86} x86_64 noarch
- mokutil
ExclusiveArch: %{ix86} x86_64 aarch64 %{arm}
- mono
ExclusiveArch: %mono_arches
- mono-addins
ExclusiveArch: %mono_arches
- mono-basic
ExclusiveArch: %{mono_arches}
- mono-bouncycastle
ExclusiveArch: %mono_arches
- mono-cecil
ExclusiveArch: %mono_arches
- mono-cecil-flowanalysis
ExclusiveArch: %mono_arches
- mono-reflection
ExclusiveArch: %mono_arches
- mono-tools
ExclusiveArch: %mono_arches
- mono-zeroconf
ExclusiveArch: %mono_arches
- monobristol
ExclusiveArch: %{mono_arches}
- monodevelop
ExclusiveArch: %mono_arches
- monodevelop-debugger-gdb
ExclusiveArch: %{mono_arches}
- monosim
ExclusiveArch: %mono_arches
- mrrescue
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- msr-tools
ExclusiveArch: %{ix86} x86_64
- mustache-d
ExclusiveArch: %{ldc_arches}
- mysql-connector-net
ExclusiveArch: %{mono_arches}
- nant
ExclusiveArch: %mono_arches
- nativejit
ExclusiveArch: x86_64
- nbc
ExclusiveArch: %{fpc_arches}
- nbdkit
ExclusiveArch: x86_64
- ndesk-dbus
ExclusiveArch: %{mono_arches}
- ndesk-dbus-glib
ExclusiveArch: %{mono_arches}
- newsflash
ExclusiveArch: %{rust_arches}
- newtonsoft-json
ExclusiveArch: %{mono_arches}
- nispor
ExclusiveArch: %{rust_arches}
- nodejs
ExclusiveArch: %{nodejs_arches}
- nodejs-acorn-object-spread
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-backbone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buble
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generic-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-linefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nodemon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-packaging
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-replace-require-self
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supervisor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-svgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-underscore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- notify-sharp
ExclusiveArch: %{mono_arches}
- notify-sharp3
ExclusiveArch: %{mono_arches}
- npm-name-cli
ExclusiveArch: %{nodejs_arches} noarch
- nuget
ExclusiveArch: %{mono_arches}
- numatop
ExclusiveArch: x86_64 ppc64le
- nunit
ExclusiveArch: %{mono_arches}
- nunit2
ExclusiveArch: %{mono_arches}
- nvml
ExclusiveArch: x86_64 ppc64le
- nwchem
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- obs-service-rust2rpm
ExclusiveArch: %{rust_arches} noarch
- oci-kvm-hook
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- oci-seccomp-bpf-hook
ExclusiveArch: x86_64 %%{power64} aarch64 s390x armv7hl
- oci-umount
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- oidn
ExclusiveArch: x86_64
- olpc-kbdshim
ExclusiveArch: %{ix86} %{arm}
- olpc-netutils
ExclusiveArch: %{ix86} %{arm}
- olpc-utils
ExclusiveArch: %{ix86} %{arm}
- onednn
ExclusiveArch: x86_64 aarch64 ppc64le
- onedrive
ExclusiveArch: %{ldc_arches}
- opae
ExclusiveArch: x86_64
- opal-prd
ExclusiveArch: ppc64le
- open-vm-tools
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64
- openblas
ExclusiveArch: %{openblas_arches}
- openjfx
ExclusiveArch: x86_64
- openjfx8
ExclusiveArch: x86_64
- openlibm
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 %{power64}
- openni
ExclusiveArch: %{ix86} x86_64 %{arm}
- openni-primesense
ExclusiveArch: %{ix86} x86_64 %{arm}
- openshadinglanguage
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- openssl-ibmca
ExclusiveArch: s390 s390x
- origin
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- orion
ExclusiveArch: %{qt5_qtwebengine_arches}
- orthorobot
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- paflib
ExclusiveArch: ppc %{power64}
- parsec
ExclusiveArch: %{rust_arches}
- parsec-tool
ExclusiveArch: %{rust_arches}
- pcc
ExclusiveArch: %{ix86} x86_64
- pcmciautils
ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64 %{arm}
- pdbg
ExclusiveArch: ppc64le
- pdfmod
ExclusiveArch: %mono_arches
- perl-Dumbbench
ExclusiveArch: %{ix86} x86_64 noarch
- perl-Parse-DMIDecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- pesign
ExclusiveArch: %{ix86} x86_64 ia64 aarch64 %{arm}
- pesign-test-app
ExclusiveArch: x86_64
- pinta
ExclusiveArch: %mono_arches
- pioneer
ExclusiveArch: %{ix86} x86_64
- playonlinux
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- pmdk-convert
ExclusiveArch: x86_64
- pmemkv
ExclusiveArch: x86_64
- poppler-sharp
ExclusiveArch: %mono_arches
- popub
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- powerpc-utils
ExclusiveArch: ppc %{power64}
- ppc64-diag
ExclusiveArch: ppc %{power64}
- psi-plus
ExclusiveArch: %{qt5_qtwebengine_arches}
- pveclib
ExclusiveArch: ppc %{power64}
- pvs-sbcl
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- pyqtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- python-cryptography
ExclusiveArch: %{rust_arches}
- python-etcd
ExclusiveArch: noarch %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- python-healpy
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-javabridge
ExclusiveArch: i686 x86_64
- python-openoffice
ExclusiveArch: noarch x86_64
- python-pymoc
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-rpi-gpio
ExclusiveArch: %{arm} aarch64
- python-setuptools-rust
ExclusiveArch: %{rust_arches}
- q4wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- qcint
ExclusiveArch: x86_64
- qclib
ExclusiveArch: s390 s390x
- qemu-sanity-check
ExclusiveArch: %{kernel_arches}
- qevercloud
ExclusiveArch: %{qt5_qtwebengine_arches}
- qmapshack
ExclusiveArch: %{qt5_qtwebengine_arches}
- qt4pas
ExclusiveArch: %{fpc_arches}
- qt5-qtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- quantum-espresso
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86}
- quentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- rear
ExclusiveArch: %ix86 x86_64 ppc ppc64 ppc64le ia64
- redhat-lsb
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- renderdoc
ExclusiveArch: x86_64
- reptyr
ExclusiveArch: %{ix86} x86_64 %{arm}
- rescene
ExclusiveArch: %{mono_arches}
- restsharp
ExclusiveArch: %{mono_arches}
- rhythmbox-alternative-toolbar
ExclusiveArch: %{ix86} %{arm} x86_64 ppc64 ppc64le
- rmd
ExclusiveArch: %{ix86} x86_64
- rocm-runtime
ExclusiveArch: x86_64 aarch64
- rocminfo
ExclusiveArch: x86_64 aarch64
- rpm-ostree
ExclusiveArch: %{rust_arches}
- rr
ExclusiveArch: %{ix86} x86_64
- rssguard
ExclusiveArch: %{qt5_qtwebengine_arches}
- rubygem-childprocess
ExclusiveArch: %{ix86} x86_64 noarch
- runc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le %{mips} s390x
- rust
ExclusiveArch: %{rust_arches}
- rust-ab_glyph_rasterizer
ExclusiveArch: %{rust_arches}
- rust-abomonation
ExclusiveArch: %{rust_arches}
- rust-actix
ExclusiveArch: %{rust_arches}
- rust-actix-codec
ExclusiveArch: %{rust_arches}
- rust-actix-connect
ExclusiveArch: %{rust_arches}
- rust-actix-files
ExclusiveArch: %{rust_arches}
- rust-actix-http
ExclusiveArch: %{rust_arches}
- rust-actix-macros
ExclusiveArch: %{rust_arches}
- rust-actix-macros0.1
ExclusiveArch: %{rust_arches}
- rust-actix-router
ExclusiveArch: %{rust_arches}
- rust-actix-rt
ExclusiveArch: %{rust_arches}
- rust-actix-rt1
ExclusiveArch: %{rust_arches}
- rust-actix-server
ExclusiveArch: %{rust_arches}
- rust-actix-server-config
ExclusiveArch: %{rust_arches}
- rust-actix-service
ExclusiveArch: %{rust_arches}
- rust-actix-testing
ExclusiveArch: %{rust_arches}
- rust-actix-threadpool
ExclusiveArch: %{rust_arches}
- rust-actix-tls
ExclusiveArch: %{rust_arches}
- rust-actix-utils
ExclusiveArch: %{rust_arches}
- rust-actix-web
ExclusiveArch: %{rust_arches}
- rust-actix-web-codegen
ExclusiveArch: %{rust_arches}
- rust-actix0.10
ExclusiveArch: %{rust_arches}
- rust-actix_derive
ExclusiveArch: %{rust_arches}
- rust-actix_derive0.5
ExclusiveArch: %{rust_arches}
- rust-addr2line
ExclusiveArch: %{rust_arches}
- rust-adler
ExclusiveArch: %{rust_arches}
- rust-adler32
ExclusiveArch: %{rust_arches}
- rust-aead
ExclusiveArch: %{rust_arches}
- rust-aes
ExclusiveArch: %{rust_arches}
- rust-aes-gcm
ExclusiveArch: %{rust_arches}
- rust-aes-soft
ExclusiveArch: %{rust_arches}
- rust-afterburn
ExclusiveArch: %{rust_arches}
- rust-ahash
ExclusiveArch: %{rust_arches}
- rust-ahash0.4
ExclusiveArch: %{rust_arches}
- rust-aho-corasick
ExclusiveArch: %{rust_arches}
- rust-alacritty
ExclusiveArch: %{rust_arches}
- rust-alacritty_config_derive
ExclusiveArch: %{rust_arches}
- rust-alacritty_terminal
ExclusiveArch: %{rust_arches}
- rust-alga
ExclusiveArch: %{rust_arches}
- rust-alga_derive
ExclusiveArch: %{rust_arches}
- rust-alloc-no-stdlib
ExclusiveArch: %{rust_arches}
- rust-alloc-stdlib
ExclusiveArch: %{rust_arches}
- rust-alphanumeric-sort
ExclusiveArch: %{rust_arches}
- rust-ammonia
ExclusiveArch: %{rust_arches}
- rust-andrew
ExclusiveArch: %{rust_arches}
- rust-ansi_colours
ExclusiveArch: %{rust_arches}
- rust-ansi_term
ExclusiveArch: %{rust_arches}
- rust-ansi_term0.11
ExclusiveArch: %{rust_arches}
- rust-antidote
ExclusiveArch: %{rust_arches}
- rust-anyhow
ExclusiveArch: %{rust_arches}
- rust-anymap
ExclusiveArch: %{rust_arches}
- rust-aom-sys
ExclusiveArch: %{rust_arches}
- rust-app_dirs
ExclusiveArch: %{rust_arches}
- rust-approx
ExclusiveArch: %{rust_arches}
- rust-arbitrary
ExclusiveArch: %{rust_arches}
- rust-arbitrary0.4
ExclusiveArch: %{rust_arches}
- rust-arc-swap
ExclusiveArch: %{rust_arches}
- rust-arg_enum_proc_macro
ExclusiveArch: %{rust_arches}
- rust-argparse
ExclusiveArch: %{rust_arches}
- rust-array-init
ExclusiveArch: %{rust_arches}
- rust-arraydeque
ExclusiveArch: %{rust_arches}
- rust-arrayref
ExclusiveArch: %{rust_arches}
- rust-arrayvec
ExclusiveArch: %{rust_arches}
- rust-article_scraper
ExclusiveArch: %{rust_arches}
- rust-ascii
ExclusiveArch: %{rust_arches}
- rust-ascii-canvas
ExclusiveArch: %{rust_arches}
- rust-askalono
ExclusiveArch: %{rust_arches}
- rust-askalono-cli
ExclusiveArch: %{rust_arches}
- rust-askama
ExclusiveArch: %{rust_arches}
- rust-askama_derive
ExclusiveArch: %{rust_arches}
- rust-askama_escape
ExclusiveArch: %{rust_arches}
- rust-askama_shared
ExclusiveArch: %{rust_arches}
- rust-asn1
ExclusiveArch: %{rust_arches}
- rust-asn1_derive
ExclusiveArch: %{rust_arches}
- rust-assert-json-diff
ExclusiveArch: %{rust_arches}
- rust-assert_approx_eq
ExclusiveArch: %{rust_arches}
- rust-assert_cli
ExclusiveArch: %{rust_arches}
- rust-assert_cmd
ExclusiveArch: %{rust_arches}
- rust-assert_fs
ExclusiveArch: %{rust_arches}
- rust-assert_matches
ExclusiveArch: %{rust_arches}
- rust-assign
ExclusiveArch: %{rust_arches}
- rust-async-attributes
ExclusiveArch: %{rust_arches}
- rust-async-channel
ExclusiveArch: %{rust_arches}
- rust-async-compression
ExclusiveArch: %{rust_arches}
- rust-async-executor
ExclusiveArch: %{rust_arches}
- rust-async-io
ExclusiveArch: %{rust_arches}
- rust-async-task
ExclusiveArch: %{rust_arches}
- rust-async-trait
ExclusiveArch: %{rust_arches}
- rust-asyncgit
ExclusiveArch: %{rust_arches}
- rust-atk
ExclusiveArch: %{rust_arches}
- rust-atk-sys
ExclusiveArch: %{rust_arches}
- rust-atom
ExclusiveArch: %{rust_arches}
- rust-atomic-waker
ExclusiveArch: %{rust_arches}
- rust-atomicwrites
ExclusiveArch: %{rust_arches}
- rust-attohttpc
ExclusiveArch: %{rust_arches}
- rust-atty
ExclusiveArch: %{rust_arches}
- rust-autocfg
ExclusiveArch: %{rust_arches}
- rust-av-metrics
ExclusiveArch: %{rust_arches}
- rust-average
ExclusiveArch: %{rust_arches}
- rust-awc
ExclusiveArch: %{rust_arches}
- rust-backtrace
ExclusiveArch: %{rust_arches}
- rust-backtrace-sys
ExclusiveArch: %{rust_arches}
- rust-base100
ExclusiveArch: %{rust_arches}
- rust-base64
ExclusiveArch: %{rust_arches}
- rust-base64-0.10
ExclusiveArch: %{rust_arches}
- rust-base64-0.11
ExclusiveArch: %{rust_arches}
- rust-base64_0.12
ExclusiveArch: %{rust_arches}
- rust-bat
ExclusiveArch: %{rust_arches}
- rust-battery
ExclusiveArch: %{rust_arches}
- rust-bencher
ExclusiveArch: %{rust_arches}
- rust-better-panic
ExclusiveArch: %{rust_arches}
- rust-bincode
ExclusiveArch: %{rust_arches}
- rust-bincode0.8
ExclusiveArch: %{rust_arches}
- rust-bindgen
ExclusiveArch: %{rust_arches}
- rust-binfarce
ExclusiveArch: %{rust_arches}
- rust-biscuit
ExclusiveArch: %{rust_arches}
- rust-bit-set
ExclusiveArch: %{rust_arches}
- rust-bit-vec
ExclusiveArch: %{rust_arches}
- rust-bitfield
ExclusiveArch: %{rust_arches}
- rust-bitflags
ExclusiveArch: %{rust_arches}
- rust-bitmaps
ExclusiveArch: %{rust_arches}
- rust-bitstream-io
ExclusiveArch: %{rust_arches}
- rust-bitvec
ExclusiveArch: %{rust_arches}
- rust-blake2
ExclusiveArch: %{rust_arches}
- rust-blobby
ExclusiveArch: %{rust_arches}
- rust-blobby0.1
ExclusiveArch: %{rust_arches}
- rust-block-buffer
ExclusiveArch: %{rust_arches}
- rust-block-buffer0.7
ExclusiveArch: %{rust_arches}
- rust-block-modes
ExclusiveArch: %{rust_arches}
- rust-block-padding
ExclusiveArch: %{rust_arches}
- rust-blocking
ExclusiveArch: %{rust_arches}
- rust-blsctl
ExclusiveArch: %{rust_arches}
- rust-bodhi
ExclusiveArch: %{rust_arches}
- rust-bodhi-cli
ExclusiveArch: %{rust_arches}
- rust-bootupd
ExclusiveArch: x86_64 aarch64
- rust-box_drawing
ExclusiveArch: %{rust_arches}
- rust-brev
ExclusiveArch: %{rust_arches}
- rust-brotli
ExclusiveArch: %{rust_arches}
- rust-brotli-decompressor
ExclusiveArch: %{rust_arches}
- rust-brotli-sys
ExclusiveArch: %{rust_arches}
- rust-brotli2
ExclusiveArch: %{rust_arches}
- rust-bstr
ExclusiveArch: %{rust_arches}
- rust-buf-min
ExclusiveArch: %{rust_arches}
- rust-buf_redux
ExclusiveArch: %{rust_arches}
- rust-buffered-reader
ExclusiveArch: %{rust_arches}
- rust-bufsize
ExclusiveArch: %{rust_arches}
- rust-bufstream
ExclusiveArch: %{rust_arches}
- rust-build-env
ExclusiveArch: %{rust_arches}
- rust-build_const
ExclusiveArch: %{rust_arches}
- rust-bumpalo
ExclusiveArch: %{rust_arches}
- rust-byte-tools
ExclusiveArch: %{rust_arches}
- rust-byte-unit
ExclusiveArch: %{rust_arches}
- rust-byte-unit3
ExclusiveArch: %{rust_arches}
- rust-bytecount
ExclusiveArch: %{rust_arches}
- rust-bytelines
ExclusiveArch: %{rust_arches}
- rust-bytemuck
ExclusiveArch: %{rust_arches}
- rust-bytemuck_derive
ExclusiveArch: %{rust_arches}
- rust-byteorder
ExclusiveArch: %{rust_arches}
- rust-bytes
ExclusiveArch: %{rust_arches}
- rust-bytes0.4
ExclusiveArch: %{rust_arches}
- rust-bytes0.5
ExclusiveArch: %{rust_arches}
- rust-bytes0.6
ExclusiveArch: %{rust_arches}
- rust-bytesize
ExclusiveArch: %{rust_arches}
- rust-bytestring
ExclusiveArch: %{rust_arches}
- rust-bzip2
ExclusiveArch: %{rust_arches}
- rust-bzip2-sys
ExclusiveArch: %{rust_arches}
- rust-c_vec
ExclusiveArch: %{rust_arches}
- rust-cache-padded
ExclusiveArch: %{rust_arches}
- rust-cairo-rs
ExclusiveArch: %{rust_arches}
- rust-cairo-sys-rs
ExclusiveArch: %{rust_arches}
- rust-calloop
ExclusiveArch: %{rust_arches}
- rust-capnp
ExclusiveArch: %{rust_arches}
- rust-capnp-futures
ExclusiveArch: %{rust_arches}
- rust-capnp-rpc
ExclusiveArch: %{rust_arches}
- rust-caps
ExclusiveArch: %{rust_arches}
- rust-cargo
ExclusiveArch: %{rust_arches}
- rust-cargo-bloat
ExclusiveArch: %{rust_arches}
- rust-cargo-c
ExclusiveArch: %{rust_arches}
- rust-cargo-husky
ExclusiveArch: %{rust_arches}
- rust-cargo-insta
ExclusiveArch: %{rust_arches}
- rust-cargo-platform
ExclusiveArch: %{rust_arches}
- rust-cargo-readme
ExclusiveArch: %{rust_arches}
- rust-cargo_metadata
ExclusiveArch: %{rust_arches}
- rust-case
ExclusiveArch: %{rust_arches}
- rust-cassowary
ExclusiveArch: %{rust_arches}
- rust-cast
ExclusiveArch: %{rust_arches}
- rust-cbindgen
ExclusiveArch: %{rust_arches}
- rust-cc
ExclusiveArch: %{rust_arches}
- rust-cedarwood
ExclusiveArch: %{rust_arches}
- rust-cexpr
ExclusiveArch: %{rust_arches}
- rust-cfg-if
ExclusiveArch: %{rust_arches}
- rust-cfg-if0.1
ExclusiveArch: %{rust_arches}
- rust-chainerror
ExclusiveArch: %{rust_arches}
- rust-charset
ExclusiveArch: %{rust_arches}
- rust-chbs
ExclusiveArch: %{rust_arches}
- rust-checked_int_cast
ExclusiveArch: %{rust_arches}
- rust-choosier
ExclusiveArch: %{rust_arches}
- rust-chrono
ExclusiveArch: %{rust_arches}
- rust-chrono-humanize
ExclusiveArch: %{rust_arches}
- rust-chrono-tz
ExclusiveArch: %{rust_arches}
- rust-chunked_transfer
ExclusiveArch: %{rust_arches}
- rust-cipher
ExclusiveArch: %{rust_arches}
- rust-clang-sys
ExclusiveArch: %{rust_arches}
- rust-clap
ExclusiveArch: %{rust_arches}
- rust-clap2
ExclusiveArch: %{rust_arches}
- rust-clap_derive
ExclusiveArch: %{rust_arches}
- rust-clicolors-control
ExclusiveArch: %{rust_arches}
- rust-cmake
ExclusiveArch: %{rust_arches}
- rust-codespan-reporting
ExclusiveArch: %{rust_arches}
- rust-codicon
ExclusiveArch: %{rust_arches}
- rust-color-backtrace
ExclusiveArch: %{rust_arches}
- rust-color_quant
ExclusiveArch: %{rust_arches}
- rust-colored
ExclusiveArch: %{rust_arches}
- rust-colored1
ExclusiveArch: %{rust_arches}
- rust-colored_json
ExclusiveArch: %{rust_arches}
- rust-colorful
ExclusiveArch: %{rust_arches}
- rust-compiletest_rs
ExclusiveArch: %{rust_arches}
- rust-comrak
ExclusiveArch: %{rust_arches}
- rust-concurrent-queue
ExclusiveArch: %{rust_arches}
- rust-config
ExclusiveArch: %{rust_arches}
- rust-configparser
ExclusiveArch: %{rust_arches}
- rust-confy
ExclusiveArch: %{rust_arches}
- rust-console
ExclusiveArch: %{rust_arches}
- rust-console0.11
ExclusiveArch: %{rust_arches}
- rust-console0.12
ExclusiveArch: %{rust_arches}
- rust-console0.13
ExclusiveArch: %{rust_arches}
- rust-console0.9
ExclusiveArch: %{rust_arches}
- rust-console_error_panic_hook
ExclusiveArch: %{rust_arches}
- rust-const-cstr
ExclusiveArch: %{rust_arches}
- rust-const-random
ExclusiveArch: %{rust_arches}
- rust-const-random-macro
ExclusiveArch: %{rust_arches}
- rust-const_fn
ExclusiveArch: %{rust_arches}
- rust-content_inspector
ExclusiveArch: %{rust_arches}
- rust-conv
ExclusiveArch: %{rust_arches}
- rust-convert_case
ExclusiveArch: %{rust_arches}
- rust-cookie
ExclusiveArch: %{rust_arches}
- rust-cookie_store
ExclusiveArch: %{rust_arches}
- rust-copydeps
ExclusiveArch: %{rust_arches}
- rust-copyless
ExclusiveArch: %{rust_arches}
- rust-copypasta
ExclusiveArch: %{rust_arches}
- rust-coreos-installer
ExclusiveArch: %{rust_arches}
- rust-cpio
ExclusiveArch: %{rust_arches}
- rust-cpp_demangle
ExclusiveArch: %{rust_arches}
- rust-cpuid-bool
ExclusiveArch: %{rust_arches}
- rust-cpython
ExclusiveArch: %{rust_arches}
- rust-cranelift-codegen-shared
ExclusiveArch: %{rust_arches}
- rust-cranelift-entity
ExclusiveArch: %{rust_arches}
- rust-crates-io
ExclusiveArch: %{rust_arches}
- rust-crc
ExclusiveArch: %{rust_arches}
- rust-crc-any
ExclusiveArch: %{rust_arches}
- rust-crc-core
ExclusiveArch: %{rust_arches}
- rust-crc32fast
ExclusiveArch: %{rust_arches}
- rust-criterion
ExclusiveArch: %{rust_arches}
- rust-criterion-plot
ExclusiveArch: %{rust_arches}
- rust-crossbeam
ExclusiveArch: %{rust_arches}
- rust-crossbeam-channel
ExclusiveArch: %{rust_arches}
- rust-crossbeam-channel0.4
ExclusiveArch: %{rust_arches}
- rust-crossbeam-deque
ExclusiveArch: %{rust_arches}
- rust-crossbeam-deque0.7
ExclusiveArch: %{rust_arches}
- rust-crossbeam-epoch
ExclusiveArch: %{rust_arches}
- rust-crossbeam-epoch0.8
ExclusiveArch: %{rust_arches}
- rust-crossbeam-queue
ExclusiveArch: %{rust_arches}
- rust-crossbeam-queue0.2
ExclusiveArch: %{rust_arches}
- rust-crossbeam-utils
ExclusiveArch: %{rust_arches}
- rust-crossbeam-utils0.7
ExclusiveArch: %{rust_arches}
- rust-crossbeam0.7
ExclusiveArch: %{rust_arches}
- rust-crossfont
ExclusiveArch: %{rust_arches}
- rust-crossterm
ExclusiveArch: %{rust_arches}
- rust-crossterm0.17
ExclusiveArch: %{rust_arches}
- rust-crossterm0.18
ExclusiveArch: %{rust_arches}
- rust-crosstermion
ExclusiveArch: %{rust_arches}
- rust-crunchy
ExclusiveArch: %{rust_arches}
- rust-crypto-hash
ExclusiveArch: %{rust_arches}
- rust-crypto-mac
ExclusiveArch: %{rust_arches}
- rust-crypto-mac0.8
ExclusiveArch: %{rust_arches}
- rust-cryptoki
ExclusiveArch: %{rust_arches}
- rust-cryptoki-sys
ExclusiveArch: %{rust_arches}
- rust-cryptovec
ExclusiveArch: %{rust_arches}
- rust-cssparser
ExclusiveArch: %{rust_arches}
- rust-cssparser-macros
ExclusiveArch: %{rust_arches}
- rust-cstr-argument
ExclusiveArch: %{rust_arches}
- rust-csv
ExclusiveArch: %{rust_arches}
- rust-csv-core
ExclusiveArch: %{rust_arches}
- rust-ctor
ExclusiveArch: %{rust_arches}
- rust-ctr
ExclusiveArch: %{rust_arches}
- rust-ctrlc
ExclusiveArch: %{rust_arches}
- rust-cty
ExclusiveArch: %{rust_arches}
- rust-curl
ExclusiveArch: %{rust_arches}
- rust-curl-sys
ExclusiveArch: %{rust_arches}
- rust-cursive
ExclusiveArch: %{rust_arches}
- rust-cursive_core
ExclusiveArch: %{rust_arches}
- rust-custom_derive
ExclusiveArch: %{rust_arches}
- rust-cxx
ExclusiveArch: %{rust_arches}
- rust-cxx-build
ExclusiveArch: %{rust_arches}
- rust-cxx-gen
ExclusiveArch: %{rust_arches}
- rust-cxxbridge-flags
ExclusiveArch: %{rust_arches}
- rust-cxxbridge-macro
ExclusiveArch: %{rust_arches}
- rust-darling
ExclusiveArch: %{rust_arches}
- rust-darling_core
ExclusiveArch: %{rust_arches}
- rust-darling_macro
ExclusiveArch: %{rust_arches}
- rust-dashmap
ExclusiveArch: %{rust_arches}
- rust-dashmap3
ExclusiveArch: %{rust_arches}
- rust-data-encoding
ExclusiveArch: %{rust_arches}
- rust-data-url
ExclusiveArch: %{rust_arches}
- rust-datetime
ExclusiveArch: %{rust_arches}
- rust-dav1d-sys
ExclusiveArch: %{rust_arches}
- rust-dbus
ExclusiveArch: %{rust_arches}
- rust-dbus-codegen
ExclusiveArch: %{rust_arches}
- rust-dbus-crossroads
ExclusiveArch: %{rust_arches}
- rust-dbus-tokio
ExclusiveArch: %{rust_arches}
- rust-dbus-tree
ExclusiveArch: %{rust_arches}
- rust-dbus0.8
ExclusiveArch: %{rust_arches}
- rust-debug-helper
ExclusiveArch: %{rust_arches}
- rust-decimal
ExclusiveArch: %{rust_arches}
- rust-deflate
ExclusiveArch: %{rust_arches}
- rust-defmac
ExclusiveArch: %{rust_arches}
- rust-delta_e
ExclusiveArch: %{rust_arches}
- rust-derivative
ExclusiveArch: %{rust_arches}
- rust-derive-new
ExclusiveArch: %{rust_arches}
- rust-derive_arbitrary
ExclusiveArch: %{rust_arches}
- rust-derive_arbitrary0.4
ExclusiveArch: %{rust_arches}
- rust-derive_builder
ExclusiveArch: %{rust_arches}
- rust-derive_builder0.9
ExclusiveArch: %{rust_arches}
- rust-derive_builder_core
ExclusiveArch: %{rust_arches}
- rust-derive_builder_core0.9
ExclusiveArch: %{rust_arches}
- rust-derive_builder_macro
ExclusiveArch: %{rust_arches}
- rust-derive_more
ExclusiveArch: %{rust_arches}
- rust-des
ExclusiveArch: %{rust_arches}
- rust-desed
ExclusiveArch: %{rust_arches}
- rust-deunicode
ExclusiveArch: %{rust_arches}
- rust-devicemapper
ExclusiveArch: %{rust_arches}
- rust-dialoguer
ExclusiveArch: %{rust_arches}
- rust-diesel
ExclusiveArch: %{rust_arches}
- rust-diesel_derives
ExclusiveArch: %{rust_arches}
- rust-diesel_migrations
ExclusiveArch: %{rust_arches}
- rust-diff
ExclusiveArch: %{rust_arches}
- rust-difference
ExclusiveArch: %{rust_arches}
- rust-diffus
ExclusiveArch: %{rust_arches}
- rust-diffus-derive
ExclusiveArch: %{rust_arches}
- rust-digest
ExclusiveArch: %{rust_arches}
- rust-digest0.8
ExclusiveArch: %{rust_arches}
- rust-directories
ExclusiveArch: %{rust_arches}
- rust-dirs
ExclusiveArch: %{rust_arches}
- rust-dirs-next
ExclusiveArch: %{rust_arches}
- rust-dirs-sys
ExclusiveArch: %{rust_arches}
- rust-dirs-sys-next
ExclusiveArch: %{rust_arches}
- rust-dirs2
ExclusiveArch: %{rust_arches}
- rust-diskonaut
ExclusiveArch: %{rust_arches}
- rust-dissimilar
ExclusiveArch: %{rust_arches}
- rust-dlib
ExclusiveArch: %{rust_arches}
- rust-dlv-list
ExclusiveArch: %{rust_arches}
- rust-dns-lookup
ExclusiveArch: %{rust_arches}
- rust-dns-parser
ExclusiveArch: %{rust_arches}
- rust-doc-comment
ExclusiveArch: %{rust_arches}
- rust-docmatic
ExclusiveArch: %{rust_arches}
- rust-docopt
ExclusiveArch: %{rust_arches}
- rust-dotenv
ExclusiveArch: %{rust_arches}
- rust-downcast-rs
ExclusiveArch: %{rust_arches}
- rust-dtoa
ExclusiveArch: %{rust_arches}
- rust-dtoa-short
ExclusiveArch: %{rust_arches}
- rust-dua-cli
ExclusiveArch: %{rust_arches}
- rust-duct
ExclusiveArch: %{rust_arches}
- rust-dummy
ExclusiveArch: %{rust_arches}
- rust-dunce
ExclusiveArch: %{rust_arches}
- rust-dutree
ExclusiveArch: %{rust_arches}
- rust-dyn-clone
ExclusiveArch: %{rust_arches}
- rust-easy-parallel
ExclusiveArch: %{rust_arches}
- rust-edit-distance
ExclusiveArch: %{rust_arches}
- rust-either
ExclusiveArch: %{rust_arches}
- rust-elasticlunr-rs
ExclusiveArch: %{rust_arches}
- rust-ena
ExclusiveArch: %{rust_arches}
- rust-encode_unicode
ExclusiveArch: %{rust_arches}
- rust-encoding
ExclusiveArch: %{rust_arches}
- rust-encoding-index-japanese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-korean
ExclusiveArch: %{rust_arches}
- rust-encoding-index-simpchinese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-singlebyte
ExclusiveArch: %{rust_arches}
- rust-encoding-index-tradchinese
ExclusiveArch: %{rust_arches}
- rust-encoding_index_tests
ExclusiveArch: %{rust_arches}
- rust-encoding_rs
ExclusiveArch: %{rust_arches}
- rust-encoding_rs_io
ExclusiveArch: %{rust_arches}
- rust-entities
ExclusiveArch: %{rust_arches}
- rust-enum-as-inner
ExclusiveArch: %{rust_arches}
- rust-enum-map
ExclusiveArch: %{rust_arches}
- rust-enum-map-derive
ExclusiveArch: %{rust_arches}
- rust-enum-repr
ExclusiveArch: %{rust_arches}
- rust-enum_primitive
ExclusiveArch: %{rust_arches}
- rust-enumflags2
ExclusiveArch: %{rust_arches}
- rust-enumflags2_derive
ExclusiveArch: %{rust_arches}
- rust-enumset
ExclusiveArch: %{rust_arches}
- rust-enumset_derive
ExclusiveArch: %{rust_arches}
- rust-env_logger
ExclusiveArch: %{rust_arches}
- rust-env_logger0.4
ExclusiveArch: %{rust_arches}
- rust-env_logger0.5
ExclusiveArch: %{rust_arches}
- rust-env_logger0.6
ExclusiveArch: %{rust_arches}
- rust-env_logger0.7
ExclusiveArch: %{rust_arches}
- rust-environment
ExclusiveArch: %{rust_arches}
- rust-envsubst
ExclusiveArch: %{rust_arches}
- rust-erased-serde
ExclusiveArch: %{rust_arches}
- rust-err-derive
ExclusiveArch: %{rust_arches}
- rust-errln
ExclusiveArch: %{rust_arches}
- rust-errno
ExclusiveArch: %{rust_arches}
- rust-error-chain
ExclusiveArch: %{rust_arches}
- rust-escaper
ExclusiveArch: %{rust_arches}
- rust-escargot
ExclusiveArch: %{rust_arches}
- rust-euclid
ExclusiveArch: %{rust_arches}
- rust-event-listener
ExclusiveArch: %{rust_arches}
- rust-exa
ExclusiveArch: %{rust_arches}
- rust-expat-sys
ExclusiveArch: %{rust_arches}
- rust-extend
ExclusiveArch: %{rust_arches}
- rust-extprim
ExclusiveArch: %{rust_arches}
- rust-extprim_literals_macros
ExclusiveArch: %{rust_arches}
- rust-fail
ExclusiveArch: %{rust_arches}
- rust-failure
ExclusiveArch: %{rust_arches}
- rust-failure-tools
ExclusiveArch: %{rust_arches}
- rust-failure_derive
ExclusiveArch: %{rust_arches}
- rust-fake
ExclusiveArch: %{rust_arches}
- rust-fake-simd
ExclusiveArch: %{rust_arches}
- rust-fake_clock
ExclusiveArch: %{rust_arches}
- rust-fallible-iterator
ExclusiveArch: %{rust_arches}
- rust-fallible-streaming-iterator
ExclusiveArch: %{rust_arches}
- rust-fastrand
ExclusiveArch: %{rust_arches}
- rust-fbthrift_codegen_includer_proc_macro
ExclusiveArch: %{rust_arches}
- rust-fd-find
ExclusiveArch: %{rust_arches}
- rust-fdlimit
ExclusiveArch: %{rust_arches}
- rust-fedora
ExclusiveArch: %{rust_arches}
- rust-fedora-coreos-pinger
ExclusiveArch: %{rust_arches}
- rust-fedora-update-feedback
ExclusiveArch: %{rust_arches}
- rust-feed-rs
ExclusiveArch: %{rust_arches}
- rust-feedbin_api
ExclusiveArch: %{rust_arches}
- rust-feedly_api
ExclusiveArch: %{rust_arches}
- rust-fern
ExclusiveArch: %{rust_arches}
- rust-fever_api
ExclusiveArch: %{rust_arches}
- rust-ffsend
ExclusiveArch: %{rust_arches}
- rust-ffsend-api
ExclusiveArch: %{rust_arches}
- rust-filedescriptor
ExclusiveArch: %{rust_arches}
- rust-filesize
ExclusiveArch: %{rust_arches}
- rust-filetime
ExclusiveArch: %{rust_arches}
- rust-findshlibs
ExclusiveArch: %{rust_arches}
- rust-fixedbitset
ExclusiveArch: %{rust_arches}
- rust-flame
ExclusiveArch: %{rust_arches}
- rust-flate2
ExclusiveArch: %{rust_arches}
- rust-float-cmp
ExclusiveArch: %{rust_arches}
- rust-float-cmp0.6
ExclusiveArch: %{rust_arches}
- rust-float-ord
ExclusiveArch: %{rust_arches}
- rust-flume
ExclusiveArch: %{rust_arches}
- rust-fn-error-context
ExclusiveArch: %{rust_arches}
- rust-fnv
ExclusiveArch: %{rust_arches}
- rust-font-kit
ExclusiveArch: %{rust_arches}
- rust-foreign-types
ExclusiveArch: %{rust_arches}
- rust-foreign-types-macros
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared0.1
ExclusiveArch: %{rust_arches}
- rust-foreign-types0.3
ExclusiveArch: %{rust_arches}
- rust-form_urlencoded
ExclusiveArch: %{rust_arches}
- rust-fragile
ExclusiveArch: %{rust_arches}
- rust-freetype
ExclusiveArch: %{rust_arches}
- rust-freetype-rs
ExclusiveArch: %{rust_arches}
- rust-freetype-sys
ExclusiveArch: %{rust_arches}
- rust-fs2
ExclusiveArch: %{rust_arches}
- rust-fs_extra
ExclusiveArch: %{rust_arches}
- rust-funty
ExclusiveArch: %{rust_arches}
- rust-fuse
ExclusiveArch: %{rust_arches}
- rust-futf
ExclusiveArch: %{rust_arches}
- rust-futures
ExclusiveArch: %{rust_arches}
- rust-futures-channel
ExclusiveArch: %{rust_arches}
- rust-futures-core
ExclusiveArch: %{rust_arches}
- rust-futures-cpupool
ExclusiveArch: %{rust_arches}
- rust-futures-executor
ExclusiveArch: %{rust_arches}
- rust-futures-io
ExclusiveArch: %{rust_arches}
- rust-futures-lite
ExclusiveArch: %{rust_arches}
- rust-futures-macro
ExclusiveArch: %{rust_arches}
- rust-futures-sink
ExclusiveArch: %{rust_arches}
- rust-futures-task
ExclusiveArch: %{rust_arches}
- rust-futures-test
ExclusiveArch: %{rust_arches}
- rust-futures-timer
ExclusiveArch: %{rust_arches}
- rust-futures-util
ExclusiveArch: %{rust_arches}
- rust-futures0.1
ExclusiveArch: %{rust_arches}
- rust-fuzzy-matcher
ExclusiveArch: %{rust_arches}
- rust-fxhash
ExclusiveArch: %{rust_arches}
- rust-gcsf
ExclusiveArch: %{rust_arches}
- rust-gdk
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf-sys
ExclusiveArch: %{rust_arches}
- rust-gdk-sys
ExclusiveArch: %{rust_arches}
- rust-generic-array
ExclusiveArch: %{rust_arches}
- rust-generic-array0.12
ExclusiveArch: %{rust_arches}
- rust-getch
ExclusiveArch: %{rust_arches}
- rust-gethostname
ExclusiveArch: %{rust_arches}
- rust-getopts
ExclusiveArch: %{rust_arches}
- rust-getrandom
ExclusiveArch: %{rust_arches}
- rust-getrandom0.1
ExclusiveArch: %{rust_arches}
- rust-gettext-rs
ExclusiveArch: %{rust_arches}
- rust-gettext-sys
ExclusiveArch: %{rust_arches}
- rust-ghash
ExclusiveArch: %{rust_arches}
- rust-ghost
ExclusiveArch: %{rust_arches}
- rust-gif
ExclusiveArch: %{rust_arches}
- rust-gif0.10
ExclusiveArch: %{rust_arches}
- rust-gimli
ExclusiveArch: %{rust_arches}
- rust-gio
ExclusiveArch: %{rust_arches}
- rust-gio-sys
ExclusiveArch: %{rust_arches}
- rust-gir-format-check
ExclusiveArch: %{rust_arches}
- rust-git-delta
ExclusiveArch: %{rust_arches}
- rust-git2
ExclusiveArch: %{rust_arches}
- rust-git2-curl
ExclusiveArch: %{rust_arches}
- rust-gitui
ExclusiveArch: %{rust_arches}
- rust-gl_generator
ExclusiveArch: %{rust_arches}
- rust-glib
ExclusiveArch: %{rust_arches}
- rust-glib-macros
ExclusiveArch: %{rust_arches}
- rust-glib-sys
ExclusiveArch: %{rust_arches}
- rust-glob
ExclusiveArch: %{rust_arches}
- rust-globset
ExclusiveArch: %{rust_arches}
- rust-globwalk
ExclusiveArch: %{rust_arches}
- rust-glutin
ExclusiveArch: %{rust_arches}
- rust-glutin_egl_sys
ExclusiveArch: %{rust_arches}
- rust-glutin_glx_sys
ExclusiveArch: %{rust_arches}
- rust-gobject-sys
ExclusiveArch: %{rust_arches}
- rust-goblin
ExclusiveArch: %{rust_arches}
- rust-google-drive3-fork
ExclusiveArch: %{rust_arches}
- rust-gptman
ExclusiveArch: %{rust_arches}
- rust-grep
ExclusiveArch: %{rust_arches}
- rust-grep-cli
ExclusiveArch: %{rust_arches}
- rust-grep-matcher
ExclusiveArch: %{rust_arches}
- rust-grep-pcre2
ExclusiveArch: %{rust_arches}
- rust-grep-printer
ExclusiveArch: %{rust_arches}
- rust-grep-regex
ExclusiveArch: %{rust_arches}
- rust-grep-searcher
ExclusiveArch: %{rust_arches}
- rust-groupable
ExclusiveArch: %{rust_arches}
- rust-gspell
ExclusiveArch: %{rust_arches}
- rust-gspell-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video-sys
ExclusiveArch: %{rust_arches}
- rust-gtk
ExclusiveArch: %{rust_arches}
- rust-gtk-macros
ExclusiveArch: %{rust_arches}
- rust-gtk-rs-lgpl-docs
ExclusiveArch: %{rust_arches}
- rust-gtk-source-sys
ExclusiveArch: %{rust_arches}
- rust-gtk-sys
ExclusiveArch: %{rust_arches}
- rust-gzip-header
ExclusiveArch: %{rust_arches}
- rust-h2
ExclusiveArch: %{rust_arches}
- rust-h2_0.2
ExclusiveArch: %{rust_arches}
- rust-half
ExclusiveArch: %{rust_arches}
- rust-hamcrest
ExclusiveArch: %{rust_arches}
- rust-handlebars
ExclusiveArch: %{rust_arches}
- rust-hashbrown
ExclusiveArch: %{rust_arches}
- rust-hashlink
ExclusiveArch: %{rust_arches}
- rust-headers
ExclusiveArch: %{rust_arches}
- rust-headers-core
ExclusiveArch: %{rust_arches}
- rust-headers-derive
ExclusiveArch: %{rust_arches}
- rust-heapsize
ExclusiveArch: %{rust_arches}
- rust-heatseeker
ExclusiveArch: %{rust_arches}
- rust-heck
ExclusiveArch: %{rust_arches}
- rust-hex
ExclusiveArch: %{rust_arches}
- rust-hex-literal
ExclusiveArch: %{rust_arches}
- rust-hex-literal-impl
ExclusiveArch: %{rust_arches}
- rust-hex-literal0.2
ExclusiveArch: %{rust_arches}
- rust-hexyl
ExclusiveArch: %{rust_arches}
- rust-hkdf
ExclusiveArch: %{rust_arches}
- rust-hmac
ExclusiveArch: %{rust_arches}
- rust-home
ExclusiveArch: %{rust_arches}
- rust-horrorshow
ExclusiveArch: %{rust_arches}
- rust-hostname
ExclusiveArch: %{rust_arches}
- rust-hostname-validator
ExclusiveArch: %{rust_arches}
- rust-html2pango
ExclusiveArch: %{rust_arches}
- rust-html5ever
ExclusiveArch: %{rust_arches}
- rust-http
ExclusiveArch: %{rust_arches}
- rust-http-body
ExclusiveArch: %{rust_arches}
- rust-http-body0.3
ExclusiveArch: %{rust_arches}
- rust-http0.1
ExclusiveArch: %{rust_arches}
- rust-httparse
ExclusiveArch: %{rust_arches}
- rust-httpdate
ExclusiveArch: %{rust_arches}
- rust-human-sort
ExclusiveArch: %{rust_arches}
- rust-humansize
ExclusiveArch: %{rust_arches}
- rust-humantime
ExclusiveArch: %{rust_arches}
- rust-humantime-serde
ExclusiveArch: %{rust_arches}
- rust-humantime1
ExclusiveArch: %{rust_arches}
- rust-hyper
ExclusiveArch: %{rust_arches}
- rust-hyper-native-tls
ExclusiveArch: %{rust_arches}
- rust-hyper-staticfile
ExclusiveArch: %{rust_arches}
- rust-hyper-tls
ExclusiveArch: %{rust_arches}
- rust-hyper-tls0.4
ExclusiveArch: %{rust_arches}
- rust-hyper0.10
ExclusiveArch: %{rust_arches}
- rust-hyper0.13
ExclusiveArch: %{rust_arches}
- rust-hyperfine
ExclusiveArch: %{rust_arches}
- rust-i3ipc
ExclusiveArch: %{rust_arches}
- rust-id_tree
ExclusiveArch: %{rust_arches}
- rust-ident_case
ExclusiveArch: %{rust_arches}
- rust-idna
ExclusiveArch: %{rust_arches}
- rust-idna0.1
ExclusiveArch: %{rust_arches}
- rust-ignore
ExclusiveArch: %{rust_arches}
- rust-im-rc
ExclusiveArch: %{rust_arches}
- rust-image
ExclusiveArch: %{rust_arches}
- rust-imgref
ExclusiveArch: %{rust_arches}
- rust-indexmap
ExclusiveArch: %{rust_arches}
- rust-indicatif
ExclusiveArch: %{rust_arches}
- rust-indoc
ExclusiveArch: %{rust_arches}
- rust-inflate
ExclusiveArch: %{rust_arches}
- rust-inotify
ExclusiveArch: %{rust_arches}
- rust-inotify-sys
ExclusiveArch: %{rust_arches}
- rust-input_buffer
ExclusiveArch: %{rust_arches}
- rust-insta
ExclusiveArch: %{rust_arches}
- rust-instant
ExclusiveArch: %{rust_arches}
- rust-interpolate_name
ExclusiveArch: %{rust_arches}
- rust-intervaltree
ExclusiveArch: %{rust_arches}
- rust-invalidstring
ExclusiveArch: %{rust_arches}
- rust-inventory
ExclusiveArch: %{rust_arches}
- rust-inventory-impl
ExclusiveArch: %{rust_arches}
- rust-ioctl-rs
ExclusiveArch: %{rust_arches}
- rust-iocuddle
ExclusiveArch: %{rust_arches}
- rust-iovec
ExclusiveArch: %{rust_arches}
- rust-ipnet
ExclusiveArch: %{rust_arches}
- rust-ipnetwork
ExclusiveArch: %{rust_arches}
- rust-iron
ExclusiveArch: %{rust_arches}
- rust-isahc
ExclusiveArch: %{rust_arches}
- rust-iso8601
ExclusiveArch: %{rust_arches}
- rust-iter-read
ExclusiveArch: %{rust_arches}
- rust-itertools
ExclusiveArch: %{rust_arches}
- rust-itertools-num
ExclusiveArch: %{rust_arches}
- rust-itertools0.8
ExclusiveArch: %{rust_arches}
- rust-itertools0.9
ExclusiveArch: %{rust_arches}
- rust-itoa
ExclusiveArch: %{rust_arches}
- rust-ivf
ExclusiveArch: %{rust_arches}
- rust-javascriptcore-rs
ExclusiveArch: %{rust_arches}
- rust-javascriptcore-rs-sys
ExclusiveArch: %{rust_arches}
- rust-jetscii
ExclusiveArch: %{rust_arches}
- rust-jieba-rs
ExclusiveArch: %{rust_arches}
- rust-jobserver
ExclusiveArch: %{rust_arches}
- rust-jpeg-decoder
ExclusiveArch: %{rust_arches}
- rust-jql
ExclusiveArch: %{rust_arches}
- rust-js-sys
ExclusiveArch: %{rust_arches}
- rust-js_int
ExclusiveArch: %{rust_arches}
- rust-json
ExclusiveArch: %{rust_arches}
- rust-jwalk
ExclusiveArch: %{rust_arches}
- rust-k9
ExclusiveArch: %{rust_arches}
- rust-keccak
ExclusiveArch: %{rust_arches}
- rust-khronos_api
ExclusiveArch: %{rust_arches}
- rust-kstring
ExclusiveArch: %{rust_arches}
- rust-kv-log-macro
ExclusiveArch: %{rust_arches}
- rust-lab
ExclusiveArch: %{rust_arches}
- rust-lalrpop
ExclusiveArch: %{rust_arches}
- rust-lalrpop-util
ExclusiveArch: %{rust_arches}
- rust-language-tags
ExclusiveArch: %{rust_arches}
- rust-lazy-init
ExclusiveArch: %{rust_arches}
- rust-lazy_static
ExclusiveArch: %{rust_arches}
- rust-lazycell
ExclusiveArch: %{rust_arches}
- rust-leb128
ExclusiveArch: %{rust_arches}
- rust-letter-avatar
ExclusiveArch: %{rust_arches}
- rust-lexical-core
ExclusiveArch: %{rust_arches}
- rust-libbpf-rs
ExclusiveArch: %{rust_arches}
- rust-libbpf-sys
ExclusiveArch: %{rust_arches}
- rust-libc
ExclusiveArch: %{rust_arches}
- rust-libcryptsetup-rs
ExclusiveArch: %{rust_arches}
- rust-libcryptsetup-rs-sys
ExclusiveArch: %{rust_arches}
- rust-libdbus-sys
ExclusiveArch: %{rust_arches}
- rust-libflate
ExclusiveArch: %{rust_arches}
- rust-libflate_lz77
ExclusiveArch: %{rust_arches}
- rust-libgit2-sys
ExclusiveArch: %{rust_arches}
- rust-libhandy
ExclusiveArch: %{rust_arches}
- rust-libhandy-sys
ExclusiveArch: %{rust_arches}
- rust-libloading
ExclusiveArch: %{rust_arches}
- rust-libloading0.6
ExclusiveArch: %{rust_arches}
- rust-libm
ExclusiveArch: %{rust_arches}
- rust-libmount
ExclusiveArch: %{rust_arches}
- rust-libnotcurses-sys
ExclusiveArch: %{rust_arches}
- rust-liboverdrop
ExclusiveArch: %{rust_arches}
- rust-libpulse-binding
ExclusiveArch: %{rust_arches}
- rust-libpulse-sys
ExclusiveArch: %{rust_arches}
- rust-libslirp
ExclusiveArch: %{rust_arches}
- rust-libslirp-sys
ExclusiveArch: %{rust_arches}
- rust-libsqlite3-sys
ExclusiveArch: %{rust_arches}
- rust-libssh2-sys
ExclusiveArch: %{rust_arches}
- rust-libsystemd
ExclusiveArch: %{rust_arches}
- rust-libsystemd-sys
ExclusiveArch: %{rust_arches}
- rust-libudev
ExclusiveArch: %{rust_arches}
- rust-libudev-sys
ExclusiveArch: %{rust_arches}
- rust-libxml
ExclusiveArch: %{rust_arches}
- rust-libz-sys
ExclusiveArch: %{rust_arches}
- rust-line-wrap
ExclusiveArch: %{rust_arches}
- rust-line_drawing
ExclusiveArch: %{rust_arches}
- rust-link-cplusplus
ExclusiveArch: %{rust_arches}
- rust-linked-hash-map
ExclusiveArch: %{rust_arches}
- rust-linkify
ExclusiveArch: %{rust_arches}
- rust-lipsum
ExclusiveArch: %{rust_arches}
- rust-liquid
ExclusiveArch: %{rust_arches}
- rust-liquid-core
ExclusiveArch: %{rust_arches}
- rust-liquid-derive
ExclusiveArch: %{rust_arches}
- rust-liquid-lib
ExclusiveArch: %{rust_arches}
- rust-listenfd
ExclusiveArch: %{rust_arches}
- rust-lmdb
ExclusiveArch: %{rust_arches}
- rust-lmdb-sys
ExclusiveArch: %{rust_arches}
- rust-locale
ExclusiveArch: %{rust_arches}
- rust-locale_config
ExclusiveArch: %{rust_arches}
- rust-lock_api
ExclusiveArch: %{rust_arches}
- rust-lockfree
ExclusiveArch: %{rust_arches}
- rust-log
ExclusiveArch: %{rust_arches}
- rust-log-mdc
ExclusiveArch: %{rust_arches}
- rust-log-panics
ExclusiveArch: %{rust_arches}
- rust-log0.3
ExclusiveArch: %{rust_arches}
- rust-log4rs
ExclusiveArch: %{rust_arches}
- rust-loggerv
ExclusiveArch: %{rust_arches}
- rust-loopdev
ExclusiveArch: %{rust_arches}
- rust-lru-cache
ExclusiveArch: %{rust_arches}
- rust-lru_time_cache
ExclusiveArch: %{rust_arches}
- rust-lscolors
ExclusiveArch: %{rust_arches}
- rust-lsd
ExclusiveArch: %{rust_arches}
- rust-lzma-sys
ExclusiveArch: %{rust_arches}
- rust-lzw
ExclusiveArch: %{rust_arches}
- rust-mac
ExclusiveArch: %{rust_arches}
- rust-macro-attr
ExclusiveArch: %{rust_arches}
- rust-magic-crypt
ExclusiveArch: %{rust_arches}
- rust-maildir
ExclusiveArch: %{rust_arches}
- rust-mailparse
ExclusiveArch: %{rust_arches}
- rust-man
ExclusiveArch: %{rust_arches}
- rust-maplit
ExclusiveArch: %{rust_arches}
- rust-markup5ever
ExclusiveArch: %{rust_arches}
- rust-markup5ever_rcdom
ExclusiveArch: %{rust_arches}
- rust-match_cfg
ExclusiveArch: %{rust_arches}
- rust-matches
ExclusiveArch: %{rust_arches}
- rust-matrixmultiply
ExclusiveArch: %{rust_arches}
- rust-maxminddb
ExclusiveArch: %{rust_arches}
- rust-maybe-uninit
ExclusiveArch: %{rust_arches}
- rust-mbox
ExclusiveArch: %{rust_arches}
- rust-mbrman
ExclusiveArch: %{rust_arches}
- rust-md-5
ExclusiveArch: %{rust_arches}
- rust-md5
ExclusiveArch: %{rust_arches}
- rust-mdl
ExclusiveArch: %{rust_arches}
- rust-memchr
ExclusiveArch: %{rust_arches}
- rust-memmap
ExclusiveArch: %{rust_arches}
- rust-memmap2
ExclusiveArch: %{rust_arches}
- rust-memoffset
ExclusiveArch: %{rust_arches}
- rust-memoffset0.5
ExclusiveArch: %{rust_arches}
- rust-memsec
ExclusiveArch: %{rust_arches}
- rust-metadeps
ExclusiveArch: %{rust_arches}
- rust-migrations_internals
ExclusiveArch: %{rust_arches}
- rust-migrations_macros
ExclusiveArch: %{rust_arches}
- rust-mime
ExclusiveArch: %{rust_arches}
- rust-mime-sniffer
ExclusiveArch: %{rust_arches}
- rust-mime0.2
ExclusiveArch: %{rust_arches}
- rust-mime_guess
ExclusiveArch: %{rust_arches}
- rust-mime_guess1
ExclusiveArch: %{rust_arches}
- rust-miniflux_api
ExclusiveArch: %{rust_arches}
- rust-minify-html
ExclusiveArch: %{rust_arches}
- rust-miniz-sys
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide0.3
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide_c_api
ExclusiveArch: %{rust_arches}
- rust-mint
ExclusiveArch: %{rust_arches}
- rust-mio
ExclusiveArch: %{rust_arches}
- rust-mio-extras
ExclusiveArch: %{rust_arches}
- rust-mio-uds
ExclusiveArch: %{rust_arches}
- rust-mio0.6
ExclusiveArch: %{rust_arches}
- rust-mktemp
ExclusiveArch: %{rust_arches}
- rust-mnt
ExclusiveArch: %{rust_arches}
- rust-mockito
ExclusiveArch: %{rust_arches}
- rust-modifier
ExclusiveArch: %{rust_arches}
- rust-more-asserts
ExclusiveArch: %{rust_arches}
- rust-muldiv
ExclusiveArch: %{rust_arches}
- rust-multimap
ExclusiveArch: %{rust_arches}
- rust-multipart
ExclusiveArch: %{rust_arches}
- rust-mustache
ExclusiveArch: %{rust_arches}
- rust-nasm-rs
ExclusiveArch: %{rust_arches}
- rust-native-tls
ExclusiveArch: %{rust_arches}
- rust-natord
ExclusiveArch: %{rust_arches}
- rust-nb-connect
ExclusiveArch: %{rust_arches}
- rust-ncurses
ExclusiveArch: %{rust_arches}
- rust-net2
ExclusiveArch: %{rust_arches}
- rust-netlink-packet-core
ExclusiveArch: %{rust_arches}
- rust-netlink-packet-route
ExclusiveArch: %{rust_arches}
- rust-netlink-packet-utils
ExclusiveArch: %{rust_arches}
- rust-netlink-proto
ExclusiveArch: %{rust_arches}
- rust-netlink-sys
ExclusiveArch: %{rust_arches}
- rust-netmap_sys
ExclusiveArch: %{rust_arches}
- rust-nettle
ExclusiveArch: %{rust_arches}
- rust-nettle-sys
ExclusiveArch: %{rust_arches}
- rust-new_debug_unreachable
ExclusiveArch: %{rust_arches}
- rust-news-flash
ExclusiveArch: %{rust_arches}
- rust-newsblur_api
ExclusiveArch: %{rust_arches}
- rust-newtype_derive
ExclusiveArch: %{rust_arches}
- rust-nickel
ExclusiveArch: %{rust_arches}
- rust-nix
ExclusiveArch: %{rust_arches}
- rust-nix0.14
ExclusiveArch: %{rust_arches}
- rust-nix0.17
ExclusiveArch: %{rust_arches}
- rust-nix0.18
ExclusiveArch: %{rust_arches}
- rust-no-panic
ExclusiveArch: %{rust_arches}
- rust-nodrop
ExclusiveArch: %{rust_arches}
- rust-nom
ExclusiveArch: %{rust_arches}
- rust-nom4
ExclusiveArch: %{rust_arches}
- rust-nom5
ExclusiveArch: %{rust_arches}
- rust-noop_proc_macro
ExclusiveArch: %{rust_arches}
- rust-normalize-line-endings
ExclusiveArch: %{rust_arches}
- rust-notify
ExclusiveArch: %{rust_arches}
- rust-notify-rust
ExclusiveArch: %{rust_arches}
- rust-num
ExclusiveArch: %{rust_arches}
- rust-num-bigint
ExclusiveArch: %{rust_arches}
- rust-num-bigint-dig
ExclusiveArch: %{rust_arches}
- rust-num-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-num_enum
ExclusiveArch: %{rust_arches}
- rust-num_enum_derive
ExclusiveArch: %{rust_arches}
- rust-number_prefix
ExclusiveArch: %{rust_arches}
- rust-numtoa
ExclusiveArch: %{rust_arches}
- rust-oauth2
ExclusiveArch: %{rust_arches}
- rust-obfstr
ExclusiveArch: %{rust_arches}
- rust-object
ExclusiveArch: %{rust_arches}
- rust-odds
ExclusiveArch: %{rust_arches}
- rust-oid
ExclusiveArch: %{rust_arches}
- rust-once_cell
ExclusiveArch: %{rust_arches}
- rust-onig
ExclusiveArch: %{rust_arches}
- rust-onig_sys
ExclusiveArch: %{rust_arches}
- rust-oorandom
ExclusiveArch: %{rust_arches}
- rust-opaque-debug
ExclusiveArch: %{rust_arches}
- rust-open
ExclusiveArch: %{rust_arches}
- rust-openat
ExclusiveArch: %{rust_arches}
- rust-openat-ext
ExclusiveArch: %{rust_arches}
- rust-opener
ExclusiveArch: %{rust_arches}
- rust-openssh-keys
ExclusiveArch: %{rust_arches}
- rust-openssl
ExclusiveArch: %{rust_arches}
- rust-openssl-probe
ExclusiveArch: %{rust_arches}
- rust-openssl-sys
ExclusiveArch: %{rust_arches}
- rust-ord_subset
ExclusiveArch: %{rust_arches}
- rust-ordered-float
ExclusiveArch: %{rust_arches}
- rust-ordered-multimap
ExclusiveArch: %{rust_arches}
- rust-os_info
ExclusiveArch: %{rust_arches}
- rust-os_pipe
ExclusiveArch: %{rust_arches}
- rust-os_str_bytes
ExclusiveArch: %{rust_arches}
- rust-osmesa-sys
ExclusiveArch: %{rust_arches}
- rust-osstrtools
ExclusiveArch: %{rust_arches}
- rust-ostree
ExclusiveArch: %{rust_arches}
- rust-ostree-sys
ExclusiveArch: %{rust_arches}
- rust-owned-alloc
ExclusiveArch: %{rust_arches}
- rust-owned_ttf_parser
ExclusiveArch: %{rust_arches}
- rust-owning_ref
ExclusiveArch: %{rust_arches}
- rust-packaging
ExclusiveArch: %{rust_arches}
- rust-pad
ExclusiveArch: %{rust_arches}
- rust-pager
ExclusiveArch: %{rust_arches}
- rust-palette
ExclusiveArch: %{rust_arches}
- rust-palette_derive
ExclusiveArch: %{rust_arches}
- rust-pango
ExclusiveArch: %{rust_arches}
- rust-pango-sys
ExclusiveArch: %{rust_arches}
- rust-pangocairo
ExclusiveArch: %{rust_arches}
- rust-pangocairo-sys
ExclusiveArch: %{rust_arches}
- rust-parity-wasm
ExclusiveArch: %{rust_arches}
- rust-parking
ExclusiveArch: %{rust_arches}
- rust-parking_lot
ExclusiveArch: %{rust_arches}
- rust-parking_lot_core
ExclusiveArch: %{rust_arches}
- rust-parse-zoneinfo
ExclusiveArch: %{rust_arches}
- rust-parse_cfg
ExclusiveArch: %{rust_arches}
- rust-parsec-client
ExclusiveArch: %{rust_arches}
- rust-parsec-interface
ExclusiveArch: %{rust_arches}
- rust-partial-io
ExclusiveArch: %{rust_arches}
- rust-paste
ExclusiveArch: %{rust_arches}
- rust-paste-impl
ExclusiveArch: %{rust_arches}
- rust-path-absolutize
ExclusiveArch: %{rust_arches}
- rust-path-dedot
ExclusiveArch: %{rust_arches}
- rust-path-slash
ExclusiveArch: %{rust_arches}
- rust-pathdiff
ExclusiveArch: %{rust_arches}
- rust-pathfinder_geometry
ExclusiveArch: %{rust_arches}
- rust-pathfinder_simd
ExclusiveArch: %{rust_arches}
- rust-pbr
ExclusiveArch: %{rust_arches}
- rust-pcap
ExclusiveArch: %{rust_arches}
- rust-pcre2
ExclusiveArch: %{rust_arches}
- rust-pcre2-sys
ExclusiveArch: %{rust_arches}
- rust-peeking_take_while
ExclusiveArch: %{rust_arches}
- rust-peg
ExclusiveArch: %{rust_arches}
- rust-peg-macros
ExclusiveArch: %{rust_arches}
- rust-peg-runtime
ExclusiveArch: %{rust_arches}
- rust-peg0.5
ExclusiveArch: %{rust_arches}
- rust-pem
ExclusiveArch: %{rust_arches}
- rust-percent-encoding
ExclusiveArch: %{rust_arches}
- rust-percent-encoding1
ExclusiveArch: %{rust_arches}
- rust-peresil
ExclusiveArch: %{rust_arches}
- rust-permutate
ExclusiveArch: %{rust_arches}
- rust-permutohedron
ExclusiveArch: %{rust_arches}
- rust-pest
ExclusiveArch: %{rust_arches}
- rust-pest_derive
ExclusiveArch: %{rust_arches}
- rust-pest_generator
ExclusiveArch: %{rust_arches}
- rust-pest_meta
ExclusiveArch: %{rust_arches}
- rust-petgraph
ExclusiveArch: %{rust_arches}
- rust-phf
ExclusiveArch: %{rust_arches}
- rust-phf0.7
ExclusiveArch: %{rust_arches}
- rust-phf_codegen
ExclusiveArch: %{rust_arches}
- rust-phf_codegen0.7
ExclusiveArch: %{rust_arches}
- rust-phf_generator
ExclusiveArch: %{rust_arches}
- rust-phf_generator0.7
ExclusiveArch: %{rust_arches}
- rust-phf_macros
ExclusiveArch: %{rust_arches}
- rust-phf_macros0.7
ExclusiveArch: %{rust_arches}
- rust-phf_shared
ExclusiveArch: %{rust_arches}
- rust-phf_shared0.7
ExclusiveArch: %{rust_arches}
- rust-picky-asn1
ExclusiveArch: %{rust_arches}
- rust-picky-asn1-der
ExclusiveArch: %{rust_arches}
- rust-picky-asn1-x509
ExclusiveArch: %{rust_arches}
- rust-pico-args
ExclusiveArch: %{rust_arches}
- rust-pin-project
ExclusiveArch: %{rust_arches}
- rust-pin-project-internal
ExclusiveArch: %{rust_arches}
- rust-pin-project-internal0.4
ExclusiveArch: %{rust_arches}
- rust-pin-project-lite
ExclusiveArch: %{rust_arches}
- rust-pin-project-lite0.1
ExclusiveArch: %{rust_arches}
- rust-pin-project0.4
ExclusiveArch: %{rust_arches}
- rust-pin-utils
ExclusiveArch: %{rust_arches}
- rust-pipe
ExclusiveArch: %{rust_arches}
- rust-piper
ExclusiveArch: %{rust_arches}
- rust-pkcs11
ExclusiveArch: %{rust_arches}
- rust-pkg-config
ExclusiveArch: %{rust_arches}
- rust-plain
ExclusiveArch: %{rust_arches}
- rust-platform-dirs
ExclusiveArch: %{rust_arches}
- rust-platforms
ExclusiveArch: %{rust_arches}
- rust-plist
ExclusiveArch: %{rust_arches}
- rust-plotters
ExclusiveArch: %{rust_arches}
- rust-plugin
ExclusiveArch: %{rust_arches}
- rust-pnet_base
ExclusiveArch: %{rust_arches}
- rust-pnet_datalink
ExclusiveArch: %{rust_arches}
- rust-pnet_sys
ExclusiveArch: %{rust_arches}
- rust-png
ExclusiveArch: %{rust_arches}
- rust-podio
ExclusiveArch: %{rust_arches}
- rust-polling
ExclusiveArch: %{rust_arches}
- rust-polyval
ExclusiveArch: %{rust_arches}
- rust-pommes
ExclusiveArch: %{rust_arches}
- rust-ppv-lite86
ExclusiveArch: %{rust_arches}
- rust-pq-sys
ExclusiveArch: %{rust_arches}
- rust-precomputed-hash
ExclusiveArch: %{rust_arches}
- rust-predicates
ExclusiveArch: %{rust_arches}
- rust-predicates-core
ExclusiveArch: %{rust_arches}
- rust-predicates-tree
ExclusiveArch: %{rust_arches}
- rust-pretty-git-prompt
ExclusiveArch: %{rust_arches}
- rust-pretty-hex
ExclusiveArch: %{rust_arches}
- rust-pretty_assertions
ExclusiveArch: %{rust_arches}
- rust-pretty_assertions0.6
ExclusiveArch: %{rust_arches}
- rust-pretty_env_logger
ExclusiveArch: %{rust_arches}
- rust-prettytable-rs
ExclusiveArch: %{rust_arches}
- rust-proc-macro-crate
ExclusiveArch: %{rust_arches}
- rust-proc-macro-error
ExclusiveArch: %{rust_arches}
- rust-proc-macro-error-attr
ExclusiveArch: %{rust_arches}
- rust-proc-macro-hack
ExclusiveArch: %{rust_arches}
- rust-proc-macro-nested
ExclusiveArch: %{rust_arches}
- rust-proc-macro2
ExclusiveArch: %{rust_arches}
- rust-proc-macro2-0.4
ExclusiveArch: %{rust_arches}
- rust-proc-quote
ExclusiveArch: %{rust_arches}
- rust-proc-quote-impl
ExclusiveArch: %{rust_arches}
- rust-procedural-masquerade
ExclusiveArch: %{rust_arches}
- rust-process_path
ExclusiveArch: %{rust_arches}
- rust-procfs
ExclusiveArch: %{rust_arches}
- rust-procfs0.8
ExclusiveArch: %{rust_arches}
- rust-procs
ExclusiveArch: %{rust_arches}
- rust-progress-streams
ExclusiveArch: %{rust_arches}
- rust-prometheus
ExclusiveArch: %{rust_arches}
- rust-proptest
ExclusiveArch: %{rust_arches}
- rust-proptest-derive
ExclusiveArch: %{rust_arches}
- rust-prost
ExclusiveArch: %{rust_arches}
- rust-prost-build
ExclusiveArch: %{rust_arches}
- rust-prost-derive
ExclusiveArch: %{rust_arches}
- rust-prost-types
ExclusiveArch: %{rust_arches}
- rust-protobuf
ExclusiveArch: %{rust_arches}
- rust-protobuf-codegen
ExclusiveArch: %{rust_arches}
- rust-protobuf-codegen-pure
ExclusiveArch: %{rust_arches}
- rust-protoc
ExclusiveArch: %{rust_arches}
- rust-protoc-rust
ExclusiveArch: %{rust_arches}
- rust-psa-crypto
ExclusiveArch: %{rust_arches}
- rust-psa-crypto-sys
ExclusiveArch: %{rust_arches}
- rust-psm
ExclusiveArch: %{rust_arches}
- rust-psutil
ExclusiveArch: %{rust_arches}
- rust-publicsuffix
ExclusiveArch: %{rust_arches}
- rust-pulldown-cmark
ExclusiveArch: %{rust_arches}
- rust-pulse
ExclusiveArch: %{rust_arches}
- rust-pure-rust-locales
ExclusiveArch: %{rust_arches}
- rust-pyo3
ExclusiveArch: %{rust_arches}
- rust-pyo3-macros
ExclusiveArch: %{rust_arches}
- rust-pyo3-macros-backend
ExclusiveArch: %{rust_arches}
- rust-python3-sys
ExclusiveArch: %{rust_arches}
- rust-qr2term
ExclusiveArch: %{rust_arches}
- rust-qrcode
ExclusiveArch: %{rust_arches}
- rust-qstring
ExclusiveArch: %{rust_arches}
- rust-quick-error
ExclusiveArch: %{rust_arches}
- rust-quick-error1
ExclusiveArch: %{rust_arches}
- rust-quick-xml
ExclusiveArch: %{rust_arches}
- rust-quickcheck
ExclusiveArch: %{rust_arches}
- rust-quickcheck0.6
ExclusiveArch: %{rust_arches}
- rust-quickcheck0.9
ExclusiveArch: %{rust_arches}
- rust-quickcheck_macros
ExclusiveArch: %{rust_arches}
- rust-quickersort
ExclusiveArch: %{rust_arches}
- rust-quote
ExclusiveArch: %{rust_arches}
- rust-quote0.3
ExclusiveArch: %{rust_arches}
- rust-quote0.6
ExclusiveArch: %{rust_arches}
- rust-quoted_printable
ExclusiveArch: %{rust_arches}
- rust-r2d2
ExclusiveArch: %{rust_arches}
- rust-radium
ExclusiveArch: %{rust_arches}
- rust-rand
ExclusiveArch: %{rust_arches}
- rust-rand0.4
ExclusiveArch: %{rust_arches}
- rust-rand0.5
ExclusiveArch: %{rust_arches}
- rust-rand0.6
ExclusiveArch: %{rust_arches}
- rust-rand0.7
ExclusiveArch: %{rust_arches}
- rust-rand_chacha
ExclusiveArch: %{rust_arches}
- rust-rand_chacha0.1
ExclusiveArch: %{rust_arches}
- rust-rand_chacha0.2
ExclusiveArch: %{rust_arches}
- rust-rand_core
ExclusiveArch: %{rust_arches}
- rust-rand_core0.3
ExclusiveArch: %{rust_arches}
- rust-rand_core0.4
ExclusiveArch: %{rust_arches}
- rust-rand_core0.5
ExclusiveArch: %{rust_arches}
- rust-rand_distr
ExclusiveArch: %{rust_arches}
- rust-rand_distr0.2
ExclusiveArch: %{rust_arches}
- rust-rand_hc
ExclusiveArch: %{rust_arches}
- rust-rand_hc0.1
ExclusiveArch: %{rust_arches}
- rust-rand_isaac
ExclusiveArch: %{rust_arches}
- rust-rand_isaac0.1
ExclusiveArch: %{rust_arches}
- rust-rand_jitter
ExclusiveArch: %{rust_arches}
- rust-rand_jitter0.1
ExclusiveArch: %{rust_arches}
- rust-rand_os
ExclusiveArch: %{rust_arches}
- rust-rand_os0.1
ExclusiveArch: %{rust_arches}
- rust-rand_pcg
ExclusiveArch: %{rust_arches}
- rust-rand_pcg0.1
ExclusiveArch: %{rust_arches}
- rust-rand_pcg0.2
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xoshiro
ExclusiveArch: %{rust_arches}
- rust-random-fast-rng
ExclusiveArch: %{rust_arches}
- rust-random-trait
ExclusiveArch: %{rust_arches}
- rust-randomize
ExclusiveArch: %{rust_arches}
- rust-rav1e
ExclusiveArch: %{rust_arches}
- rust-raw-window-handle
ExclusiveArch: %{rust_arches}
- rust-rawpointer
ExclusiveArch: %{rust_arches}
- rust-rawslice
ExclusiveArch: %{rust_arches}
- rust-rayon
ExclusiveArch: %{rust_arches}
- rust-rayon-core
ExclusiveArch: %{rust_arches}
- rust-readability-fork
ExclusiveArch: %{rust_arches}
- rust-readwrite
ExclusiveArch: %{rust_arches}
- rust-recycler
ExclusiveArch: %{rust_arches}
- rust-ref-cast
ExclusiveArch: %{rust_arches}
- rust-ref-cast-impl
ExclusiveArch: %{rust_arches}
- rust-regex
ExclusiveArch: %{rust_arches}
- rust-regex-automata
ExclusiveArch: %{rust_arches}
- rust-regex-syntax
ExclusiveArch: %{rust_arches}
- rust-region
ExclusiveArch: %{rust_arches}
- rust-relative-path
ExclusiveArch: %{rust_arches}
- rust-relay
ExclusiveArch: %{rust_arches}
- rust-remove_dir_all
ExclusiveArch: %{rust_arches}
- rust-reqwest
ExclusiveArch: %{rust_arches}
- rust-reqwest0.10
ExclusiveArch: %{rust_arches}
- rust-resize
ExclusiveArch: %{rust_arches}
- rust-resolv-conf
ExclusiveArch: %{rust_arches}
- rust-restson
ExclusiveArch: %{rust_arches}
- rust-retry
ExclusiveArch: %{rust_arches}
- rust-rgb
ExclusiveArch: %{rust_arches}
- rust-ring
ExclusiveArch: %{rust_arches}
- rust-ripgrep
ExclusiveArch: %{rust_arches}
- rust-rle-decode-fast
ExclusiveArch: %{rust_arches}
- rust-rmp
ExclusiveArch: %{rust_arches}
- rust-rmp-serde
ExclusiveArch: %{rust_arches}
- rust-roff
ExclusiveArch: %{rust_arches}
- rust-ron
ExclusiveArch: %{rust_arches}
- rust-roxmltree
ExclusiveArch: %{rust_arches}
- rust-rpassword
ExclusiveArch: %{rust_arches}
- rust-rpick
ExclusiveArch: %{rust_arches}
- rust-rsa
ExclusiveArch: %{rust_arches}
- rust-rspec
ExclusiveArch: %{rust_arches}
- rust-rtnetlink
ExclusiveArch: %{rust_arches}
- rust-ruma
ExclusiveArch: %{rust_arches}
- rust-ruma-api
ExclusiveArch: %{rust_arches}
- rust-ruma-api-macros
ExclusiveArch: %{rust_arches}
- rust-ruma-appservice-api
ExclusiveArch: %{rust_arches}
- rust-ruma-client-api
ExclusiveArch: %{rust_arches}
- rust-ruma-common
ExclusiveArch: %{rust_arches}
- rust-ruma-events
ExclusiveArch: %{rust_arches}
- rust-ruma-events-macros
ExclusiveArch: %{rust_arches}
- rust-ruma-federation-api
ExclusiveArch: %{rust_arches}
- rust-ruma-identifiers
ExclusiveArch: %{rust_arches}
- rust-ruma-identifiers-macros
ExclusiveArch: %{rust_arches}
- rust-ruma-identifiers-validation
ExclusiveArch: %{rust_arches}
- rust-ruma-identity-service-api
ExclusiveArch: %{rust_arches}
- rust-ruma-push-gateway-api
ExclusiveArch: %{rust_arches}
- rust-ruma-serde
ExclusiveArch: %{rust_arches}
- rust-ruma-serde-macros
ExclusiveArch: %{rust_arches}
- rust-ruma-signatures
ExclusiveArch: %{rust_arches}
- rust-rusqlite
ExclusiveArch: %{rust_arches}
- rust-rust-embed
ExclusiveArch: %{rust_arches}
- rust-rust-embed-impl
ExclusiveArch: %{rust_arches}
- rust-rust-embed-utils
ExclusiveArch: %{rust_arches}
- rust-rust-ini
ExclusiveArch: %{rust_arches}
- rust-rust-stemmers
ExclusiveArch: %{rust_arches}
- rust-rust_decimal
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer_normal_macro
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer_proc_macro
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer_sys
ExclusiveArch: %{rust_arches}
- rust-rustc-demangle
ExclusiveArch: %{rust_arches}
- rust-rustc-hash
ExclusiveArch: %{rust_arches}
- rust-rustc-serialize
ExclusiveArch: %{rust_arches}
- rust-rustc-test
ExclusiveArch: %{rust_arches}
- rust-rustc_tools_util
ExclusiveArch: %{rust_arches}
- rust-rustc_version
ExclusiveArch: %{rust_arches}
- rust-rustdoc-stripper
ExclusiveArch: %{rust_arches}
- rust-rustfilt
ExclusiveArch: %{rust_arches}
- rust-rustfix
ExclusiveArch: %{rust_arches}
- rust-rustio
ExclusiveArch: %{rust_arches}
- rust-rusttype
ExclusiveArch: %{rust_arches}
- rust-rustversion
ExclusiveArch: %{rust_arches}
- rust-rusty-fork
ExclusiveArch: %{rust_arches}
- rust-rustyline
ExclusiveArch: %{rust_arches}
- rust-rustyline-derive
ExclusiveArch: %{rust_arches}
- rust-ryu
ExclusiveArch: %{rust_arches}
- rust-safe-transmute
ExclusiveArch: %{rust_arches}
- rust-safemem
ExclusiveArch: %{rust_arches}
- rust-same-file
ExclusiveArch: %{rust_arches}
- rust-sass-rs
ExclusiveArch: %{rust_arches}
- rust-sass-sys
ExclusiveArch: %{rust_arches}
- rust-scan_fmt
ExclusiveArch: %{rust_arches}
- rust-scheduled-thread-pool
ExclusiveArch: %{rust_arches}
- rust-scoped-tls
ExclusiveArch: %{rust_arches}
- rust-scoped-tls-hkt
ExclusiveArch: %{rust_arches}
- rust-scoped_threadpool
ExclusiveArch: %{rust_arches}
- rust-scopeguard
ExclusiveArch: %{rust_arches}
- rust-scopetime
ExclusiveArch: %{rust_arches}
- rust-scratch
ExclusiveArch: %{rust_arches}
- rust-scroll
ExclusiveArch: %{rust_arches}
- rust-scroll_derive
ExclusiveArch: %{rust_arches}
- rust-sct
ExclusiveArch: %{rust_arches}
- rust-sd
ExclusiveArch: %{rust_arches}
- rust-sd-notify
ExclusiveArch: %{rust_arches}
- rust-seahash
ExclusiveArch: %{rust_arches}
- rust-seahash3
ExclusiveArch: %{rust_arches}
- rust-secrecy
ExclusiveArch: %{rust_arches}
- rust-secret-service
ExclusiveArch: %{rust_arches}
- rust-semver
ExclusiveArch: %{rust_arches}
- rust-semver-parser
ExclusiveArch: %{rust_arches}
- rust-semver-parser0.7
ExclusiveArch: %{rust_arches}
- rust-semver-parser0.9
ExclusiveArch: %{rust_arches}
- rust-semver0.10
ExclusiveArch: %{rust_arches}
- rust-semver0.9
ExclusiveArch: %{rust_arches}
- rust-sequoia-autocrypt
ExclusiveArch: %{rust_arches}
- rust-sequoia-ipc
ExclusiveArch: %{rust_arches}
- rust-sequoia-keyring-linter
ExclusiveArch: %{rust_arches}
- rust-sequoia-net
ExclusiveArch: %{rust_arches}
- rust-sequoia-octopus-librnp
ExclusiveArch: %{rust_arches}
- rust-sequoia-openpgp
ExclusiveArch: %{rust_arches}
- rust-sequoia-sop
ExclusiveArch: %{rust_arches}
- rust-sequoia-sq
ExclusiveArch: %{rust_arches}
- rust-sequoia-sqv
ExclusiveArch: %{rust_arches}
- rust-serde
ExclusiveArch: %{rust_arches}
- rust-serde-big-array
ExclusiveArch: %{rust_arches}
- rust-serde-pickle
ExclusiveArch: %{rust_arches}
- rust-serde-value
ExclusiveArch: %{rust_arches}
- rust-serde-xml-rs
ExclusiveArch: %{rust_arches}
- rust-serde_bytes
ExclusiveArch: %{rust_arches}
- rust-serde_cbor
ExclusiveArch: %{rust_arches}
- rust-serde_derive
ExclusiveArch: %{rust_arches}
- rust-serde_fmt
ExclusiveArch: %{rust_arches}
- rust-serde_ignored
ExclusiveArch: %{rust_arches}
- rust-serde_json
ExclusiveArch: %{rust_arches}
- rust-serde_repr
ExclusiveArch: %{rust_arches}
- rust-serde_stacker
ExclusiveArch: %{rust_arches}
- rust-serde_test
ExclusiveArch: %{rust_arches}
- rust-serde_url_params
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded0.6
ExclusiveArch: %{rust_arches}
- rust-serde_with_macros
ExclusiveArch: %{rust_arches}
- rust-serde_yaml
ExclusiveArch: %{rust_arches}
- rust-serial-core
ExclusiveArch: %{rust_arches}
- rust-serial_test
ExclusiveArch: %{rust_arches}
- rust-serial_test_derive
ExclusiveArch: %{rust_arches}
- rust-servo-fontconfig
ExclusiveArch: %{rust_arches}
- rust-servo-fontconfig-sys
ExclusiveArch: %{rust_arches}
- rust-sev
ExclusiveArch: %{rust_arches}
- rust-sevctl
ExclusiveArch: %{rust_arches}
- rust-sha-1
ExclusiveArch: %{rust_arches}
- rust-sha1
ExclusiveArch: %{rust_arches}
- rust-sha1collisiondetection
ExclusiveArch: %{rust_arches}
- rust-sha2
ExclusiveArch: %{rust_arches}
- rust-sha3
ExclusiveArch: %{rust_arches}
- rust-shared_child
ExclusiveArch: %{rust_arches}
- rust-shared_library
ExclusiveArch: %{rust_arches}
- rust-shell-escape
ExclusiveArch: %{rust_arches}
- rust-shell-words
ExclusiveArch: %{rust_arches}
- rust-shellexpand
ExclusiveArch: %{rust_arches}
- rust-shlex
ExclusiveArch: %{rust_arches}
- rust-signal-hook
ExclusiveArch: %{rust_arches}
- rust-signal-hook-registry
ExclusiveArch: %{rust_arches}
- rust-signal-hook0.1
ExclusiveArch: %{rust_arches}
- rust-silver
ExclusiveArch: %{rust_arches}
- rust-simd_helpers
ExclusiveArch: %{rust_arches}
- rust-simple_asn1
ExclusiveArch: %{rust_arches}
- rust-simple_logger
ExclusiveArch: %{rust_arches}
- rust-simplelog
ExclusiveArch: %{rust_arches}
- rust-siphasher
ExclusiveArch: %{rust_arches}
- rust-size
ExclusiveArch: %{rust_arches}
- rust-sized-chunks
ExclusiveArch: %{rust_arches}
- rust-skeptic
ExclusiveArch: %{rust_arches}
- rust-skim
ExclusiveArch: %{rust_arches}
- rust-slab
ExclusiveArch: %{rust_arches}
- rust-slash-formatter
ExclusiveArch: %{rust_arches}
- rust-slice-deque
ExclusiveArch: %{rust_arches}
- rust-slog
ExclusiveArch: %{rust_arches}
- rust-slog-async
ExclusiveArch: %{rust_arches}
- rust-slog-scope
ExclusiveArch: %{rust_arches}
- rust-slog-term
ExclusiveArch: %{rust_arches}
- rust-slotmap
ExclusiveArch: %{rust_arches}
- rust-slug
ExclusiveArch: %{rust_arches}
- rust-sluice
ExclusiveArch: %{rust_arches}
- rust-smallvec
ExclusiveArch: %{rust_arches}
- rust-smart-default
ExclusiveArch: %{rust_arches}
- rust-smawk
ExclusiveArch: %{rust_arches}
- rust-smithay-client-toolkit
ExclusiveArch: %{rust_arches}
- rust-smithay-clipboard
ExclusiveArch: %{rust_arches}
- rust-snafu
ExclusiveArch: %{rust_arches}
- rust-snafu-derive
ExclusiveArch: %{rust_arches}
- rust-snake_case
ExclusiveArch: %{rust_arches}
- rust-snowflake
ExclusiveArch: %{rust_arches}
- rust-socket2
ExclusiveArch: %{rust_arches}
- rust-socket2_0.3
ExclusiveArch: %{rust_arches}
- rust-soup-sys
ExclusiveArch: %{rust_arches}
- rust-sourceview
ExclusiveArch: %{rust_arches}
- rust-spin
ExclusiveArch: %{rust_arches}
- rust-spin_on
ExclusiveArch: %{rust_arches}
- rust-spinning_top
ExclusiveArch: %{rust_arches}
- rust-spmc
ExclusiveArch: %{rust_arches}
- rust-ssh-key-dir
ExclusiveArch: %{rust_arches}
- rust-stable_deref_trait
ExclusiveArch: %{rust_arches}
- rust-stacker
ExclusiveArch: %{rust_arches}
- rust-standback
ExclusiveArch: %{rust_arches}
- rust-starship
ExclusiveArch: %{rust_arches}
- rust-starship_module_config_derive
ExclusiveArch: %{rust_arches}
- rust-static_assertions
ExclusiveArch: %{rust_arches}
- rust-statistical
ExclusiveArch: %{rust_arches}
- rust-stb_truetype
ExclusiveArch: %{rust_arches}
- rust-streaming-stats
ExclusiveArch: %{rust_arches}
- rust-string
ExclusiveArch: %{rust_arches}
- rust-string_cache
ExclusiveArch: %{rust_arches}
- rust-string_cache_codegen
ExclusiveArch: %{rust_arches}
- rust-string_cache_shared
ExclusiveArch: %{rust_arches}
- rust-strings
ExclusiveArch: %{rust_arches}
- rust-strip-ansi-escapes
ExclusiveArch: %{rust_arches}
- rust-strsim
ExclusiveArch: %{rust_arches}
- rust-structopt
ExclusiveArch: %{rust_arches}
- rust-structopt-derive
ExclusiveArch: %{rust_arches}
- rust-structopt-derive0.2
ExclusiveArch: %{rust_arches}
- rust-structopt0.2
ExclusiveArch: %{rust_arches}
- rust-strum
ExclusiveArch: %{rust_arches}
- rust-strum_macros
ExclusiveArch: %{rust_arches}
- rust-subtle
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin-sys
ExclusiveArch: %{rust_arches}
- rust-sval
ExclusiveArch: %{rust_arches}
- rust-sval_derive
ExclusiveArch: %{rust_arches}
- rust-sval_json
ExclusiveArch: %{rust_arches}
- rust-svg_metadata
ExclusiveArch: %{rust_arches}
- rust-sxd-document
ExclusiveArch: %{rust_arches}
- rust-syn
ExclusiveArch: %{rust_arches}
- rust-syn-mid
ExclusiveArch: %{rust_arches}
- rust-syn0.15
ExclusiveArch: %{rust_arches}
- rust-synom
ExclusiveArch: %{rust_arches}
- rust-synstructure
ExclusiveArch: %{rust_arches}
- rust-syntect
ExclusiveArch: %{rust_arches}
- rust-sys-info
ExclusiveArch: %{rust_arches}
- rust-sysinfo
ExclusiveArch: %{rust_arches}
- rust-system-deps
ExclusiveArch: %{rust_arches}
- rust-systemd
ExclusiveArch: %{rust_arches}
- rust-tabwriter
ExclusiveArch: %{rust_arches}
- rust-take
ExclusiveArch: %{rust_arches}
- rust-take_mut
ExclusiveArch: %{rust_arches}
- rust-tap
ExclusiveArch: %{rust_arches}
- rust-tar
ExclusiveArch: %{rust_arches}
- rust-target-lexicon
ExclusiveArch: %{rust_arches}
- rust-tealdeer
ExclusiveArch: %{rust_arches}
- rust-teloxide
ExclusiveArch: %{rust_arches}
- rust-teloxide-macros
ExclusiveArch: %{rust_arches}
- rust-tempdir
ExclusiveArch: %{rust_arches}
- rust-tempfile
ExclusiveArch: %{rust_arches}
- rust-tendril
ExclusiveArch: %{rust_arches}
- rust-tera
ExclusiveArch: %{rust_arches}
- rust-term
ExclusiveArch: %{rust_arches}
- rust-term_grid
ExclusiveArch: %{rust_arches}
- rust-term_size
ExclusiveArch: %{rust_arches}
- rust-termcolor
ExclusiveArch: %{rust_arches}
- rust-terminal_size
ExclusiveArch: %{rust_arches}
- rust-terminfo
ExclusiveArch: %{rust_arches}
- rust-termion
ExclusiveArch: %{rust_arches}
- rust-termios
ExclusiveArch: %{rust_arches}
- rust-test-assembler
ExclusiveArch: %{rust_arches}
- rust-tester
ExclusiveArch: %{rust_arches}
- rust-testing_logger
ExclusiveArch: %{rust_arches}
- rust-textwrap
ExclusiveArch: %{rust_arches}
- rust-textwrap0.11
ExclusiveArch: %{rust_arches}
- rust-textwrap0.12
ExclusiveArch: %{rust_arches}
- rust-thiserror
ExclusiveArch: %{rust_arches}
- rust-thiserror-impl
ExclusiveArch: %{rust_arches}
- rust-thread-id
ExclusiveArch: %{rust_arches}
- rust-thread-scoped
ExclusiveArch: %{rust_arches}
- rust-thread_local
ExclusiveArch: %{rust_arches}
- rust-threadpool
ExclusiveArch: %{rust_arches}
- rust-tiff
ExclusiveArch: %{rust_arches}
- rust-tiger-digest
ExclusiveArch: %{rust_arches}
- rust-time
ExclusiveArch: %{rust_arches}
- rust-time-macros
ExclusiveArch: %{rust_arches}
- rust-time-macros-impl
ExclusiveArch: %{rust_arches}
- rust-time0.1
ExclusiveArch: %{rust_arches}
- rust-timebomb
ExclusiveArch: %{rust_arches}
- rust-timer
ExclusiveArch: %{rust_arches}
- rust-timerfd
ExclusiveArch: %{rust_arches}
- rust-tiny-keccak
ExclusiveArch: %{rust_arches}
- rust-tiny_http
ExclusiveArch: %{rust_arches}
- rust-tinytemplate
ExclusiveArch: %{rust_arches}
- rust-tinyvec
ExclusiveArch: %{rust_arches}
- rust-tinyvec_macros
ExclusiveArch: %{rust_arches}
- rust-tokei
ExclusiveArch: %{rust_arches}
- rust-tokio
ExclusiveArch: %{rust_arches}
- rust-tokio-codec
ExclusiveArch: %{rust_arches}
- rust-tokio-core
ExclusiveArch: %{rust_arches}
- rust-tokio-current-thread
ExclusiveArch: %{rust_arches}
- rust-tokio-executor
ExclusiveArch: %{rust_arches}
- rust-tokio-fs
ExclusiveArch: %{rust_arches}
- rust-tokio-io
ExclusiveArch: %{rust_arches}
- rust-tokio-io-pool
ExclusiveArch: %{rust_arches}
- rust-tokio-macros
ExclusiveArch: %{rust_arches}
- rust-tokio-macros0.2
ExclusiveArch: %{rust_arches}
- rust-tokio-mock-task
ExclusiveArch: %{rust_arches}
- rust-tokio-native-tls
ExclusiveArch: %{rust_arches}
- rust-tokio-openssl
ExclusiveArch: %{rust_arches}
- rust-tokio-openssl0.4
ExclusiveArch: %{rust_arches}
- rust-tokio-reactor
ExclusiveArch: %{rust_arches}
- rust-tokio-socks
ExclusiveArch: %{rust_arches}
- rust-tokio-socks0.3
ExclusiveArch: %{rust_arches}
- rust-tokio-stream
ExclusiveArch: %{rust_arches}
- rust-tokio-sync
ExclusiveArch: %{rust_arches}
- rust-tokio-tcp
ExclusiveArch: %{rust_arches}
- rust-tokio-test
ExclusiveArch: %{rust_arches}
- rust-tokio-threadpool
ExclusiveArch: %{rust_arches}
- rust-tokio-timer
ExclusiveArch: %{rust_arches}
- rust-tokio-tls
ExclusiveArch: %{rust_arches}
- rust-tokio-tls0.2
ExclusiveArch: %{rust_arches}
- rust-tokio-tungstenite
ExclusiveArch: %{rust_arches}
- rust-tokio-udp
ExclusiveArch: %{rust_arches}
- rust-tokio-uds
ExclusiveArch: %{rust_arches}
- rust-tokio-util
ExclusiveArch: %{rust_arches}
- rust-tokio-util0.2
ExclusiveArch: %{rust_arches}
- rust-tokio-util0.3
ExclusiveArch: %{rust_arches}
- rust-tokio0.1
ExclusiveArch: %{rust_arches}
- rust-tokio0.2
ExclusiveArch: %{rust_arches}
- rust-toml
ExclusiveArch: %{rust_arches}
- rust-toml0.4
ExclusiveArch: %{rust_arches}
- rust-tower-layer
ExclusiveArch: %{rust_arches}
- rust-tower-service
ExclusiveArch: %{rust_arches}
- rust-tower-test
ExclusiveArch: %{rust_arches}
- rust-tower-util
ExclusiveArch: %{rust_arches}
- rust-tpm2-policy
ExclusiveArch: %{rust_arches}
- rust-tracing
ExclusiveArch: %{rust_arches}
- rust-tracing-attributes
ExclusiveArch: %{rust_arches}
- rust-tracing-core
ExclusiveArch: %{rust_arches}
- rust-tracing-futures
ExclusiveArch: %{rust_arches}
- rust-traitobject
ExclusiveArch: %{rust_arches}
- rust-treebitmap
ExclusiveArch: %{rust_arches}
- rust-treeline
ExclusiveArch: %{rust_arches}
- rust-trust-dns-native-tls
ExclusiveArch: %{rust_arches}
- rust-trust-dns-native-tls0.19
ExclusiveArch: %{rust_arches}
- rust-trust-dns-openssl
ExclusiveArch: %{rust_arches}
- rust-trust-dns-openssl0.19
ExclusiveArch: %{rust_arches}
- rust-trust-dns-proto
ExclusiveArch: %{rust_arches}
- rust-trust-dns-proto0.19
ExclusiveArch: %{rust_arches}
- rust-trust-dns-resolver
ExclusiveArch: %{rust_arches}
- rust-trust-dns-resolver0.19
ExclusiveArch: %{rust_arches}
- rust-try-lock
ExclusiveArch: %{rust_arches}
- rust-try_from
ExclusiveArch: %{rust_arches}
- rust-try_or
ExclusiveArch: %{rust_arches}
- rust-trybuild
ExclusiveArch: %{rust_arches}
- rust-tss-esapi
ExclusiveArch: %{rust_arches}
- rust-tss-esapi-sys
ExclusiveArch: %{rust_arches}
- rust-ttf-parser
ExclusiveArch: %{rust_arches}
- rust-tui
ExclusiveArch: %{rust_arches}
- rust-tui-react
ExclusiveArch: %{rust_arches}
- rust-tui0.11
ExclusiveArch: %{rust_arches}
- rust-tui0.9
ExclusiveArch: %{rust_arches}
- rust-tuikit
ExclusiveArch: %{rust_arches}
- rust-tungstenite
ExclusiveArch: %{rust_arches}
- rust-twoway
ExclusiveArch: %{rust_arches}
- rust-typeable
ExclusiveArch: %{rust_arches}
- rust-typed-arena
ExclusiveArch: %{rust_arches}
- rust-typemap
ExclusiveArch: %{rust_arches}
- rust-typenum
ExclusiveArch: %{rust_arches}
- rust-typetag
ExclusiveArch: %{rust_arches}
- rust-typetag-impl
ExclusiveArch: %{rust_arches}
- rust-tzfile
ExclusiveArch: %{rust_arches}
- rust-ucd-parse
ExclusiveArch: %{rust_arches}
- rust-ucd-trie
ExclusiveArch: %{rust_arches}
- rust-ucd-util
ExclusiveArch: %{rust_arches}
- rust-unchecked-index
ExclusiveArch: %{rust_arches}
- rust-unescape
ExclusiveArch: %{rust_arches}
- rust-unic-char-property
ExclusiveArch: %{rust_arches}
- rust-unic-char-range
ExclusiveArch: %{rust_arches}
- rust-unic-common
ExclusiveArch: %{rust_arches}
- rust-unic-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-category
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-common
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-version
ExclusiveArch: %{rust_arches}
- rust-unicase
ExclusiveArch: %{rust_arches}
- rust-unicase1
ExclusiveArch: %{rust_arches}
- rust-unicode-bidi
ExclusiveArch: %{rust_arches}
- rust-unicode-normalization
ExclusiveArch: %{rust_arches}
- rust-unicode-segmentation
ExclusiveArch: %{rust_arches}
- rust-unicode-width
ExclusiveArch: %{rust_arches}
- rust-unicode-xid
ExclusiveArch: %{rust_arches}
- rust-unicode-xid0.1
ExclusiveArch: %{rust_arches}
- rust-unicode_categories
ExclusiveArch: %{rust_arches}
- rust-unindent
ExclusiveArch: %{rust_arches}
- rust-universal-hash
ExclusiveArch: %{rust_arches}
- rust-unix_socket
ExclusiveArch: %{rust_arches}
- rust-unreachable
ExclusiveArch: %{rust_arches}
- rust-unsafe-any
ExclusiveArch: %{rust_arches}
- rust-untrusted
ExclusiveArch: %{rust_arches}
- rust-uom
ExclusiveArch: %{rust_arches}
- rust-url
ExclusiveArch: %{rust_arches}
- rust-url1
ExclusiveArch: %{rust_arches}
- rust-url_serde
ExclusiveArch: %{rust_arches}
- rust-urlencoding
ExclusiveArch: %{rust_arches}
- rust-urlocator
ExclusiveArch: %{rust_arches}
- rust-urlshortener
ExclusiveArch: %{rust_arches}
- rust-users
ExclusiveArch: %{rust_arches}
- rust-users0.10
ExclusiveArch: %{rust_arches}
- rust-utf-8
ExclusiveArch: %{rust_arches}
- rust-utf8-cstr
ExclusiveArch: %{rust_arches}
- rust-utf8-ranges
ExclusiveArch: %{rust_arches}
- rust-utf8-width
ExclusiveArch: %{rust_arches}
- rust-utf8parse
ExclusiveArch: %{rust_arches}
- rust-uuid
ExclusiveArch: %{rust_arches}
- rust-uuid0.7
ExclusiveArch: %{rust_arches}
- rust-v_escape
ExclusiveArch: %{rust_arches}
- rust-v_escape_derive
ExclusiveArch: %{rust_arches}
- rust-v_frame
ExclusiveArch: %{rust_arches}
- rust-v_htmlescape
ExclusiveArch: %{rust_arches}
- rust-value-bag
ExclusiveArch: %{rust_arches}
- rust-varlink
ExclusiveArch: %{rust_arches}
- rust-varlink-cli
ExclusiveArch: %{rust_arches}
- rust-varlink_generator
ExclusiveArch: %{rust_arches}
- rust-varlink_parser
ExclusiveArch: %{rust_arches}
- rust-varlink_stdinterfaces
ExclusiveArch: %{rust_arches}
- rust-vec-arena
ExclusiveArch: %{rust_arches}
- rust-vec_map
ExclusiveArch: %{rust_arches}
- rust-vergen
ExclusiveArch: %{rust_arches}
- rust-version
ExclusiveArch: %{rust_arches}
- rust-version-compare
ExclusiveArch: %{rust_arches}
- rust-version-sync
ExclusiveArch: %{rust_arches}
- rust-version-sync0.8
ExclusiveArch: %{rust_arches}
- rust-version_check
ExclusiveArch: %{rust_arches}
- rust-vmm-sys-util
ExclusiveArch: x86_64 aarch64 ppc64le
- rust-vmw_backdoor
ExclusiveArch: %{rust_arches}
- rust-void
ExclusiveArch: %{rust_arches}
- rust-vsprintf
ExclusiveArch: %{rust_arches}
- rust-vte
ExclusiveArch: %{rust_arches}
- rust-vte0.3
ExclusiveArch: %{rust_arches}
- rust-vte_generate_state_changes
ExclusiveArch: %{rust_arches}
- rust-wait-timeout
ExclusiveArch: %{rust_arches}
- rust-waker-fn
ExclusiveArch: %{rust_arches}
- rust-walkdir
ExclusiveArch: %{rust_arches}
- rust-want
ExclusiveArch: %{rust_arches}
- rust-warp
ExclusiveArch: %{rust_arches}
- rust-warp0.2
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-backend
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-futures
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-macro
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-macro-support
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-shared
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-test
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-test-macro
ExclusiveArch: %{rust_arches}
- rust-wasmer_enumset
ExclusiveArch: %{rust_arches}
- rust-wasmer_enumset_derive
ExclusiveArch: %{rust_arches}
- rust-wasmparser
ExclusiveArch: %{rust_arches}
- rust-wast
ExclusiveArch: %{rust_arches}
- rust-wat
ExclusiveArch: %{rust_arches}
- rust-wayland-client
ExclusiveArch: %{rust_arches}
- rust-wayland-commons
ExclusiveArch: %{rust_arches}
- rust-wayland-cursor
ExclusiveArch: %{rust_arches}
- rust-wayland-egl
ExclusiveArch: %{rust_arches}
- rust-wayland-protocols
ExclusiveArch: %{rust_arches}
- rust-wayland-scanner
ExclusiveArch: %{rust_arches}
- rust-wayland-server
ExclusiveArch: %{rust_arches}
- rust-wayland-sys
ExclusiveArch: %{rust_arches}
- rust-web-sys
ExclusiveArch: %{rust_arches}
- rust-webbrowser
ExclusiveArch: %{rust_arches}
- rust-webkit2gtk
ExclusiveArch: %{rust_arches}
- rust-webkit2gtk-sys
ExclusiveArch: %{rust_arches}
- rust-webpki
ExclusiveArch: %{rust_arches}
- rust-webpki-roots
ExclusiveArch: %{rust_arches}
- rust-websocket
ExclusiveArch: %{rust_arches}
- rust-websocket-base
ExclusiveArch: %{rust_arches}
- rust-weezl
ExclusiveArch: %{rust_arches}
- rust-which
ExclusiveArch: %{rust_arches}
- rust-wild
ExclusiveArch: %{rust_arches}
- rust-wildmatch
ExclusiveArch: %{rust_arches}
- rust-winit
ExclusiveArch: %{rust_arches}
- rust-ws
ExclusiveArch: %{rust_arches}
- rust-wyz
ExclusiveArch: %{rust_arches}
- rust-x11
ExclusiveArch: %{rust_arches}
- rust-x11-clipboard
ExclusiveArch: %{rust_arches}
- rust-x11-dl
ExclusiveArch: %{rust_arches}
- rust-xattr
ExclusiveArch: %{rust_arches}
- rust-xcb
ExclusiveArch: %{rust_arches}
- rust-xcursor
ExclusiveArch: %{rust_arches}
- rust-xdg
ExclusiveArch: %{rust_arches}
- rust-xi-unicode
ExclusiveArch: %{rust_arches}
- rust-xkbcommon
ExclusiveArch: %{rust_arches}
- rust-xml-rs
ExclusiveArch: %{rust_arches}
- rust-xml5ever
ExclusiveArch: %{rust_arches}
- rust-xmlparser
ExclusiveArch: %{rust_arches}
- rust-xz2
ExclusiveArch: %{rust_arches}
- rust-y4m
ExclusiveArch: %{rust_arches}
- rust-yaml-rust
ExclusiveArch: %{rust_arches}
- rust-yaml-rust0.3
ExclusiveArch: %{rust_arches}
- rust-ybaas
ExclusiveArch: %{rust_arches}
- rust-ytop
ExclusiveArch: %{rust_arches}
- rust-yubibomb
ExclusiveArch: %{rust_arches}
- rust-yup-oauth2
ExclusiveArch: %{rust_arches}
- rust-zbase32
ExclusiveArch: %{rust_arches}
- rust-zbus
ExclusiveArch: %{rust_arches}
- rust-zbus_macros
ExclusiveArch: %{rust_arches}
- rust-zeroize
ExclusiveArch: %{rust_arches}
- rust-zeroize_derive
ExclusiveArch: %{rust_arches}
- rust-zincati
ExclusiveArch: %{rust_arches}
- rust-zip
ExclusiveArch: %{rust_arches}
- rust-zoneinfo_compiled
ExclusiveArch: %{rust_arches}
- rust-zoxide
ExclusiveArch: %{rust_arches}
- rust-zram-generator
ExclusiveArch: %{rust_arches}
- rust-zstd
ExclusiveArch: %{rust_arches}
- rust-zstd-safe
ExclusiveArch: %{rust_arches}
- rust-zstd-sys
ExclusiveArch: %{rust_arches}
- rust-zvariant
ExclusiveArch: %{rust_arches}
- rust-zvariant_derive
ExclusiveArch: %{rust_arches}
- s390utils
ExclusiveArch: s390 s390x
- safetyblanket
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- sagemath
ExclusiveArch: aarch64 %{ix86} x86_64 ppc sparcv9
- sbcl
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- sbd
ExclusiveArch: i686 x86_64 s390x aarch64 ppc64le
- sbsigntools
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- seabios
ExclusiveArch: x86_64
- seadrive-gui
ExclusiveArch: %{qt5_qtwebengine_arches}
- seafile-client
ExclusiveArch: %{qt5_qtwebengine_arches}
- seamonkey
ExclusiveArch: x86_64
- seqan3
ExclusiveArch: %{power64} x86_64 aarch64
- servicelog
ExclusiveArch: ppc %{power64}
- sgabios
ExclusiveArch: %{ix86} x86_64
- sharpfont
ExclusiveArch: %mono_arches
- sharpziplib
ExclusiveArch: %{mono_arches}
- shim
ExclusiveArch: %{efi}
- shim-unsigned-aarch64
ExclusiveArch: aarch64
- shim-unsigned-x64
ExclusiveArch: x86_64
- sigul
ExclusiveArch: x86_64
- skychart
ExclusiveArch: %{fpc_arches}
- snapd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- soup-sharp
ExclusiveArch: %{mono_arches}
- sparkleshare
ExclusiveArch: %{mono_arches}
- spicctrl
ExclusiveArch: %{ix86} x86_64
- spice
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- springlobby
ExclusiveArch: %{ix86} x86_64
- squeekboard
ExclusiveArch: %{rust_arches}
- startdde
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- statsd
ExclusiveArch: %{nodejs_arches} noarch
- stratis-cli
ExclusiveArch: %{rust_arches} noarch
- stratisd
ExclusiveArch: %{rust_arches}
- stripesnoop
ExclusiveArch: %{ix86} x86_64
- supercollider
ExclusiveArch: %{qt5_qtwebengine_arches}
- supermin
ExclusiveArch: %{kernel_arches}
- svt-av1
ExclusiveArch: x86_64
- svt-vp9
ExclusiveArch: x86_64
- swift-lang
ExclusiveArch: x86_64 aarch64
- sysbench
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64le s390x
- syslinux
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- taglib-sharp
ExclusiveArch: %{mono_arches}
- tarantool
ExclusiveArch: %{ix86} x86_64
- tboot
ExclusiveArch: %{ix86} x86_64
- tdlib
ExclusiveArch: x86_64
- templates_parser
ExclusiveArch: %GPRbuild_arches
- ternimal
ExclusiveArch: %{rust_arches}
- testcloud
ExclusiveArch: %{kernel_arches} noarch
- themonospot-base
ExclusiveArch: %mono_arches
- themonospot-console
ExclusiveArch: %mono_arches
- themonospot-gui-gtk
ExclusiveArch: %mono_arches
- themonospot-plugin-avi
ExclusiveArch: %mono_arches
- themonospot-plugin-mkv
ExclusiveArch: %mono_arches
- thermald
ExclusiveArch: %{ix86} x86_64
- tilix
ExclusiveArch: %{ldc_arches}
- tmux-top
ExclusiveArch: %{go_arches}
- tomboy
ExclusiveArch: %{mono_arches}
- topojson-client
ExclusiveArch: %{nodejs_arches} noarch
- topojson-server
ExclusiveArch: %{nodejs_arches} noarch
- topojson-simplify
ExclusiveArch: %{nodejs_arches} noarch
- torbrowser-launcher
ExclusiveArch: %{ix86} x86_64
- tuned-profiles-nfv-host-bin
ExclusiveArch: %{ix86} x86_64
- uClibc
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
- ucx
ExclusiveArch: aarch64 ppc64le x86_64
- ugene
ExclusiveArch: %{ix86} x86_64
- uglify-js
ExclusiveArch: %{nodejs_arches} noarch
- uglify-js1
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- unetbootin
ExclusiveArch: %{ix86} x86_64
- ursa-major
ExclusiveArch: noarch aarch64 ppc64le s390x x86_64
- usd
ExclusiveArch: x86_64
- v8-314
ExclusiveArch: %{ix86} x86_64 %{arm} mips mipsel ppc ppc64
- valgrind
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64
- vboot-utils
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- vim-go
ExclusiveArch: %{?golang_arches}%{!?golang_arches:%{ix86} x86_64 %{arm}}
- virt-p2v
ExclusiveArch: x86_64
- virt-v2v
ExclusiveArch: x86_64
- virtualbox-guest-additions
ExclusiveArch: i686 x86_64
- vkd3d
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- vmaf
ExclusiveArch: x86_64
- vmem
ExclusiveArch: x86_64
- vmemcache
ExclusiveArch: x86_64 ppc64 ppc64le s390x aarch64
- vrq
ExclusiveArch: %{ix86} x86_64
- warsow
ExclusiveArch: %{ix86} x86_64 %{arm}
- warsow-data
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{ix86} x86_64 %{arm}
- webkit2-sharp
ExclusiveArch: %mono_arches
- wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: %{ix86} %{arm}
- wine-dxvk
ExclusiveArch: %{ix86} x86_64
- winetricks
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- wxMaxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
- x2goclient
ExclusiveArch: x86_64
- xe-guest-utilities-latest
ExclusiveArch: %{ix86} x86_64
- xen
ExclusiveArch: %{ix86} x86_64 armv7hl aarch64
- xmlada
ExclusiveArch: %{GPRbuild_arches}
- xorg-x11-drv-armsoc
ExclusiveArch: %{arm} aarch64
- xorg-x11-drv-intel
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-openchrome
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vesa
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vmware
ExclusiveArch: %{ix86} x86_64 ia64
- xsp
ExclusiveArch: %mono_arches
- yarnpkg
ExclusiveArch: %{nodejs_arches} noarch
- zeromq-ada
ExclusiveArch: %{GPRbuild_arches}
- zlib-ada
ExclusiveArch: %{GPRbuild_arches}
- zlib-ng
ExclusiveArch: aarch64 i686 ppc64le s390x x86_64
- zola
ExclusiveArch: %{rust_arches}
2 years, 11 months
Architecture specific change in rpms/rust-cursive_core.git
by githook-noreply@fedoraproject.org
The package rpms/rust-cursive_core.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-cursive_core.git/commit/?id=....
Change:
+ExclusiveArch: %{rust_arches}
Thanks.
Full change:
============
commit a8b2adf74c602f615740c778af608af682e68f9a
Author: Davide Cavalca <dcavalca(a)fedoraproject.org>
Date: Mon May 17 14:17:03 2021 -0700
import #1959622
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..32bc6a2
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/cursive_core-0.2.2.crate
diff --git a/cursive_core-fix-metadata.diff b/cursive_core-fix-metadata.diff
new file mode 100644
index 0000000..f4b5099
--- /dev/null
+++ b/cursive_core-fix-metadata.diff
@@ -0,0 +1,20 @@
+--- cursive_core-0.2.2/Cargo.toml 1970-01-01T00:00:00+00:00
++++ cursive_core-0.2.2/Cargo.toml 2021-05-11T22:30:07.012726+00:00
+@@ -28,7 +28,7 @@
+ [lib]
+ name = "cursive_core"
+ [dependencies.ahash]
+-version = "0.6"
++version = "0.7.2"
+
+ [dependencies.chrono]
+ version = "0.4"
+@@ -37,7 +37,7 @@
+ version = "0.5"
+
+ [dependencies.enum-map]
+-version = "0.6"
++version = "1.1.0"
+
+ [dependencies.lazy_static]
+ version = "1"
diff --git a/rust-cursive_core.spec b/rust-cursive_core.spec
new file mode 100644
index 0000000..e0e95bc
--- /dev/null
+++ b/rust-cursive_core.spec
@@ -0,0 +1,126 @@
+# Generated by rust2rpm 16
+%bcond_without check
+%global debug_package %{nil}
+
+%global crate cursive_core
+
+Name: rust-%{crate}
+Version: 0.2.2
+Release: 1%{?dist}
+Summary: Core components for the Cursive TUI
+
+# Upstream license specification: MIT
+License: MIT
+URL: https://crates.io/crates/cursive_core
+Source: %{crates_source}
+# Initial patched metadata
+# * Bump ahash to 0.7.2
+# * Bump enum-map to 1.1.0
+Patch0: cursive_core-fix-metadata.diff
+
+ExclusiveArch: %{rust_arches}
+%if %{__cargo_skip_build}
+BuildArch: noarch
+%endif
+
+BuildRequires: rust-packaging
+
+%global _description %{expand:
+Core components for the Cursive TUI.}
+
+%description %{_description}
+
+%package devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description devel %{_description}
+
+This package contains library source intended for building other packages
+which use "%{crate}" crate.
+
+%files devel
+%doc Readme.md
+%{cargo_registry}/%{crate}-%{version_no_tilde}/
+
+%package -n %{name}+default-devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description -n %{name}+default-devel %{_description}
+
+This package contains library source intended for building other packages
+which use "default" feature of "%{crate}" crate.
+
+%files -n %{name}+default-devel
+%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+
+%package -n %{name}+markdown-devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description -n %{name}+markdown-devel %{_description}
+
+This package contains library source intended for building other packages
+which use "markdown" feature of "%{crate}" crate.
+
+%files -n %{name}+markdown-devel
+%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+
+%package -n %{name}+pulldown-cmark-devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description -n %{name}+pulldown-cmark-devel %{_description}
+
+This package contains library source intended for building other packages
+which use "pulldown-cmark" feature of "%{crate}" crate.
+
+%files -n %{name}+pulldown-cmark-devel
+%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+
+%package -n %{name}+toml-devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description -n %{name}+toml-devel %{_description}
+
+This package contains library source intended for building other packages
+which use "toml" feature of "%{crate}" crate.
+
+%files -n %{name}+toml-devel
+%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+
+%package -n %{name}+unstable_scroll-devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description -n %{name}+unstable_scroll-devel %{_description}
+
+This package contains library source intended for building other packages
+which use "unstable_scroll" feature of "%{crate}" crate.
+
+%files -n %{name}+unstable_scroll-devel
+%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+
+%prep
+%autosetup -n %{crate}-%{version_no_tilde} -p1
+%cargo_prep
+
+%generate_buildrequires
+%cargo_generate_buildrequires
+
+%build
+%cargo_build
+
+%install
+%cargo_install
+
+%if %{with check}
+%check
+%cargo_test
+%endif
+
+%changelog
+* Tue May 11 15:30:07 PDT 2021 Davide Cavalca <dcavalca(a)fedoraproject.org> - 0.2.2-1
+- Initial package
diff --git a/sources b/sources
new file mode 100644
index 0000000..6111d61
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (cursive_core-0.2.2.crate) = 24418b74c02de0cf0a5b95108425933201e45ca64a307b8bdf3c360d257add6f31edd5fc2ae24d2f91e5725b982a8f45d3a06f3d8661651ce924f91497c84da8
2 years, 11 months
Architecture specific change in rpms/rust-wasmer_enumset.git
by githook-noreply@fedoraproject.org
The package rpms/rust-wasmer_enumset.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-wasmer_enumset.git/commit/?i....
Change:
+ExclusiveArch: %{rust_arches}
Thanks.
Full change:
============
commit 367a4701561baec7405c73a98fa59d3ea161e0e0
Author: Davide Cavalca <dcavalca(a)fedoraproject.org>
Date: Mon May 17 13:57:07 2021 -0700
import #1959619
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b6ab508
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/wasmer_enumset-1.0.1.crate
diff --git a/rust-wasmer_enumset.spec b/rust-wasmer_enumset.spec
new file mode 100644
index 0000000..f64f0de
--- /dev/null
+++ b/rust-wasmer_enumset.spec
@@ -0,0 +1,101 @@
+# Generated by rust2rpm 16
+# Disable due to circular dependency
+%bcond_with check
+%global debug_package %{nil}
+
+%global crate wasmer_enumset
+
+Name: rust-%{crate}
+Version: 1.0.1
+Release: 1%{?dist}
+Summary: Library for creating compact sets of enums
+
+# Upstream license specification: MIT/Apache-2.0
+License: MIT or ASL 2.0
+URL: https://crates.io/crates/wasmer_enumset
+Source: %{crates_source}
+
+ExclusiveArch: %{rust_arches}
+%if %{__cargo_skip_build}
+BuildArch: noarch
+%endif
+
+BuildRequires: rust-packaging
+
+%global _description %{expand:
+Library for creating compact sets of enums. Wasmer fork to work around `syn`
+issue. This will not be updated once the issue is fixed upstream.}
+
+%description %{_description}
+
+%package devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description devel %{_description}
+
+This package contains library source intended for building other packages
+which use "%{crate}" crate.
+
+%files devel
+%{cargo_registry}/%{crate}-%{version_no_tilde}/
+
+%package -n %{name}+default-devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description -n %{name}+default-devel %{_description}
+
+This package contains library source intended for building other packages
+which use "default" feature of "%{crate}" crate.
+
+%files -n %{name}+default-devel
+%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+
+%package -n %{name}+serde-devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description -n %{name}+serde-devel %{_description}
+
+This package contains library source intended for building other packages
+which use "serde" feature of "%{crate}" crate.
+
+%files -n %{name}+serde-devel
+%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+
+%package -n %{name}+serde2-devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description -n %{name}+serde2-devel %{_description}
+
+This package contains library source intended for building other packages
+which use "serde2" feature of "%{crate}" crate.
+
+%files -n %{name}+serde2-devel
+%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+
+%prep
+%autosetup -n %{crate}-%{version_no_tilde} -p1
+# Fix permissions
+chmod -x src/*.rs tests/*.rs tests/*/*
+%cargo_prep
+
+%generate_buildrequires
+%cargo_generate_buildrequires
+
+%build
+%cargo_build
+
+%install
+%cargo_install
+
+%if %{with check}
+%check
+%cargo_test
+%endif
+
+%changelog
+* Fri May 07 10:32:24 PDT 2021 Davide Cavalca <dcavalca(a)fedoraproject.org> - 1.0.1-1
+- Initial package
diff --git a/sources b/sources
new file mode 100644
index 0000000..430fb18
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (wasmer_enumset-1.0.1.crate) = 3af873c3b6de090666e75c75303ea4dccee85839b09039a6f98f3c7b62c7f7fb070951d26bd35c17b81c1b668956eddf19a57201d981d4536d594d38b14e9a25
2 years, 11 months
Architecture specific change in rpms/rust-wasmer_enumset_derive.git
by githook-noreply@fedoraproject.org
The package rpms/rust-wasmer_enumset_derive.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-wasmer_enumset_derive.git/co....
Change:
+ExclusiveArch: %{rust_arches}
Thanks.
Full change:
============
commit ba6bc521d46cc5d95925c5941c24cbd3a2c1b510
Author: Davide Cavalca <dcavalca(a)fedoraproject.org>
Date: Mon May 17 12:53:15 2021 -0700
import #1959615
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..c8c5c4b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/wasmer_enumset_derive-0.5.0.crate
diff --git a/rust-wasmer_enumset_derive.spec b/rust-wasmer_enumset_derive.spec
new file mode 100644
index 0000000..4ceaca3
--- /dev/null
+++ b/rust-wasmer_enumset_derive.spec
@@ -0,0 +1,90 @@
+# Generated by rust2rpm 16
+%bcond_without check
+%global debug_package %{nil}
+
+%global crate wasmer_enumset_derive
+
+Name: rust-%{crate}
+Version: 0.5.0
+Release: 1%{?dist}
+Summary: Internal helper crate for enumset
+
+# Upstream license specification: MIT/Apache-2.0
+License: MIT or ASL 2.0
+URL: https://crates.io/crates/wasmer_enumset_derive
+Source: %{crates_source}
+# Bump darling to 0.12.2
+Patch0: wasmer_enumset_derive-fix-metadata.diff
+
+ExclusiveArch: %{rust_arches}
+%if %{__cargo_skip_build}
+BuildArch: noarch
+%endif
+
+BuildRequires: rust-packaging
+
+%global _description %{expand:
+Internal helper crate for enumset. Not public API. Wasmer fork to work around
+`syn` issue. This will not be updated once the issue is fixed upstream.}
+
+%description %{_description}
+
+%package devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description devel %{_description}
+
+This package contains library source intended for building other packages
+which use "%{crate}" crate.
+
+%files devel
+%{cargo_registry}/%{crate}-%{version_no_tilde}/
+
+%package -n %{name}+default-devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description -n %{name}+default-devel %{_description}
+
+This package contains library source intended for building other packages
+which use "default" feature of "%{crate}" crate.
+
+%files -n %{name}+default-devel
+%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+
+%package -n %{name}+serde-devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description -n %{name}+serde-devel %{_description}
+
+This package contains library source intended for building other packages
+which use "serde" feature of "%{crate}" crate.
+
+%files -n %{name}+serde-devel
+%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+
+%prep
+%autosetup -n %{crate}-%{version_no_tilde} -p1
+# Fix permissions
+chmod -x src/lib.rs
+%cargo_prep
+
+%generate_buildrequires
+%cargo_generate_buildrequires
+
+%build
+%cargo_build
+
+%install
+%cargo_install
+
+%if %{with check}
+%check
+%cargo_test
+%endif
+
+%changelog
+* Tue May 11 14:56:35 PDT 2021 Davide Cavalca <dcavalca(a)fedoraproject.org> - 0.5.0-1
+- Initial package
diff --git a/sources b/sources
new file mode 100644
index 0000000..77e5131
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (wasmer_enumset_derive-0.5.0.crate) = 5e2877f23bfbe38fcacb6551b2c4cba4dd67c23b33909a79bd3472ccbae3fecad328e3542986cb926d68a8571c9af17dbd3f4bf833a47afa66337fd62fe35f04
diff --git a/wasmer_enumset_derive-fix-metadata.diff b/wasmer_enumset_derive-fix-metadata.diff
new file mode 100644
index 0000000..a69fb2e
--- /dev/null
+++ b/wasmer_enumset_derive-fix-metadata.diff
@@ -0,0 +1,11 @@
+--- wasmer_enumset_derive-0.5.0/Cargo.toml 2021-01-11T22:21:39+00:00
++++ wasmer_enumset_derive-0.5.0/Cargo.toml 2021-05-11T21:56:34.940960+00:00
+@@ -22,7 +22,7 @@
+ [lib]
+ proc-macro = true
+ [dependencies.darling]
+-version = "0.10.0"
++version = "0.12.2"
+
+ [dependencies.proc-macro2]
+ version = "1"
2 years, 11 months
Architecture specific change in rpms/rust-enum-map.git
by githook-noreply@fedoraproject.org
The package rpms/rust-enum-map.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-enum-map.git/commit/?id=df8f....
Change:
+ExclusiveArch: %{rust_arches}
Thanks.
Full change:
============
commit df8f2a20e9844d7415dd9ac04ba16fcab7731770
Author: Davide Cavalca <dcavalca(a)fedoraproject.org>
Date: Mon May 17 13:35:28 2021 -0700
import #1959613
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..c060827
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/enum-map-1.1.0.crate
diff --git a/rust-enum-map.spec b/rust-enum-map.spec
new file mode 100644
index 0000000..52c9b5f
--- /dev/null
+++ b/rust-enum-map.spec
@@ -0,0 +1,98 @@
+# Generated by rust2rpm 16
+%bcond_without check
+%global debug_package %{nil}
+
+%global crate enum-map
+
+Name: rust-%{crate}
+Version: 1.1.0
+Release: 1%{?dist}
+Summary: Map with C-like enum keys represented internally as an array
+
+# Upstream license specification: MIT/Apache-2.0
+License: MIT or ASL 2.0
+URL: https://crates.io/crates/enum-map
+Source: %{crates_source}
+
+ExclusiveArch: %{rust_arches}
+%if %{__cargo_skip_build}
+BuildArch: noarch
+%endif
+
+BuildRequires: rust-packaging
+
+%global _description %{expand:
+Map with C-like enum keys represented internally as an array.}
+
+%description %{_description}
+
+%package devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description devel %{_description}
+
+This package contains library source intended for building other packages
+which use "%{crate}" crate.
+
+%files devel
+%doc README.md
+%{cargo_registry}/%{crate}-%{version_no_tilde}/
+
+%package -n %{name}+default-devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description -n %{name}+default-devel %{_description}
+
+This package contains library source intended for building other packages
+which use "default" feature of "%{crate}" crate.
+
+%files -n %{name}+default-devel
+%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+
+%package -n %{name}+arbitrary-devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description -n %{name}+arbitrary-devel %{_description}
+
+This package contains library source intended for building other packages
+which use "arbitrary" feature of "%{crate}" crate.
+
+%files -n %{name}+arbitrary-devel
+%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+
+%package -n %{name}+serde-devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description -n %{name}+serde-devel %{_description}
+
+This package contains library source intended for building other packages
+which use "serde" feature of "%{crate}" crate.
+
+%files -n %{name}+serde-devel
+%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+
+%prep
+%autosetup -n %{crate}-%{version_no_tilde} -p1
+%cargo_prep
+
+%generate_buildrequires
+%cargo_generate_buildrequires
+
+%build
+%cargo_build
+
+%install
+%cargo_install
+
+%if %{with check}
+%check
+%cargo_test
+%endif
+
+%changelog
+* Tue May 11 14:39:00 PDT 2021 Davide Cavalca <dcavalca(a)fedoraproject.org> - 1.1.0-1
+- Initial package
diff --git a/sources b/sources
new file mode 100644
index 0000000..a713290
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (enum-map-1.1.0.crate) = 4ecc34d14d2f39eb3db6440052f019c4a0874d3890d8c25f38e11384c69350b70d05a50045f7791d4a9afba96faa4fa4e0c2ecbd91cebf18097e3ab87f824ba2
2 years, 11 months
Architecture specific change in rpms/rust-enum-map-derive.git
by githook-noreply@fedoraproject.org
The package rpms/rust-enum-map-derive.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-enum-map-derive.git/commit/?....
Change:
+ExclusiveArch: %{rust_arches}
Thanks.
Full change:
============
commit 1c6ea82c106da745276838d88620bcbb4b9ffadd
Author: Davide Cavalca <dcavalca(a)fedoraproject.org>
Date: Mon May 17 12:52:37 2021 -0700
import #1959611
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..be28ae3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/enum-map-derive-0.5.0.crate
diff --git a/rust-enum-map-derive.spec b/rust-enum-map-derive.spec
new file mode 100644
index 0000000..004769b
--- /dev/null
+++ b/rust-enum-map-derive.spec
@@ -0,0 +1,74 @@
+# Generated by rust2rpm 16
+# Disable tests due to circual dependency with enum-map
+%bcond_with check
+%global debug_package %{nil}
+
+%global crate enum-map-derive
+
+Name: rust-%{crate}
+Version: 0.5.0
+Release: 1%{?dist}
+Summary: Macros 1.1 implementation of #[derive(Enum)]
+
+# Upstream license specification: MIT/Apache-2.0
+License: MIT or ASL 2.0
+URL: https://crates.io/crates/enum-map-derive
+Source: %{crates_source}
+
+ExclusiveArch: %{rust_arches}
+%if %{__cargo_skip_build}
+BuildArch: noarch
+%endif
+
+BuildRequires: rust-packaging
+
+%global _description %{expand:
+Macros 1.1 implementation of #[derive(Enum)].}
+
+%description %{_description}
+
+%package devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description devel %{_description}
+
+This package contains library source intended for building other packages
+which use "%{crate}" crate.
+
+%files devel
+%{cargo_registry}/%{crate}-%{version_no_tilde}/
+
+%package -n %{name}+default-devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description -n %{name}+default-devel %{_description}
+
+This package contains library source intended for building other packages
+which use "default" feature of "%{crate}" crate.
+
+%files -n %{name}+default-devel
+%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+
+%prep
+%autosetup -n %{crate}-%{version_no_tilde} -p1
+%cargo_prep
+
+%generate_buildrequires
+%cargo_generate_buildrequires
+
+%build
+%cargo_build
+
+%install
+%cargo_install
+
+%if %{with check}
+%check
+%cargo_test
+%endif
+
+%changelog
+* Tue May 11 14:40:00 PDT 2021 Davide Cavalca <dcavalca(a)fedoraproject.org> - 0.5.0-1
+- Initial package
diff --git a/sources b/sources
new file mode 100644
index 0000000..0cfd145
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (enum-map-derive-0.5.0.crate) = a94c45095cb96b45e79c3bae6492158b08c29386f8c03bd7d9093bc65d836c635667cdc081d1f501a5d35ec81d122baad4702301985e44f5bc1ac08db120e1aa
2 years, 11 months
Architecture specific change in rpms/cbmc.git
by githook-noreply@fedoraproject.org
The package rpms/cbmc.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/cbmc.git/commit/?id=546f6b30c4028....
Change:
+%ifarch i686
Thanks.
Full change:
============
commit 546f6b30c4028f31b41bddd7fce2d66c05482711
Author: Vincent Mihalkovic <vmihalko(a)redhat.com>
Date: Wed May 12 22:35:10 2021 +0200
New upstream release
diff --git a/cbmc-32bit-arch-fix.patch b/cbmc-32bit-arch-fix.patch
deleted file mode 100644
index 491859c..0000000
--- a/cbmc-32bit-arch-fix.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git src/ansi-c/library/gcc.c src/ansi-c/library/gcc.c
-index e38167e81..96a2739bc 100644
---- src/ansi-c/library/gcc.c
-+++ src/ansi-c/library/gcc.c
-@@ -1,3 +1,4 @@
-+#define _XOPEN_SOURCE
- /* FUNCTION: __builtin_ia32_sfence */
-
- inline void __builtin_ia32_sfence(void)
-@@ -65,8 +66,10 @@ inline int __builtin_clzl(unsigned long int x)
- x = x | (x >> 8);
- if(sizeof(x) >= 4)
- x = x | (x >> 16);
-+ #if LONG_BIT > 32
- if(sizeof(x) >= 8)
- x = x | (x >> 32);
-+ #endif
-
- return __builtin_popcountl(~x);
- }
diff --git a/cbmc-errno-realpath.patch b/cbmc-errno-realpath.patch
deleted file mode 100644
index e4e5e88..0000000
--- a/cbmc-errno-realpath.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git src/util/tempdir.cpp src/util/tempdir.cpp
-index d61636b..c1fb7a9 100644
---- src/util/tempdir.cpp
-+++ src/util/tempdir.cpp
-@@ -93,7 +93,8 @@ std::string get_temporary_directory(const std::string &name_template)
- errno = 0;
- char *wd = realpath(td, nullptr);
-
-- if(wd == nullptr || errno != 0)
-+ // Comment out due to the https://bugzilla.redhat.com/show_bug.cgi?id=1916968
-+ if(wd == nullptr /* || errno != 0 */)
- throw system_exceptiont(
- std::string("realpath failed: ") + std::strerror(errno));
-
diff --git a/cbmc-f35-deprecated-python.patch b/cbmc-f35-deprecated-python.patch
new file mode 100644
index 0000000..e753f55
--- /dev/null
+++ b/cbmc-f35-deprecated-python.patch
@@ -0,0 +1,24 @@
+diff --git regression/CMakeLists.txt regression/CMakeLists.txt
+index 42c772a..e9b8807 100644
+--- regression/CMakeLists.txt
++++ regression/CMakeLists.txt
+@@ -73,7 +73,6 @@ add_subdirectory(validate-trace-xml-schema)
+ add_subdirectory(cbmc-primitives)
+ add_subdirectory(goto-interpreter)
+ add_subdirectory(cbmc-sequentialization)
+-add_subdirectory(cpp-linter)
+
+ if(WITH_MEMORY_ANALYZER)
+ add_subdirectory(snapshot-harness)
+diff --git regression/Makefile regression/Makefile
+index b344727..a53ef45 100644
+--- regression/Makefile
++++ regression/Makefile
+@@ -46,7 +46,6 @@ DIRS = cbmc \
+ cbmc-primitives \
+ goto-interpreter \
+ cbmc-sequentialization \
+- cpp-linter \
+ # Empty last line
+
+ ifeq ($(OS),Windows_NT)
diff --git a/cbmc-f35-enable_sse2.patch b/cbmc-f35-enable_sse2.patch
new file mode 100644
index 0000000..6c995ec
--- /dev/null
+++ b/cbmc-f35-enable_sse2.patch
@@ -0,0 +1,15 @@
+diff --git src/ansi-c/library_check.sh src/ansi-c/library_check.sh
+index bb362dc..3c64fba 100755
+--- src/ansi-c/library_check.sh
++++ src/ansi-c/library_check.sh
+@@ -10,8 +10,8 @@ for f in "$@"; do
+ perl -p -i -e 's/(_mm_.fence)/s$1/' __libcheck.c
+ perl -p -i -e 's/(__sync_)/s$1/' __libcheck.c
+ perl -p -i -e 's/(__atomic_)/s$1/' __libcheck.c
+- "$CC" -std=gnu99 -E -include library/cprover.h -D__CPROVER_bool=_Bool -D__CPROVER_thread_local=__thread -DLIBRARY_CHECK -o __libcheck.i __libcheck.c
+- "$CC" -S -Wall -Werror -pedantic -Wextra -std=gnu99 __libcheck.i \
++ "$CC" -std=gnu99 -msse2 -E -include library/cprover.h -D__CPROVER_bool=_Bool -D__CPROVER_thread_local=__thread -DLIBRARY_CHECK -o __libcheck.i __libcheck.c
++ "$CC" -S -Wall -Werror -pedantic -Wextra -std=gnu99 -msse2 __libcheck.i \
+ -o __libcheck.s -Wno-unused-label -Wno-unknown-pragmas
+ ec="${?}"
+ rm __libcheck.s __libcheck.i __libcheck.c
diff --git a/cbmc-goto-cc-type-change.patch b/cbmc-goto-cc-type-change.patch
deleted file mode 100644
index abd3bb8..0000000
--- a/cbmc-goto-cc-type-change.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git src/goto-cc/ms_link_cmdline.cpp src/goto-cc/ms_link_cmdline.cpp
-index 771b45c..e0a8a06 100644
---- src/goto-cc/ms_link_cmdline.cpp
-+++ src/goto-cc/ms_link_cmdline.cpp
-@@ -333,7 +333,7 @@ void ms_link_cmdlinet::process_link_option(const std::string &s)
- return;
- }
-
-- for(const std::string &ms_link_option : ms_link_options)
-+ for(const std::string ms_link_option : ms_link_options)
- {
- // These are case insensitive.
- if(
diff --git a/cbmc-signed-char.patch b/cbmc-signed-char.patch
deleted file mode 100644
index a871f96..0000000
--- a/cbmc-signed-char.patch
+++ /dev/null
@@ -1,529 +0,0 @@
-diff --git unit/util/string_utils/escape_non_alnum.cpp unit/util/string_utils/escape_non_alnum.cpp
-index 147ef17..ebc1f8f 100644
---- unit/util/string_utils/escape_non_alnum.cpp
-+++ unit/util/string_utils/escape_non_alnum.cpp
-@@ -20,267 +20,267 @@ TEST_CASE(
- "escape_non_alnum should work with any single byte signed character (part 1)",
- "[core][utils][string_utils][escape_non_alnum]")
- {
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x00)}) == "_00");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x01)}) == "_01");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x02)}) == "_02");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x03)}) == "_03");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x04)}) == "_04");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x05)}) == "_05");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x06)}) == "_06");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x07)}) == "_07");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x08)}) == "_08");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x09)}) == "_09");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x0A)}) == "_0a");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x0B)}) == "_0b");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x0C)}) == "_0c");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x0D)}) == "_0d");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x0E)}) == "_0e");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x0F)}) == "_0f");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x10)}) == "_10");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x11)}) == "_11");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x12)}) == "_12");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x13)}) == "_13");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x14)}) == "_14");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x15)}) == "_15");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x16)}) == "_16");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x17)}) == "_17");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x18)}) == "_18");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x19)}) == "_19");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x1A)}) == "_1a");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x1B)}) == "_1b");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x1C)}) == "_1c");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x1D)}) == "_1d");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x1E)}) == "_1e");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x1F)}) == "_1f");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x20)}) == "_20");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x21)}) == "_21");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x22)}) == "_22");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x23)}) == "_23");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x24)}) == "_24");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x25)}) == "_25");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x26)}) == "_26");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x27)}) == "_27");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x28)}) == "_28");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x29)}) == "_29");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x2A)}) == "_2a");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x2B)}) == "_2b");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x2B)}) == "_2b");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x2C)}) == "_2c");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x2D)}) == "_2d");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x2E)}) == "_2e");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x2F)}) == "_2f");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x30)}) == "0");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x31)}) == "1");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x32)}) == "2");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x33)}) == "3");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x34)}) == "4");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x35)}) == "5");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x36)}) == "6");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x37)}) == "7");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x38)}) == "8");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x39)}) == "9");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x3A)}) == "_3a");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x3B)}) == "_3b");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x3C)}) == "_3c");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x3D)}) == "_3d");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x3E)}) == "_3e");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x3F)}) == "_3f");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x40)}) == "_40");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x41)}) == "A");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x42)}) == "B");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x43)}) == "C");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x44)}) == "D");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x45)}) == "E");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x46)}) == "F");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x47)}) == "G");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x48)}) == "H");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x49)}) == "I");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x4A)}) == "J");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x4B)}) == "K");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x4C)}) == "L");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x4D)}) == "M");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x4E)}) == "N");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x4F)}) == "O");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x50)}) == "P");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x51)}) == "Q");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x52)}) == "R");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x53)}) == "S");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x54)}) == "T");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x55)}) == "U");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x56)}) == "V");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x57)}) == "W");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x58)}) == "X");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x59)}) == "Y");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x5A)}) == "Z");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x5B)}) == "_5b");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x5C)}) == "_5c");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x5D)}) == "_5d");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x5E)}) == "_5e");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x5F)}) == "__");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x60)}) == "_60");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x61)}) == "a");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x62)}) == "b");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x63)}) == "c");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x64)}) == "d");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x65)}) == "e");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x66)}) == "f");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x67)}) == "g");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x68)}) == "h");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x69)}) == "i");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x6A)}) == "j");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x6B)}) == "k");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x6C)}) == "l");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x6D)}) == "m");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x6E)}) == "n");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x6F)}) == "o");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x70)}) == "p");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x71)}) == "q");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x72)}) == "r");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x73)}) == "s");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x74)}) == "t");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x75)}) == "u");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x76)}) == "v");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x77)}) == "w");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x78)}) == "x");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x79)}) == "y");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x7A)}) == "z");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x7B)}) == "_7b");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x7C)}) == "_7c");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x7D)}) == "_7d");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x7E)}) == "_7e");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x7F)}) == "_7f");
-+ CHECK(escape_non_alnum({'\x00'}) == "_00");
-+ CHECK(escape_non_alnum({'\x01'}) == "_01");
-+ CHECK(escape_non_alnum({'\x02'}) == "_02");
-+ CHECK(escape_non_alnum({'\x03'}) == "_03");
-+ CHECK(escape_non_alnum({'\x04'}) == "_04");
-+ CHECK(escape_non_alnum({'\x05'}) == "_05");
-+ CHECK(escape_non_alnum({'\x06'}) == "_06");
-+ CHECK(escape_non_alnum({'\x07'}) == "_07");
-+ CHECK(escape_non_alnum({'\x08'}) == "_08");
-+ CHECK(escape_non_alnum({'\x09'}) == "_09");
-+ CHECK(escape_non_alnum({'\x0A'}) == "_0a");
-+ CHECK(escape_non_alnum({'\x0B'}) == "_0b");
-+ CHECK(escape_non_alnum({'\x0C'}) == "_0c");
-+ CHECK(escape_non_alnum({'\x0D'}) == "_0d");
-+ CHECK(escape_non_alnum({'\x0E'}) == "_0e");
-+ CHECK(escape_non_alnum({'\x0F'}) == "_0f");
-+ CHECK(escape_non_alnum({'\x10'}) == "_10");
-+ CHECK(escape_non_alnum({'\x11'}) == "_11");
-+ CHECK(escape_non_alnum({'\x12'}) == "_12");
-+ CHECK(escape_non_alnum({'\x13'}) == "_13");
-+ CHECK(escape_non_alnum({'\x14'}) == "_14");
-+ CHECK(escape_non_alnum({'\x15'}) == "_15");
-+ CHECK(escape_non_alnum({'\x16'}) == "_16");
-+ CHECK(escape_non_alnum({'\x17'}) == "_17");
-+ CHECK(escape_non_alnum({'\x18'}) == "_18");
-+ CHECK(escape_non_alnum({'\x19'}) == "_19");
-+ CHECK(escape_non_alnum({'\x1A'}) == "_1a");
-+ CHECK(escape_non_alnum({'\x1B'}) == "_1b");
-+ CHECK(escape_non_alnum({'\x1C'}) == "_1c");
-+ CHECK(escape_non_alnum({'\x1D'}) == "_1d");
-+ CHECK(escape_non_alnum({'\x1E'}) == "_1e");
-+ CHECK(escape_non_alnum({'\x1F'}) == "_1f");
-+ CHECK(escape_non_alnum({'\x20'}) == "_20");
-+ CHECK(escape_non_alnum({'\x21'}) == "_21");
-+ CHECK(escape_non_alnum({'\x22'}) == "_22");
-+ CHECK(escape_non_alnum({'\x23'}) == "_23");
-+ CHECK(escape_non_alnum({'\x24'}) == "_24");
-+ CHECK(escape_non_alnum({'\x25'}) == "_25");
-+ CHECK(escape_non_alnum({'\x26'}) == "_26");
-+ CHECK(escape_non_alnum({'\x27'}) == "_27");
-+ CHECK(escape_non_alnum({'\x28'}) == "_28");
-+ CHECK(escape_non_alnum({'\x29'}) == "_29");
-+ CHECK(escape_non_alnum({'\x2A'}) == "_2a");
-+ CHECK(escape_non_alnum({'\x2B'}) == "_2b");
-+ CHECK(escape_non_alnum({'\x2B'}) == "_2b");
-+ CHECK(escape_non_alnum({'\x2C'}) == "_2c");
-+ CHECK(escape_non_alnum({'\x2D'}) == "_2d");
-+ CHECK(escape_non_alnum({'\x2E'}) == "_2e");
-+ CHECK(escape_non_alnum({'\x2F'}) == "_2f");
-+ CHECK(escape_non_alnum({'\x30'}) == "0");
-+ CHECK(escape_non_alnum({'\x31'}) == "1");
-+ CHECK(escape_non_alnum({'\x32'}) == "2");
-+ CHECK(escape_non_alnum({'\x33'}) == "3");
-+ CHECK(escape_non_alnum({'\x34'}) == "4");
-+ CHECK(escape_non_alnum({'\x35'}) == "5");
-+ CHECK(escape_non_alnum({'\x36'}) == "6");
-+ CHECK(escape_non_alnum({'\x37'}) == "7");
-+ CHECK(escape_non_alnum({'\x38'}) == "8");
-+ CHECK(escape_non_alnum({'\x39'}) == "9");
-+ CHECK(escape_non_alnum({'\x3A'}) == "_3a");
-+ CHECK(escape_non_alnum({'\x3B'}) == "_3b");
-+ CHECK(escape_non_alnum({'\x3C'}) == "_3c");
-+ CHECK(escape_non_alnum({'\x3D'}) == "_3d");
-+ CHECK(escape_non_alnum({'\x3E'}) == "_3e");
-+ CHECK(escape_non_alnum({'\x3F'}) == "_3f");
-+ CHECK(escape_non_alnum({'\x40'}) == "_40");
-+ CHECK(escape_non_alnum({'\x41'}) == "A");
-+ CHECK(escape_non_alnum({'\x42'}) == "B");
-+ CHECK(escape_non_alnum({'\x43'}) == "C");
-+ CHECK(escape_non_alnum({'\x44'}) == "D");
-+ CHECK(escape_non_alnum({'\x45'}) == "E");
-+ CHECK(escape_non_alnum({'\x46'}) == "F");
-+ CHECK(escape_non_alnum({'\x47'}) == "G");
-+ CHECK(escape_non_alnum({'\x48'}) == "H");
-+ CHECK(escape_non_alnum({'\x49'}) == "I");
-+ CHECK(escape_non_alnum({'\x4A'}) == "J");
-+ CHECK(escape_non_alnum({'\x4B'}) == "K");
-+ CHECK(escape_non_alnum({'\x4C'}) == "L");
-+ CHECK(escape_non_alnum({'\x4D'}) == "M");
-+ CHECK(escape_non_alnum({'\x4E'}) == "N");
-+ CHECK(escape_non_alnum({'\x4F'}) == "O");
-+ CHECK(escape_non_alnum({'\x50'}) == "P");
-+ CHECK(escape_non_alnum({'\x51'}) == "Q");
-+ CHECK(escape_non_alnum({'\x52'}) == "R");
-+ CHECK(escape_non_alnum({'\x53'}) == "S");
-+ CHECK(escape_non_alnum({'\x54'}) == "T");
-+ CHECK(escape_non_alnum({'\x55'}) == "U");
-+ CHECK(escape_non_alnum({'\x56'}) == "V");
-+ CHECK(escape_non_alnum({'\x57'}) == "W");
-+ CHECK(escape_non_alnum({'\x58'}) == "X");
-+ CHECK(escape_non_alnum({'\x59'}) == "Y");
-+ CHECK(escape_non_alnum({'\x5A'}) == "Z");
-+ CHECK(escape_non_alnum({'\x5B'}) == "_5b");
-+ CHECK(escape_non_alnum({'\x5C'}) == "_5c");
-+ CHECK(escape_non_alnum({'\x5D'}) == "_5d");
-+ CHECK(escape_non_alnum({'\x5E'}) == "_5e");
-+ CHECK(escape_non_alnum({'\x5F'}) == "__");
-+ CHECK(escape_non_alnum({'\x60'}) == "_60");
-+ CHECK(escape_non_alnum({'\x61'}) == "a");
-+ CHECK(escape_non_alnum({'\x62'}) == "b");
-+ CHECK(escape_non_alnum({'\x63'}) == "c");
-+ CHECK(escape_non_alnum({'\x64'}) == "d");
-+ CHECK(escape_non_alnum({'\x65'}) == "e");
-+ CHECK(escape_non_alnum({'\x66'}) == "f");
-+ CHECK(escape_non_alnum({'\x67'}) == "g");
-+ CHECK(escape_non_alnum({'\x68'}) == "h");
-+ CHECK(escape_non_alnum({'\x69'}) == "i");
-+ CHECK(escape_non_alnum({'\x6A'}) == "j");
-+ CHECK(escape_non_alnum({'\x6B'}) == "k");
-+ CHECK(escape_non_alnum({'\x6C'}) == "l");
-+ CHECK(escape_non_alnum({'\x6D'}) == "m");
-+ CHECK(escape_non_alnum({'\x6E'}) == "n");
-+ CHECK(escape_non_alnum({'\x6F'}) == "o");
-+ CHECK(escape_non_alnum({'\x70'}) == "p");
-+ CHECK(escape_non_alnum({'\x71'}) == "q");
-+ CHECK(escape_non_alnum({'\x72'}) == "r");
-+ CHECK(escape_non_alnum({'\x73'}) == "s");
-+ CHECK(escape_non_alnum({'\x74'}) == "t");
-+ CHECK(escape_non_alnum({'\x75'}) == "u");
-+ CHECK(escape_non_alnum({'\x76'}) == "v");
-+ CHECK(escape_non_alnum({'\x77'}) == "w");
-+ CHECK(escape_non_alnum({'\x78'}) == "x");
-+ CHECK(escape_non_alnum({'\x79'}) == "y");
-+ CHECK(escape_non_alnum({'\x7A'}) == "z");
-+ CHECK(escape_non_alnum({'\x7B'}) == "_7b");
-+ CHECK(escape_non_alnum({'\x7C'}) == "_7c");
-+ CHECK(escape_non_alnum({'\x7D'}) == "_7d");
-+ CHECK(escape_non_alnum({'\x7E'}) == "_7e");
-+ CHECK(escape_non_alnum({'\x7F'}) == "_7f");
- }
-
- TEST_CASE(
- "escape_non_alnum should work with any single byte signed character (part 2)",
- "[core][utils][string_utils][escape_non_alnum]")
- {
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x80)}) == "_80");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x81)}) == "_81");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x82)}) == "_82");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x83)}) == "_83");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x84)}) == "_84");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x85)}) == "_85");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x86)}) == "_86");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x87)}) == "_87");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x88)}) == "_88");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x89)}) == "_89");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x8A)}) == "_8a");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x8B)}) == "_8b");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x8C)}) == "_8c");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x8D)}) == "_8d");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x8E)}) == "_8e");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x8F)}) == "_8f");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x90)}) == "_90");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x91)}) == "_91");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x92)}) == "_92");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x93)}) == "_93");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x94)}) == "_94");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x95)}) == "_95");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x96)}) == "_96");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x97)}) == "_97");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x98)}) == "_98");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x99)}) == "_99");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x9A)}) == "_9a");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x9B)}) == "_9b");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x9C)}) == "_9c");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x9D)}) == "_9d");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x9E)}) == "_9e");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0x9F)}) == "_9f");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xA0)}) == "_a0");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xA1)}) == "_a1");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xA2)}) == "_a2");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xA3)}) == "_a3");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xA4)}) == "_a4");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xA5)}) == "_a5");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xA6)}) == "_a6");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xA7)}) == "_a7");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xA8)}) == "_a8");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xA9)}) == "_a9");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xAA)}) == "_aa");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xAB)}) == "_ab");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xAC)}) == "_ac");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xAD)}) == "_ad");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xAE)}) == "_ae");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xAF)}) == "_af");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xB0)}) == "_b0");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xB1)}) == "_b1");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xB2)}) == "_b2");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xB3)}) == "_b3");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xB4)}) == "_b4");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xB5)}) == "_b5");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xB6)}) == "_b6");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xB7)}) == "_b7");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xB8)}) == "_b8");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xB9)}) == "_b9");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xBA)}) == "_ba");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xBB)}) == "_bb");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xBC)}) == "_bc");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xBD)}) == "_bd");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xBE)}) == "_be");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xBF)}) == "_bf");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xC0)}) == "_c0");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xC1)}) == "_c1");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xC2)}) == "_c2");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xC3)}) == "_c3");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xC4)}) == "_c4");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xC5)}) == "_c5");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xC6)}) == "_c6");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xC7)}) == "_c7");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xC8)}) == "_c8");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xC9)}) == "_c9");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xCA)}) == "_ca");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xCB)}) == "_cb");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xCC)}) == "_cc");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xCD)}) == "_cd");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xCE)}) == "_ce");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xCF)}) == "_cf");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xD0)}) == "_d0");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xD1)}) == "_d1");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xD2)}) == "_d2");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xD3)}) == "_d3");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xD4)}) == "_d4");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xD5)}) == "_d5");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xD6)}) == "_d6");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xD7)}) == "_d7");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xD8)}) == "_d8");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xD9)}) == "_d9");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xDA)}) == "_da");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xDB)}) == "_db");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xDC)}) == "_dc");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xDD)}) == "_dd");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xDE)}) == "_de");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xDF)}) == "_df");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xE0)}) == "_e0");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xE1)}) == "_e1");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xE2)}) == "_e2");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xE3)}) == "_e3");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xE4)}) == "_e4");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xE5)}) == "_e5");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xE6)}) == "_e6");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xE7)}) == "_e7");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xE8)}) == "_e8");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xE9)}) == "_e9");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xEA)}) == "_ea");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xEB)}) == "_eb");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xEC)}) == "_ec");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xED)}) == "_ed");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xEE)}) == "_ee");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xEF)}) == "_ef");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xF0)}) == "_f0");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xF1)}) == "_f1");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xF2)}) == "_f2");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xF3)}) == "_f3");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xF4)}) == "_f4");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xF5)}) == "_f5");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xF6)}) == "_f6");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xF7)}) == "_f7");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xF8)}) == "_f8");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xF9)}) == "_f9");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xFA)}) == "_fa");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xFB)}) == "_fb");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xFC)}) == "_fc");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xFD)}) == "_fd");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xFE)}) == "_fe");
-- CHECK(escape_non_alnum(std::string{static_cast<signed char>(0xFF)}) == "_ff");
-+ CHECK(escape_non_alnum({'\x80'}) == "_80");
-+ CHECK(escape_non_alnum({'\x81'}) == "_81");
-+ CHECK(escape_non_alnum({'\x82'}) == "_82");
-+ CHECK(escape_non_alnum({'\x83'}) == "_83");
-+ CHECK(escape_non_alnum({'\x84'}) == "_84");
-+ CHECK(escape_non_alnum({'\x85'}) == "_85");
-+ CHECK(escape_non_alnum({'\x86'}) == "_86");
-+ CHECK(escape_non_alnum({'\x87'}) == "_87");
-+ CHECK(escape_non_alnum({'\x88'}) == "_88");
-+ CHECK(escape_non_alnum({'\x89'}) == "_89");
-+ CHECK(escape_non_alnum({'\x8A'}) == "_8a");
-+ CHECK(escape_non_alnum({'\x8B'}) == "_8b");
-+ CHECK(escape_non_alnum({'\x8C'}) == "_8c");
-+ CHECK(escape_non_alnum({'\x8D'}) == "_8d");
-+ CHECK(escape_non_alnum({'\x8E'}) == "_8e");
-+ CHECK(escape_non_alnum({'\x8F'}) == "_8f");
-+ CHECK(escape_non_alnum({'\x90'}) == "_90");
-+ CHECK(escape_non_alnum({'\x91'}) == "_91");
-+ CHECK(escape_non_alnum({'\x92'}) == "_92");
-+ CHECK(escape_non_alnum({'\x93'}) == "_93");
-+ CHECK(escape_non_alnum({'\x94'}) == "_94");
-+ CHECK(escape_non_alnum({'\x95'}) == "_95");
-+ CHECK(escape_non_alnum({'\x96'}) == "_96");
-+ CHECK(escape_non_alnum({'\x97'}) == "_97");
-+ CHECK(escape_non_alnum({'\x98'}) == "_98");
-+ CHECK(escape_non_alnum({'\x99'}) == "_99");
-+ CHECK(escape_non_alnum({'\x9A'}) == "_9a");
-+ CHECK(escape_non_alnum({'\x9B'}) == "_9b");
-+ CHECK(escape_non_alnum({'\x9C'}) == "_9c");
-+ CHECK(escape_non_alnum({'\x9D'}) == "_9d");
-+ CHECK(escape_non_alnum({'\x9E'}) == "_9e");
-+ CHECK(escape_non_alnum({'\x9F'}) == "_9f");
-+ CHECK(escape_non_alnum({'\xA0'}) == "_a0");
-+ CHECK(escape_non_alnum({'\xA1'}) == "_a1");
-+ CHECK(escape_non_alnum({'\xA2'}) == "_a2");
-+ CHECK(escape_non_alnum({'\xA3'}) == "_a3");
-+ CHECK(escape_non_alnum({'\xA4'}) == "_a4");
-+ CHECK(escape_non_alnum({'\xA5'}) == "_a5");
-+ CHECK(escape_non_alnum({'\xA6'}) == "_a6");
-+ CHECK(escape_non_alnum({'\xA7'}) == "_a7");
-+ CHECK(escape_non_alnum({'\xA8'}) == "_a8");
-+ CHECK(escape_non_alnum({'\xA9'}) == "_a9");
-+ CHECK(escape_non_alnum({'\xAA'}) == "_aa");
-+ CHECK(escape_non_alnum({'\xAB'}) == "_ab");
-+ CHECK(escape_non_alnum({'\xAC'}) == "_ac");
-+ CHECK(escape_non_alnum({'\xAD'}) == "_ad");
-+ CHECK(escape_non_alnum({'\xAE'}) == "_ae");
-+ CHECK(escape_non_alnum({'\xAF'}) == "_af");
-+ CHECK(escape_non_alnum({'\xB0'}) == "_b0");
-+ CHECK(escape_non_alnum({'\xB1'}) == "_b1");
-+ CHECK(escape_non_alnum({'\xB2'}) == "_b2");
-+ CHECK(escape_non_alnum({'\xB3'}) == "_b3");
-+ CHECK(escape_non_alnum({'\xB4'}) == "_b4");
-+ CHECK(escape_non_alnum({'\xB5'}) == "_b5");
-+ CHECK(escape_non_alnum({'\xB6'}) == "_b6");
-+ CHECK(escape_non_alnum({'\xB7'}) == "_b7");
-+ CHECK(escape_non_alnum({'\xB8'}) == "_b8");
-+ CHECK(escape_non_alnum({'\xB9'}) == "_b9");
-+ CHECK(escape_non_alnum({'\xBA'}) == "_ba");
-+ CHECK(escape_non_alnum({'\xBB'}) == "_bb");
-+ CHECK(escape_non_alnum({'\xBC'}) == "_bc");
-+ CHECK(escape_non_alnum({'\xBD'}) == "_bd");
-+ CHECK(escape_non_alnum({'\xBE'}) == "_be");
-+ CHECK(escape_non_alnum({'\xBF'}) == "_bf");
-+ CHECK(escape_non_alnum({'\xC0'}) == "_c0");
-+ CHECK(escape_non_alnum({'\xC1'}) == "_c1");
-+ CHECK(escape_non_alnum({'\xC2'}) == "_c2");
-+ CHECK(escape_non_alnum({'\xC3'}) == "_c3");
-+ CHECK(escape_non_alnum({'\xC4'}) == "_c4");
-+ CHECK(escape_non_alnum({'\xC5'}) == "_c5");
-+ CHECK(escape_non_alnum({'\xC6'}) == "_c6");
-+ CHECK(escape_non_alnum({'\xC7'}) == "_c7");
-+ CHECK(escape_non_alnum({'\xC8'}) == "_c8");
-+ CHECK(escape_non_alnum({'\xC9'}) == "_c9");
-+ CHECK(escape_non_alnum({'\xCA'}) == "_ca");
-+ CHECK(escape_non_alnum({'\xCB'}) == "_cb");
-+ CHECK(escape_non_alnum({'\xCC'}) == "_cc");
-+ CHECK(escape_non_alnum({'\xCD'}) == "_cd");
-+ CHECK(escape_non_alnum({'\xCE'}) == "_ce");
-+ CHECK(escape_non_alnum({'\xCF'}) == "_cf");
-+ CHECK(escape_non_alnum({'\xD0'}) == "_d0");
-+ CHECK(escape_non_alnum({'\xD1'}) == "_d1");
-+ CHECK(escape_non_alnum({'\xD2'}) == "_d2");
-+ CHECK(escape_non_alnum({'\xD3'}) == "_d3");
-+ CHECK(escape_non_alnum({'\xD4'}) == "_d4");
-+ CHECK(escape_non_alnum({'\xD5'}) == "_d5");
-+ CHECK(escape_non_alnum({'\xD6'}) == "_d6");
-+ CHECK(escape_non_alnum({'\xD7'}) == "_d7");
-+ CHECK(escape_non_alnum({'\xD8'}) == "_d8");
-+ CHECK(escape_non_alnum({'\xD9'}) == "_d9");
-+ CHECK(escape_non_alnum({'\xDA'}) == "_da");
-+ CHECK(escape_non_alnum({'\xDB'}) == "_db");
-+ CHECK(escape_non_alnum({'\xDC'}) == "_dc");
-+ CHECK(escape_non_alnum({'\xDD'}) == "_dd");
-+ CHECK(escape_non_alnum({'\xDE'}) == "_de");
-+ CHECK(escape_non_alnum({'\xDF'}) == "_df");
-+ CHECK(escape_non_alnum({'\xE0'}) == "_e0");
-+ CHECK(escape_non_alnum({'\xE1'}) == "_e1");
-+ CHECK(escape_non_alnum({'\xE2'}) == "_e2");
-+ CHECK(escape_non_alnum({'\xE3'}) == "_e3");
-+ CHECK(escape_non_alnum({'\xE4'}) == "_e4");
-+ CHECK(escape_non_alnum({'\xE5'}) == "_e5");
-+ CHECK(escape_non_alnum({'\xE6'}) == "_e6");
-+ CHECK(escape_non_alnum({'\xE7'}) == "_e7");
-+ CHECK(escape_non_alnum({'\xE8'}) == "_e8");
-+ CHECK(escape_non_alnum({'\xE9'}) == "_e9");
-+ CHECK(escape_non_alnum({'\xEA'}) == "_ea");
-+ CHECK(escape_non_alnum({'\xEB'}) == "_eb");
-+ CHECK(escape_non_alnum({'\xEC'}) == "_ec");
-+ CHECK(escape_non_alnum({'\xED'}) == "_ed");
-+ CHECK(escape_non_alnum({'\xEE'}) == "_ee");
-+ CHECK(escape_non_alnum({'\xEF'}) == "_ef");
-+ CHECK(escape_non_alnum({'\xF0'}) == "_f0");
-+ CHECK(escape_non_alnum({'\xF1'}) == "_f1");
-+ CHECK(escape_non_alnum({'\xF2'}) == "_f2");
-+ CHECK(escape_non_alnum({'\xF3'}) == "_f3");
-+ CHECK(escape_non_alnum({'\xF4'}) == "_f4");
-+ CHECK(escape_non_alnum({'\xF5'}) == "_f5");
-+ CHECK(escape_non_alnum({'\xF6'}) == "_f6");
-+ CHECK(escape_non_alnum({'\xF7'}) == "_f7");
-+ CHECK(escape_non_alnum({'\xF8'}) == "_f8");
-+ CHECK(escape_non_alnum({'\xF9'}) == "_f9");
-+ CHECK(escape_non_alnum({'\xFA'}) == "_fa");
-+ CHECK(escape_non_alnum({'\xFB'}) == "_fb");
-+ CHECK(escape_non_alnum({'\xFC'}) == "_fc");
-+ CHECK(escape_non_alnum({'\xFD'}) == "_fd");
-+ CHECK(escape_non_alnum({'\xFE'}) == "_fe");
-+ CHECK(escape_non_alnum({'\xFF'}) == "_ff");
- }
diff --git a/cbmc.spec b/cbmc.spec
index f7f4791..d398688 100644
--- a/cbmc.spec
+++ b/cbmc.spec
@@ -5,7 +5,7 @@
%define _lto_cflags %{nil}
Name: cbmc
-Version: 5.25.0
+Version: 5.29.0
Release: 1%{?dist}
Summary: Bounded Model Checker for ANSI-C and C++ programs
@@ -21,34 +21,33 @@ Patch0: %{name}-5.9-glpk.patch
Patch1: %{name}-5.12-fix-f33.patch
# Use minisat from Fedora repos
Patch2: %{name}-minisat.patch
-# Fix compilation on 32 bit architectures
-Patch3: %{name}-32bit-arch-fix.patch
-# Fix compilation of tests
-Patch4: %{name}-signed-char.patch
-# /src/goto-cc/ms_link_cmdline.cpp, use non-reference type 'const string'
-Patch5: %{name}-goto-cc-type-change.patch
-# Fix imcompatibility with glibc 2.33+
-Patch6: %{name}-errno-realpath.patch
# Skip some c++ tests as cbmc cannot parse some GCC 11 headers
-Patch7: %{name}-f34-fix-build.patch
-# from https://src.fedoraproject.org/rpms/catch/c/771d2
-Patch8: %{name}-catch2.patch
+Patch3: %{name}-f34-fix-build.patch
+# From https://src.fedoraproject.org/rpms/catch/c/771d2
+Patch4: %{name}-catch2.patch
+# Revert https://github.com/diffblue/cbmc/commit/a5b3008411f89a7800fde9003017242a8...
+# due deprecated python2 in fedora
+Patch5: %{name}-f35-deprecated-python.patch
+# Enable SSE2 (https://fedoraproject.org/wiki/Changes/Update_i686_architectural_baseline...)
+Patch6: %{name}-f35-enable_sse2.patch
-BuildRequires: bash
BuildRequires: bison
BuildRequires: cmake
BuildRequires: doxygen-latex
BuildRequires: flex
BuildRequires: gcc-c++
-BuildRequires: gdb
BuildRequires: glpk-devel
-BuildRequires: graphviz
BuildRequires: make
BuildRequires: minisat2-devel
BuildRequires: ninja-build
BuildRequires: zlib-devel
+# for the test
+BuildRequires: jq
+BuildRequires: gdb
+BuildRequires: perl
+BuildRequires: python3
+BuildRequires: z3
-Requires: clang
Requires: gcc-c++
Requires: sed
@@ -79,16 +78,14 @@ Output conversion utilities for CBMC (GCC like format)
%patch1 -p0
%endif
%patch2 -p0
-%ifarch armv7hl i686
+%if 0%{?fedora} > 33
%patch3 -p0
%endif
%patch4 -p0
%patch5 -p0
+%ifarch i686
%patch6 -p0
-%if 0%{?fedora} > 33
-%patch7 -p0
%endif
-%patch8 -p0
%build
%cmake -GNinja -DWITH_JBMC:BOOL=OFF -DWITH_SYSTEM_SAT_SOLVER:BOOL=ON -DBUILD_SHARED_LIBS:BOOL=OFF
@@ -121,7 +118,7 @@ ln -s xml_y.tab.h src/xmllang/xml_y.tab.hpp
%endif
%files
-%doc CHANGELOG README.md
+%doc README.md
%license LICENSE
%{_bindir}/*
%{_mandir}/man1/*
@@ -137,6 +134,9 @@ ln -s xml_y.tab.h src/xmllang/xml_y.tab.hpp
%changelog
+* Wed May 12 2021 Vincent Mihalkovic <vmihalko(a)redhat.com> - 5.29.0-1
+- New upstream release
+
* Wed Mar 10 2021 Vincent Mihalkovic <vmihalko(a)redhat.com> - 5.25.0-1
- Add csexec-cbmc.sh script
- New upstream release
diff --git a/sources b/sources
index 860bf0d..86311bc 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (cbmc-5.25.0.tar.gz) = 90fbaaaf9189be67a52b3e88f6165d3b9dc791c2d86b50ea2b4405f1f69071dadec404d0004a2e537cffbdf1a782e2b1a8240f21b259b114c8799fd2fe3a1a95
+SHA512 (cbmc-5.29.0.tar.gz) = 23402f72f13a04096d7a3cea8e570620558288118231833bf8cd4f3f47c85f11ed2719f5330f570b9263a5732999800017ec910dfe84b96dbd0326ad77ecf2c3
SHA512 (cbmc-utils-1.1.tar.gz) = d6170e08cc8b8c6a116cc5db883f8d13dfa976087434468eae1e213c8aada3ebf1bf913e565ff971defbe06106ad4180a5cff1a32bbbb2ee3b035a7600b0183c
2 years, 11 months
Architecture specific change in rpms/crest.git
by githook-noreply@fedoraproject.org
The package rpms/crest.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/crest.git/commit/?id=ca08589926ec....
Change:
+ExcludeArch: s390x
Thanks.
Full change:
============
commit ca08589926ec9ea7591f82cd2754678e15b612f6
Author: Susi Lehtola <jussilehtola(a)fedoraproject.org>
Date: Mon May 17 21:06:41 2021 +0000
Initial import
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..f2a1a88
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/crest-2.11.tar.gz
diff --git a/2674ba27bf7a5f3c20c6f505cdf0f8a852eda1d5.patch b/2674ba27bf7a5f3c20c6f505cdf0f8a852eda1d5.patch
new file mode 100644
index 0000000..09d3e7c
--- /dev/null
+++ b/2674ba27bf7a5f3c20c6f505cdf0f8a852eda1d5.patch
@@ -0,0 +1,948 @@
+From 2674ba27bf7a5f3c20c6f505cdf0f8a852eda1d5 Mon Sep 17 00:00:00 2001
+From: Sebastian Ehlert <28669218+awvwgk(a)users.noreply.github.com>
+Date: Wed, 3 Feb 2021 14:47:15 +0100
+Subject: [PATCH] Fixes for GCC (#31)
+
+* Fixes for GCC
+
+- tested with GCC 10.2
+- added one subroutine to wrap preprocessor usage
+- add explicit interfaces when necessary
+- add external attributes to functions
+- remove associated variables which are part of OMP pragmas
+- use .eqv. instead of .eq. to compare logicals
+- fix some type mismatches
+
+* IO cleanup for gcc compatibility
+---
+ src/CMakeLists.txt | 2 +-
+ src/Makefile | 6 +++++-
+ src/ccegen.f90 | 2 +-
+ src/confcross.f90 | 4 ++--
+ src/confopt.f90 | 9 +++------
+ src/confparse.f90 | 6 +++---
+ src/confscript2_misc.f90 | 30 ++++++++++++++++--------------
+ src/cregen.f90 | 27 ++++++++++++++++-----------
+ src/crest_main.f90 | 2 +-
+ src/ensemblecomp.f90 | 4 ++--
+ src/entropic.f90 | 7 ++++---
+ src/io.f | 18 +++++++++++-------
+ src/{iomod.f90 => iomod.F90} | 27 ++++++++++++++++++++++++---
+ src/ligands.f90 | 9 +++++++++
+ src/meson.build | 2 +-
+ src/msreact.f90 | 10 ++++++++++
+ src/normmd.f90 | 6 +++---
+ src/optinplace.f90 | 4 ++--
+ src/pka.f90 | 16 +++++++++++++---
+ src/propcalc.f90 | 16 ++++++++++++++--
+ src/stereoisomers.f90 | 13 +++++++------
+ src/symmetry2.f90 | 2 +-
+ src/trackorigin.f90 | 4 ++--
+ src/utilities.f | 2 +-
+ src/xtbmodef.f90 | 9 +++++++--
+ src/zdata.f90 | 24 ++++++++++++------------
+ src/ztopology.f90 | 25 +++++++++++++++++++++++++
+ 27 files changed, 196 insertions(+), 90 deletions(-)
+ rename src/{iomod.f90 => iomod.F90} (95%)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index c4598fe..11a139d 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -50,7 +50,7 @@ list(APPEND srcs
+ "${dir}/identifiers.f90"
+ "${dir}/intmodes.f"
+ "${dir}/io.f"
+- "${dir}/iomod.f90"
++ "${dir}/iomod.F90"
+ "${dir}/ligands.f90"
+ "${dir}/ls_rmsd.f90"
+ "${dir}/marqfit.f"
+diff --git a/src/Makefile b/src/Makefile
+index 026d20b..8d8bdc7 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -168,7 +168,7 @@ fortran.o : $(CUDA)/src/fortran.c
+ # aus *.F mache ein *.f
+ %.f: %.F
+ @echo "making $@ from $<"
+- $(CC) $(PREFLAG) $(PREOPTS) $< -o $@
++ $(FC) $(PREFLAG) $(PREOPTS) $< -o $@
+
+ # aus *.f mache ein *.o
+ $(OBJDIR)/%.o: %.f
+@@ -179,6 +179,10 @@ $(OBJDIR)/%.o: %.f90
+ @echo "making $@ from $<"
+ $(FC) $(FFLAGS) -c $< -o $@
+
++$(OBJDIR)/%.o: %.F90
++ @echo "making $@ from $<"
++ $(FC) $(FFLAGS) -c $< -o $@
++
+ # aus *.c mache ein *.o
+ $(OBJDIR)/%.o: %.c
+ @echo "making $@ from $<"
+diff --git a/src/ccegen.f90 b/src/ccegen.f90
+index 11641c3..546d0a3 100644
+--- a/src/ccegen.f90
++++ b/src/ccegen.f90
+@@ -891,7 +891,7 @@ end function eucdist
+ !
+ !======================================================================!
+ subroutine kmeans(nclust,npc,mm,centroid,pcvec,ndist,dist,member)
+- use iso_fortran_env, wp => real64, idp => int64, sp => real32, ap => real32
++ use iso_fortran_env, wp => real64, idp => int64, sp => real32, ap => real64
+ implicit none
+ integer,intent(in) :: nclust ! number of required centroids
+ integer,intent(in) :: npc,mm
+diff --git a/src/confcross.f90 b/src/confcross.f90
+index 198b0d1..a42b229 100644
+--- a/src/confcross.f90
++++ b/src/confcross.f90
+@@ -46,10 +46,11 @@ subroutine confcross(env,maxgen,kk)
+ parameter (autokcal=627.509541d0)
+ parameter (pi = 3.14159265358979D0)
+
+- integer :: i,j,k,l,m,nall,n,lin,ig,ng,m1,ierr,nmax,nl,kl,kk
++ integer :: i,j,k,l,m,nall,n,ig,ng,m1,ierr,nmax,nl,kl,kk
+ integer :: maxgen,r,n2,nk,ident,nmaxmax,ii
+ integer :: io,ich
+ integer TID, OMP_GET_NUM_THREADS, OMP_GET_THREAD_NUM, nproc
++ integer, external :: lin
+
+ character(len=512) :: thispath
+ character(len=80) :: atmp,btmp,ctmp,fname,oname
+@@ -365,7 +366,6 @@ subroutine confcross(env,maxgen,kk)
+ !---- change back to working directory
+ call chdir(trim(thispath))
+
+-! stop
+ 666 continue
+
+ deallocate(ind)
+diff --git a/src/confopt.f90 b/src/confopt.f90
+index 604ba44..8089e2e 100644
+--- a/src/confopt.f90
++++ b/src/confopt.f90
+@@ -39,7 +39,6 @@ subroutine confopt(env,xyz,TMPCONF,confcross)
+ implicit none
+
+ type(systemdata) :: env
+- !type(options) :: opt
+
+ character(len=*),intent(in) :: xyz !file base name
+ integer,intent(in) :: TMPCONF !number of structures to be optimized
+@@ -223,9 +222,6 @@ subroutine opt_OMP_loop(TMPCONF,base,jobcall,niceprint)
+ character(len=512) :: str,thispath,tmppath,optpath
+
+
+-!----- quick settings
+- bdir = trim(adjustl(base))
+-
+ !niceprint=env%niceprint
+ if(niceprint)then
+ call printemptybar()
+@@ -239,8 +235,9 @@ subroutine opt_OMP_loop(TMPCONF,base,jobcall,niceprint)
+ vz=i
+ !$omp task firstprivate( vz ) private( tmppath,io )
+ call initsignal()
+- write(tmppath,'(a,i0)')bdir,vz
+- !call system('cd '//trim(tmppath)//' && '//trim(jobcall))
++ write(tmppath,'(a,i0)')trim(base),vz
++ !write(str,'("cd ",a," && ",a)')trim(tmppath),trim(jobcall)
++ !write(*,*) trim(str)
+ call execute_command_line('cd '//trim(tmppath)//' && '//trim(jobcall), exitstat=io)
+ !$omp critical
+ k=k+1
+diff --git a/src/confparse.f90 b/src/confparse.f90
+index 3ed02a4..ac14d43 100644
+--- a/src/confparse.f90
++++ b/src/confparse.f90
+@@ -65,7 +65,7 @@ subroutine parseflags(env,arg,nra) !FOR THE CONFSCRIPT STANDALONE
+ do i=1,nra
+ if( any( (/'--GUI','--gui'/)==trim(arg(i)))) gui =.true.
+ if( '-niceprint'==trim(arg(i)) ) env%niceprint=.true.
+- if( any( (/'-version','--version'/)==trim(arg(i))))then
++ if( any( (/character(9)::'-version','--version'/)==trim(arg(i))))then
+ call confscript_head()
+ stop
+ endif
+@@ -85,10 +85,10 @@ subroutine parseflags(env,arg,nra) !FOR THE CONFSCRIPT STANDALONE
+
+ !--- check if help is requested or citations shall be diplayed
+ do i=1,nra
+- if( any( (/'-h','-H','--h','--H','--help'/)==trim(arg(i))))then
++ if( any( (/character(6)::'-h','-H','--h','--H','--help'/)==trim(arg(i))))then
+ call confscript_help()
+ endif
+- if( any( (/'-cite','--cite','--citation'/)==trim(arg(i))))then
++ if( any( (/character(10)::'-cite','--cite','--citation'/)==trim(arg(i))))then
+ call crestcite()
+ endif
+ enddo
+diff --git a/src/confscript2_misc.f90 b/src/confscript2_misc.f90
+index d9fb747..fe8137a 100644
+--- a/src/confscript2_misc.f90
++++ b/src/confscript2_misc.f90
+@@ -332,6 +332,7 @@ subroutine MetaMD_para_OMP(env)
+ character(len=512) :: jobcall
+ character(len=80) :: fname,pipe,solv,atmp,btmp
+ integer :: dum,io
++ logical :: ex
+
+ if(env%autothreads)then
+ dum = env%nmetadyn
+@@ -372,7 +373,7 @@ subroutine MetaMD_para_OMP(env)
+ do i=1,env%nmetadyn
+ call initsignal()
+ vz=i
+- !$omp task firstprivate( vz ) private( tmppath,io )
++ !$omp task firstprivate( vz ) private( tmppath,io,ex )
+ call initsignal()
+ !$omp critical
+ write(*,'(a,i4,a)') 'Starting Meta-MD',vz,' with the settings:'
+@@ -385,8 +386,8 @@ subroutine MetaMD_para_OMP(env)
+ !$omp end critical
+ write(tmppath,'(a,i0)')'METADYN',vz
+ call execute_command_line('cd '//trim(tmppath)//' && '//trim(jobcall), exitstat=io)
+- inquire(file=trim(tmppath)//'/'//'xtb.trj',exist=io)
+- if(.not.io)then
++ inquire(file=trim(tmppath)//'/'//'xtb.trj',exist=ex)
++ if(.not.ex .or. io.ne.0)then
+ write(*,'(a,i0,a)')'*Warning: Meta-MTD ',vz,' seemingly failed (no xtb.trj)*'
+ call system('cp -r '//trim(tmppath)//' FAILED-MTD')
+ else
+@@ -740,37 +741,37 @@ subroutine setMDrun2(fname,hmass,mdtime,mdtemp,mdstep,shake,mddumpxyz, &
+ enddo
+ !--- then write the MD settings
+ write(ich,'(a)') '$md'
+- if(hmass.gt.0)then !set H-atom mass
++ if(hmass>0.0_wp)then !set H-atom mass
+ write(ich,'(2x,a,i0)') 'hmass=',nint(hmass)
+ endif
+- if(mdtime.gt.0.0d0)then !set MD simulation time in ps
++ if(mdtime>0.0_wp)then !set MD simulation time in ps
+ write(ich,'(2x,a,f10.2)') 'time=',mdtime
+ endif
+- if(mdtemp.gt.0)then !set MD Temperature
++ if(mdtemp>0.0_wp)then !set MD Temperature
+ write(ich,'(2x,a,f10.2)') 'temp=',mdtemp
+ endif
+ if(mdstep.gt.0)then !set MD timestep in fs
+ write(ich,'(2x,a,f10.2)') 'step=',mdstep
+ endif
+- if(shake.ge.0)then !set MD shake mode
++ if(shake>=0)then !set MD shake mode
+ write(ich,'(2x,a,i0)')'shake=',shake
+ endif
+ !the order of setting mddump and mddumpxyz is important!!!
+- if(mddumpxyz.gt.0)then ! Frequency of structure dump into xtb.trj in fs
++ if(mddumpxyz>0)then ! Frequency of structure dump into xtb.trj in fs
+ write(ich,'(2x,a,i0)')'dump=',mddumpxyz
+ endif
+- if(mdskip.ge.0)then !skipping optimizations in -mdopt
++ if(mdskip>=0)then !skipping optimizations in -mdopt
+ write(ich,'(2x,a,i0)')'skip=',mdskip
+ endif
+- if(nvt.ge.0)then ! NVT ensemble
+- if(nvt.eq.0)then
++ if(nvt>=0)then ! NVT ensemble
++ if(nvt==0)then
+ write(ich,'(2x,a)')'nvt=false'
+ else
+ write(ich,'(2x,a)')'nvt=true'
+ endif
+ endif
+ !the order of setting mddump and mddumpxyz is important!!!
+- if(mddump.gt.0)then ! Vbias dump for metadyn in fs
++ if(mddump>0)then ! Vbias dump for metadyn in fs
+ write(ich,'(a)')'$set'
+ write(ich,'(2x,a,2x,i0)')'mddump',mddump
+ endif
+@@ -785,6 +786,7 @@ subroutine setMDrun2(fname,hmass,mdtime,mdtemp,mdstep,shake,mddumpxyz, &
+ endif
+ call write_cts_rcontrol(ich,cts)
+ write(ich,'(a)') '$end'
++ close(ich)
+ return
+ end subroutine setMDrun2
+
+@@ -976,7 +978,7 @@ subroutine collect_trj(base,whichfile)
+ i=1
+ do
+ write(dir,'(a,i0)')trim(base),i
+- inquire(directory=trim(dir),exist=ex)
++ ex = directory_exist(trim(dir))
+ if(.not.ex)then
+ exit
+ else
+@@ -1001,7 +1003,7 @@ subroutine collect_trj_skipfirst(base,whichfile)
+ i=1
+ do
+ write(dir,'(a,i0)')trim(base),i
+- inquire(directory=trim(dir),exist=ex)
++ ex = directory_exist(trim(dir))
+ if(.not.ex)then
+ exit
+ else
+diff --git a/src/cregen.f90 b/src/cregen.f90
+index 7116088..27012f4 100644
+--- a/src/cregen.f90
++++ b/src/cregen.f90
+@@ -28,6 +28,7 @@ subroutine cregen2(env)
+ use ls_rmsd
+ use iomod
+ use strucrd, only: rdnat,rdcoord,wrc0,i2e,e2i
++ !$ use omp_lib
+ implicit none
+ type(systemdata) :: env ! MAIN STORAGE OS SYSTEM DATA
+ !type(options) :: opt ! MAIN STORAGE OF BOOLEAN SETTINGS
+@@ -55,39 +56,43 @@ subroutine cregen2(env)
+ real(wp) :: autokcal,beta,eav,A,T,rthr,s,g
+ real(wp) :: ss,ethr,de,dr,bthr,aa
+ real(wp) :: elow,psum,ewin,pthr,eref,athr,r,dsum,dav
+- real(wp) :: rotdiff,dum,shortest_distance,distcma,esort
++ real(wp) :: dum,distcma,esort
+ real(wp) :: rij(3),ri,rj,cnorm,erj
+ !real*8 :: gdum(3,3),Udum(3,3),xdum(3), ydum(3) ! rmsd dummy stuff
++ real(wp), external :: rotdiff,shortest_distance
+
+ parameter (autokcal=627.509541d0)
+
+- integer :: i,j,k,l,m,nall,n,lin,ig,ng,nall2,norig
++ integer :: i,j,k,l,m,nall,n,ig,ng,nall2,norig
+ integer :: m1,m2,s1,s2,maxg,current,mm,mmm,ndoub
+ integer :: molcount0,j1,iat,k2,molcount,m1end,imax
+ integer :: kk,memb,irr,ir,nr,jj,nall_old,iig
+- integer :: TID, OMP_GET_NUM_THREADS, OMP_GET_THREAD_NUM, nproc
+- integer :: ich,ich2,io,ich3
+- integer*8 :: lina,linr
++ integer :: TID, nproc
++ integer :: ich,ich2,io,ich3,rednat
++ integer, external :: lin
++ integer*8, external :: lina,linr
+ integer(idp) :: klong
+ integer(idp),allocatable :: rmatmap1(:)
+- integer,allocatable :: rmatmap2(:)
++ integer,allocatable :: rmatmap2(:),includeRMSD(:)
+
+ character(len=80) :: atmp,btmp,ctmp,oname,fname,cname
+ character(len=3) :: a3
+ character(len=512) :: outfile
+
+- logical :: debug,heavy,equalrot,l1,l2,l3,ex,newfile,anal,rmsdchk
+- logical :: exchok,distcheck,fail,equalrot2
+- logical :: substruc,equalrotall
++ logical :: debug,heavy,l1,l2,l3,ex,newfile,anal,rmsdchk
++ logical :: exchok,fail,equalrot2
++ logical :: substruc
+ logical :: ttag
++ logical, external :: distcheck,equalrot,equalrotall
+
+ settingNames: associate( crestver => env%crestver, confgo => env%confgo, &
+ & methautocorr => env%methautocorr, printscoords => env%printscoords, &
+ & ensemblename => env%ensemblename, compareens => env%compareens, &
+ & elowest => env%elowest, ENSO => env%ENSO, subRMSD => env%subRMSD, &
+ & trackorigin => env%trackorigin, autothreads => env%autothreads, &
+- & omp => env%omp, MAXRUN => env%MAXRUN, threads => env%threads, &
+- & rednat => env%rednat, includeRMSD => env%includeRMSD)
++ & omp => env%omp, MAXRUN => env%MAXRUN, threads => env%threads)
++ rednat = env%rednat
++ includeRMSD = env%includeRMSD
+
+ thresholdNames: associate( cgf => env%cgf, thresholds => env%thresholds)
+
+diff --git a/src/crest_main.f90 b/src/crest_main.f90
+index 798aa52..b4d08db 100644
+--- a/src/crest_main.f90
++++ b/src/crest_main.f90
+@@ -179,7 +179,7 @@ program CREST
+ call propquit(tim)
+ !---- extended tautomerization
+ case( p_tautomerize2 )
+- call tautomerize_ext(env,env%ensemblename,env,tim)
++ call tautomerize_ext(env%ensemblename,env,tim)
+ call propquit(tim)
+ !---- stereoisomerization
+ case( p_isomerize )
+diff --git a/src/ensemblecomp.f90 b/src/ensemblecomp.f90
+index 9281e50..de50063 100644
+--- a/src/ensemblecomp.f90
++++ b/src/ensemblecomp.f90
+@@ -73,8 +73,8 @@ subroutine compare_ensembles(env)
+ real(wp),parameter :: autokcal = 627.509541d0
+
+ associate( ensemblename => env%ensemblename, ensemblename2 => env%ensemblename2, &
+- & thresholds => env%thresholds, cgf => env%cgf, maxcompare => env%maxcompare, &
+- & nat => env%nat)
++ & thresholds => env%thresholds, cgf => env%cgf, maxcompare => env%maxcompare)
++ nat = env%nat
+
+ !----
+ call compens_cleanup()
+diff --git a/src/entropic.f90 b/src/entropic.f90
+index 54e1e99..bee368e 100644
+--- a/src/entropic.f90
++++ b/src/entropic.f90
+@@ -1210,7 +1210,7 @@ subroutine atmsTobool(n,atms,bool)
+ implicit none
+ integer :: n
+ integer :: atms(n)
+- integer :: bool(n)
++ logical :: bool(n)
+ integer :: i
+ do i=1,n
+ if(atms(i).ne.0)then
+@@ -1339,6 +1339,7 @@ end subroutine analsym
+ subroutine analsym_geo(grp,nat,xyz,at,fac,pr,sfsm)
+ use iso_fortran_env, wp => real64
+ use zdata
++ implicit none
+ type(zequal) :: grp
+ real(wp),intent(out) :: fac
+ logical :: pr
+@@ -1348,13 +1349,13 @@ subroutine analsym_geo(grp,nat,xyz,at,fac,pr,sfsm)
+ integer :: i,io
+ character(len=4) :: sfsym
+ character(len=4),intent(out) :: sfsm
+- real(wp) :: symfactor
++ real(wp),external :: symfactor
+ real(wp),parameter :: desy = 0.1_wp
+ integer,parameter :: maxat = 200
+ fac = 1.0_wp
+ call getsymmetry2(pr,6,nat,at,xyz, desy, maxat, sfsym)
+
+- fac = 1.0_wp / symfactor(grps,sfsym)
++ fac = 1.0_wp / symfactor(grp,sfsym)
+ sfsm=sfsym(1:3)
+ return
+ end subroutine analsym_geo
+diff --git a/src/io.f b/src/io.f
+index 7feaa0d..119c8ee 100644
+--- a/src/io.f
++++ b/src/io.f
+@@ -97,6 +97,7 @@ subroutine checkname_tmp(base,fname,checkname)
+ !CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+
+ subroutine getname_dir(base,fname)
++ use iomod, only : directory_exist
+ character(len=*) :: base,fname
+ integer :: i
+ logical :: ex
+@@ -106,7 +107,8 @@ subroutine getname_dir(base,fname)
+ do
+ i=i+1
+ write(dir,'(a,i0)')trim(base),i
+- inquire(directory=dir,exist=ex)
++ ! Inquire is not consitent across compilers
++ ex = directory_exist(dir)
+ if(.not.ex)then
+ fname=trim(dir)
+ exit
+@@ -274,18 +276,17 @@ subroutine XYZappendto(from,to)
+ character(len=*) :: to
+ integer :: i,j,k,nat
+ character(len=1024) :: str
+-
+ open(unit=666,file=to)
+ open(unit=777,file=from)
+-
+ do
+ read(666,*,iostat=io)
+- if(io<0)exit
++ if(io<0)then
++ backspace(666)
++ exit
++ endif
+ enddo
+-
+ read(777,*)nat
+ write(666,*)nat
+-
+ do i=1,nat+1
+ read(777,'(a)',iostat=io)str
+ if(io<0)exit
+@@ -310,7 +311,10 @@ subroutine TRJappendto_skipfirst(from,to)
+ open(newunit=och,file=from)
+ do
+ read(ich,*,iostat=io)
+- if(io<0)exit
++ if(io<0)then
++ backspace(ich)
++ exit
++ endif
+ enddo
+ !---first structure is read, but not copied
+ read(och,'(a)',iostat=io)str
+diff --git a/src/iomod.f90 b/src/iomod.F90
+similarity index 95%
+rename from src/iomod.f90
+rename to src/iomod.F90
+index 9e5f87c..05b3879 100644
+--- a/src/iomod.f90
++++ b/src/iomod.F90
+@@ -243,12 +243,18 @@ subroutine appendto(from,to)
+ open(newunit=och,file=from)
+ do
+ read(ich,*,iostat=io)
+- if(io<0)exit
++ if(io<0)then
++ backspace(ich)
++ exit
++ endif
+ enddo
+ do
+ read(och,'(a)',iostat=io)str
+- if(io<0)exit
+- write(ich,'(a)')trim(str)
++ if(io<0)then
++ exit
++ else
++ write(ich,'(a)')trim(str)
++ endif
+ enddo
+ close(och)
+ close(ich)
+@@ -612,5 +618,20 @@ function filechecker(fin,fout) result(have)
+ return
+ end function filechecker
+
++! Checking directories with Fortran's inquire is not handled by the standard.
++! The interpretation whether or not to report a directory as file is compiler
++! specific and therefore always an extension to the Fortran standard.
++function directory_exist(file) result(exist)
++ character(len=*), intent(in) :: file
++ logical :: exist
++#ifdef __INTEL_COMPILER
++ ! Intel provides the directory extension to inquire to handle this case
++ inquire(directory=file, exist=exist)
++#else
++ ! GCC handles directories as files, to make sure we get a directory and
++ ! not a file append a path separator and the current dir
++ inquire(file=trim(file)//"/.", exist=exist)
++#endif
++end function directory_exist
+
+ end module iomod
+diff --git a/src/ligands.f90 b/src/ligands.f90
+index a1605bd..ced659c 100644
+--- a/src/ligands.f90
++++ b/src/ligands.f90
+@@ -93,6 +93,15 @@ subroutine exchangeligands(infile,infile2,centeratom,ligandnr)
+ real(wp),allocatable :: xyz(:,:)
+ integer,allocatable :: at(:)
+ character(len=128) :: atmp,btmp
++ interface
++ subroutine matchligands(mol1,mol2,metal)
++ import :: coord, wp
++ implicit none
++ type(coord) :: mol1 !reference ligand
++ type(coord) :: mol2 !new ligand
++ real(wp),optional :: metal(3) !coordinates of the metal center
++ end subroutine matchligands
++ end interface
+ real(wp) :: refdist !distance of the old ligand
+ type(coord) :: oldligand
+ type(coord) :: newligand
+diff --git a/src/meson.build b/src/meson.build
+index 86d3e67..1172872 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -48,7 +48,7 @@ srcs += files(
+ 'identifiers.f90',
+ 'intmodes.f',
+ 'io.f',
+- 'iomod.f90',
++ 'iomod.F90',
+ 'ligands.f90',
+ 'ls_rmsd.f90',
+ 'marqfit.f',
+diff --git a/src/msreact.f90 b/src/msreact.f90
+index 5b44da0..aba5427 100644
+--- a/src/msreact.f90
++++ b/src/msreact.f90
+@@ -36,6 +36,16 @@ subroutine msreact_handler(env,tim)
+ type(msobj) :: mso !a new msreact object
+ type(coord) :: struc
+
++ interface
++ subroutine msreact_topowrap(mol,pair,paths,wboname)
++ import :: msmol
++ implicit none
++ type(msmol) :: mol
++ integer :: pair(mol%nat*(mol%nat+1)/2)
++ integer :: paths(mol%nat*(mol%nat+1)/2,mol%nat)
++ character(len=*),optional :: wboname
++ end subroutine msreact_topowrap
++ end interface
+ integer :: nat
+ integer,allocatable :: pair(:)
+ integer,allocatable :: paths(:,:)
+diff --git a/src/normmd.f90 b/src/normmd.f90
+index bb6d607..5cdf875 100644
+--- a/src/normmd.f90
++++ b/src/normmd.f90
+@@ -465,7 +465,7 @@ subroutine entropyMD_para_OMP(env)
+ !$omp single
+ do i=1,tot
+ vz=i
+- !$omp task firstprivate( vz ) private( tmppath,io )
++ !$omp task firstprivate( vz ) private( tmppath,io,ex )
+ call initsignal()
+ !$omp critical
+ write(*,'(a,i4,a)') 'Starting MTD',vz,' with the settings:'
+@@ -478,8 +478,8 @@ subroutine entropyMD_para_OMP(env)
+ !$omp end critical
+ write(tmppath,'(a,i0)')'STATICMTD',vz
+ call execute_command_line('cd '//trim(tmppath)//' && '//trim(jobcall), exitstat=io)
+- inquire(file=trim(tmppath)//'/'//'xtb.trj',exist=io)
+- if(.not.io)then
++ inquire(file=trim(tmppath)//'/'//'xtb.trj',exist=ex)
++ if(.not.ex .or. io.ne.0)then
+ write(*,'(a,i0,a)')'*Warning: static MTD ',vz,' seemingly failed (no xtb.trj)*'
+ call system('cp -r '//trim(tmppath)//' FAILEDMTD')
+ else
+diff --git a/src/optinplace.f90 b/src/optinplace.f90
+index fb8102a..c727e5f 100644
+--- a/src/optinplace.f90
++++ b/src/optinplace.f90
+@@ -43,6 +43,7 @@ subroutine MDopt_para_inplace(env,ensnam,multilev)
+
+ real(wp) :: lev
+
++ integer :: nat
+ real(wp),allocatable :: eread(:)
+ real(wp),allocatable :: xyz(:,:,:)
+ integer,allocatable :: at(:)
+@@ -61,7 +62,7 @@ subroutine MDopt_para_inplace(env,ensnam,multilev)
+
+ logical :: verbose,l1
+
+- associate( nat => env%nat )
++ nat = env%nat
+
+ !---- get current path
+ call getcwd(thispath)
+@@ -281,5 +282,4 @@ subroutine MDopt_para_inplace(env,ensnam,multilev)
+ !---- go back to original directory
+ call chdir(thispath)
+
+- end associate
+ end subroutine MDopt_para_inplace
+diff --git a/src/pka.f90 b/src/pka.f90
+index 5ac4ae6..9672a12 100644
+--- a/src/pka.f90
++++ b/src/pka.f90
+@@ -160,7 +160,16 @@ subroutine pkaquick(env,tim)
+ real(wp) :: GA,GB,dG
+ real(wp) :: eatb,gsa,grrhoa,ebtb,gsb,grrhob,dE
+ real(wp) :: pKa,dum,pkaref
+- real(wp) :: pKaCFER !this is a function
++ interface
++ function pKaCFER(dG,c1,c2,c3,c4,T) result(pka)
++ import :: wp
++ implicit none
++ real(wp) :: dG !in Eh
++ real(wp),optional :: T !in K
++ real(wp) :: pka
++ real(wp) :: c1,c2,c3,c4
++ end function pKaCFER
++ end interface
+ real(wp) :: c0,c1,c2,c3,c4
+ integer :: i,j,k,l,h,ich,io
+ integer :: refnat,refchrg
+@@ -375,12 +384,13 @@ subroutine miniopt(env,fname)
+ character(len=*) :: fname
+ character(len=1028) :: jobcall
+ integer :: io
++ logical :: ex
+ call env%wrtCHRG('')
+ write(jobcall,'(a,1x,a,1x,a,'' --ceasefiles --opt '',a,1x,a,'' >xtb.out'')') &
+ & trim(env%ProgName),trim(fname),trim(env%gfnver),trim(env%solv),' 2>/dev/null'
+ call execute_command_line(trim(jobcall), exitstat=io)
+- inquire(file='xtbopt.xyz',exist=io)
+- if(io)then
++ inquire(file='xtbopt.xyz',exist=ex)
++ if(ex)then
+ call rename('xtbopt.xyz',fname)
+ endif
+ call remove('xtbrestart')
+diff --git a/src/propcalc.f90 b/src/propcalc.f90
+index 68208e2..469566a 100644
+--- a/src/propcalc.f90
++++ b/src/propcalc.f90
+@@ -65,6 +65,18 @@ subroutine propcalc(iname,imode,env,tim)
+ integer :: P
+ integer :: fileid,ich
+
++ interface
++ subroutine prop_OMP_loop(env,TMPCONF,jobcall,pop)
++ import :: systemdata, wp
++ implicit none
++
++ type(systemdata) :: env
++ integer :: TMPCONF
++ character(len=1024) :: jobcall
++ real(wp),intent(in),optional :: pop(TMPCONF)
++ end subroutine
++ end interface
++
+ character(len=20) :: xname
+ character(len=20) :: optl,pipe
+ character(len=80) :: solv
+@@ -245,7 +257,7 @@ subroutine propcalc(iname,imode,env,tim)
+ enddo
+ write(*,'(1x,a)') 'done.'
+
+- if(any(mask==.false.))then
++ if(any(mask.eqv..false.))then
+ TMPCONF=ii-1
+ nall=ii-1
+ if(allocated(popul))deallocate(popul)
+@@ -310,7 +322,7 @@ subroutine propcalc(iname,imode,env,tim)
+
+ write(*,'(1x,a,i0,a)')'Performing calculations for ', &
+ & TMPCONF,' structures ...'
+- call sleep(0.5_wp)
++ call sleep(1)
+ call tim%start(10,'PROPERTY calc.')
+ allocate(dumm(TMPCONF), source=1.0_wp)
+ call prop_OMP_loop(env,TMPCONF,jobcall,dumm) !<------- this is where the "magic" happens
+diff --git a/src/stereoisomers.f90 b/src/stereoisomers.f90
+index e3b8897..ab32a71 100644
+--- a/src/stereoisomers.f90
++++ b/src/stereoisomers.f90
+@@ -434,13 +434,14 @@ subroutine cip_sphere(zmol,k,i,s,sphere)
+ integer,intent(inout) :: sphere(zmol%nat)
+ integer,allocatable :: sphereold(:)
+
+- integer :: j,m,n
++ integer :: j,m,n,dummy
+
+ allocate(sphereold(zmol%nat), source=0)
+
+ !get the s-th sphere in direction of i
+ sphere=0
+- call cip_getsphere(zmol,k,i,1,s,sphere,sphereold)
++ dummy=1
++ call cip_getsphere(zmol,k,i,dummy,s,sphere,sphereold)
+
+ !sphere contains the atoms, which we have now to convert to
+ !integer atom types:
+@@ -658,7 +659,7 @@ subroutine stereoinvert(zmol)
+ zmol%invector(3,i)=j ! <----
+ !--- get the atoms to be rotated in the special polycycle case
+ yloop2: do y=1,xnei
+- if(checkcounter(y)==.false.)then
++ if(checkcounter(y).eqv..false.)then
+ allocate(path2(nat), source = 0)
+ k=zmol%zat(i)%ngh(y)
+ l=0
+@@ -676,13 +677,13 @@ subroutine stereoinvert(zmol)
+ !--- get the atoms for the rotational axis setup in the polycyle case
+ yloop3: do y=1,xnei
+ if(zmol%invector(1,i).eq.0)then
+- if(checkcounter(y)==.true.)then
++ if(checkcounter(y).eqv..true.)then
+ k=zmol%zat(i)%ngh(y)
+ if(k.eq.zmol%invector(3,i)) cycle yloop3
+ zmol%invector(1,i)=k ! <----
+ endif
+ else if(zmol%invector(2,i).eq.0)then
+- if(checkcounter(y)==.true.)then
++ if(checkcounter(y).eqv..true.)then
+ k=zmol%zat(i)%ngh(y)
+ if(k.eq.zmol%invector(3,i)) cycle yloop3
+ zmol%invector(2,i)=k ! <----
+@@ -749,7 +750,7 @@ subroutine whichinvert(zmol,i,these,vec)
+ integer :: i
+
+ integer,intent(out) :: these(2) !--- the two neighbours which must be inverted
+- integer,intent(out) :: vec(3) !--- vector of the inversion axis
++ real(wp),intent(out) :: vec(3) !--- vector of the inversion axis
+
+ integer :: sref
+ integer :: j,k,l,m
+diff --git a/src/symmetry2.f90 b/src/symmetry2.f90
+index c85ce97..0d52612 100644
+--- a/src/symmetry2.f90
++++ b/src/symmetry2.f90
+@@ -39,7 +39,7 @@ End Subroutine schoenflies
+ End Interface c_interface
+
+ !Dummy Arguments
+- Character (Len=*), target :: sfsym
++ Character (Len=*) :: sfsym
+ Integer, Intent (In) :: n
+ Integer, Intent (In) :: iat (n)
+ Real(wp), Intent (In) :: xyz (3, n)
+diff --git a/src/trackorigin.f90 b/src/trackorigin.f90
+index 87f6b86..8c683e0 100644
+--- a/src/trackorigin.f90
++++ b/src/trackorigin.f90
+@@ -177,7 +177,7 @@ subroutine set_trj_origins(base,origin)
+ i=1
+ do
+ write(dir,'(a,i0)')trim(base),i
+- inquire(directory=trim(dir),exist=ex)
++ ex = directory_exist(trim(dir))
+ if(.not.ex)then
+ exit
+ else
+@@ -206,7 +206,7 @@ subroutine set_trj_timestamps(base,nsplit)
+ i=1
+ do
+ write(dir,'(a,i0)')trim(base),i
+- inquire(directory=trim(dir),exist=ex)
++ ex = directory_exist(trim(dir))
+ if(.not.ex)then
+ exit
+ else
+diff --git a/src/utilities.f b/src/utilities.f
+index ddee2ad..61dbbcd 100644
+--- a/src/utilities.f
++++ b/src/utilities.f
+@@ -38,7 +38,7 @@ subroutine revlin(k,i,j)
+ integer :: i,j
+ real*8 :: kf
+ real*8 :: idum
+- kf = floatk(k) !for int8 conversion
++ kf = real(k, 8)
+ idum = 1.0 + 8.0*kf
+ !idum = sqrt(idum)
+ idum = idum ** 0.5
+diff --git a/src/xtbmodef.f90 b/src/xtbmodef.f90
+index 738b374..cdd3206 100644
+--- a/src/xtbmodef.f90
++++ b/src/xtbmodef.f90
+@@ -46,8 +46,10 @@ subroutine xtbmodef(env,s,e,n,u,l,o,x)
+ character(len=868) :: str2
+ character(len=1024):: jobcall
+ character(len=200):: finfile,runfile
++ character(len=:), allocatable :: ProgName, gfnver
+
+ logical:: l1,l2,fin,run,modefok,mop,update,ex,clo
++ logical :: niceprint
+
+ real(wp) :: percent
+ character(len=52) :: bar
+@@ -55,9 +57,12 @@ subroutine xtbmodef(env,s,e,n,u,l,o,x)
+
+ call getcwd(thispath) !get current working directory
+
+- associate( ProgName => env%ProgName, gbsa => env%gbsa, solvent => env%solvent, &
++ associate( gbsa => env%gbsa, solvent => env%solvent, &
+ & fixfile => env%fixfile, constraints => env%constraints, optlev => env%optlev, &
+- & niceprint => env%niceprint, gfnver => env%gfnver, trackorigin => env%trackorigin)
++ & trackorigin => env%trackorigin)
++ niceprint = env%niceprint
++ gfnver = env%gfnver
++ ProgName = env%ProgName
+
+ !cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+
+diff --git a/src/zdata.f90 b/src/zdata.f90
+index 060c8d1..85170af 100644
+--- a/src/zdata.f90
++++ b/src/zdata.f90
+@@ -85,8 +85,8 @@ module zdata
+ integer,allocatable :: rlist(:)
+
+ contains
+- procedure deallocate => deallocate_zring !deallocate (if allocated)
+- procedure print => print_zring !print to screen
++ procedure :: deallocate => deallocate_zring !deallocate (if allocated)
++ procedure :: print => print_zring !print to screen
+ end type zring
+
+ !==========================================================================================================!
+@@ -96,10 +96,10 @@ module zdata
+ integer :: nm !# of members in group
+ integer,allocatable :: mem(:)
+ contains
+- procedure allocate => allocate_zgrp
+- procedure deallocate => deallocate_zgrp
+- procedure append => append_zgrp
+- procedure prgrp => print_zgrp
++ procedure :: allocate => allocate_zgrp
++ procedure :: deallocate => deallocate_zgrp
++ procedure :: append => append_zgrp
++ procedure :: prgrp => print_zgrp
+ end type zgrp
+ !equivalencies-class. contains information about equivalent nuclei
+ type :: zequal
+@@ -111,10 +111,10 @@ module zdata
+ type(zgrp),allocatable :: grp(:) !all groups (dimension <= nat)
+
+ contains
+- procedure allocate => allocate_zequal !allocate nat, ord(:) and grp(:)
+- procedure member => is_x_member !check if atom x is member of any group
+- procedure prsum => prsummary_zequal !print a summary of all the groups
+- procedure geteng => zequal_geteng !count number of groups with more than 1 member
++ procedure :: allocate => allocate_zequal !allocate nat, ord(:) and grp(:)
++ procedure :: member => is_x_member !check if atom x is member of any group
++ procedure :: prsum => prsummary_zequal !print a summary of all the groups
++ procedure :: geteng => zequal_geteng !count number of groups with more than 1 member
+
+ end type zequal
+
+@@ -197,8 +197,8 @@ module zdata
+
+ !--- procedures to be used with the zensemble
+ contains
+- procedure allocate => allocate_zensemble
+- procedure deallocate => deallocate_zensemble
++ procedure :: allocate => allocate_zensemble
++ procedure :: deallocate => deallocate_zensemble
+
+ end type zensemble
+
+diff --git a/src/ztopology.f90 b/src/ztopology.f90
+index 13d5954..1b9b12e 100644
+--- a/src/ztopology.f90
++++ b/src/ztopology.f90
+@@ -50,6 +50,18 @@ subroutine simpletopo_file(fname,zmol,verbose,wbofile)
+ integer,allocatable :: at(:)
+ real(wp),allocatable :: xyz(:,:)
+ logical :: ex
++ interface
++ subroutine simpletopo(n,at,xyz,zmol,verbose,wbofile)
++ import :: zmolecule, wp
++ implicit none
++ type(zmolecule) :: zmol
++ logical :: verbose
++ integer,intent(in) :: n
++ integer,intent(in) :: at(n)
++ real(wp),intent(in) :: xyz(3,n) !in Bohrs
++ character(len=*),intent(in),optional :: wbofile
++ end subroutine simpletopo
++ end interface
+
+ call rdnat(fname,n)
+ allocate(at(n),xyz(3,n))
+@@ -70,12 +82,25 @@ subroutine simpletopo_file(fname,zmol,verbose,wbofile)
+ end subroutine simpletopo_file
+
+ subroutine simpletopo_mol(mol,zmol,verbose)
++ use iso_fortran_env, wp => real64
+ use zdata
+ use strucrd
+ implicit none
+ type(coord) :: mol !in
+ type(zmolecule) :: zmol !out
+ logical :: verbose
++ interface
++ subroutine simpletopo(n,at,xyz,zmol,verbose,wbofile)
++ import :: zmolecule, wp
++ implicit none
++ type(zmolecule) :: zmol
++ logical :: verbose
++ integer,intent(in) :: n
++ integer,intent(in) :: at(n)
++ real(wp),intent(in) :: xyz(3,n) !in Bohrs
++ character(len=*),intent(in),optional :: wbofile
++ end subroutine simpletopo
++ end interface
+ call simpletopo(mol%nat,mol%at,mol%xyz,zmol,verbose,'')
+ return
+ end subroutine simpletopo_mol
diff --git a/crest-2.11-meson.patch b/crest-2.11-meson.patch
new file mode 100644
index 0000000..3661732
--- /dev/null
+++ b/crest-2.11-meson.patch
@@ -0,0 +1,36 @@
+diff -up crest-2.11/meson.build.meson crest-2.11/meson.build
+--- crest-2.11/meson.build.meson 2021-02-01 11:33:31.000000000 +0000
++++ crest-2.11/meson.build 2021-05-12 17:27:42.275379614 +0000
+@@ -41,8 +41,8 @@ crest_exe = executable(
+ link_language: 'fortran',
+ )
+
+-install_data(
+- files('combi-scripts/crest_combi'),
+- install_dir: get_option('bindir'),
+- install_mode: 'rwxr--r--',
+-)
++#install_data(
++# files('combi-scripts/crest_combi'),
++# install_dir: get_option('bindir'),
++# install_mode: 'rwxr--r--',
++#)
+diff -up crest-2.11/meson_options.txt.meson crest-2.11/meson_options.txt
+--- crest-2.11/meson_options.txt.meson 2021-02-01 11:33:31.000000000 +0000
++++ crest-2.11/meson_options.txt 2021-05-12 17:27:01.949083062 +0000
+@@ -14,10 +14,8 @@
+ # You should have received a copy of the GNU Lesser General Public License
+ # along with crest. If not, see <https://www.gnu.org/licenses/>.
+
+-option(
+- 'la_backend',
+- type: 'combo',
+- value: 'mkl-static',
+- choices: ['mkl', 'mkl-static', 'openblas', 'netlib'],
+- description: 'Linear algebra backend for program.',
+-)
++option('la_backend', type: 'combo', value: 'mkl-static',
++ choices: ['mkl', 'mkl-rt', 'mkl-static', 'openblas', 'netlib', 'custom'],
++ description: 'Linear algebra backend for program.')
++option('custom_libraries', type: 'array', value: [],
++ description: 'libraries to load for custom linear algebra backend')
diff --git a/crest.spec b/crest.spec
new file mode 100644
index 0000000..7c86b51
--- /dev/null
+++ b/crest.spec
@@ -0,0 +1,87 @@
+%global soname 6
+
+%if 0%{?fedora} >= 33
+%global blaslib flexiblas
+%global blasvar %{nil}
+%else
+%global blaslib openblas
+%global blasvar o
+%endif
+
+Name: crest
+Version: 2.11
+Release: 2%{?dist}
+Summary: Conformer-Rotamer Ensemble Sampling Tool: a driver for the xtb program
+License: GPLv3+
+URL: https://xtb-docs.readthedocs.io/en/latest/crest.html
+Source0: https://github.com/grimme-lab/crest/archive/v%{version}/crest-%{version}....
+
+# Patch to allow custom LAPACK; filed upstream https://github.com/grimme-lab/crest/pull/54
+Patch0: crest-2.11-meson.patch
+# Patch to fix gfortran compatibility
+Patch1: 2674ba27bf7a5f3c20c6f505cdf0f8a852eda1d5.patch
+
+BuildRequires: gcc
+BuildRequires: gcc-gfortran
+BuildRequires: meson
+BuildRequires: ninja-build
+BuildRequires: %{blaslib}-devel
+# To generate man pages
+BuildRequires: rubygem-asciidoctor
+
+# xtb may be required to run tests
+BuildRequires: xtb
+Requires: xtb
+
+# xtb is not available on s390x
+ExcludeArch: s390x
+
+%description
+CREST is an utility/driver program for the xtb program. Originally it
+was designed as conformer sampling program, hence the abbreviation
+Conformer-Rotamer Ensemble Sampling Tool, but now offers also some
+utility functions for calculations with the GFNn-xTB
+methods. Generally the program functions as an IO based OMP scheduler
+(i.e., calculations are performed by the xtb program) and tool for the
+creation and analysation of structure ensembles.
+
+The key procedure implemented in CREST is a conformational search
+workflow abbreviated as iMTD-GC. The iMTD-GC workflow generates
+conformer/rotamer ensembles (CREs) by extensive metadynamic sampling
+(MTD) based on, with an additional genetic z-matrix crossing (GC) step
+at the end. Other standalone functionalities that are included in
+CREST are parallel optimization and screening functions for GFNn–xTB,
+the function to sort (e.g. for NMR equivalencies) externally created
+ensembles, and some automated procedures for the protonation,
+deprotonation and tautomerization of structures.
+
+The main publication for the CREST program can be found at
+Phys. Chem. Chem. Phys., 2020, 22, 7169-7192.
+
+%prep
+%setup -q
+%patch0 -p1 -b .meson
+%patch1 -p1 -b .gfortran
+
+%build
+%meson -Dla_backend=custom -Dcustom_libraries=%{blaslib}%{blasvar} -Dtest_timeout=2000
+%meson_build
+
+%install
+%meson_install
+
+%check
+%meson_test
+
+%files
+%license LICENSE
+%doc README.md
+%{_bindir}/crest
+
+%changelog
+* Sat May 15 2021 Susi Lehtola <jussilehtola(a)fedoraproject.org> - 2.11-2
+- Review fixes.
+
+* Wed May 12 2021 Susi Lehtola <jussilehtola(a)fedoraproject.org> - 2.11-1
+- Initial release.
+
diff --git a/sources b/sources
new file mode 100644
index 0000000..b6bd862
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (crest-2.11.tar.gz) = 59fa3e8f181973b36fa4430408c375fa4c761604ce0f26b94bc671336035d2117691dfb35ece742aff008c0d496f34f5eb604c92e7f38139d38b802c012179d2
2 years, 11 months
Architecture specific change in rpms/crest.git
by githook-noreply@fedoraproject.org
The package rpms/crest.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/crest.git/commit/?id=ca08589926ec....
Change:
+ExcludeArch: s390x
Thanks.
Full change:
============
commit ca08589926ec9ea7591f82cd2754678e15b612f6
Author: Susi Lehtola <jussilehtola(a)fedoraproject.org>
Date: Mon May 17 21:06:41 2021 +0000
Initial import
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..f2a1a88
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/crest-2.11.tar.gz
diff --git a/2674ba27bf7a5f3c20c6f505cdf0f8a852eda1d5.patch b/2674ba27bf7a5f3c20c6f505cdf0f8a852eda1d5.patch
new file mode 100644
index 0000000..09d3e7c
--- /dev/null
+++ b/2674ba27bf7a5f3c20c6f505cdf0f8a852eda1d5.patch
@@ -0,0 +1,948 @@
+From 2674ba27bf7a5f3c20c6f505cdf0f8a852eda1d5 Mon Sep 17 00:00:00 2001
+From: Sebastian Ehlert <28669218+awvwgk(a)users.noreply.github.com>
+Date: Wed, 3 Feb 2021 14:47:15 +0100
+Subject: [PATCH] Fixes for GCC (#31)
+
+* Fixes for GCC
+
+- tested with GCC 10.2
+- added one subroutine to wrap preprocessor usage
+- add explicit interfaces when necessary
+- add external attributes to functions
+- remove associated variables which are part of OMP pragmas
+- use .eqv. instead of .eq. to compare logicals
+- fix some type mismatches
+
+* IO cleanup for gcc compatibility
+---
+ src/CMakeLists.txt | 2 +-
+ src/Makefile | 6 +++++-
+ src/ccegen.f90 | 2 +-
+ src/confcross.f90 | 4 ++--
+ src/confopt.f90 | 9 +++------
+ src/confparse.f90 | 6 +++---
+ src/confscript2_misc.f90 | 30 ++++++++++++++++--------------
+ src/cregen.f90 | 27 ++++++++++++++++-----------
+ src/crest_main.f90 | 2 +-
+ src/ensemblecomp.f90 | 4 ++--
+ src/entropic.f90 | 7 ++++---
+ src/io.f | 18 +++++++++++-------
+ src/{iomod.f90 => iomod.F90} | 27 ++++++++++++++++++++++++---
+ src/ligands.f90 | 9 +++++++++
+ src/meson.build | 2 +-
+ src/msreact.f90 | 10 ++++++++++
+ src/normmd.f90 | 6 +++---
+ src/optinplace.f90 | 4 ++--
+ src/pka.f90 | 16 +++++++++++++---
+ src/propcalc.f90 | 16 ++++++++++++++--
+ src/stereoisomers.f90 | 13 +++++++------
+ src/symmetry2.f90 | 2 +-
+ src/trackorigin.f90 | 4 ++--
+ src/utilities.f | 2 +-
+ src/xtbmodef.f90 | 9 +++++++--
+ src/zdata.f90 | 24 ++++++++++++------------
+ src/ztopology.f90 | 25 +++++++++++++++++++++++++
+ 27 files changed, 196 insertions(+), 90 deletions(-)
+ rename src/{iomod.f90 => iomod.F90} (95%)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index c4598fe..11a139d 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -50,7 +50,7 @@ list(APPEND srcs
+ "${dir}/identifiers.f90"
+ "${dir}/intmodes.f"
+ "${dir}/io.f"
+- "${dir}/iomod.f90"
++ "${dir}/iomod.F90"
+ "${dir}/ligands.f90"
+ "${dir}/ls_rmsd.f90"
+ "${dir}/marqfit.f"
+diff --git a/src/Makefile b/src/Makefile
+index 026d20b..8d8bdc7 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -168,7 +168,7 @@ fortran.o : $(CUDA)/src/fortran.c
+ # aus *.F mache ein *.f
+ %.f: %.F
+ @echo "making $@ from $<"
+- $(CC) $(PREFLAG) $(PREOPTS) $< -o $@
++ $(FC) $(PREFLAG) $(PREOPTS) $< -o $@
+
+ # aus *.f mache ein *.o
+ $(OBJDIR)/%.o: %.f
+@@ -179,6 +179,10 @@ $(OBJDIR)/%.o: %.f90
+ @echo "making $@ from $<"
+ $(FC) $(FFLAGS) -c $< -o $@
+
++$(OBJDIR)/%.o: %.F90
++ @echo "making $@ from $<"
++ $(FC) $(FFLAGS) -c $< -o $@
++
+ # aus *.c mache ein *.o
+ $(OBJDIR)/%.o: %.c
+ @echo "making $@ from $<"
+diff --git a/src/ccegen.f90 b/src/ccegen.f90
+index 11641c3..546d0a3 100644
+--- a/src/ccegen.f90
++++ b/src/ccegen.f90
+@@ -891,7 +891,7 @@ end function eucdist
+ !
+ !======================================================================!
+ subroutine kmeans(nclust,npc,mm,centroid,pcvec,ndist,dist,member)
+- use iso_fortran_env, wp => real64, idp => int64, sp => real32, ap => real32
++ use iso_fortran_env, wp => real64, idp => int64, sp => real32, ap => real64
+ implicit none
+ integer,intent(in) :: nclust ! number of required centroids
+ integer,intent(in) :: npc,mm
+diff --git a/src/confcross.f90 b/src/confcross.f90
+index 198b0d1..a42b229 100644
+--- a/src/confcross.f90
++++ b/src/confcross.f90
+@@ -46,10 +46,11 @@ subroutine confcross(env,maxgen,kk)
+ parameter (autokcal=627.509541d0)
+ parameter (pi = 3.14159265358979D0)
+
+- integer :: i,j,k,l,m,nall,n,lin,ig,ng,m1,ierr,nmax,nl,kl,kk
++ integer :: i,j,k,l,m,nall,n,ig,ng,m1,ierr,nmax,nl,kl,kk
+ integer :: maxgen,r,n2,nk,ident,nmaxmax,ii
+ integer :: io,ich
+ integer TID, OMP_GET_NUM_THREADS, OMP_GET_THREAD_NUM, nproc
++ integer, external :: lin
+
+ character(len=512) :: thispath
+ character(len=80) :: atmp,btmp,ctmp,fname,oname
+@@ -365,7 +366,6 @@ subroutine confcross(env,maxgen,kk)
+ !---- change back to working directory
+ call chdir(trim(thispath))
+
+-! stop
+ 666 continue
+
+ deallocate(ind)
+diff --git a/src/confopt.f90 b/src/confopt.f90
+index 604ba44..8089e2e 100644
+--- a/src/confopt.f90
++++ b/src/confopt.f90
+@@ -39,7 +39,6 @@ subroutine confopt(env,xyz,TMPCONF,confcross)
+ implicit none
+
+ type(systemdata) :: env
+- !type(options) :: opt
+
+ character(len=*),intent(in) :: xyz !file base name
+ integer,intent(in) :: TMPCONF !number of structures to be optimized
+@@ -223,9 +222,6 @@ subroutine opt_OMP_loop(TMPCONF,base,jobcall,niceprint)
+ character(len=512) :: str,thispath,tmppath,optpath
+
+
+-!----- quick settings
+- bdir = trim(adjustl(base))
+-
+ !niceprint=env%niceprint
+ if(niceprint)then
+ call printemptybar()
+@@ -239,8 +235,9 @@ subroutine opt_OMP_loop(TMPCONF,base,jobcall,niceprint)
+ vz=i
+ !$omp task firstprivate( vz ) private( tmppath,io )
+ call initsignal()
+- write(tmppath,'(a,i0)')bdir,vz
+- !call system('cd '//trim(tmppath)//' && '//trim(jobcall))
++ write(tmppath,'(a,i0)')trim(base),vz
++ !write(str,'("cd ",a," && ",a)')trim(tmppath),trim(jobcall)
++ !write(*,*) trim(str)
+ call execute_command_line('cd '//trim(tmppath)//' && '//trim(jobcall), exitstat=io)
+ !$omp critical
+ k=k+1
+diff --git a/src/confparse.f90 b/src/confparse.f90
+index 3ed02a4..ac14d43 100644
+--- a/src/confparse.f90
++++ b/src/confparse.f90
+@@ -65,7 +65,7 @@ subroutine parseflags(env,arg,nra) !FOR THE CONFSCRIPT STANDALONE
+ do i=1,nra
+ if( any( (/'--GUI','--gui'/)==trim(arg(i)))) gui =.true.
+ if( '-niceprint'==trim(arg(i)) ) env%niceprint=.true.
+- if( any( (/'-version','--version'/)==trim(arg(i))))then
++ if( any( (/character(9)::'-version','--version'/)==trim(arg(i))))then
+ call confscript_head()
+ stop
+ endif
+@@ -85,10 +85,10 @@ subroutine parseflags(env,arg,nra) !FOR THE CONFSCRIPT STANDALONE
+
+ !--- check if help is requested or citations shall be diplayed
+ do i=1,nra
+- if( any( (/'-h','-H','--h','--H','--help'/)==trim(arg(i))))then
++ if( any( (/character(6)::'-h','-H','--h','--H','--help'/)==trim(arg(i))))then
+ call confscript_help()
+ endif
+- if( any( (/'-cite','--cite','--citation'/)==trim(arg(i))))then
++ if( any( (/character(10)::'-cite','--cite','--citation'/)==trim(arg(i))))then
+ call crestcite()
+ endif
+ enddo
+diff --git a/src/confscript2_misc.f90 b/src/confscript2_misc.f90
+index d9fb747..fe8137a 100644
+--- a/src/confscript2_misc.f90
++++ b/src/confscript2_misc.f90
+@@ -332,6 +332,7 @@ subroutine MetaMD_para_OMP(env)
+ character(len=512) :: jobcall
+ character(len=80) :: fname,pipe,solv,atmp,btmp
+ integer :: dum,io
++ logical :: ex
+
+ if(env%autothreads)then
+ dum = env%nmetadyn
+@@ -372,7 +373,7 @@ subroutine MetaMD_para_OMP(env)
+ do i=1,env%nmetadyn
+ call initsignal()
+ vz=i
+- !$omp task firstprivate( vz ) private( tmppath,io )
++ !$omp task firstprivate( vz ) private( tmppath,io,ex )
+ call initsignal()
+ !$omp critical
+ write(*,'(a,i4,a)') 'Starting Meta-MD',vz,' with the settings:'
+@@ -385,8 +386,8 @@ subroutine MetaMD_para_OMP(env)
+ !$omp end critical
+ write(tmppath,'(a,i0)')'METADYN',vz
+ call execute_command_line('cd '//trim(tmppath)//' && '//trim(jobcall), exitstat=io)
+- inquire(file=trim(tmppath)//'/'//'xtb.trj',exist=io)
+- if(.not.io)then
++ inquire(file=trim(tmppath)//'/'//'xtb.trj',exist=ex)
++ if(.not.ex .or. io.ne.0)then
+ write(*,'(a,i0,a)')'*Warning: Meta-MTD ',vz,' seemingly failed (no xtb.trj)*'
+ call system('cp -r '//trim(tmppath)//' FAILED-MTD')
+ else
+@@ -740,37 +741,37 @@ subroutine setMDrun2(fname,hmass,mdtime,mdtemp,mdstep,shake,mddumpxyz, &
+ enddo
+ !--- then write the MD settings
+ write(ich,'(a)') '$md'
+- if(hmass.gt.0)then !set H-atom mass
++ if(hmass>0.0_wp)then !set H-atom mass
+ write(ich,'(2x,a,i0)') 'hmass=',nint(hmass)
+ endif
+- if(mdtime.gt.0.0d0)then !set MD simulation time in ps
++ if(mdtime>0.0_wp)then !set MD simulation time in ps
+ write(ich,'(2x,a,f10.2)') 'time=',mdtime
+ endif
+- if(mdtemp.gt.0)then !set MD Temperature
++ if(mdtemp>0.0_wp)then !set MD Temperature
+ write(ich,'(2x,a,f10.2)') 'temp=',mdtemp
+ endif
+ if(mdstep.gt.0)then !set MD timestep in fs
+ write(ich,'(2x,a,f10.2)') 'step=',mdstep
+ endif
+- if(shake.ge.0)then !set MD shake mode
++ if(shake>=0)then !set MD shake mode
+ write(ich,'(2x,a,i0)')'shake=',shake
+ endif
+ !the order of setting mddump and mddumpxyz is important!!!
+- if(mddumpxyz.gt.0)then ! Frequency of structure dump into xtb.trj in fs
++ if(mddumpxyz>0)then ! Frequency of structure dump into xtb.trj in fs
+ write(ich,'(2x,a,i0)')'dump=',mddumpxyz
+ endif
+- if(mdskip.ge.0)then !skipping optimizations in -mdopt
++ if(mdskip>=0)then !skipping optimizations in -mdopt
+ write(ich,'(2x,a,i0)')'skip=',mdskip
+ endif
+- if(nvt.ge.0)then ! NVT ensemble
+- if(nvt.eq.0)then
++ if(nvt>=0)then ! NVT ensemble
++ if(nvt==0)then
+ write(ich,'(2x,a)')'nvt=false'
+ else
+ write(ich,'(2x,a)')'nvt=true'
+ endif
+ endif
+ !the order of setting mddump and mddumpxyz is important!!!
+- if(mddump.gt.0)then ! Vbias dump for metadyn in fs
++ if(mddump>0)then ! Vbias dump for metadyn in fs
+ write(ich,'(a)')'$set'
+ write(ich,'(2x,a,2x,i0)')'mddump',mddump
+ endif
+@@ -785,6 +786,7 @@ subroutine setMDrun2(fname,hmass,mdtime,mdtemp,mdstep,shake,mddumpxyz, &
+ endif
+ call write_cts_rcontrol(ich,cts)
+ write(ich,'(a)') '$end'
++ close(ich)
+ return
+ end subroutine setMDrun2
+
+@@ -976,7 +978,7 @@ subroutine collect_trj(base,whichfile)
+ i=1
+ do
+ write(dir,'(a,i0)')trim(base),i
+- inquire(directory=trim(dir),exist=ex)
++ ex = directory_exist(trim(dir))
+ if(.not.ex)then
+ exit
+ else
+@@ -1001,7 +1003,7 @@ subroutine collect_trj_skipfirst(base,whichfile)
+ i=1
+ do
+ write(dir,'(a,i0)')trim(base),i
+- inquire(directory=trim(dir),exist=ex)
++ ex = directory_exist(trim(dir))
+ if(.not.ex)then
+ exit
+ else
+diff --git a/src/cregen.f90 b/src/cregen.f90
+index 7116088..27012f4 100644
+--- a/src/cregen.f90
++++ b/src/cregen.f90
+@@ -28,6 +28,7 @@ subroutine cregen2(env)
+ use ls_rmsd
+ use iomod
+ use strucrd, only: rdnat,rdcoord,wrc0,i2e,e2i
++ !$ use omp_lib
+ implicit none
+ type(systemdata) :: env ! MAIN STORAGE OS SYSTEM DATA
+ !type(options) :: opt ! MAIN STORAGE OF BOOLEAN SETTINGS
+@@ -55,39 +56,43 @@ subroutine cregen2(env)
+ real(wp) :: autokcal,beta,eav,A,T,rthr,s,g
+ real(wp) :: ss,ethr,de,dr,bthr,aa
+ real(wp) :: elow,psum,ewin,pthr,eref,athr,r,dsum,dav
+- real(wp) :: rotdiff,dum,shortest_distance,distcma,esort
++ real(wp) :: dum,distcma,esort
+ real(wp) :: rij(3),ri,rj,cnorm,erj
+ !real*8 :: gdum(3,3),Udum(3,3),xdum(3), ydum(3) ! rmsd dummy stuff
++ real(wp), external :: rotdiff,shortest_distance
+
+ parameter (autokcal=627.509541d0)
+
+- integer :: i,j,k,l,m,nall,n,lin,ig,ng,nall2,norig
++ integer :: i,j,k,l,m,nall,n,ig,ng,nall2,norig
+ integer :: m1,m2,s1,s2,maxg,current,mm,mmm,ndoub
+ integer :: molcount0,j1,iat,k2,molcount,m1end,imax
+ integer :: kk,memb,irr,ir,nr,jj,nall_old,iig
+- integer :: TID, OMP_GET_NUM_THREADS, OMP_GET_THREAD_NUM, nproc
+- integer :: ich,ich2,io,ich3
+- integer*8 :: lina,linr
++ integer :: TID, nproc
++ integer :: ich,ich2,io,ich3,rednat
++ integer, external :: lin
++ integer*8, external :: lina,linr
+ integer(idp) :: klong
+ integer(idp),allocatable :: rmatmap1(:)
+- integer,allocatable :: rmatmap2(:)
++ integer,allocatable :: rmatmap2(:),includeRMSD(:)
+
+ character(len=80) :: atmp,btmp,ctmp,oname,fname,cname
+ character(len=3) :: a3
+ character(len=512) :: outfile
+
+- logical :: debug,heavy,equalrot,l1,l2,l3,ex,newfile,anal,rmsdchk
+- logical :: exchok,distcheck,fail,equalrot2
+- logical :: substruc,equalrotall
++ logical :: debug,heavy,l1,l2,l3,ex,newfile,anal,rmsdchk
++ logical :: exchok,fail,equalrot2
++ logical :: substruc
+ logical :: ttag
++ logical, external :: distcheck,equalrot,equalrotall
+
+ settingNames: associate( crestver => env%crestver, confgo => env%confgo, &
+ & methautocorr => env%methautocorr, printscoords => env%printscoords, &
+ & ensemblename => env%ensemblename, compareens => env%compareens, &
+ & elowest => env%elowest, ENSO => env%ENSO, subRMSD => env%subRMSD, &
+ & trackorigin => env%trackorigin, autothreads => env%autothreads, &
+- & omp => env%omp, MAXRUN => env%MAXRUN, threads => env%threads, &
+- & rednat => env%rednat, includeRMSD => env%includeRMSD)
++ & omp => env%omp, MAXRUN => env%MAXRUN, threads => env%threads)
++ rednat = env%rednat
++ includeRMSD = env%includeRMSD
+
+ thresholdNames: associate( cgf => env%cgf, thresholds => env%thresholds)
+
+diff --git a/src/crest_main.f90 b/src/crest_main.f90
+index 798aa52..b4d08db 100644
+--- a/src/crest_main.f90
++++ b/src/crest_main.f90
+@@ -179,7 +179,7 @@ program CREST
+ call propquit(tim)
+ !---- extended tautomerization
+ case( p_tautomerize2 )
+- call tautomerize_ext(env,env%ensemblename,env,tim)
++ call tautomerize_ext(env%ensemblename,env,tim)
+ call propquit(tim)
+ !---- stereoisomerization
+ case( p_isomerize )
+diff --git a/src/ensemblecomp.f90 b/src/ensemblecomp.f90
+index 9281e50..de50063 100644
+--- a/src/ensemblecomp.f90
++++ b/src/ensemblecomp.f90
+@@ -73,8 +73,8 @@ subroutine compare_ensembles(env)
+ real(wp),parameter :: autokcal = 627.509541d0
+
+ associate( ensemblename => env%ensemblename, ensemblename2 => env%ensemblename2, &
+- & thresholds => env%thresholds, cgf => env%cgf, maxcompare => env%maxcompare, &
+- & nat => env%nat)
++ & thresholds => env%thresholds, cgf => env%cgf, maxcompare => env%maxcompare)
++ nat = env%nat
+
+ !----
+ call compens_cleanup()
+diff --git a/src/entropic.f90 b/src/entropic.f90
+index 54e1e99..bee368e 100644
+--- a/src/entropic.f90
++++ b/src/entropic.f90
+@@ -1210,7 +1210,7 @@ subroutine atmsTobool(n,atms,bool)
+ implicit none
+ integer :: n
+ integer :: atms(n)
+- integer :: bool(n)
++ logical :: bool(n)
+ integer :: i
+ do i=1,n
+ if(atms(i).ne.0)then
+@@ -1339,6 +1339,7 @@ end subroutine analsym
+ subroutine analsym_geo(grp,nat,xyz,at,fac,pr,sfsm)
+ use iso_fortran_env, wp => real64
+ use zdata
++ implicit none
+ type(zequal) :: grp
+ real(wp),intent(out) :: fac
+ logical :: pr
+@@ -1348,13 +1349,13 @@ subroutine analsym_geo(grp,nat,xyz,at,fac,pr,sfsm)
+ integer :: i,io
+ character(len=4) :: sfsym
+ character(len=4),intent(out) :: sfsm
+- real(wp) :: symfactor
++ real(wp),external :: symfactor
+ real(wp),parameter :: desy = 0.1_wp
+ integer,parameter :: maxat = 200
+ fac = 1.0_wp
+ call getsymmetry2(pr,6,nat,at,xyz, desy, maxat, sfsym)
+
+- fac = 1.0_wp / symfactor(grps,sfsym)
++ fac = 1.0_wp / symfactor(grp,sfsym)
+ sfsm=sfsym(1:3)
+ return
+ end subroutine analsym_geo
+diff --git a/src/io.f b/src/io.f
+index 7feaa0d..119c8ee 100644
+--- a/src/io.f
++++ b/src/io.f
+@@ -97,6 +97,7 @@ subroutine checkname_tmp(base,fname,checkname)
+ !CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+
+ subroutine getname_dir(base,fname)
++ use iomod, only : directory_exist
+ character(len=*) :: base,fname
+ integer :: i
+ logical :: ex
+@@ -106,7 +107,8 @@ subroutine getname_dir(base,fname)
+ do
+ i=i+1
+ write(dir,'(a,i0)')trim(base),i
+- inquire(directory=dir,exist=ex)
++ ! Inquire is not consitent across compilers
++ ex = directory_exist(dir)
+ if(.not.ex)then
+ fname=trim(dir)
+ exit
+@@ -274,18 +276,17 @@ subroutine XYZappendto(from,to)
+ character(len=*) :: to
+ integer :: i,j,k,nat
+ character(len=1024) :: str
+-
+ open(unit=666,file=to)
+ open(unit=777,file=from)
+-
+ do
+ read(666,*,iostat=io)
+- if(io<0)exit
++ if(io<0)then
++ backspace(666)
++ exit
++ endif
+ enddo
+-
+ read(777,*)nat
+ write(666,*)nat
+-
+ do i=1,nat+1
+ read(777,'(a)',iostat=io)str
+ if(io<0)exit
+@@ -310,7 +311,10 @@ subroutine TRJappendto_skipfirst(from,to)
+ open(newunit=och,file=from)
+ do
+ read(ich,*,iostat=io)
+- if(io<0)exit
++ if(io<0)then
++ backspace(ich)
++ exit
++ endif
+ enddo
+ !---first structure is read, but not copied
+ read(och,'(a)',iostat=io)str
+diff --git a/src/iomod.f90 b/src/iomod.F90
+similarity index 95%
+rename from src/iomod.f90
+rename to src/iomod.F90
+index 9e5f87c..05b3879 100644
+--- a/src/iomod.f90
++++ b/src/iomod.F90
+@@ -243,12 +243,18 @@ subroutine appendto(from,to)
+ open(newunit=och,file=from)
+ do
+ read(ich,*,iostat=io)
+- if(io<0)exit
++ if(io<0)then
++ backspace(ich)
++ exit
++ endif
+ enddo
+ do
+ read(och,'(a)',iostat=io)str
+- if(io<0)exit
+- write(ich,'(a)')trim(str)
++ if(io<0)then
++ exit
++ else
++ write(ich,'(a)')trim(str)
++ endif
+ enddo
+ close(och)
+ close(ich)
+@@ -612,5 +618,20 @@ function filechecker(fin,fout) result(have)
+ return
+ end function filechecker
+
++! Checking directories with Fortran's inquire is not handled by the standard.
++! The interpretation whether or not to report a directory as file is compiler
++! specific and therefore always an extension to the Fortran standard.
++function directory_exist(file) result(exist)
++ character(len=*), intent(in) :: file
++ logical :: exist
++#ifdef __INTEL_COMPILER
++ ! Intel provides the directory extension to inquire to handle this case
++ inquire(directory=file, exist=exist)
++#else
++ ! GCC handles directories as files, to make sure we get a directory and
++ ! not a file append a path separator and the current dir
++ inquire(file=trim(file)//"/.", exist=exist)
++#endif
++end function directory_exist
+
+ end module iomod
+diff --git a/src/ligands.f90 b/src/ligands.f90
+index a1605bd..ced659c 100644
+--- a/src/ligands.f90
++++ b/src/ligands.f90
+@@ -93,6 +93,15 @@ subroutine exchangeligands(infile,infile2,centeratom,ligandnr)
+ real(wp),allocatable :: xyz(:,:)
+ integer,allocatable :: at(:)
+ character(len=128) :: atmp,btmp
++ interface
++ subroutine matchligands(mol1,mol2,metal)
++ import :: coord, wp
++ implicit none
++ type(coord) :: mol1 !reference ligand
++ type(coord) :: mol2 !new ligand
++ real(wp),optional :: metal(3) !coordinates of the metal center
++ end subroutine matchligands
++ end interface
+ real(wp) :: refdist !distance of the old ligand
+ type(coord) :: oldligand
+ type(coord) :: newligand
+diff --git a/src/meson.build b/src/meson.build
+index 86d3e67..1172872 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -48,7 +48,7 @@ srcs += files(
+ 'identifiers.f90',
+ 'intmodes.f',
+ 'io.f',
+- 'iomod.f90',
++ 'iomod.F90',
+ 'ligands.f90',
+ 'ls_rmsd.f90',
+ 'marqfit.f',
+diff --git a/src/msreact.f90 b/src/msreact.f90
+index 5b44da0..aba5427 100644
+--- a/src/msreact.f90
++++ b/src/msreact.f90
+@@ -36,6 +36,16 @@ subroutine msreact_handler(env,tim)
+ type(msobj) :: mso !a new msreact object
+ type(coord) :: struc
+
++ interface
++ subroutine msreact_topowrap(mol,pair,paths,wboname)
++ import :: msmol
++ implicit none
++ type(msmol) :: mol
++ integer :: pair(mol%nat*(mol%nat+1)/2)
++ integer :: paths(mol%nat*(mol%nat+1)/2,mol%nat)
++ character(len=*),optional :: wboname
++ end subroutine msreact_topowrap
++ end interface
+ integer :: nat
+ integer,allocatable :: pair(:)
+ integer,allocatable :: paths(:,:)
+diff --git a/src/normmd.f90 b/src/normmd.f90
+index bb6d607..5cdf875 100644
+--- a/src/normmd.f90
++++ b/src/normmd.f90
+@@ -465,7 +465,7 @@ subroutine entropyMD_para_OMP(env)
+ !$omp single
+ do i=1,tot
+ vz=i
+- !$omp task firstprivate( vz ) private( tmppath,io )
++ !$omp task firstprivate( vz ) private( tmppath,io,ex )
+ call initsignal()
+ !$omp critical
+ write(*,'(a,i4,a)') 'Starting MTD',vz,' with the settings:'
+@@ -478,8 +478,8 @@ subroutine entropyMD_para_OMP(env)
+ !$omp end critical
+ write(tmppath,'(a,i0)')'STATICMTD',vz
+ call execute_command_line('cd '//trim(tmppath)//' && '//trim(jobcall), exitstat=io)
+- inquire(file=trim(tmppath)//'/'//'xtb.trj',exist=io)
+- if(.not.io)then
++ inquire(file=trim(tmppath)//'/'//'xtb.trj',exist=ex)
++ if(.not.ex .or. io.ne.0)then
+ write(*,'(a,i0,a)')'*Warning: static MTD ',vz,' seemingly failed (no xtb.trj)*'
+ call system('cp -r '//trim(tmppath)//' FAILEDMTD')
+ else
+diff --git a/src/optinplace.f90 b/src/optinplace.f90
+index fb8102a..c727e5f 100644
+--- a/src/optinplace.f90
++++ b/src/optinplace.f90
+@@ -43,6 +43,7 @@ subroutine MDopt_para_inplace(env,ensnam,multilev)
+
+ real(wp) :: lev
+
++ integer :: nat
+ real(wp),allocatable :: eread(:)
+ real(wp),allocatable :: xyz(:,:,:)
+ integer,allocatable :: at(:)
+@@ -61,7 +62,7 @@ subroutine MDopt_para_inplace(env,ensnam,multilev)
+
+ logical :: verbose,l1
+
+- associate( nat => env%nat )
++ nat = env%nat
+
+ !---- get current path
+ call getcwd(thispath)
+@@ -281,5 +282,4 @@ subroutine MDopt_para_inplace(env,ensnam,multilev)
+ !---- go back to original directory
+ call chdir(thispath)
+
+- end associate
+ end subroutine MDopt_para_inplace
+diff --git a/src/pka.f90 b/src/pka.f90
+index 5ac4ae6..9672a12 100644
+--- a/src/pka.f90
++++ b/src/pka.f90
+@@ -160,7 +160,16 @@ subroutine pkaquick(env,tim)
+ real(wp) :: GA,GB,dG
+ real(wp) :: eatb,gsa,grrhoa,ebtb,gsb,grrhob,dE
+ real(wp) :: pKa,dum,pkaref
+- real(wp) :: pKaCFER !this is a function
++ interface
++ function pKaCFER(dG,c1,c2,c3,c4,T) result(pka)
++ import :: wp
++ implicit none
++ real(wp) :: dG !in Eh
++ real(wp),optional :: T !in K
++ real(wp) :: pka
++ real(wp) :: c1,c2,c3,c4
++ end function pKaCFER
++ end interface
+ real(wp) :: c0,c1,c2,c3,c4
+ integer :: i,j,k,l,h,ich,io
+ integer :: refnat,refchrg
+@@ -375,12 +384,13 @@ subroutine miniopt(env,fname)
+ character(len=*) :: fname
+ character(len=1028) :: jobcall
+ integer :: io
++ logical :: ex
+ call env%wrtCHRG('')
+ write(jobcall,'(a,1x,a,1x,a,'' --ceasefiles --opt '',a,1x,a,'' >xtb.out'')') &
+ & trim(env%ProgName),trim(fname),trim(env%gfnver),trim(env%solv),' 2>/dev/null'
+ call execute_command_line(trim(jobcall), exitstat=io)
+- inquire(file='xtbopt.xyz',exist=io)
+- if(io)then
++ inquire(file='xtbopt.xyz',exist=ex)
++ if(ex)then
+ call rename('xtbopt.xyz',fname)
+ endif
+ call remove('xtbrestart')
+diff --git a/src/propcalc.f90 b/src/propcalc.f90
+index 68208e2..469566a 100644
+--- a/src/propcalc.f90
++++ b/src/propcalc.f90
+@@ -65,6 +65,18 @@ subroutine propcalc(iname,imode,env,tim)
+ integer :: P
+ integer :: fileid,ich
+
++ interface
++ subroutine prop_OMP_loop(env,TMPCONF,jobcall,pop)
++ import :: systemdata, wp
++ implicit none
++
++ type(systemdata) :: env
++ integer :: TMPCONF
++ character(len=1024) :: jobcall
++ real(wp),intent(in),optional :: pop(TMPCONF)
++ end subroutine
++ end interface
++
+ character(len=20) :: xname
+ character(len=20) :: optl,pipe
+ character(len=80) :: solv
+@@ -245,7 +257,7 @@ subroutine propcalc(iname,imode,env,tim)
+ enddo
+ write(*,'(1x,a)') 'done.'
+
+- if(any(mask==.false.))then
++ if(any(mask.eqv..false.))then
+ TMPCONF=ii-1
+ nall=ii-1
+ if(allocated(popul))deallocate(popul)
+@@ -310,7 +322,7 @@ subroutine propcalc(iname,imode,env,tim)
+
+ write(*,'(1x,a,i0,a)')'Performing calculations for ', &
+ & TMPCONF,' structures ...'
+- call sleep(0.5_wp)
++ call sleep(1)
+ call tim%start(10,'PROPERTY calc.')
+ allocate(dumm(TMPCONF), source=1.0_wp)
+ call prop_OMP_loop(env,TMPCONF,jobcall,dumm) !<------- this is where the "magic" happens
+diff --git a/src/stereoisomers.f90 b/src/stereoisomers.f90
+index e3b8897..ab32a71 100644
+--- a/src/stereoisomers.f90
++++ b/src/stereoisomers.f90
+@@ -434,13 +434,14 @@ subroutine cip_sphere(zmol,k,i,s,sphere)
+ integer,intent(inout) :: sphere(zmol%nat)
+ integer,allocatable :: sphereold(:)
+
+- integer :: j,m,n
++ integer :: j,m,n,dummy
+
+ allocate(sphereold(zmol%nat), source=0)
+
+ !get the s-th sphere in direction of i
+ sphere=0
+- call cip_getsphere(zmol,k,i,1,s,sphere,sphereold)
++ dummy=1
++ call cip_getsphere(zmol,k,i,dummy,s,sphere,sphereold)
+
+ !sphere contains the atoms, which we have now to convert to
+ !integer atom types:
+@@ -658,7 +659,7 @@ subroutine stereoinvert(zmol)
+ zmol%invector(3,i)=j ! <----
+ !--- get the atoms to be rotated in the special polycycle case
+ yloop2: do y=1,xnei
+- if(checkcounter(y)==.false.)then
++ if(checkcounter(y).eqv..false.)then
+ allocate(path2(nat), source = 0)
+ k=zmol%zat(i)%ngh(y)
+ l=0
+@@ -676,13 +677,13 @@ subroutine stereoinvert(zmol)
+ !--- get the atoms for the rotational axis setup in the polycyle case
+ yloop3: do y=1,xnei
+ if(zmol%invector(1,i).eq.0)then
+- if(checkcounter(y)==.true.)then
++ if(checkcounter(y).eqv..true.)then
+ k=zmol%zat(i)%ngh(y)
+ if(k.eq.zmol%invector(3,i)) cycle yloop3
+ zmol%invector(1,i)=k ! <----
+ endif
+ else if(zmol%invector(2,i).eq.0)then
+- if(checkcounter(y)==.true.)then
++ if(checkcounter(y).eqv..true.)then
+ k=zmol%zat(i)%ngh(y)
+ if(k.eq.zmol%invector(3,i)) cycle yloop3
+ zmol%invector(2,i)=k ! <----
+@@ -749,7 +750,7 @@ subroutine whichinvert(zmol,i,these,vec)
+ integer :: i
+
+ integer,intent(out) :: these(2) !--- the two neighbours which must be inverted
+- integer,intent(out) :: vec(3) !--- vector of the inversion axis
++ real(wp),intent(out) :: vec(3) !--- vector of the inversion axis
+
+ integer :: sref
+ integer :: j,k,l,m
+diff --git a/src/symmetry2.f90 b/src/symmetry2.f90
+index c85ce97..0d52612 100644
+--- a/src/symmetry2.f90
++++ b/src/symmetry2.f90
+@@ -39,7 +39,7 @@ End Subroutine schoenflies
+ End Interface c_interface
+
+ !Dummy Arguments
+- Character (Len=*), target :: sfsym
++ Character (Len=*) :: sfsym
+ Integer, Intent (In) :: n
+ Integer, Intent (In) :: iat (n)
+ Real(wp), Intent (In) :: xyz (3, n)
+diff --git a/src/trackorigin.f90 b/src/trackorigin.f90
+index 87f6b86..8c683e0 100644
+--- a/src/trackorigin.f90
++++ b/src/trackorigin.f90
+@@ -177,7 +177,7 @@ subroutine set_trj_origins(base,origin)
+ i=1
+ do
+ write(dir,'(a,i0)')trim(base),i
+- inquire(directory=trim(dir),exist=ex)
++ ex = directory_exist(trim(dir))
+ if(.not.ex)then
+ exit
+ else
+@@ -206,7 +206,7 @@ subroutine set_trj_timestamps(base,nsplit)
+ i=1
+ do
+ write(dir,'(a,i0)')trim(base),i
+- inquire(directory=trim(dir),exist=ex)
++ ex = directory_exist(trim(dir))
+ if(.not.ex)then
+ exit
+ else
+diff --git a/src/utilities.f b/src/utilities.f
+index ddee2ad..61dbbcd 100644
+--- a/src/utilities.f
++++ b/src/utilities.f
+@@ -38,7 +38,7 @@ subroutine revlin(k,i,j)
+ integer :: i,j
+ real*8 :: kf
+ real*8 :: idum
+- kf = floatk(k) !for int8 conversion
++ kf = real(k, 8)
+ idum = 1.0 + 8.0*kf
+ !idum = sqrt(idum)
+ idum = idum ** 0.5
+diff --git a/src/xtbmodef.f90 b/src/xtbmodef.f90
+index 738b374..cdd3206 100644
+--- a/src/xtbmodef.f90
++++ b/src/xtbmodef.f90
+@@ -46,8 +46,10 @@ subroutine xtbmodef(env,s,e,n,u,l,o,x)
+ character(len=868) :: str2
+ character(len=1024):: jobcall
+ character(len=200):: finfile,runfile
++ character(len=:), allocatable :: ProgName, gfnver
+
+ logical:: l1,l2,fin,run,modefok,mop,update,ex,clo
++ logical :: niceprint
+
+ real(wp) :: percent
+ character(len=52) :: bar
+@@ -55,9 +57,12 @@ subroutine xtbmodef(env,s,e,n,u,l,o,x)
+
+ call getcwd(thispath) !get current working directory
+
+- associate( ProgName => env%ProgName, gbsa => env%gbsa, solvent => env%solvent, &
++ associate( gbsa => env%gbsa, solvent => env%solvent, &
+ & fixfile => env%fixfile, constraints => env%constraints, optlev => env%optlev, &
+- & niceprint => env%niceprint, gfnver => env%gfnver, trackorigin => env%trackorigin)
++ & trackorigin => env%trackorigin)
++ niceprint = env%niceprint
++ gfnver = env%gfnver
++ ProgName = env%ProgName
+
+ !cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+
+diff --git a/src/zdata.f90 b/src/zdata.f90
+index 060c8d1..85170af 100644
+--- a/src/zdata.f90
++++ b/src/zdata.f90
+@@ -85,8 +85,8 @@ module zdata
+ integer,allocatable :: rlist(:)
+
+ contains
+- procedure deallocate => deallocate_zring !deallocate (if allocated)
+- procedure print => print_zring !print to screen
++ procedure :: deallocate => deallocate_zring !deallocate (if allocated)
++ procedure :: print => print_zring !print to screen
+ end type zring
+
+ !==========================================================================================================!
+@@ -96,10 +96,10 @@ module zdata
+ integer :: nm !# of members in group
+ integer,allocatable :: mem(:)
+ contains
+- procedure allocate => allocate_zgrp
+- procedure deallocate => deallocate_zgrp
+- procedure append => append_zgrp
+- procedure prgrp => print_zgrp
++ procedure :: allocate => allocate_zgrp
++ procedure :: deallocate => deallocate_zgrp
++ procedure :: append => append_zgrp
++ procedure :: prgrp => print_zgrp
+ end type zgrp
+ !equivalencies-class. contains information about equivalent nuclei
+ type :: zequal
+@@ -111,10 +111,10 @@ module zdata
+ type(zgrp),allocatable :: grp(:) !all groups (dimension <= nat)
+
+ contains
+- procedure allocate => allocate_zequal !allocate nat, ord(:) and grp(:)
+- procedure member => is_x_member !check if atom x is member of any group
+- procedure prsum => prsummary_zequal !print a summary of all the groups
+- procedure geteng => zequal_geteng !count number of groups with more than 1 member
++ procedure :: allocate => allocate_zequal !allocate nat, ord(:) and grp(:)
++ procedure :: member => is_x_member !check if atom x is member of any group
++ procedure :: prsum => prsummary_zequal !print a summary of all the groups
++ procedure :: geteng => zequal_geteng !count number of groups with more than 1 member
+
+ end type zequal
+
+@@ -197,8 +197,8 @@ module zdata
+
+ !--- procedures to be used with the zensemble
+ contains
+- procedure allocate => allocate_zensemble
+- procedure deallocate => deallocate_zensemble
++ procedure :: allocate => allocate_zensemble
++ procedure :: deallocate => deallocate_zensemble
+
+ end type zensemble
+
+diff --git a/src/ztopology.f90 b/src/ztopology.f90
+index 13d5954..1b9b12e 100644
+--- a/src/ztopology.f90
++++ b/src/ztopology.f90
+@@ -50,6 +50,18 @@ subroutine simpletopo_file(fname,zmol,verbose,wbofile)
+ integer,allocatable :: at(:)
+ real(wp),allocatable :: xyz(:,:)
+ logical :: ex
++ interface
++ subroutine simpletopo(n,at,xyz,zmol,verbose,wbofile)
++ import :: zmolecule, wp
++ implicit none
++ type(zmolecule) :: zmol
++ logical :: verbose
++ integer,intent(in) :: n
++ integer,intent(in) :: at(n)
++ real(wp),intent(in) :: xyz(3,n) !in Bohrs
++ character(len=*),intent(in),optional :: wbofile
++ end subroutine simpletopo
++ end interface
+
+ call rdnat(fname,n)
+ allocate(at(n),xyz(3,n))
+@@ -70,12 +82,25 @@ subroutine simpletopo_file(fname,zmol,verbose,wbofile)
+ end subroutine simpletopo_file
+
+ subroutine simpletopo_mol(mol,zmol,verbose)
++ use iso_fortran_env, wp => real64
+ use zdata
+ use strucrd
+ implicit none
+ type(coord) :: mol !in
+ type(zmolecule) :: zmol !out
+ logical :: verbose
++ interface
++ subroutine simpletopo(n,at,xyz,zmol,verbose,wbofile)
++ import :: zmolecule, wp
++ implicit none
++ type(zmolecule) :: zmol
++ logical :: verbose
++ integer,intent(in) :: n
++ integer,intent(in) :: at(n)
++ real(wp),intent(in) :: xyz(3,n) !in Bohrs
++ character(len=*),intent(in),optional :: wbofile
++ end subroutine simpletopo
++ end interface
+ call simpletopo(mol%nat,mol%at,mol%xyz,zmol,verbose,'')
+ return
+ end subroutine simpletopo_mol
diff --git a/crest-2.11-meson.patch b/crest-2.11-meson.patch
new file mode 100644
index 0000000..3661732
--- /dev/null
+++ b/crest-2.11-meson.patch
@@ -0,0 +1,36 @@
+diff -up crest-2.11/meson.build.meson crest-2.11/meson.build
+--- crest-2.11/meson.build.meson 2021-02-01 11:33:31.000000000 +0000
++++ crest-2.11/meson.build 2021-05-12 17:27:42.275379614 +0000
+@@ -41,8 +41,8 @@ crest_exe = executable(
+ link_language: 'fortran',
+ )
+
+-install_data(
+- files('combi-scripts/crest_combi'),
+- install_dir: get_option('bindir'),
+- install_mode: 'rwxr--r--',
+-)
++#install_data(
++# files('combi-scripts/crest_combi'),
++# install_dir: get_option('bindir'),
++# install_mode: 'rwxr--r--',
++#)
+diff -up crest-2.11/meson_options.txt.meson crest-2.11/meson_options.txt
+--- crest-2.11/meson_options.txt.meson 2021-02-01 11:33:31.000000000 +0000
++++ crest-2.11/meson_options.txt 2021-05-12 17:27:01.949083062 +0000
+@@ -14,10 +14,8 @@
+ # You should have received a copy of the GNU Lesser General Public License
+ # along with crest. If not, see <https://www.gnu.org/licenses/>.
+
+-option(
+- 'la_backend',
+- type: 'combo',
+- value: 'mkl-static',
+- choices: ['mkl', 'mkl-static', 'openblas', 'netlib'],
+- description: 'Linear algebra backend for program.',
+-)
++option('la_backend', type: 'combo', value: 'mkl-static',
++ choices: ['mkl', 'mkl-rt', 'mkl-static', 'openblas', 'netlib', 'custom'],
++ description: 'Linear algebra backend for program.')
++option('custom_libraries', type: 'array', value: [],
++ description: 'libraries to load for custom linear algebra backend')
diff --git a/crest.spec b/crest.spec
new file mode 100644
index 0000000..7c86b51
--- /dev/null
+++ b/crest.spec
@@ -0,0 +1,87 @@
+%global soname 6
+
+%if 0%{?fedora} >= 33
+%global blaslib flexiblas
+%global blasvar %{nil}
+%else
+%global blaslib openblas
+%global blasvar o
+%endif
+
+Name: crest
+Version: 2.11
+Release: 2%{?dist}
+Summary: Conformer-Rotamer Ensemble Sampling Tool: a driver for the xtb program
+License: GPLv3+
+URL: https://xtb-docs.readthedocs.io/en/latest/crest.html
+Source0: https://github.com/grimme-lab/crest/archive/v%{version}/crest-%{version}....
+
+# Patch to allow custom LAPACK; filed upstream https://github.com/grimme-lab/crest/pull/54
+Patch0: crest-2.11-meson.patch
+# Patch to fix gfortran compatibility
+Patch1: 2674ba27bf7a5f3c20c6f505cdf0f8a852eda1d5.patch
+
+BuildRequires: gcc
+BuildRequires: gcc-gfortran
+BuildRequires: meson
+BuildRequires: ninja-build
+BuildRequires: %{blaslib}-devel
+# To generate man pages
+BuildRequires: rubygem-asciidoctor
+
+# xtb may be required to run tests
+BuildRequires: xtb
+Requires: xtb
+
+# xtb is not available on s390x
+ExcludeArch: s390x
+
+%description
+CREST is an utility/driver program for the xtb program. Originally it
+was designed as conformer sampling program, hence the abbreviation
+Conformer-Rotamer Ensemble Sampling Tool, but now offers also some
+utility functions for calculations with the GFNn-xTB
+methods. Generally the program functions as an IO based OMP scheduler
+(i.e., calculations are performed by the xtb program) and tool for the
+creation and analysation of structure ensembles.
+
+The key procedure implemented in CREST is a conformational search
+workflow abbreviated as iMTD-GC. The iMTD-GC workflow generates
+conformer/rotamer ensembles (CREs) by extensive metadynamic sampling
+(MTD) based on, with an additional genetic z-matrix crossing (GC) step
+at the end. Other standalone functionalities that are included in
+CREST are parallel optimization and screening functions for GFNn–xTB,
+the function to sort (e.g. for NMR equivalencies) externally created
+ensembles, and some automated procedures for the protonation,
+deprotonation and tautomerization of structures.
+
+The main publication for the CREST program can be found at
+Phys. Chem. Chem. Phys., 2020, 22, 7169-7192.
+
+%prep
+%setup -q
+%patch0 -p1 -b .meson
+%patch1 -p1 -b .gfortran
+
+%build
+%meson -Dla_backend=custom -Dcustom_libraries=%{blaslib}%{blasvar} -Dtest_timeout=2000
+%meson_build
+
+%install
+%meson_install
+
+%check
+%meson_test
+
+%files
+%license LICENSE
+%doc README.md
+%{_bindir}/crest
+
+%changelog
+* Sat May 15 2021 Susi Lehtola <jussilehtola(a)fedoraproject.org> - 2.11-2
+- Review fixes.
+
+* Wed May 12 2021 Susi Lehtola <jussilehtola(a)fedoraproject.org> - 2.11-1
+- Initial release.
+
diff --git a/sources b/sources
new file mode 100644
index 0000000..b6bd862
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (crest-2.11.tar.gz) = 59fa3e8f181973b36fa4430408c375fa4c761604ce0f26b94bc671336035d2117691dfb35ece742aff008c0d496f34f5eb604c92e7f38139d38b802c012179d2
2 years, 11 months
Architecture specific change in rpms/crest.git
by githook-noreply@fedoraproject.org
The package rpms/crest.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/crest.git/commit/?id=ca08589926ec....
Change:
+ExcludeArch: s390x
Thanks.
Full change:
============
commit ca08589926ec9ea7591f82cd2754678e15b612f6
Author: Susi Lehtola <jussilehtola(a)fedoraproject.org>
Date: Mon May 17 21:06:41 2021 +0000
Initial import
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..f2a1a88
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/crest-2.11.tar.gz
diff --git a/2674ba27bf7a5f3c20c6f505cdf0f8a852eda1d5.patch b/2674ba27bf7a5f3c20c6f505cdf0f8a852eda1d5.patch
new file mode 100644
index 0000000..09d3e7c
--- /dev/null
+++ b/2674ba27bf7a5f3c20c6f505cdf0f8a852eda1d5.patch
@@ -0,0 +1,948 @@
+From 2674ba27bf7a5f3c20c6f505cdf0f8a852eda1d5 Mon Sep 17 00:00:00 2001
+From: Sebastian Ehlert <28669218+awvwgk(a)users.noreply.github.com>
+Date: Wed, 3 Feb 2021 14:47:15 +0100
+Subject: [PATCH] Fixes for GCC (#31)
+
+* Fixes for GCC
+
+- tested with GCC 10.2
+- added one subroutine to wrap preprocessor usage
+- add explicit interfaces when necessary
+- add external attributes to functions
+- remove associated variables which are part of OMP pragmas
+- use .eqv. instead of .eq. to compare logicals
+- fix some type mismatches
+
+* IO cleanup for gcc compatibility
+---
+ src/CMakeLists.txt | 2 +-
+ src/Makefile | 6 +++++-
+ src/ccegen.f90 | 2 +-
+ src/confcross.f90 | 4 ++--
+ src/confopt.f90 | 9 +++------
+ src/confparse.f90 | 6 +++---
+ src/confscript2_misc.f90 | 30 ++++++++++++++++--------------
+ src/cregen.f90 | 27 ++++++++++++++++-----------
+ src/crest_main.f90 | 2 +-
+ src/ensemblecomp.f90 | 4 ++--
+ src/entropic.f90 | 7 ++++---
+ src/io.f | 18 +++++++++++-------
+ src/{iomod.f90 => iomod.F90} | 27 ++++++++++++++++++++++++---
+ src/ligands.f90 | 9 +++++++++
+ src/meson.build | 2 +-
+ src/msreact.f90 | 10 ++++++++++
+ src/normmd.f90 | 6 +++---
+ src/optinplace.f90 | 4 ++--
+ src/pka.f90 | 16 +++++++++++++---
+ src/propcalc.f90 | 16 ++++++++++++++--
+ src/stereoisomers.f90 | 13 +++++++------
+ src/symmetry2.f90 | 2 +-
+ src/trackorigin.f90 | 4 ++--
+ src/utilities.f | 2 +-
+ src/xtbmodef.f90 | 9 +++++++--
+ src/zdata.f90 | 24 ++++++++++++------------
+ src/ztopology.f90 | 25 +++++++++++++++++++++++++
+ 27 files changed, 196 insertions(+), 90 deletions(-)
+ rename src/{iomod.f90 => iomod.F90} (95%)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index c4598fe..11a139d 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -50,7 +50,7 @@ list(APPEND srcs
+ "${dir}/identifiers.f90"
+ "${dir}/intmodes.f"
+ "${dir}/io.f"
+- "${dir}/iomod.f90"
++ "${dir}/iomod.F90"
+ "${dir}/ligands.f90"
+ "${dir}/ls_rmsd.f90"
+ "${dir}/marqfit.f"
+diff --git a/src/Makefile b/src/Makefile
+index 026d20b..8d8bdc7 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -168,7 +168,7 @@ fortran.o : $(CUDA)/src/fortran.c
+ # aus *.F mache ein *.f
+ %.f: %.F
+ @echo "making $@ from $<"
+- $(CC) $(PREFLAG) $(PREOPTS) $< -o $@
++ $(FC) $(PREFLAG) $(PREOPTS) $< -o $@
+
+ # aus *.f mache ein *.o
+ $(OBJDIR)/%.o: %.f
+@@ -179,6 +179,10 @@ $(OBJDIR)/%.o: %.f90
+ @echo "making $@ from $<"
+ $(FC) $(FFLAGS) -c $< -o $@
+
++$(OBJDIR)/%.o: %.F90
++ @echo "making $@ from $<"
++ $(FC) $(FFLAGS) -c $< -o $@
++
+ # aus *.c mache ein *.o
+ $(OBJDIR)/%.o: %.c
+ @echo "making $@ from $<"
+diff --git a/src/ccegen.f90 b/src/ccegen.f90
+index 11641c3..546d0a3 100644
+--- a/src/ccegen.f90
++++ b/src/ccegen.f90
+@@ -891,7 +891,7 @@ end function eucdist
+ !
+ !======================================================================!
+ subroutine kmeans(nclust,npc,mm,centroid,pcvec,ndist,dist,member)
+- use iso_fortran_env, wp => real64, idp => int64, sp => real32, ap => real32
++ use iso_fortran_env, wp => real64, idp => int64, sp => real32, ap => real64
+ implicit none
+ integer,intent(in) :: nclust ! number of required centroids
+ integer,intent(in) :: npc,mm
+diff --git a/src/confcross.f90 b/src/confcross.f90
+index 198b0d1..a42b229 100644
+--- a/src/confcross.f90
++++ b/src/confcross.f90
+@@ -46,10 +46,11 @@ subroutine confcross(env,maxgen,kk)
+ parameter (autokcal=627.509541d0)
+ parameter (pi = 3.14159265358979D0)
+
+- integer :: i,j,k,l,m,nall,n,lin,ig,ng,m1,ierr,nmax,nl,kl,kk
++ integer :: i,j,k,l,m,nall,n,ig,ng,m1,ierr,nmax,nl,kl,kk
+ integer :: maxgen,r,n2,nk,ident,nmaxmax,ii
+ integer :: io,ich
+ integer TID, OMP_GET_NUM_THREADS, OMP_GET_THREAD_NUM, nproc
++ integer, external :: lin
+
+ character(len=512) :: thispath
+ character(len=80) :: atmp,btmp,ctmp,fname,oname
+@@ -365,7 +366,6 @@ subroutine confcross(env,maxgen,kk)
+ !---- change back to working directory
+ call chdir(trim(thispath))
+
+-! stop
+ 666 continue
+
+ deallocate(ind)
+diff --git a/src/confopt.f90 b/src/confopt.f90
+index 604ba44..8089e2e 100644
+--- a/src/confopt.f90
++++ b/src/confopt.f90
+@@ -39,7 +39,6 @@ subroutine confopt(env,xyz,TMPCONF,confcross)
+ implicit none
+
+ type(systemdata) :: env
+- !type(options) :: opt
+
+ character(len=*),intent(in) :: xyz !file base name
+ integer,intent(in) :: TMPCONF !number of structures to be optimized
+@@ -223,9 +222,6 @@ subroutine opt_OMP_loop(TMPCONF,base,jobcall,niceprint)
+ character(len=512) :: str,thispath,tmppath,optpath
+
+
+-!----- quick settings
+- bdir = trim(adjustl(base))
+-
+ !niceprint=env%niceprint
+ if(niceprint)then
+ call printemptybar()
+@@ -239,8 +235,9 @@ subroutine opt_OMP_loop(TMPCONF,base,jobcall,niceprint)
+ vz=i
+ !$omp task firstprivate( vz ) private( tmppath,io )
+ call initsignal()
+- write(tmppath,'(a,i0)')bdir,vz
+- !call system('cd '//trim(tmppath)//' && '//trim(jobcall))
++ write(tmppath,'(a,i0)')trim(base),vz
++ !write(str,'("cd ",a," && ",a)')trim(tmppath),trim(jobcall)
++ !write(*,*) trim(str)
+ call execute_command_line('cd '//trim(tmppath)//' && '//trim(jobcall), exitstat=io)
+ !$omp critical
+ k=k+1
+diff --git a/src/confparse.f90 b/src/confparse.f90
+index 3ed02a4..ac14d43 100644
+--- a/src/confparse.f90
++++ b/src/confparse.f90
+@@ -65,7 +65,7 @@ subroutine parseflags(env,arg,nra) !FOR THE CONFSCRIPT STANDALONE
+ do i=1,nra
+ if( any( (/'--GUI','--gui'/)==trim(arg(i)))) gui =.true.
+ if( '-niceprint'==trim(arg(i)) ) env%niceprint=.true.
+- if( any( (/'-version','--version'/)==trim(arg(i))))then
++ if( any( (/character(9)::'-version','--version'/)==trim(arg(i))))then
+ call confscript_head()
+ stop
+ endif
+@@ -85,10 +85,10 @@ subroutine parseflags(env,arg,nra) !FOR THE CONFSCRIPT STANDALONE
+
+ !--- check if help is requested or citations shall be diplayed
+ do i=1,nra
+- if( any( (/'-h','-H','--h','--H','--help'/)==trim(arg(i))))then
++ if( any( (/character(6)::'-h','-H','--h','--H','--help'/)==trim(arg(i))))then
+ call confscript_help()
+ endif
+- if( any( (/'-cite','--cite','--citation'/)==trim(arg(i))))then
++ if( any( (/character(10)::'-cite','--cite','--citation'/)==trim(arg(i))))then
+ call crestcite()
+ endif
+ enddo
+diff --git a/src/confscript2_misc.f90 b/src/confscript2_misc.f90
+index d9fb747..fe8137a 100644
+--- a/src/confscript2_misc.f90
++++ b/src/confscript2_misc.f90
+@@ -332,6 +332,7 @@ subroutine MetaMD_para_OMP(env)
+ character(len=512) :: jobcall
+ character(len=80) :: fname,pipe,solv,atmp,btmp
+ integer :: dum,io
++ logical :: ex
+
+ if(env%autothreads)then
+ dum = env%nmetadyn
+@@ -372,7 +373,7 @@ subroutine MetaMD_para_OMP(env)
+ do i=1,env%nmetadyn
+ call initsignal()
+ vz=i
+- !$omp task firstprivate( vz ) private( tmppath,io )
++ !$omp task firstprivate( vz ) private( tmppath,io,ex )
+ call initsignal()
+ !$omp critical
+ write(*,'(a,i4,a)') 'Starting Meta-MD',vz,' with the settings:'
+@@ -385,8 +386,8 @@ subroutine MetaMD_para_OMP(env)
+ !$omp end critical
+ write(tmppath,'(a,i0)')'METADYN',vz
+ call execute_command_line('cd '//trim(tmppath)//' && '//trim(jobcall), exitstat=io)
+- inquire(file=trim(tmppath)//'/'//'xtb.trj',exist=io)
+- if(.not.io)then
++ inquire(file=trim(tmppath)//'/'//'xtb.trj',exist=ex)
++ if(.not.ex .or. io.ne.0)then
+ write(*,'(a,i0,a)')'*Warning: Meta-MTD ',vz,' seemingly failed (no xtb.trj)*'
+ call system('cp -r '//trim(tmppath)//' FAILED-MTD')
+ else
+@@ -740,37 +741,37 @@ subroutine setMDrun2(fname,hmass,mdtime,mdtemp,mdstep,shake,mddumpxyz, &
+ enddo
+ !--- then write the MD settings
+ write(ich,'(a)') '$md'
+- if(hmass.gt.0)then !set H-atom mass
++ if(hmass>0.0_wp)then !set H-atom mass
+ write(ich,'(2x,a,i0)') 'hmass=',nint(hmass)
+ endif
+- if(mdtime.gt.0.0d0)then !set MD simulation time in ps
++ if(mdtime>0.0_wp)then !set MD simulation time in ps
+ write(ich,'(2x,a,f10.2)') 'time=',mdtime
+ endif
+- if(mdtemp.gt.0)then !set MD Temperature
++ if(mdtemp>0.0_wp)then !set MD Temperature
+ write(ich,'(2x,a,f10.2)') 'temp=',mdtemp
+ endif
+ if(mdstep.gt.0)then !set MD timestep in fs
+ write(ich,'(2x,a,f10.2)') 'step=',mdstep
+ endif
+- if(shake.ge.0)then !set MD shake mode
++ if(shake>=0)then !set MD shake mode
+ write(ich,'(2x,a,i0)')'shake=',shake
+ endif
+ !the order of setting mddump and mddumpxyz is important!!!
+- if(mddumpxyz.gt.0)then ! Frequency of structure dump into xtb.trj in fs
++ if(mddumpxyz>0)then ! Frequency of structure dump into xtb.trj in fs
+ write(ich,'(2x,a,i0)')'dump=',mddumpxyz
+ endif
+- if(mdskip.ge.0)then !skipping optimizations in -mdopt
++ if(mdskip>=0)then !skipping optimizations in -mdopt
+ write(ich,'(2x,a,i0)')'skip=',mdskip
+ endif
+- if(nvt.ge.0)then ! NVT ensemble
+- if(nvt.eq.0)then
++ if(nvt>=0)then ! NVT ensemble
++ if(nvt==0)then
+ write(ich,'(2x,a)')'nvt=false'
+ else
+ write(ich,'(2x,a)')'nvt=true'
+ endif
+ endif
+ !the order of setting mddump and mddumpxyz is important!!!
+- if(mddump.gt.0)then ! Vbias dump for metadyn in fs
++ if(mddump>0)then ! Vbias dump for metadyn in fs
+ write(ich,'(a)')'$set'
+ write(ich,'(2x,a,2x,i0)')'mddump',mddump
+ endif
+@@ -785,6 +786,7 @@ subroutine setMDrun2(fname,hmass,mdtime,mdtemp,mdstep,shake,mddumpxyz, &
+ endif
+ call write_cts_rcontrol(ich,cts)
+ write(ich,'(a)') '$end'
++ close(ich)
+ return
+ end subroutine setMDrun2
+
+@@ -976,7 +978,7 @@ subroutine collect_trj(base,whichfile)
+ i=1
+ do
+ write(dir,'(a,i0)')trim(base),i
+- inquire(directory=trim(dir),exist=ex)
++ ex = directory_exist(trim(dir))
+ if(.not.ex)then
+ exit
+ else
+@@ -1001,7 +1003,7 @@ subroutine collect_trj_skipfirst(base,whichfile)
+ i=1
+ do
+ write(dir,'(a,i0)')trim(base),i
+- inquire(directory=trim(dir),exist=ex)
++ ex = directory_exist(trim(dir))
+ if(.not.ex)then
+ exit
+ else
+diff --git a/src/cregen.f90 b/src/cregen.f90
+index 7116088..27012f4 100644
+--- a/src/cregen.f90
++++ b/src/cregen.f90
+@@ -28,6 +28,7 @@ subroutine cregen2(env)
+ use ls_rmsd
+ use iomod
+ use strucrd, only: rdnat,rdcoord,wrc0,i2e,e2i
++ !$ use omp_lib
+ implicit none
+ type(systemdata) :: env ! MAIN STORAGE OS SYSTEM DATA
+ !type(options) :: opt ! MAIN STORAGE OF BOOLEAN SETTINGS
+@@ -55,39 +56,43 @@ subroutine cregen2(env)
+ real(wp) :: autokcal,beta,eav,A,T,rthr,s,g
+ real(wp) :: ss,ethr,de,dr,bthr,aa
+ real(wp) :: elow,psum,ewin,pthr,eref,athr,r,dsum,dav
+- real(wp) :: rotdiff,dum,shortest_distance,distcma,esort
++ real(wp) :: dum,distcma,esort
+ real(wp) :: rij(3),ri,rj,cnorm,erj
+ !real*8 :: gdum(3,3),Udum(3,3),xdum(3), ydum(3) ! rmsd dummy stuff
++ real(wp), external :: rotdiff,shortest_distance
+
+ parameter (autokcal=627.509541d0)
+
+- integer :: i,j,k,l,m,nall,n,lin,ig,ng,nall2,norig
++ integer :: i,j,k,l,m,nall,n,ig,ng,nall2,norig
+ integer :: m1,m2,s1,s2,maxg,current,mm,mmm,ndoub
+ integer :: molcount0,j1,iat,k2,molcount,m1end,imax
+ integer :: kk,memb,irr,ir,nr,jj,nall_old,iig
+- integer :: TID, OMP_GET_NUM_THREADS, OMP_GET_THREAD_NUM, nproc
+- integer :: ich,ich2,io,ich3
+- integer*8 :: lina,linr
++ integer :: TID, nproc
++ integer :: ich,ich2,io,ich3,rednat
++ integer, external :: lin
++ integer*8, external :: lina,linr
+ integer(idp) :: klong
+ integer(idp),allocatable :: rmatmap1(:)
+- integer,allocatable :: rmatmap2(:)
++ integer,allocatable :: rmatmap2(:),includeRMSD(:)
+
+ character(len=80) :: atmp,btmp,ctmp,oname,fname,cname
+ character(len=3) :: a3
+ character(len=512) :: outfile
+
+- logical :: debug,heavy,equalrot,l1,l2,l3,ex,newfile,anal,rmsdchk
+- logical :: exchok,distcheck,fail,equalrot2
+- logical :: substruc,equalrotall
++ logical :: debug,heavy,l1,l2,l3,ex,newfile,anal,rmsdchk
++ logical :: exchok,fail,equalrot2
++ logical :: substruc
+ logical :: ttag
++ logical, external :: distcheck,equalrot,equalrotall
+
+ settingNames: associate( crestver => env%crestver, confgo => env%confgo, &
+ & methautocorr => env%methautocorr, printscoords => env%printscoords, &
+ & ensemblename => env%ensemblename, compareens => env%compareens, &
+ & elowest => env%elowest, ENSO => env%ENSO, subRMSD => env%subRMSD, &
+ & trackorigin => env%trackorigin, autothreads => env%autothreads, &
+- & omp => env%omp, MAXRUN => env%MAXRUN, threads => env%threads, &
+- & rednat => env%rednat, includeRMSD => env%includeRMSD)
++ & omp => env%omp, MAXRUN => env%MAXRUN, threads => env%threads)
++ rednat = env%rednat
++ includeRMSD = env%includeRMSD
+
+ thresholdNames: associate( cgf => env%cgf, thresholds => env%thresholds)
+
+diff --git a/src/crest_main.f90 b/src/crest_main.f90
+index 798aa52..b4d08db 100644
+--- a/src/crest_main.f90
++++ b/src/crest_main.f90
+@@ -179,7 +179,7 @@ program CREST
+ call propquit(tim)
+ !---- extended tautomerization
+ case( p_tautomerize2 )
+- call tautomerize_ext(env,env%ensemblename,env,tim)
++ call tautomerize_ext(env%ensemblename,env,tim)
+ call propquit(tim)
+ !---- stereoisomerization
+ case( p_isomerize )
+diff --git a/src/ensemblecomp.f90 b/src/ensemblecomp.f90
+index 9281e50..de50063 100644
+--- a/src/ensemblecomp.f90
++++ b/src/ensemblecomp.f90
+@@ -73,8 +73,8 @@ subroutine compare_ensembles(env)
+ real(wp),parameter :: autokcal = 627.509541d0
+
+ associate( ensemblename => env%ensemblename, ensemblename2 => env%ensemblename2, &
+- & thresholds => env%thresholds, cgf => env%cgf, maxcompare => env%maxcompare, &
+- & nat => env%nat)
++ & thresholds => env%thresholds, cgf => env%cgf, maxcompare => env%maxcompare)
++ nat = env%nat
+
+ !----
+ call compens_cleanup()
+diff --git a/src/entropic.f90 b/src/entropic.f90
+index 54e1e99..bee368e 100644
+--- a/src/entropic.f90
++++ b/src/entropic.f90
+@@ -1210,7 +1210,7 @@ subroutine atmsTobool(n,atms,bool)
+ implicit none
+ integer :: n
+ integer :: atms(n)
+- integer :: bool(n)
++ logical :: bool(n)
+ integer :: i
+ do i=1,n
+ if(atms(i).ne.0)then
+@@ -1339,6 +1339,7 @@ end subroutine analsym
+ subroutine analsym_geo(grp,nat,xyz,at,fac,pr,sfsm)
+ use iso_fortran_env, wp => real64
+ use zdata
++ implicit none
+ type(zequal) :: grp
+ real(wp),intent(out) :: fac
+ logical :: pr
+@@ -1348,13 +1349,13 @@ subroutine analsym_geo(grp,nat,xyz,at,fac,pr,sfsm)
+ integer :: i,io
+ character(len=4) :: sfsym
+ character(len=4),intent(out) :: sfsm
+- real(wp) :: symfactor
++ real(wp),external :: symfactor
+ real(wp),parameter :: desy = 0.1_wp
+ integer,parameter :: maxat = 200
+ fac = 1.0_wp
+ call getsymmetry2(pr,6,nat,at,xyz, desy, maxat, sfsym)
+
+- fac = 1.0_wp / symfactor(grps,sfsym)
++ fac = 1.0_wp / symfactor(grp,sfsym)
+ sfsm=sfsym(1:3)
+ return
+ end subroutine analsym_geo
+diff --git a/src/io.f b/src/io.f
+index 7feaa0d..119c8ee 100644
+--- a/src/io.f
++++ b/src/io.f
+@@ -97,6 +97,7 @@ subroutine checkname_tmp(base,fname,checkname)
+ !CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+
+ subroutine getname_dir(base,fname)
++ use iomod, only : directory_exist
+ character(len=*) :: base,fname
+ integer :: i
+ logical :: ex
+@@ -106,7 +107,8 @@ subroutine getname_dir(base,fname)
+ do
+ i=i+1
+ write(dir,'(a,i0)')trim(base),i
+- inquire(directory=dir,exist=ex)
++ ! Inquire is not consitent across compilers
++ ex = directory_exist(dir)
+ if(.not.ex)then
+ fname=trim(dir)
+ exit
+@@ -274,18 +276,17 @@ subroutine XYZappendto(from,to)
+ character(len=*) :: to
+ integer :: i,j,k,nat
+ character(len=1024) :: str
+-
+ open(unit=666,file=to)
+ open(unit=777,file=from)
+-
+ do
+ read(666,*,iostat=io)
+- if(io<0)exit
++ if(io<0)then
++ backspace(666)
++ exit
++ endif
+ enddo
+-
+ read(777,*)nat
+ write(666,*)nat
+-
+ do i=1,nat+1
+ read(777,'(a)',iostat=io)str
+ if(io<0)exit
+@@ -310,7 +311,10 @@ subroutine TRJappendto_skipfirst(from,to)
+ open(newunit=och,file=from)
+ do
+ read(ich,*,iostat=io)
+- if(io<0)exit
++ if(io<0)then
++ backspace(ich)
++ exit
++ endif
+ enddo
+ !---first structure is read, but not copied
+ read(och,'(a)',iostat=io)str
+diff --git a/src/iomod.f90 b/src/iomod.F90
+similarity index 95%
+rename from src/iomod.f90
+rename to src/iomod.F90
+index 9e5f87c..05b3879 100644
+--- a/src/iomod.f90
++++ b/src/iomod.F90
+@@ -243,12 +243,18 @@ subroutine appendto(from,to)
+ open(newunit=och,file=from)
+ do
+ read(ich,*,iostat=io)
+- if(io<0)exit
++ if(io<0)then
++ backspace(ich)
++ exit
++ endif
+ enddo
+ do
+ read(och,'(a)',iostat=io)str
+- if(io<0)exit
+- write(ich,'(a)')trim(str)
++ if(io<0)then
++ exit
++ else
++ write(ich,'(a)')trim(str)
++ endif
+ enddo
+ close(och)
+ close(ich)
+@@ -612,5 +618,20 @@ function filechecker(fin,fout) result(have)
+ return
+ end function filechecker
+
++! Checking directories with Fortran's inquire is not handled by the standard.
++! The interpretation whether or not to report a directory as file is compiler
++! specific and therefore always an extension to the Fortran standard.
++function directory_exist(file) result(exist)
++ character(len=*), intent(in) :: file
++ logical :: exist
++#ifdef __INTEL_COMPILER
++ ! Intel provides the directory extension to inquire to handle this case
++ inquire(directory=file, exist=exist)
++#else
++ ! GCC handles directories as files, to make sure we get a directory and
++ ! not a file append a path separator and the current dir
++ inquire(file=trim(file)//"/.", exist=exist)
++#endif
++end function directory_exist
+
+ end module iomod
+diff --git a/src/ligands.f90 b/src/ligands.f90
+index a1605bd..ced659c 100644
+--- a/src/ligands.f90
++++ b/src/ligands.f90
+@@ -93,6 +93,15 @@ subroutine exchangeligands(infile,infile2,centeratom,ligandnr)
+ real(wp),allocatable :: xyz(:,:)
+ integer,allocatable :: at(:)
+ character(len=128) :: atmp,btmp
++ interface
++ subroutine matchligands(mol1,mol2,metal)
++ import :: coord, wp
++ implicit none
++ type(coord) :: mol1 !reference ligand
++ type(coord) :: mol2 !new ligand
++ real(wp),optional :: metal(3) !coordinates of the metal center
++ end subroutine matchligands
++ end interface
+ real(wp) :: refdist !distance of the old ligand
+ type(coord) :: oldligand
+ type(coord) :: newligand
+diff --git a/src/meson.build b/src/meson.build
+index 86d3e67..1172872 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -48,7 +48,7 @@ srcs += files(
+ 'identifiers.f90',
+ 'intmodes.f',
+ 'io.f',
+- 'iomod.f90',
++ 'iomod.F90',
+ 'ligands.f90',
+ 'ls_rmsd.f90',
+ 'marqfit.f',
+diff --git a/src/msreact.f90 b/src/msreact.f90
+index 5b44da0..aba5427 100644
+--- a/src/msreact.f90
++++ b/src/msreact.f90
+@@ -36,6 +36,16 @@ subroutine msreact_handler(env,tim)
+ type(msobj) :: mso !a new msreact object
+ type(coord) :: struc
+
++ interface
++ subroutine msreact_topowrap(mol,pair,paths,wboname)
++ import :: msmol
++ implicit none
++ type(msmol) :: mol
++ integer :: pair(mol%nat*(mol%nat+1)/2)
++ integer :: paths(mol%nat*(mol%nat+1)/2,mol%nat)
++ character(len=*),optional :: wboname
++ end subroutine msreact_topowrap
++ end interface
+ integer :: nat
+ integer,allocatable :: pair(:)
+ integer,allocatable :: paths(:,:)
+diff --git a/src/normmd.f90 b/src/normmd.f90
+index bb6d607..5cdf875 100644
+--- a/src/normmd.f90
++++ b/src/normmd.f90
+@@ -465,7 +465,7 @@ subroutine entropyMD_para_OMP(env)
+ !$omp single
+ do i=1,tot
+ vz=i
+- !$omp task firstprivate( vz ) private( tmppath,io )
++ !$omp task firstprivate( vz ) private( tmppath,io,ex )
+ call initsignal()
+ !$omp critical
+ write(*,'(a,i4,a)') 'Starting MTD',vz,' with the settings:'
+@@ -478,8 +478,8 @@ subroutine entropyMD_para_OMP(env)
+ !$omp end critical
+ write(tmppath,'(a,i0)')'STATICMTD',vz
+ call execute_command_line('cd '//trim(tmppath)//' && '//trim(jobcall), exitstat=io)
+- inquire(file=trim(tmppath)//'/'//'xtb.trj',exist=io)
+- if(.not.io)then
++ inquire(file=trim(tmppath)//'/'//'xtb.trj',exist=ex)
++ if(.not.ex .or. io.ne.0)then
+ write(*,'(a,i0,a)')'*Warning: static MTD ',vz,' seemingly failed (no xtb.trj)*'
+ call system('cp -r '//trim(tmppath)//' FAILEDMTD')
+ else
+diff --git a/src/optinplace.f90 b/src/optinplace.f90
+index fb8102a..c727e5f 100644
+--- a/src/optinplace.f90
++++ b/src/optinplace.f90
+@@ -43,6 +43,7 @@ subroutine MDopt_para_inplace(env,ensnam,multilev)
+
+ real(wp) :: lev
+
++ integer :: nat
+ real(wp),allocatable :: eread(:)
+ real(wp),allocatable :: xyz(:,:,:)
+ integer,allocatable :: at(:)
+@@ -61,7 +62,7 @@ subroutine MDopt_para_inplace(env,ensnam,multilev)
+
+ logical :: verbose,l1
+
+- associate( nat => env%nat )
++ nat = env%nat
+
+ !---- get current path
+ call getcwd(thispath)
+@@ -281,5 +282,4 @@ subroutine MDopt_para_inplace(env,ensnam,multilev)
+ !---- go back to original directory
+ call chdir(thispath)
+
+- end associate
+ end subroutine MDopt_para_inplace
+diff --git a/src/pka.f90 b/src/pka.f90
+index 5ac4ae6..9672a12 100644
+--- a/src/pka.f90
++++ b/src/pka.f90
+@@ -160,7 +160,16 @@ subroutine pkaquick(env,tim)
+ real(wp) :: GA,GB,dG
+ real(wp) :: eatb,gsa,grrhoa,ebtb,gsb,grrhob,dE
+ real(wp) :: pKa,dum,pkaref
+- real(wp) :: pKaCFER !this is a function
++ interface
++ function pKaCFER(dG,c1,c2,c3,c4,T) result(pka)
++ import :: wp
++ implicit none
++ real(wp) :: dG !in Eh
++ real(wp),optional :: T !in K
++ real(wp) :: pka
++ real(wp) :: c1,c2,c3,c4
++ end function pKaCFER
++ end interface
+ real(wp) :: c0,c1,c2,c3,c4
+ integer :: i,j,k,l,h,ich,io
+ integer :: refnat,refchrg
+@@ -375,12 +384,13 @@ subroutine miniopt(env,fname)
+ character(len=*) :: fname
+ character(len=1028) :: jobcall
+ integer :: io
++ logical :: ex
+ call env%wrtCHRG('')
+ write(jobcall,'(a,1x,a,1x,a,'' --ceasefiles --opt '',a,1x,a,'' >xtb.out'')') &
+ & trim(env%ProgName),trim(fname),trim(env%gfnver),trim(env%solv),' 2>/dev/null'
+ call execute_command_line(trim(jobcall), exitstat=io)
+- inquire(file='xtbopt.xyz',exist=io)
+- if(io)then
++ inquire(file='xtbopt.xyz',exist=ex)
++ if(ex)then
+ call rename('xtbopt.xyz',fname)
+ endif
+ call remove('xtbrestart')
+diff --git a/src/propcalc.f90 b/src/propcalc.f90
+index 68208e2..469566a 100644
+--- a/src/propcalc.f90
++++ b/src/propcalc.f90
+@@ -65,6 +65,18 @@ subroutine propcalc(iname,imode,env,tim)
+ integer :: P
+ integer :: fileid,ich
+
++ interface
++ subroutine prop_OMP_loop(env,TMPCONF,jobcall,pop)
++ import :: systemdata, wp
++ implicit none
++
++ type(systemdata) :: env
++ integer :: TMPCONF
++ character(len=1024) :: jobcall
++ real(wp),intent(in),optional :: pop(TMPCONF)
++ end subroutine
++ end interface
++
+ character(len=20) :: xname
+ character(len=20) :: optl,pipe
+ character(len=80) :: solv
+@@ -245,7 +257,7 @@ subroutine propcalc(iname,imode,env,tim)
+ enddo
+ write(*,'(1x,a)') 'done.'
+
+- if(any(mask==.false.))then
++ if(any(mask.eqv..false.))then
+ TMPCONF=ii-1
+ nall=ii-1
+ if(allocated(popul))deallocate(popul)
+@@ -310,7 +322,7 @@ subroutine propcalc(iname,imode,env,tim)
+
+ write(*,'(1x,a,i0,a)')'Performing calculations for ', &
+ & TMPCONF,' structures ...'
+- call sleep(0.5_wp)
++ call sleep(1)
+ call tim%start(10,'PROPERTY calc.')
+ allocate(dumm(TMPCONF), source=1.0_wp)
+ call prop_OMP_loop(env,TMPCONF,jobcall,dumm) !<------- this is where the "magic" happens
+diff --git a/src/stereoisomers.f90 b/src/stereoisomers.f90
+index e3b8897..ab32a71 100644
+--- a/src/stereoisomers.f90
++++ b/src/stereoisomers.f90
+@@ -434,13 +434,14 @@ subroutine cip_sphere(zmol,k,i,s,sphere)
+ integer,intent(inout) :: sphere(zmol%nat)
+ integer,allocatable :: sphereold(:)
+
+- integer :: j,m,n
++ integer :: j,m,n,dummy
+
+ allocate(sphereold(zmol%nat), source=0)
+
+ !get the s-th sphere in direction of i
+ sphere=0
+- call cip_getsphere(zmol,k,i,1,s,sphere,sphereold)
++ dummy=1
++ call cip_getsphere(zmol,k,i,dummy,s,sphere,sphereold)
+
+ !sphere contains the atoms, which we have now to convert to
+ !integer atom types:
+@@ -658,7 +659,7 @@ subroutine stereoinvert(zmol)
+ zmol%invector(3,i)=j ! <----
+ !--- get the atoms to be rotated in the special polycycle case
+ yloop2: do y=1,xnei
+- if(checkcounter(y)==.false.)then
++ if(checkcounter(y).eqv..false.)then
+ allocate(path2(nat), source = 0)
+ k=zmol%zat(i)%ngh(y)
+ l=0
+@@ -676,13 +677,13 @@ subroutine stereoinvert(zmol)
+ !--- get the atoms for the rotational axis setup in the polycyle case
+ yloop3: do y=1,xnei
+ if(zmol%invector(1,i).eq.0)then
+- if(checkcounter(y)==.true.)then
++ if(checkcounter(y).eqv..true.)then
+ k=zmol%zat(i)%ngh(y)
+ if(k.eq.zmol%invector(3,i)) cycle yloop3
+ zmol%invector(1,i)=k ! <----
+ endif
+ else if(zmol%invector(2,i).eq.0)then
+- if(checkcounter(y)==.true.)then
++ if(checkcounter(y).eqv..true.)then
+ k=zmol%zat(i)%ngh(y)
+ if(k.eq.zmol%invector(3,i)) cycle yloop3
+ zmol%invector(2,i)=k ! <----
+@@ -749,7 +750,7 @@ subroutine whichinvert(zmol,i,these,vec)
+ integer :: i
+
+ integer,intent(out) :: these(2) !--- the two neighbours which must be inverted
+- integer,intent(out) :: vec(3) !--- vector of the inversion axis
++ real(wp),intent(out) :: vec(3) !--- vector of the inversion axis
+
+ integer :: sref
+ integer :: j,k,l,m
+diff --git a/src/symmetry2.f90 b/src/symmetry2.f90
+index c85ce97..0d52612 100644
+--- a/src/symmetry2.f90
++++ b/src/symmetry2.f90
+@@ -39,7 +39,7 @@ End Subroutine schoenflies
+ End Interface c_interface
+
+ !Dummy Arguments
+- Character (Len=*), target :: sfsym
++ Character (Len=*) :: sfsym
+ Integer, Intent (In) :: n
+ Integer, Intent (In) :: iat (n)
+ Real(wp), Intent (In) :: xyz (3, n)
+diff --git a/src/trackorigin.f90 b/src/trackorigin.f90
+index 87f6b86..8c683e0 100644
+--- a/src/trackorigin.f90
++++ b/src/trackorigin.f90
+@@ -177,7 +177,7 @@ subroutine set_trj_origins(base,origin)
+ i=1
+ do
+ write(dir,'(a,i0)')trim(base),i
+- inquire(directory=trim(dir),exist=ex)
++ ex = directory_exist(trim(dir))
+ if(.not.ex)then
+ exit
+ else
+@@ -206,7 +206,7 @@ subroutine set_trj_timestamps(base,nsplit)
+ i=1
+ do
+ write(dir,'(a,i0)')trim(base),i
+- inquire(directory=trim(dir),exist=ex)
++ ex = directory_exist(trim(dir))
+ if(.not.ex)then
+ exit
+ else
+diff --git a/src/utilities.f b/src/utilities.f
+index ddee2ad..61dbbcd 100644
+--- a/src/utilities.f
++++ b/src/utilities.f
+@@ -38,7 +38,7 @@ subroutine revlin(k,i,j)
+ integer :: i,j
+ real*8 :: kf
+ real*8 :: idum
+- kf = floatk(k) !for int8 conversion
++ kf = real(k, 8)
+ idum = 1.0 + 8.0*kf
+ !idum = sqrt(idum)
+ idum = idum ** 0.5
+diff --git a/src/xtbmodef.f90 b/src/xtbmodef.f90
+index 738b374..cdd3206 100644
+--- a/src/xtbmodef.f90
++++ b/src/xtbmodef.f90
+@@ -46,8 +46,10 @@ subroutine xtbmodef(env,s,e,n,u,l,o,x)
+ character(len=868) :: str2
+ character(len=1024):: jobcall
+ character(len=200):: finfile,runfile
++ character(len=:), allocatable :: ProgName, gfnver
+
+ logical:: l1,l2,fin,run,modefok,mop,update,ex,clo
++ logical :: niceprint
+
+ real(wp) :: percent
+ character(len=52) :: bar
+@@ -55,9 +57,12 @@ subroutine xtbmodef(env,s,e,n,u,l,o,x)
+
+ call getcwd(thispath) !get current working directory
+
+- associate( ProgName => env%ProgName, gbsa => env%gbsa, solvent => env%solvent, &
++ associate( gbsa => env%gbsa, solvent => env%solvent, &
+ & fixfile => env%fixfile, constraints => env%constraints, optlev => env%optlev, &
+- & niceprint => env%niceprint, gfnver => env%gfnver, trackorigin => env%trackorigin)
++ & trackorigin => env%trackorigin)
++ niceprint = env%niceprint
++ gfnver = env%gfnver
++ ProgName = env%ProgName
+
+ !cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+
+diff --git a/src/zdata.f90 b/src/zdata.f90
+index 060c8d1..85170af 100644
+--- a/src/zdata.f90
++++ b/src/zdata.f90
+@@ -85,8 +85,8 @@ module zdata
+ integer,allocatable :: rlist(:)
+
+ contains
+- procedure deallocate => deallocate_zring !deallocate (if allocated)
+- procedure print => print_zring !print to screen
++ procedure :: deallocate => deallocate_zring !deallocate (if allocated)
++ procedure :: print => print_zring !print to screen
+ end type zring
+
+ !==========================================================================================================!
+@@ -96,10 +96,10 @@ module zdata
+ integer :: nm !# of members in group
+ integer,allocatable :: mem(:)
+ contains
+- procedure allocate => allocate_zgrp
+- procedure deallocate => deallocate_zgrp
+- procedure append => append_zgrp
+- procedure prgrp => print_zgrp
++ procedure :: allocate => allocate_zgrp
++ procedure :: deallocate => deallocate_zgrp
++ procedure :: append => append_zgrp
++ procedure :: prgrp => print_zgrp
+ end type zgrp
+ !equivalencies-class. contains information about equivalent nuclei
+ type :: zequal
+@@ -111,10 +111,10 @@ module zdata
+ type(zgrp),allocatable :: grp(:) !all groups (dimension <= nat)
+
+ contains
+- procedure allocate => allocate_zequal !allocate nat, ord(:) and grp(:)
+- procedure member => is_x_member !check if atom x is member of any group
+- procedure prsum => prsummary_zequal !print a summary of all the groups
+- procedure geteng => zequal_geteng !count number of groups with more than 1 member
++ procedure :: allocate => allocate_zequal !allocate nat, ord(:) and grp(:)
++ procedure :: member => is_x_member !check if atom x is member of any group
++ procedure :: prsum => prsummary_zequal !print a summary of all the groups
++ procedure :: geteng => zequal_geteng !count number of groups with more than 1 member
+
+ end type zequal
+
+@@ -197,8 +197,8 @@ module zdata
+
+ !--- procedures to be used with the zensemble
+ contains
+- procedure allocate => allocate_zensemble
+- procedure deallocate => deallocate_zensemble
++ procedure :: allocate => allocate_zensemble
++ procedure :: deallocate => deallocate_zensemble
+
+ end type zensemble
+
+diff --git a/src/ztopology.f90 b/src/ztopology.f90
+index 13d5954..1b9b12e 100644
+--- a/src/ztopology.f90
++++ b/src/ztopology.f90
+@@ -50,6 +50,18 @@ subroutine simpletopo_file(fname,zmol,verbose,wbofile)
+ integer,allocatable :: at(:)
+ real(wp),allocatable :: xyz(:,:)
+ logical :: ex
++ interface
++ subroutine simpletopo(n,at,xyz,zmol,verbose,wbofile)
++ import :: zmolecule, wp
++ implicit none
++ type(zmolecule) :: zmol
++ logical :: verbose
++ integer,intent(in) :: n
++ integer,intent(in) :: at(n)
++ real(wp),intent(in) :: xyz(3,n) !in Bohrs
++ character(len=*),intent(in),optional :: wbofile
++ end subroutine simpletopo
++ end interface
+
+ call rdnat(fname,n)
+ allocate(at(n),xyz(3,n))
+@@ -70,12 +82,25 @@ subroutine simpletopo_file(fname,zmol,verbose,wbofile)
+ end subroutine simpletopo_file
+
+ subroutine simpletopo_mol(mol,zmol,verbose)
++ use iso_fortran_env, wp => real64
+ use zdata
+ use strucrd
+ implicit none
+ type(coord) :: mol !in
+ type(zmolecule) :: zmol !out
+ logical :: verbose
++ interface
++ subroutine simpletopo(n,at,xyz,zmol,verbose,wbofile)
++ import :: zmolecule, wp
++ implicit none
++ type(zmolecule) :: zmol
++ logical :: verbose
++ integer,intent(in) :: n
++ integer,intent(in) :: at(n)
++ real(wp),intent(in) :: xyz(3,n) !in Bohrs
++ character(len=*),intent(in),optional :: wbofile
++ end subroutine simpletopo
++ end interface
+ call simpletopo(mol%nat,mol%at,mol%xyz,zmol,verbose,'')
+ return
+ end subroutine simpletopo_mol
diff --git a/crest-2.11-meson.patch b/crest-2.11-meson.patch
new file mode 100644
index 0000000..3661732
--- /dev/null
+++ b/crest-2.11-meson.patch
@@ -0,0 +1,36 @@
+diff -up crest-2.11/meson.build.meson crest-2.11/meson.build
+--- crest-2.11/meson.build.meson 2021-02-01 11:33:31.000000000 +0000
++++ crest-2.11/meson.build 2021-05-12 17:27:42.275379614 +0000
+@@ -41,8 +41,8 @@ crest_exe = executable(
+ link_language: 'fortran',
+ )
+
+-install_data(
+- files('combi-scripts/crest_combi'),
+- install_dir: get_option('bindir'),
+- install_mode: 'rwxr--r--',
+-)
++#install_data(
++# files('combi-scripts/crest_combi'),
++# install_dir: get_option('bindir'),
++# install_mode: 'rwxr--r--',
++#)
+diff -up crest-2.11/meson_options.txt.meson crest-2.11/meson_options.txt
+--- crest-2.11/meson_options.txt.meson 2021-02-01 11:33:31.000000000 +0000
++++ crest-2.11/meson_options.txt 2021-05-12 17:27:01.949083062 +0000
+@@ -14,10 +14,8 @@
+ # You should have received a copy of the GNU Lesser General Public License
+ # along with crest. If not, see <https://www.gnu.org/licenses/>.
+
+-option(
+- 'la_backend',
+- type: 'combo',
+- value: 'mkl-static',
+- choices: ['mkl', 'mkl-static', 'openblas', 'netlib'],
+- description: 'Linear algebra backend for program.',
+-)
++option('la_backend', type: 'combo', value: 'mkl-static',
++ choices: ['mkl', 'mkl-rt', 'mkl-static', 'openblas', 'netlib', 'custom'],
++ description: 'Linear algebra backend for program.')
++option('custom_libraries', type: 'array', value: [],
++ description: 'libraries to load for custom linear algebra backend')
diff --git a/crest.spec b/crest.spec
new file mode 100644
index 0000000..7c86b51
--- /dev/null
+++ b/crest.spec
@@ -0,0 +1,87 @@
+%global soname 6
+
+%if 0%{?fedora} >= 33
+%global blaslib flexiblas
+%global blasvar %{nil}
+%else
+%global blaslib openblas
+%global blasvar o
+%endif
+
+Name: crest
+Version: 2.11
+Release: 2%{?dist}
+Summary: Conformer-Rotamer Ensemble Sampling Tool: a driver for the xtb program
+License: GPLv3+
+URL: https://xtb-docs.readthedocs.io/en/latest/crest.html
+Source0: https://github.com/grimme-lab/crest/archive/v%{version}/crest-%{version}....
+
+# Patch to allow custom LAPACK; filed upstream https://github.com/grimme-lab/crest/pull/54
+Patch0: crest-2.11-meson.patch
+# Patch to fix gfortran compatibility
+Patch1: 2674ba27bf7a5f3c20c6f505cdf0f8a852eda1d5.patch
+
+BuildRequires: gcc
+BuildRequires: gcc-gfortran
+BuildRequires: meson
+BuildRequires: ninja-build
+BuildRequires: %{blaslib}-devel
+# To generate man pages
+BuildRequires: rubygem-asciidoctor
+
+# xtb may be required to run tests
+BuildRequires: xtb
+Requires: xtb
+
+# xtb is not available on s390x
+ExcludeArch: s390x
+
+%description
+CREST is an utility/driver program for the xtb program. Originally it
+was designed as conformer sampling program, hence the abbreviation
+Conformer-Rotamer Ensemble Sampling Tool, but now offers also some
+utility functions for calculations with the GFNn-xTB
+methods. Generally the program functions as an IO based OMP scheduler
+(i.e., calculations are performed by the xtb program) and tool for the
+creation and analysation of structure ensembles.
+
+The key procedure implemented in CREST is a conformational search
+workflow abbreviated as iMTD-GC. The iMTD-GC workflow generates
+conformer/rotamer ensembles (CREs) by extensive metadynamic sampling
+(MTD) based on, with an additional genetic z-matrix crossing (GC) step
+at the end. Other standalone functionalities that are included in
+CREST are parallel optimization and screening functions for GFNn–xTB,
+the function to sort (e.g. for NMR equivalencies) externally created
+ensembles, and some automated procedures for the protonation,
+deprotonation and tautomerization of structures.
+
+The main publication for the CREST program can be found at
+Phys. Chem. Chem. Phys., 2020, 22, 7169-7192.
+
+%prep
+%setup -q
+%patch0 -p1 -b .meson
+%patch1 -p1 -b .gfortran
+
+%build
+%meson -Dla_backend=custom -Dcustom_libraries=%{blaslib}%{blasvar} -Dtest_timeout=2000
+%meson_build
+
+%install
+%meson_install
+
+%check
+%meson_test
+
+%files
+%license LICENSE
+%doc README.md
+%{_bindir}/crest
+
+%changelog
+* Sat May 15 2021 Susi Lehtola <jussilehtola(a)fedoraproject.org> - 2.11-2
+- Review fixes.
+
+* Wed May 12 2021 Susi Lehtola <jussilehtola(a)fedoraproject.org> - 2.11-1
+- Initial release.
+
diff --git a/sources b/sources
new file mode 100644
index 0000000..b6bd862
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (crest-2.11.tar.gz) = 59fa3e8f181973b36fa4430408c375fa4c761604ce0f26b94bc671336035d2117691dfb35ece742aff008c0d496f34f5eb604c92e7f38139d38b802c012179d2
2 years, 11 months