Warning: Permanently added '52.87.179.79' (ECDSA) to the list of known hosts. Running: /usr/bin/copr-rpmbuild --verbose --drop-resultdir --build-id 1689614 --chroot epel-8-x86_64 --detached Version: 0.40 Task: {'build_id': 1689614, 'buildroot_pkgs': [], 'chroot': 'epel-8-x86_64', 'enable_net': True, 'fetch_sources_only': True, 'git_hash': 'a2558f09722d9f6f818c670c40fabdb2c6084c3a', 'git_repo': 'slaanesh/system-management/python-beautifulsoup4', 'memory_reqs': 2048, 'package_name': 'python-beautifulsoup4', 'package_version': '4.6.3-1.el8', 'project_dirname': 'system-management', 'project_name': 'system-management', 'project_owner': 'slaanesh', 'repos': [{'baseurl': 'https://download.copr.fedorainfracloud.org/results/slaanesh/system-management/epel-8-x86_64/', 'id': 'copr_base', 'name': 'Copr repository'}], 'sandbox': 'slaanesh/system-management--slaanesh', 'source_json': {'clone_url': 'https://copr-dist-git.fedorainfracloud.org/git/slaanesh/system-management/python-beautifulsoup4.git', 'committish': 'a2558f09722d9f6f818c670c40fabdb2c6084c3a'}, 'source_type': 8, 'submitter': 'slaanesh', 'task_id': '1689614-epel-8-x86_64', 'timeout': 108000, 'use_bootstrap_container': False, 'uses_devel_repo': False, 'with_opts': [], 'without_opts': []} Running: git clone https://copr-dist-git.fedorainfracloud.org/git/slaanesh/system-management/python-beautifulsoup4.git /tmp/copr-rpmbuild-uh8utqek/obtain-sources/python-beautifulsoup4 --depth 500 --no-single-branch cmd: ['git', 'clone', 'https://copr-dist-git.fedorainfracloud.org/git/slaanesh/system-management/python-beautifulsoup4.git', '/tmp/copr-rpmbuild-uh8utqek/obtain-sources/python-beautifulsoup4', '--depth', '500', '--no-single-branch'] cwd: . rc: 0 stdout: stderr: Cloning into '/tmp/copr-rpmbuild-uh8utqek/obtain-sources/python-beautifulsoup4'... Running: git checkout a2558f09722d9f6f818c670c40fabdb2c6084c3a cmd: ['git', 'checkout', 'a2558f09722d9f6f818c670c40fabdb2c6084c3a'] cwd: /tmp/copr-rpmbuild-uh8utqek/obtain-sources/python-beautifulsoup4 rc: 0 stdout: stderr: Note: switching to 'a2558f09722d9f6f818c670c40fabdb2c6084c3a'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at a2558f0 automatic import of python-beautifulsoup4 Running: cp -r . /tmp/copr-rpmbuild-uh8utqek cmd: ['cp', '-r', '.', '/tmp/copr-rpmbuild-uh8utqek'] cwd: /tmp/copr-rpmbuild-uh8utqek/obtain-sources/python-beautifulsoup4 rc: 0 stdout: stderr: Generated rpkg config: [rpkg] preprocess_spec = True # auto-packing is deprecated: auto_pack = True [git] lookaside = https://copr-dist-git.fedorainfracloud.org/repo/pkgs/%(ns2)s/%(ns1)s/%(name)s/%(filename)s/%(hashtype)s/%(hash)s/%(filename)s anongiturl = https://copr-dist-git.fedorainfracloud.org/git/%(module)s Writing config into /tmp/copr-rpmbuild-uh8utqek/obtain-sources/.config/rpkg.conf Running: rpkg -C /tmp/copr-rpmbuild-uh8utqek/obtain-sources/.config/rpkg.conf sources --outdir /tmp/copr-rpmbuild-uh8utqek /usr/bin/tail: /var/lib/copr-rpmbuild/main.log: file truncated cmd: ['rpkg', '-C', '/tmp/copr-rpmbuild-uh8utqek/obtain-sources/.config/rpkg.conf', 'sources', '--outdir', '/tmp/copr-rpmbuild-uh8utqek'] cwd: /tmp/copr-rpmbuild-uh8utqek/obtain-sources/python-beautifulsoup4 rc: 0 stdout: Downloading beautifulsoup4-4.6.3.tar.gz from lookaside cache at copr-dist-git.fedorainfracloud.org stderr: Running (timeout=108000): unbuffer mock --buildsrpm --spec /tmp/copr-rpmbuild-uh8utqek/python-beautifulsoup4.spec --sources /tmp/copr-rpmbuild-uh8utqek --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1601457125.229872 -r /var/lib/copr-rpmbuild/results/configs/child.cfg INFO: mock.py version 2.6 starting (python version = 3.8.5)... Start: init plugins INFO: tmpfs initialized INFO: selinux enabled INFO: chroot_scan: initialized INFO: compress_logs: initialized Finish: init plugins INFO: Signal handler active Start: run INFO: Start(/tmp/copr-rpmbuild-uh8utqek/python-beautifulsoup4.spec) Config(epel-8-x86_64) Start: clean chroot Finish: clean chroot Start: chroot init INFO: mounting tmpfs at /var/lib/mock/epel-8-x86_64-1601457125.229872/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start: cleaning package manager metadata Finish: cleaning package manager metadata INFO: enabled HW Info plugin Mock Version: 2.6 INFO: Mock Version: 2.6 Start: dnf install No matches found for the following disable plugin patterns: local, spacewalk Copr repository 264 kB/s | 10 kB 00:00 CentOS-8 - Base 12 MB/s | 2.2 MB 00:00 CentOS-8 - AppStream 22 MB/s | 5.8 MB 00:00 CentOS-8 - PowerTools 18 MB/s | 1.9 MB 00:00 CentOS-8 - Extras 24 kB/s | 8.1 kB 00:00 epel 33 MB/s | 8.0 MB 00:00 Dependencies resolved. ======================================================================================== Package Arch Version Repo Size ======================================================================================== Installing: bash  x86_64 4.4.19-10.el8 BaseOS 1.5 M bzip2  x86_64 1.0.6-26.el8 BaseOS 60 k centos-release  x86_64 8.2-2.2004.0.2.el8 BaseOS 21 k coreutils  x86_64 8.30-7.el8_2.1 BaseOS 1.2 M cpio  x86_64 2.12-8.el8 BaseOS 265 k diffutils  x86_64 3.6-6.el8 BaseOS 358 k epel-release  noarch 8-8.el8 extras 23 k epel-rpm-macros  noarch 8-16 epel 22 k fedpkg-minimal  noarch 1.1.0-12.el8 epel 17 k findutils  x86_64 1:4.6.0-20.el8 BaseOS 528 k gawk  x86_64 4.2.1-1.el8 BaseOS 1.1 M gcc  x86_64 8.3.1-5.el8.0.2 AppStream 23 M gcc-c++  x86_64 8.3.1-5.el8.0.2 AppStream 12 M grep  x86_64 3.1-6.el8 BaseOS 274 k gzip  x86_64 1.9-9.el8 BaseOS 167 k info  x86_64 6.5-6.el8 BaseOS 198 k make  x86_64 1:4.2.1-10.el8 BaseOS 498 k patch  x86_64 2.7.6-11.el8 BaseOS 138 k redhat-rpm-config  noarch 122-1.el8 AppStream 83 k rpm-build  x86_64 4.14.2-37.el8 AppStream 171 k sed  x86_64 4.5-1.el8 BaseOS 298 k shadow-utils  x86_64 2:4.6-8.el8 BaseOS 1.2 M tar  x86_64 2:1.30-4.el8 BaseOS 838 k unzip  x86_64 6.0-43.el8 BaseOS 195 k util-linux  x86_64 2.32.1-22.el8 BaseOS 2.5 M which  x86_64 2.21-12.el8 BaseOS 49 k xz  x86_64 5.2.4-3.el8 BaseOS 153 k Installing dependencies: acl  x86_64 2.2.53-1.el8 BaseOS 81 k annobin  x86_64 8.90-1.el8.0.1 AppStream 201 k audit-libs  x86_64 3.0-0.17.20191104git1c2f876.el8 BaseOS 116 k basesystem  noarch 11-5.el8 BaseOS 10 k binutils  x86_64 2.30-73.el8 BaseOS 5.7 M brotli  x86_64 1.0.6-1.el8 BaseOS 323 k bzip2-libs  x86_64 1.0.6-26.el8 BaseOS 48 k ca-certificates  noarch 2020.2.41-80.0.el8_2 BaseOS 391 k centos-gpg-keys  noarch 8.2-2.2004.0.2.el8 BaseOS 12 k centos-repos  x86_64 8.2-2.2004.0.2.el8 BaseOS 13 k chkconfig  x86_64 1.11-1.el8 BaseOS 189 k coreutils-common  x86_64 8.30-7.el8_2.1 BaseOS 2.0 M cpp  x86_64 8.3.1-5.el8.0.2 AppStream 10 M cracklib  x86_64 2.9.6-15.el8 BaseOS 93 k crypto-policies  noarch 20191128-2.git23e1bf1.el8 BaseOS 103 k cryptsetup-libs  x86_64 2.2.2-1.el8 BaseOS 428 k curl  x86_64 7.61.1-12.el8 BaseOS 353 k cyrus-sasl-lib  x86_64 2.1.27-1.el8 BaseOS 123 k dbus  x86_64 1:1.12.8-10.el8_2 BaseOS 41 k dbus-common  noarch 1:1.12.8-10.el8_2 BaseOS 45 k dbus-daemon  x86_64 1:1.12.8-10.el8_2 BaseOS 239 k dbus-libs  x86_64 1:1.12.8-10.el8_2 BaseOS 183 k dbus-tools  x86_64 1:1.12.8-10.el8_2 BaseOS 85 k device-mapper  x86_64 8:1.02.169-3.el8 BaseOS 372 k device-mapper-libs  x86_64 8:1.02.169-3.el8 BaseOS 405 k dracut  x86_64 049-70.git20200228.el8 BaseOS 365 k dwz  x86_64 0.12-9.el8 AppStream 109 k efi-srpm-macros  noarch 3-2.el8 AppStream 22 k elfutils  x86_64 0.178-7.el8 BaseOS 540 k elfutils-default-yama-scope  noarch 0.178-7.el8 BaseOS 48 k elfutils-libelf  x86_64 0.178-7.el8 BaseOS 212 k elfutils-libs  x86_64 0.178-7.el8 BaseOS 292 k expat  x86_64 2.2.5-3.el8 BaseOS 110 k file  x86_64 5.33-13.el8 BaseOS 76 k file-libs  x86_64 5.33-13.el8 BaseOS 542 k filesystem  x86_64 3.8-2.el8 BaseOS 1.1 M fpc-srpm-macros  noarch 1.3-1.el8 epel 8.2 k gc  x86_64 7.6.4-3.el8 AppStream 109 k gdb-headless  x86_64 8.2-11.el8 AppStream 3.7 M gdbm  x86_64 1:1.18-1.el8 BaseOS 130 k gdbm-libs  x86_64 1:1.18-1.el8 BaseOS 60 k gettext  x86_64 0.19.8.1-17.el8 BaseOS 1.1 M gettext-libs  x86_64 0.19.8.1-17.el8 BaseOS 314 k ghc-srpm-macros  noarch 1.4.2-7.el8 AppStream 9.3 k glib2  x86_64 2.56.4-8.el8 BaseOS 2.5 M glibc  x86_64 2.28-101.el8 BaseOS 3.7 M glibc-all-langpacks  x86_64 2.28-101.el8 BaseOS 25 M glibc-common  x86_64 2.28-101.el8 BaseOS 1.3 M glibc-devel  x86_64 2.28-101.el8 BaseOS 1.0 M glibc-headers  x86_64 2.28-101.el8 BaseOS 473 k gmp  x86_64 1:6.1.2-10.el8 BaseOS 322 k gnupg2  x86_64 2.2.9-1.el8 BaseOS 2.3 M gnutls  x86_64 3.6.8-11.el8_2 BaseOS 915 k go-srpm-macros  noarch 2-16.el8 AppStream 14 k grub2-common  noarch 1:2.02-87.el8_2 BaseOS 882 k grub2-tools  x86_64 1:2.02-87.el8_2 BaseOS 2.0 M grub2-tools-minimal  x86_64 1:2.02-87.el8_2 BaseOS 202 k guile  x86_64 5:2.0.14-7.el8 AppStream 3.5 M ima-evm-utils  x86_64 1.1-5.el8 BaseOS 56 k iptables-libs  x86_64 1.8.4-10.el8_2.1 BaseOS 105 k isl  x86_64 0.16.1-6.el8 AppStream 841 k json-c  x86_64 0.13.1-0.2.el8 BaseOS 40 k kbd-legacy  noarch 2.0.4-8.el8 BaseOS 481 k kbd-misc  noarch 2.0.4-8.el8 BaseOS 1.4 M kernel-headers  x86_64 4.18.0-193.19.1.el8_2 BaseOS 4.0 M keyutils-libs  x86_64 1.5.10-6.el8 BaseOS 34 k kmod  x86_64 25-16.el8 BaseOS 126 k kmod-libs  x86_64 25-16.el8 BaseOS 68 k krb5-libs  x86_64 1.17-18.el8 BaseOS 844 k libacl  x86_64 2.2.53-1.el8 BaseOS 35 k libarchive  x86_64 3.3.2-8.el8_1 BaseOS 359 k libassuan  x86_64 2.5.1-3.el8 BaseOS 83 k libatomic_ops  x86_64 7.6.2-3.el8 AppStream 38 k libattr  x86_64 2.4.48-3.el8 BaseOS 27 k libbabeltrace  x86_64 1.5.4-2.el8 AppStream 201 k libblkid  x86_64 2.32.1-22.el8 BaseOS 214 k libcap  x86_64 2.26-3.el8 BaseOS 59 k libcap-ng  x86_64 0.7.9-5.el8 BaseOS 33 k libcom_err  x86_64 1.45.4-3.el8 BaseOS 49 k libcroco  x86_64 0.6.12-4.el8_2.1 BaseOS 113 k libcurl  x86_64 7.61.1-12.el8 BaseOS 298 k libdb  x86_64 5.3.28-37.el8 BaseOS 752 k libdb-utils  x86_64 5.3.28-37.el8 BaseOS 151 k libfdisk  x86_64 2.32.1-22.el8 BaseOS 249 k libffi  x86_64 3.1-21.el8 BaseOS 37 k libgcc  x86_64 8.3.1-5.el8.0.2 BaseOS 78 k libgcrypt  x86_64 1.8.3-4.el8 BaseOS 461 k libgomp  x86_64 8.3.1-5.el8.0.2 BaseOS 203 k libgpg-error  x86_64 1.31-1.el8 BaseOS 242 k libidn2  x86_64 2.2.0-1.el8 BaseOS 94 k libipt  x86_64 1.6.1-8.el8 AppStream 50 k libkcapi  x86_64 1.1.1-16_1.el8 BaseOS 47 k libkcapi-hmaccalc  x86_64 1.1.1-16_1.el8 BaseOS 30 k libksba  x86_64 1.3.5-7.el8 BaseOS 135 k libmetalink  x86_64 0.1.3-7.el8 BaseOS 32 k libmount  x86_64 2.32.1-22.el8 BaseOS 231 k libmpc  x86_64 1.0.2-9.el8 AppStream 59 k libnghttp2  x86_64 1.33.0-3.el8_2.1 BaseOS 77 k libnsl2  x86_64 1.2.0-2.20180605git4a062cf.el8 BaseOS 58 k libpcap  x86_64 14:1.9.0-3.el8 BaseOS 160 k libpkgconf  x86_64 1.4.2-1.el8 BaseOS 35 k libpsl  x86_64 0.20.2-5.el8 BaseOS 61 k libpwquality  x86_64 1.4.0-9.el8 BaseOS 103 k libseccomp  x86_64 2.4.1-1.el8 BaseOS 65 k libsecret  x86_64 0.18.6-1.el8 BaseOS 163 k libselinux  x86_64 2.9-3.el8 BaseOS 166 k libsemanage  x86_64 2.9-2.el8 BaseOS 165 k libsepol  x86_64 2.9-1.el8 BaseOS 340 k libsigsegv  x86_64 2.11-5.el8 BaseOS 30 k libsmartcols  x86_64 2.32.1-22.el8 BaseOS 174 k libssh  x86_64 0.9.0-4.el8 BaseOS 243 k libssh-config  noarch 0.9.0-4.el8 BaseOS 18 k libstdc++  x86_64 8.3.1-5.el8.0.2 BaseOS 451 k libstdc++-devel  x86_64 8.3.1-5.el8.0.2 AppStream 2.0 M libtasn1  x86_64 4.13-3.el8 BaseOS 76 k libtirpc  x86_64 1.1.4-4.el8 BaseOS 113 k libtool-ltdl  x86_64 2.4.6-25.el8 BaseOS 58 k libunistring  x86_64 0.9.9-3.el8 BaseOS 422 k libusbx  x86_64 1.0.22-1.el8 BaseOS 71 k libutempter  x86_64 1.1.6-14.el8 BaseOS 32 k libuuid  x86_64 2.32.1-22.el8 BaseOS 94 k libverto  x86_64 0.3.0-5.el8 BaseOS 24 k libxcrypt  x86_64 4.1.1-4.el8 BaseOS 73 k libxcrypt-devel  x86_64 4.1.1-4.el8 BaseOS 25 k libxml2  x86_64 2.9.7-7.el8 BaseOS 695 k libzstd  x86_64 1.4.2-2.el8 BaseOS 260 k lua-libs  x86_64 5.3.4-11.el8 BaseOS 118 k lz4-libs  x86_64 1.8.1.2-4.el8 BaseOS 55 k mpfr  x86_64 3.1.6-1.el8 BaseOS 221 k ncurses  x86_64 6.1-7.20180224.el8 BaseOS 387 k ncurses-base  noarch 6.1-7.20180224.el8 BaseOS 81 k ncurses-libs  x86_64 6.1-7.20180224.el8 BaseOS 335 k nettle  x86_64 3.4.1-1.el8 BaseOS 302 k npth  x86_64 1.5-4.el8 BaseOS 26 k ocaml-srpm-macros  noarch 5-4.el8 AppStream 9.4 k openblas-srpm-macros  noarch 2-2.el8 AppStream 7.9 k openldap  x86_64 2.4.46-11.el8_1 BaseOS 352 k openssl  x86_64 1:1.1.1c-15.el8 BaseOS 697 k openssl-libs  x86_64 1:1.1.1c-15.el8 BaseOS 1.5 M os-prober  x86_64 1.74-6.el8 BaseOS 51 k p11-kit  x86_64 0.23.14-5.el8_0 BaseOS 272 k p11-kit-trust  x86_64 0.23.14-5.el8_0 BaseOS 139 k pam  x86_64 1.3.1-8.el8 BaseOS 738 k pcre  x86_64 8.42-4.el8 BaseOS 208 k pcre2  x86_64 10.32-1.el8 BaseOS 244 k perl-srpm-macros  noarch 1-25.el8 AppStream 11 k pkgconf  x86_64 1.4.2-1.el8 BaseOS 38 k pkgconf-m4  noarch 1.4.2-1.el8 BaseOS 17 k pkgconf-pkg-config  x86_64 1.4.2-1.el8 BaseOS 15 k platform-python  x86_64 3.6.8-23.el8 BaseOS 82 k platform-python-setuptools  noarch 39.2.0-5.el8 BaseOS 632 k popt  x86_64 1.16-14.el8 BaseOS 61 k procps-ng  x86_64 3.3.15-1.el8 BaseOS 329 k publicsuffix-list-dafsa  noarch 20180723-1.el8 BaseOS 56 k python-rpm-macros  noarch 3-38.el8 AppStream 14 k python-srpm-macros  noarch 3-38.el8 AppStream 14 k python2-rpm-macros  noarch 3-38.module_el8.2.0+381+9a5b3c3b AppStream 13 k python3-libs  x86_64 3.6.8-23.el8 BaseOS 7.8 M python3-pip-wheel  noarch 9.0.3-16.el8 BaseOS 1.2 M python3-rpm-macros  noarch 3-38.el8 AppStream 13 k python3-setuptools-wheel  noarch 39.2.0-5.el8 BaseOS 289 k qt5-srpm-macros  noarch 5.12.5-3.el8 AppStream 10 k readline  x86_64 7.0-10.el8 BaseOS 199 k rpm  x86_64 4.14.2-37.el8 BaseOS 540 k rpm-build-libs  x86_64 4.14.2-37.el8 BaseOS 154 k rpm-libs  x86_64 4.14.2-37.el8 BaseOS 337 k rust-srpm-macros  noarch 5-2.el8 AppStream 9.2 k setup  noarch 2.12.2-5.el8 BaseOS 180 k sqlite-libs  x86_64 3.26.0-6.el8 BaseOS 579 k systemd  x86_64 239-31.el8_2.2 BaseOS 3.5 M systemd-libs  x86_64 239-31.el8_2.2 BaseOS 1.1 M systemd-pam  x86_64 239-31.el8_2.2 BaseOS 451 k systemd-udev  x86_64 239-31.el8_2.2 BaseOS 1.3 M trousers-lib  x86_64 0.3.14-4.el8 BaseOS 169 k tzdata  noarch 2020a-1.el8 BaseOS 469 k xkeyboard-config  noarch 2.28-1.el8 AppStream 782 k xz-libs  x86_64 5.2.4-3.el8 BaseOS 94 k zip  x86_64 3.0-23.el8 BaseOS 270 k zlib  x86_64 1.2.11-16.el8_2 BaseOS 102 k zstd  x86_64 1.4.2-2.el8 AppStream 385 k Installing weak dependencies: cracklib-dicts  x86_64 2.9.6-15.el8 BaseOS 4.0 M elfutils-debuginfod-client  x86_64 0.178-7.el8 AppStream 62 k gnupg2-smime  x86_64 2.2.9-1.el8 BaseOS 279 k grubby  x86_64 8.40-38.el8 BaseOS 50 k hardlink  x86_64 1:1.3-6.el8 BaseOS 29 k kbd  x86_64 2.0.4-8.el8 BaseOS 392 k kpartx  x86_64 0.8.3-3.el8_2.3 BaseOS 105 k libxkbcommon  x86_64 0.9.1-1.el8 AppStream 116 k openssl-pkcs11  x86_64 0.4.10-2.el8 BaseOS 66 k pigz  x86_64 2.4-4.el8 BaseOS 79 k pinentry  x86_64 1.1.0-2.el8 AppStream 100 k platform-python-pip  noarch 9.0.3-16.el8 BaseOS 1.8 M shared-mime-info  x86_64 1.9-3.el8 BaseOS 329 k trousers  x86_64 0.3.14-4.el8 BaseOS 153 k Enabling module streams: python27 2.7 Transaction Summary ======================================================================================== Install 221 Packages Total download size: 175 M Installed size: 892 M Downloading Packages: (1/221): basesystem-11-5.el8.noarch.rpm 3.3 MB/s | 10 kB 00:00 (2/221): acl-2.2.53-1.el8.x86_64.rpm 16 MB/s | 81 kB 00:00 (3/221): audit-libs-3.0-0.17.20191104git1c2f876 18 MB/s | 116 kB 00:00 (4/221): brotli-1.0.6-1.el8.x86_64.rpm 51 MB/s | 323 kB 00:00 (5/221): bzip2-1.0.6-26.el8.x86_64.rpm 28 MB/s | 60 kB 00:00 (6/221): bzip2-libs-1.0.6-26.el8.x86_64.rpm 26 MB/s | 48 kB 00:00 (7/221): ca-certificates-2020.2.41-80.0.el8_2.n 53 MB/s | 391 kB 00:00 (8/221): centos-gpg-keys-8.2-2.2004.0.2.el8.noa 10 MB/s | 12 kB 00:00 (9/221): centos-release-8.2-2.2004.0.2.el8.x86_ 15 MB/s | 21 kB 00:00 (10/221): centos-repos-8.2-2.2004.0.2.el8.x86_6 13 MB/s | 13 kB 00:00 (11/221): bash-4.4.19-10.el8.x86_64.rpm 46 MB/s | 1.5 MB 00:00 (12/221): chkconfig-1.11-1.el8.x86_64.rpm 19 MB/s | 189 kB 00:00 (13/221): coreutils-8.30-7.el8_2.1.x86_64.rpm 62 MB/s | 1.2 MB 00:00 (14/221): cpio-2.12-8.el8.x86_64.rpm 53 MB/s | 265 kB 00:00 (15/221): cracklib-2.9.6-15.el8.x86_64.rpm 35 MB/s | 93 kB 00:00 (16/221): coreutils-common-8.30-7.el8_2.1.x86_6 56 MB/s | 2.0 MB 00:00 (17/221): crypto-policies-20191128-2.git23e1bf1 36 MB/s | 103 kB 00:00 (18/221): cryptsetup-libs-2.2.2-1.el8.x86_64.rp 60 MB/s | 428 kB 00:00 (19/221): curl-7.61.1-12.el8.x86_64.rpm 56 MB/s | 353 kB 00:00 (20/221): cyrus-sasl-lib-2.1.27-1.el8.x86_64.rp 42 MB/s | 123 kB 00:00 (21/221): dbus-1.12.8-10.el8_2.x86_64.rpm 22 MB/s | 41 kB 00:00 (22/221): binutils-2.30-73.el8.x86_64.rpm 49 MB/s | 5.7 MB 00:00 (23/221): dbus-common-1.12.8-10.el8_2.noarch.rp 1.9 MB/s | 45 kB 00:00 (24/221): dbus-daemon-1.12.8-10.el8_2.x86_64.rp 48 MB/s | 239 kB 00:00 (25/221): dbus-libs-1.12.8-10.el8_2.x86_64.rpm 35 MB/s | 183 kB 00:00 (26/221): dbus-tools-1.12.8-10.el8_2.x86_64.rpm 30 MB/s | 85 kB 00:00 (27/221): device-mapper-1.02.169-3.el8.x86_64.r 53 MB/s | 372 kB 00:00 (28/221): device-mapper-libs-1.02.169-3.el8.x86 46 MB/s | 405 kB 00:00 (29/221): diffutils-3.6-6.el8.x86_64.rpm 42 MB/s | 358 kB 00:00 (30/221): dracut-049-70.git20200228.el8.x86_64. 43 MB/s | 365 kB 00:00 (31/221): elfutils-default-yama-scope-0.178-7.e 25 MB/s | 48 kB 00:00 (32/221): elfutils-0.178-7.el8.x86_64.rpm 49 MB/s | 540 kB 00:00 (33/221): elfutils-libelf-0.178-7.el8.x86_64.rp 31 MB/s | 212 kB 00:00 (34/221): cracklib-dicts-2.9.6-15.el8.x86_64.rp 37 MB/s | 4.0 MB 00:00 (35/221): expat-2.2.5-3.el8.x86_64.rpm 6.1 MB/s | 110 kB 00:00 (36/221): elfutils-libs-0.178-7.el8.x86_64.rpm 13 MB/s | 292 kB 00:00 (37/221): file-5.33-13.el8.x86_64.rpm 15 MB/s | 76 kB 00:00 (38/221): file-libs-5.33-13.el8.x86_64.rpm 50 MB/s | 542 kB 00:00 (39/221): findutils-4.6.0-20.el8.x86_64.rpm 47 MB/s | 528 kB 00:00 (40/221): gdbm-1.18-1.el8.x86_64.rpm 41 MB/s | 130 kB 00:00 (41/221): filesystem-3.8-2.el8.x86_64.rpm 50 MB/s | 1.1 MB 00:00 (42/221): gdbm-libs-1.18-1.el8.x86_64.rpm 8.4 MB/s | 60 kB 00:00 (43/221): gettext-libs-0.19.8.1-17.el8.x86_64.r 56 MB/s | 314 kB 00:00 (44/221): gawk-4.2.1-1.el8.x86_64.rpm 42 MB/s | 1.1 MB 00:00 (45/221): gettext-0.19.8.1-17.el8.x86_64.rpm 47 MB/s | 1.1 MB 00:00 (46/221): glib2-2.56.4-8.el8.x86_64.rpm 53 MB/s | 2.5 MB 00:00 (47/221): glibc-2.28-101.el8.x86_64.rpm 54 MB/s | 3.7 MB 00:00 (48/221): glibc-common-2.28-101.el8.x86_64.rpm 38 MB/s | 1.3 MB 00:00 (49/221): glibc-headers-2.28-101.el8.x86_64.rpm 54 MB/s | 473 kB 00:00 (50/221): glibc-devel-2.28-101.el8.x86_64.rpm 44 MB/s | 1.0 MB 00:00 (51/221): gmp-6.1.2-10.el8.x86_64.rpm 32 MB/s | 322 kB 00:00 (52/221): gnupg2-smime-2.2.9-1.el8.x86_64.rpm 51 MB/s | 279 kB 00:00 (53/221): gnutls-3.6.8-11.el8_2.x86_64.rpm 63 MB/s | 915 kB 00:00 (54/221): grep-3.1-6.el8.x86_64.rpm 53 MB/s | 274 kB 00:00 (55/221): gnupg2-2.2.9-1.el8.x86_64.rpm 54 MB/s | 2.3 MB 00:00 (56/221): grub2-common-2.02-87.el8_2.noarch.rpm 38 MB/s | 882 kB 00:00 (57/221): grub2-tools-minimal-2.02-87.el8_2.x86 48 MB/s | 202 kB 00:00 (58/221): grubby-8.40-38.el8.x86_64.rpm 21 MB/s | 50 kB 00:00 (59/221): gzip-1.9-9.el8.x86_64.rpm 42 MB/s | 167 kB 00:00 (60/221): hardlink-1.3-6.el8.x86_64.rpm 15 MB/s | 29 kB 00:00 (61/221): ima-evm-utils-1.1-5.el8.x86_64.rpm 30 MB/s | 56 kB 00:00 (62/221): info-6.5-6.el8.x86_64.rpm 46 MB/s | 198 kB 00:00 (63/221): grub2-tools-2.02-87.el8_2.x86_64.rpm 53 MB/s | 2.0 MB 00:00 (64/221): iptables-libs-1.8.4-10.el8_2.1.x86_64 11 MB/s | 105 kB 00:00 (65/221): json-c-0.13.1-0.2.el8.x86_64.rpm 15 MB/s | 40 kB 00:00 (66/221): kbd-2.0.4-8.el8.x86_64.rpm 54 MB/s | 392 kB 00:00 (67/221): kbd-legacy-2.0.4-8.el8.noarch.rpm 46 MB/s | 481 kB 00:00 (68/221): kbd-misc-2.0.4-8.el8.noarch.rpm 59 MB/s | 1.4 MB 00:00 (69/221): keyutils-libs-1.5.10-6.el8.x86_64.rpm 17 MB/s | 34 kB 00:00 (70/221): kmod-25-16.el8.x86_64.rpm 38 MB/s | 126 kB 00:00 (71/221): kmod-libs-25-16.el8.x86_64.rpm 28 MB/s | 68 kB 00:00 (72/221): kpartx-0.8.3-3.el8_2.3.x86_64.rpm 35 MB/s | 105 kB 00:00 (73/221): krb5-libs-1.17-18.el8.x86_64.rpm 65 MB/s | 844 kB 00:00 (74/221): libacl-2.2.53-1.el8.x86_64.rpm 16 MB/s | 35 kB 00:00 (75/221): libarchive-3.3.2-8.el8_1.x86_64.rpm 57 MB/s | 359 kB 00:00 (76/221): kernel-headers-4.18.0-193.19.1.el8_2. 56 MB/s | 4.0 MB 00:00 (77/221): libassuan-2.5.1-3.el8.x86_64.rpm 4.6 MB/s | 83 kB 00:00 (78/221): libattr-2.4.48-3.el8.x86_64.rpm 12 MB/s | 27 kB 00:00 (79/221): libcap-2.26-3.el8.x86_64.rpm 23 MB/s | 59 kB 00:00 (80/221): libblkid-2.32.1-22.el8.x86_64.rpm 41 MB/s | 214 kB 00:00 (81/221): libcap-ng-0.7.9-5.el8.x86_64.rpm 13 MB/s | 33 kB 00:00 (82/221): libcom_err-1.45.4-3.el8.x86_64.rpm 22 MB/s | 49 kB 00:00 (83/221): libcroco-0.6.12-4.el8_2.1.x86_64.rpm 25 MB/s | 113 kB 00:00 (84/221): libcurl-7.61.1-12.el8.x86_64.rpm 46 MB/s | 298 kB 00:00 (85/221): libdb-utils-5.3.28-37.el8.x86_64.rpm 45 MB/s | 151 kB 00:00 (86/221): libfdisk-2.32.1-22.el8.x86_64.rpm 49 MB/s | 249 kB 00:00 (87/221): libdb-5.3.28-37.el8.x86_64.rpm 46 MB/s | 752 kB 00:00 (88/221): libffi-3.1-21.el8.x86_64.rpm 8.2 MB/s | 37 kB 00:00 (89/221): libgcc-8.3.1-5.el8.0.2.x86_64.rpm 32 MB/s | 78 kB 00:00 (90/221): libgomp-8.3.1-5.el8.0.2.x86_64.rpm 54 MB/s | 203 kB 00:00 (91/221): libgcrypt-1.8.3-4.el8.x86_64.rpm 50 MB/s | 461 kB 00:00 (92/221): libidn2-2.2.0-1.el8.x86_64.rpm 37 MB/s | 94 kB 00:00 (93/221): libgpg-error-1.31-1.el8.x86_64.rpm 30 MB/s | 242 kB 00:00 (94/221): libkcapi-1.1.1-16_1.el8.x86_64.rpm 18 MB/s | 47 kB 00:00 (95/221): libkcapi-hmaccalc-1.1.1-16_1.el8.x86_ 16 MB/s | 30 kB 00:00 (96/221): libksba-1.3.5-7.el8.x86_64.rpm 42 MB/s | 135 kB 00:00 (97/221): libmetalink-0.1.3-7.el8.x86_64.rpm 11 MB/s | 32 kB 00:00 (98/221): libnghttp2-1.33.0-3.el8_2.1.x86_64.rp 34 MB/s | 77 kB 00:00 (99/221): libmount-2.32.1-22.el8.x86_64.rpm 43 MB/s | 231 kB 00:00 (100/221): libnsl2-1.2.0-2.20180605git4a062cf.e 19 MB/s | 58 kB 00:00 (101/221): libpkgconf-1.4.2-1.el8.x86_64.rpm 21 MB/s | 35 kB 00:00 (102/221): libpcap-1.9.0-3.el8.x86_64.rpm 33 MB/s | 160 kB 00:00 (103/221): libpsl-0.20.2-5.el8.x86_64.rpm 23 MB/s | 61 kB 00:00 (104/221): libpwquality-1.4.0-9.el8.x86_64.rpm 36 MB/s | 103 kB 00:00 (105/221): libseccomp-2.4.1-1.el8.x86_64.rpm 19 MB/s | 65 kB 00:00 (106/221): libsecret-0.18.6-1.el8.x86_64.rpm 31 MB/s | 163 kB 00:00 (107/221): libselinux-2.9-3.el8.x86_64.rpm 33 MB/s | 166 kB 00:00 (108/221): libsemanage-2.9-2.el8.x86_64.rpm 39 MB/s | 165 kB 00:00 (109/221): libsigsegv-2.11-5.el8.x86_64.rpm 19 MB/s | 30 kB 00:00 (110/221): libsepol-2.9-1.el8.x86_64.rpm 43 MB/s | 340 kB 00:00 (111/221): libsmartcols-2.32.1-22.el8.x86_64.rp 33 MB/s | 174 kB 00:00 (112/221): libssh-config-0.9.0-4.el8.noarch.rpm 12 MB/s | 18 kB 00:00 (113/221): libssh-0.9.0-4.el8.x86_64.rpm 38 MB/s | 243 kB 00:00 (114/221): libtasn1-4.13-3.el8.x86_64.rpm 32 MB/s | 76 kB 00:00 (115/221): libstdc++-8.3.1-5.el8.0.2.x86_64.rpm 47 MB/s | 451 kB 00:00 (116/221): libtirpc-1.1.4-4.el8.x86_64.rpm 21 MB/s | 113 kB 00:00 (117/221): libtool-ltdl-2.4.6-25.el8.x86_64.rpm 25 MB/s | 58 kB 00:00 (118/221): libusbx-1.0.22-1.el8.x86_64.rpm 31 MB/s | 71 kB 00:00 (119/221): libutempter-1.1.6-14.el8.x86_64.rpm 18 MB/s | 32 kB 00:00 (120/221): libunistring-0.9.9-3.el8.x86_64.rpm 46 MB/s | 422 kB 00:00 (121/221): libuuid-2.32.1-22.el8.x86_64.rpm 19 MB/s | 94 kB 00:00 (122/221): libverto-0.3.0-5.el8.x86_64.rpm 10 MB/s | 24 kB 00:00 (123/221): libxcrypt-4.1.1-4.el8.x86_64.rpm 29 MB/s | 73 kB 00:00 (124/221): libxcrypt-devel-4.1.1-4.el8.x86_64.r 9.9 MB/s | 25 kB 00:00 (125/221): libzstd-1.4.2-2.el8.x86_64.rpm 49 MB/s | 260 kB 00:00 (126/221): libxml2-2.9.7-7.el8.x86_64.rpm 57 MB/s | 695 kB 00:00 (127/221): lua-libs-5.3.4-11.el8.x86_64.rpm 18 MB/s | 118 kB 00:00 (128/221): lz4-libs-1.8.1.2-4.el8.x86_64.rpm 27 MB/s | 55 kB 00:00 (129/221): mpfr-3.1.6-1.el8.x86_64.rpm 49 MB/s | 221 kB 00:00 (130/221): make-4.2.1-10.el8.x86_64.rpm 45 MB/s | 498 kB 00:00 (131/221): ncurses-base-6.1-7.20180224.el8.noar 29 MB/s | 81 kB 00:00 (132/221): ncurses-6.1-7.20180224.el8.x86_64.rp 40 MB/s | 387 kB 00:00 (133/221): ncurses-libs-6.1-7.20180224.el8.x86_ 45 MB/s | 335 kB 00:00 (134/221): nettle-3.4.1-1.el8.x86_64.rpm 42 MB/s | 302 kB 00:00 (135/221): npth-1.5-4.el8.x86_64.rpm 9.1 MB/s | 26 kB 00:00 (136/221): openldap-2.4.46-11.el8_1.x86_64.rpm 55 MB/s | 352 kB 00:00 (137/221): openssl-1.1.1c-15.el8.x86_64.rpm 54 MB/s | 697 kB 00:00 (138/221): openssl-pkcs11-0.4.10-2.el8.x86_64.r 28 MB/s | 66 kB 00:00 (139/221): os-prober-1.74-6.el8.x86_64.rpm 23 MB/s | 51 kB 00:00 (140/221): p11-kit-0.23.14-5.el8_0.x86_64.rpm 52 MB/s | 272 kB 00:00 (141/221): p11-kit-trust-0.23.14-5.el8_0.x86_64 40 MB/s | 139 kB 00:00 (142/221): openssl-libs-1.1.1c-15.el8.x86_64.rp 51 MB/s | 1.5 MB 00:00 (143/221): patch-2.7.6-11.el8.x86_64.rpm 40 MB/s | 138 kB 00:00 (144/221): pcre-8.42-4.el8.x86_64.rpm 50 MB/s | 208 kB 00:00 (145/221): pam-1.3.1-8.el8.x86_64.rpm 37 MB/s | 738 kB 00:00 (146/221): pcre2-10.32-1.el8.x86_64.rpm 33 MB/s | 244 kB 00:00 (147/221): pigz-2.4-4.el8.x86_64.rpm 21 MB/s | 79 kB 00:00 (148/221): glibc-all-langpacks-2.28-101.el8.x86 47 MB/s | 25 MB 00:00 (149/221): pkgconf-m4-1.4.2-1.el8.noarch.rpm 179 kB/s | 17 kB 00:00 (150/221): pkgconf-1.4.2-1.el8.x86_64.rpm 394 kB/s | 38 kB 00:00 (151/221): pkgconf-pkg-config-1.4.2-1.el8.x86_6 7.1 MB/s | 15 kB 00:00 (152/221): platform-python-3.6.8-23.el8.x86_64. 29 MB/s | 82 kB 00:00 (153/221): popt-1.16-14.el8.x86_64.rpm 27 MB/s | 61 kB 00:00 (154/221): platform-python-setuptools-39.2.0-5. 56 MB/s | 632 kB 00:00 (155/221): procps-ng-3.3.15-1.el8.x86_64.rpm 37 MB/s | 329 kB 00:00 (156/221): publicsuffix-list-dafsa-20180723-1.e 19 MB/s | 56 kB 00:00 (157/221): platform-python-pip-9.0.3-16.el8.noa 54 MB/s | 1.8 MB 00:00 (158/221): python3-pip-wheel-9.0.3-16.el8.noarc 48 MB/s | 1.2 MB 00:00 (159/221): python3-setuptools-wheel-39.2.0-5.el 28 MB/s | 289 kB 00:00 (160/221): readline-7.0-10.el8.x86_64.rpm 36 MB/s | 199 kB 00:00 (161/221): rpm-build-libs-4.14.2-37.el8.x86_64. 43 MB/s | 154 kB 00:00 (162/221): rpm-4.14.2-37.el8.x86_64.rpm 53 MB/s | 540 kB 00:00 (163/221): rpm-libs-4.14.2-37.el8.x86_64.rpm 38 MB/s | 337 kB 00:00 (164/221): sed-4.5-1.el8.x86_64.rpm 42 MB/s | 298 kB 00:00 (165/221): setup-2.12.2-5.el8.noarch.rpm 31 MB/s | 180 kB 00:00 (166/221): shared-mime-info-1.9-3.el8.x86_64.rp 50 MB/s | 329 kB 00:00 (167/221): shadow-utils-4.6-8.el8.x86_64.rpm 58 MB/s | 1.2 MB 00:00 (168/221): sqlite-libs-3.26.0-6.el8.x86_64.rpm 39 MB/s | 579 kB 00:00 (169/221): systemd-libs-239-31.el8_2.2.x86_64.r 63 MB/s | 1.1 MB 00:00 (170/221): systemd-pam-239-31.el8_2.2.x86_64.rp 51 MB/s | 451 kB 00:00 (171/221): systemd-udev-239-31.el8_2.2.x86_64.r 64 MB/s | 1.3 MB 00:00 (172/221): systemd-239-31.el8_2.2.x86_64.rpm 55 MB/s | 3.5 MB 00:00 (173/221): python3-libs-3.6.8-23.el8.x86_64.rpm 46 MB/s | 7.8 MB 00:00 (174/221): trousers-0.3.14-4.el8.x86_64.rpm 4.5 MB/s | 153 kB 00:00 (175/221): trousers-lib-0.3.14-4.el8.x86_64.rpm 39 MB/s | 169 kB 00:00 (176/221): tar-1.30-4.el8.x86_64.rpm 14 MB/s | 838 kB 00:00 (177/221): unzip-6.0-43.el8.x86_64.rpm 27 MB/s | 195 kB 00:00 (178/221): tzdata-2020a-1.el8.noarch.rpm 33 MB/s | 469 kB 00:00 (179/221): which-2.21-12.el8.x86_64.rpm 11 MB/s | 49 kB 00:00 (180/221): xz-libs-5.2.4-3.el8.x86_64.rpm 38 MB/s | 94 kB 00:00 (181/221): xz-5.2.4-3.el8.x86_64.rpm 26 MB/s | 153 kB 00:00 (182/221): zip-3.0-23.el8.x86_64.rpm 48 MB/s | 270 kB 00:00 (183/221): zlib-1.2.11-16.el8_2.x86_64.rpm 26 MB/s | 102 kB 00:00 (184/221): annobin-8.90-1.el8.0.1.x86_64.rpm 44 MB/s | 201 kB 00:00 (185/221): dwz-0.12-9.el8.x86_64.rpm 37 MB/s | 109 kB 00:00 (186/221): efi-srpm-macros-3-2.el8.noarch.rpm 13 MB/s | 22 kB 00:00 (187/221): elfutils-debuginfod-client-0.178-7.e 27 MB/s | 62 kB 00:00 (188/221): gc-7.6.4-3.el8.x86_64.rpm 38 MB/s | 109 kB 00:00 (189/221): util-linux-2.32.1-22.el8.x86_64.rpm 53 MB/s | 2.5 MB 00:00 (190/221): cpp-8.3.1-5.el8.0.2.x86_64.rpm 63 MB/s | 10 MB 00:00 (191/221): gcc-c++-8.3.1-5.el8.0.2.x86_64.rpm 56 MB/s | 12 MB 00:00 (192/221): ghc-srpm-macros-1.4.2-7.el8.noarch.r 5.1 MB/s | 9.3 kB 00:00 (193/221): go-srpm-macros-2-16.el8.noarch.rpm 11 MB/s | 14 kB 00:00 (194/221): gdb-headless-8.2-11.el8.x86_64.rpm 36 MB/s | 3.7 MB 00:00 (195/221): isl-0.16.1-6.el8.x86_64.rpm 59 MB/s | 841 kB 00:00 (196/221): libatomic_ops-7.6.2-3.el8.x86_64.rpm 21 MB/s | 38 kB 00:00 (197/221): libbabeltrace-1.5.4-2.el8.x86_64.rpm 46 MB/s | 201 kB 00:00 (198/221): libipt-1.6.1-8.el8.x86_64.rpm 19 MB/s | 50 kB 00:00 (199/221): libmpc-1.0.2-9.el8.x86_64.rpm 33 MB/s | 59 kB 00:00 (200/221): guile-2.0.14-7.el8.x86_64.rpm 50 MB/s | 3.5 MB 00:00 (201/221): libxkbcommon-0.9.1-1.el8.x86_64.rpm 36 MB/s | 116 kB 00:00 (202/221): ocaml-srpm-macros-5-4.el8.noarch.rpm 6.4 MB/s | 9.4 kB 00:00 (203/221): openblas-srpm-macros-2-2.el8.noarch. 5.0 MB/s | 7.9 kB 00:00 (204/221): libstdc++-devel-8.3.1-5.el8.0.2.x86_ 46 MB/s | 2.0 MB 00:00 (205/221): perl-srpm-macros-1-25.el8.noarch.rpm 1.2 MB/s | 11 kB 00:00 (206/221): pinentry-1.1.0-2.el8.x86_64.rpm 36 MB/s | 100 kB 00:00 (207/221): python-rpm-macros-3-38.el8.noarch.rp 5.2 MB/s | 14 kB 00:00 (208/221): python-srpm-macros-3-38.el8.noarch.r 10 MB/s | 14 kB 00:00 (209/221): python2-rpm-macros-3-38.module_el8.2 7.3 MB/s | 13 kB 00:00 (210/221): python3-rpm-macros-3-38.el8.noarch.r 6.3 MB/s | 13 kB 00:00 (211/221): qt5-srpm-macros-5.12.5-3.el8.noarch. 6.3 MB/s | 10 kB 00:00 (212/221): redhat-rpm-config-122-1.el8.noarch.r 33 MB/s | 83 kB 00:00 (213/221): rpm-build-4.14.2-37.el8.x86_64.rpm 41 MB/s | 171 kB 00:00 (214/221): rust-srpm-macros-5-2.el8.noarch.rpm 4.2 MB/s | 9.2 kB 00:00 (215/221): zstd-1.4.2-2.el8.x86_64.rpm 56 MB/s | 385 kB 00:00 (216/221): epel-release-8-8.el8.noarch.rpm 17 MB/s | 23 kB 00:00 (217/221): xkeyboard-config-2.28-1.el8.noarch.r 55 MB/s | 782 kB 00:00 (218/221): epel-rpm-macros-8-16.noarch.rpm 1.0 MB/s | 22 kB 00:00 (219/221): fpc-srpm-macros-1.3-1.el8.noarch.rpm 5.5 MB/s | 8.2 kB 00:00 (220/221): fedpkg-minimal-1.1.0-12.el8.noarch.r 893 kB/s | 17 kB 00:00 (221/221): gcc-8.3.1-5.el8.0.2.x86_64.rpm 50 MB/s | 23 MB 00:00 -------------------------------------------------------------------------------- Total 89 MB/s | 175 MB 00:01 warning: Generating 18 missing index(es), please wait... warning: /var/lib/mock/epel-8-x86_64-1601457125.229872/root/var/cache/dnf/BaseOS-586be817612a3cb1/packages/acl-2.2.53-1.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY CentOS-8 - Base 1.6 MB/s | 1.6 kB 00:00 Importing GPG key 0x8483C65D: Userid : "CentOS (CentOS Official Signing Key) " Fingerprint: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D From : /usr/share/distribution-gpg-keys/centos/RPM-GPG-KEY-CentOS-Official Key imported successfully warning: /var/lib/mock/epel-8-x86_64-1601457125.229872/root/var/cache/dnf/epel-59dc218ad097ee72/packages/epel-rpm-macros-8-16.noarch.rpm: Header V4 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY epel 1.6 MB/s | 1.6 kB 00:00 Importing GPG key 0x2F86D6A1: Userid : "Fedora EPEL (8) " Fingerprint: 94E2 79EB 8D8F 25B2 1810 ADF1 21EA 45AB 2F86 D6A1 From : /usr/share/distribution-gpg-keys/epel/RPM-GPG-KEY-EPEL-8 Key imported successfully Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Running scriptlet: filesystem-3.8-2.el8.x86_64 1/1 Preparing : 1/1 Installing : libgcc-8.3.1-5.el8.0.2.x86_64 1/221 Running scriptlet: libgcc-8.3.1-5.el8.0.2.x86_64 1/221 Installing : python-srpm-macros-3-38.el8.noarch 2/221 Installing : python3-setuptools-wheel-39.2.0-5.el8.noarch 3/221 Installing : python3-pip-wheel-9.0.3-16.el8.noarch 4/221 Installing : python-rpm-macros-3-38.el8.noarch 5/221 Installing : fpc-srpm-macros-1.3-1.el8.noarch 6/221 Installing : xkeyboard-config-2.28-1.el8.noarch 7/221 Installing : rust-srpm-macros-5-2.el8.noarch 8/221 Installing : qt5-srpm-macros-5.12.5-3.el8.noarch 9/221 Installing : python3-rpm-macros-3-38.el8.noarch 10/221 Installing : python2-rpm-macros-3-38.module_el8.2.0+381+9a5b3 11/221 Installing : perl-srpm-macros-1-25.el8.noarch 12/221 Installing : openblas-srpm-macros-2-2.el8.noarch 13/221 Installing : ocaml-srpm-macros-5-4.el8.noarch 14/221 Installing : go-srpm-macros-2-16.el8.noarch 15/221 Installing : ghc-srpm-macros-1.4.2-7.el8.noarch 16/221 Installing : tzdata-2020a-1.el8.noarch 17/221 Installing : publicsuffix-list-dafsa-20180723-1.el8.noarch 18/221 Installing : pkgconf-m4-1.4.2-1.el8.noarch 19/221 Installing : ncurses-base-6.1-7.20180224.el8.noarch 20/221 Installing : libssh-config-0.9.0-4.el8.noarch 21/221 Installing : kernel-headers-4.18.0-193.19.1.el8_2.x86_64 22/221 Installing : kbd-misc-2.0.4-8.el8.noarch 23/221 Installing : kbd-legacy-2.0.4-8.el8.noarch 24/221 Installing : dbus-common-1:1.12.8-10.el8_2.noarch 25/221 Installing : centos-gpg-keys-8.2-2.2004.0.2.el8.noarch 26/221 Installing : centos-release-8.2-2.2004.0.2.el8.x86_64 27/221 Installing : centos-repos-8.2-2.2004.0.2.el8.x86_64 28/221 Installing : setup-2.12.2-5.el8.noarch 29/221 warning: /etc/hosts created as /etc/hosts.rpmnew Running scriptlet: setup-2.12.2-5.el8.noarch 29/221 Installing : filesystem-3.8-2.el8.x86_64 30/221 Installing : basesystem-11-5.el8.noarch 31/221 Installing : pcre2-10.32-1.el8.x86_64 32/221 Installing : libselinux-2.9-3.el8.x86_64 33/221 Installing : ncurses-libs-6.1-7.20180224.el8.x86_64 34/221 Installing : glibc-all-langpacks-2.28-101.el8.x86_64 35/221 Installing : glibc-common-2.28-101.el8.x86_64 36/221 Running scriptlet: glibc-2.28-101.el8.x86_64 37/221 Installing : glibc-2.28-101.el8.x86_64 37/221 Running scriptlet: glibc-2.28-101.el8.x86_64 37/221 Installing : bash-4.4.19-10.el8.x86_64 38/221 Running scriptlet: bash-4.4.19-10.el8.x86_64 38/221 Installing : libsepol-2.9-1.el8.x86_64 39/221 Running scriptlet: libsepol-2.9-1.el8.x86_64 39/221 Installing : zlib-1.2.11-16.el8_2.x86_64 40/221 Installing : info-6.5-6.el8.x86_64 41/221 Installing : xz-libs-5.2.4-3.el8.x86_64 42/221 Installing : bzip2-libs-1.0.6-26.el8.x86_64 43/221 Installing : gmp-1:6.1.2-10.el8.x86_64 44/221 Running scriptlet: gmp-1:6.1.2-10.el8.x86_64 44/221 Installing : elfutils-libelf-0.178-7.el8.x86_64 45/221 Installing : libstdc++-8.3.1-5.el8.0.2.x86_64 46/221 Running scriptlet: libstdc++-8.3.1-5.el8.0.2.x86_64 46/221 Installing : libcap-2.26-3.el8.x86_64 47/221 Installing : libgpg-error-1.31-1.el8.x86_64 48/221 Installing : libxcrypt-4.1.1-4.el8.x86_64 49/221 Installing : readline-7.0-10.el8.x86_64 50/221 Running scriptlet: readline-7.0-10.el8.x86_64 50/221 Installing : mpfr-3.1.6-1.el8.x86_64 51/221 Running scriptlet: mpfr-3.1.6-1.el8.x86_64 51/221 Installing : libunistring-0.9.9-3.el8.x86_64 52/221 Installing : libuuid-2.32.1-22.el8.x86_64 53/221 Running scriptlet: libuuid-2.32.1-22.el8.x86_64 53/221 Installing : popt-1.16-14.el8.x86_64 54/221 Installing : chkconfig-1.11-1.el8.x86_64 55/221 Installing : libgcrypt-1.8.3-4.el8.x86_64 56/221 Running scriptlet: libgcrypt-1.8.3-4.el8.x86_64 56/221 Installing : libxml2-2.9.7-7.el8.x86_64 57/221 Installing : libattr-2.4.48-3.el8.x86_64 58/221 Installing : libacl-2.2.53-1.el8.x86_64 59/221 Installing : sed-4.5-1.el8.x86_64 60/221 Running scriptlet: sed-4.5-1.el8.x86_64 60/221 Installing : libcom_err-1.45.4-3.el8.x86_64 61/221 Running scriptlet: libcom_err-1.45.4-3.el8.x86_64 61/221 Installing : libffi-3.1-21.el8.x86_64 62/221 Installing : libidn2-2.2.0-1.el8.x86_64 63/221 Installing : findutils-1:4.6.0-20.el8.x86_64 64/221 Running scriptlet: findutils-1:4.6.0-20.el8.x86_64 64/221 Installing : expat-2.2.5-3.el8.x86_64 65/221 Installing : libzstd-1.4.2-2.el8.x86_64 66/221 Installing : lua-libs-5.3.4-11.el8.x86_64 67/221 Installing : p11-kit-0.23.14-5.el8_0.x86_64 68/221 Running scriptlet: p11-kit-0.23.14-5.el8_0.x86_64 68/221 Installing : libmpc-1.0.2-9.el8.x86_64 69/221 Running scriptlet: libmpc-1.0.2-9.el8.x86_64 69/221 Installing : libassuan-2.5.1-3.el8.x86_64 70/221 Installing : libgomp-8.3.1-5.el8.0.2.x86_64 71/221 Running scriptlet: libgomp-8.3.1-5.el8.0.2.x86_64 71/221 Installing : file-libs-5.33-13.el8.x86_64 72/221 Installing : file-5.33-13.el8.x86_64 73/221 Installing : libcap-ng-0.7.9-5.el8.x86_64 74/221 Installing : audit-libs-3.0-0.17.20191104git1c2f876.el8.x86_6 75/221 Installing : lz4-libs-1.8.1.2-4.el8.x86_64 76/221 Installing : libksba-1.3.5-7.el8.x86_64 77/221 Installing : unzip-6.0-43.el8.x86_64 78/221 Installing : diffutils-3.6-6.el8.x86_64 79/221 Running scriptlet: diffutils-3.6-6.el8.x86_64 79/221 Installing : sqlite-libs-3.26.0-6.el8.x86_64 80/221 Running scriptlet: glibc-headers-2.28-101.el8.x86_64 81/221 Installing : glibc-headers-2.28-101.el8.x86_64 81/221 Installing : grub2-common-1:2.02-87.el8_2.noarch 82/221 Installing : cpio-2.12-8.el8.x86_64 83/221 Installing : gdbm-libs-1:1.18-1.el8.x86_64 84/221 Installing : keyutils-libs-1.5.10-6.el8.x86_64 85/221 Installing : libtasn1-4.13-3.el8.x86_64 86/221 Running scriptlet: libtasn1-4.13-3.el8.x86_64 86/221 Installing : p11-kit-trust-0.23.14-5.el8_0.x86_64 87/221 Running scriptlet: p11-kit-trust-0.23.14-5.el8_0.x86_64 87/221 Installing : pcre-8.42-4.el8.x86_64 88/221 Installing : grep-3.1-6.el8.x86_64 89/221 Running scriptlet: grep-3.1-6.el8.x86_64 89/221 Installing : xz-5.2.4-3.el8.x86_64 90/221 Installing : gdbm-1:1.18-1.el8.x86_64 91/221 Installing : zip-3.0-23.el8.x86_64 92/221 Installing : libsemanage-2.9-2.el8.x86_64 93/221 Installing : cpp-8.3.1-5.el8.0.2.x86_64 94/221 Running scriptlet: cpp-8.3.1-5.el8.0.2.x86_64 94/221 Installing : libmetalink-0.1.3-7.el8.x86_64 95/221 Installing : libpsl-0.20.2-5.el8.x86_64 96/221 Installing : acl-2.2.53-1.el8.x86_64 97/221 Installing : tar-2:1.30-4.el8.x86_64 98/221 Running scriptlet: tar-2:1.30-4.el8.x86_64 98/221 Installing : patch-2.7.6-11.el8.x86_64 99/221 Installing : libstdc++-devel-8.3.1-5.el8.0.2.x86_64 100/221 Installing : zstd-1.4.2-2.el8.x86_64 101/221 Installing : dwz-0.12-9.el8.x86_64 102/221 Installing : nettle-3.4.1-1.el8.x86_64 103/221 Running scriptlet: nettle-3.4.1-1.el8.x86_64 103/221 Installing : isl-0.16.1-6.el8.x86_64 104/221 Running scriptlet: isl-0.16.1-6.el8.x86_64 104/221 Installing : bzip2-1.0.6-26.el8.x86_64 105/221 Installing : coreutils-common-8.30-7.el8_2.1.x86_64 106/221 Running scriptlet: coreutils-common-8.30-7.el8_2.1.x86_64 106/221 Installing : pigz-2.4-4.el8.x86_64 107/221 Installing : brotli-1.0.6-1.el8.x86_64 108/221 Installing : hardlink-1:1.3-6.el8.x86_64 109/221 Installing : json-c-0.13.1-0.2.el8.x86_64 110/221 Installing : libnghttp2-1.33.0-3.el8_2.1.x86_64 111/221 Installing : libpcap-14:1.9.0-3.el8.x86_64 112/221 Installing : iptables-libs-1.8.4-10.el8_2.1.x86_64 113/221 Installing : libpkgconf-1.4.2-1.el8.x86_64 114/221 Installing : pkgconf-1.4.2-1.el8.x86_64 115/221 Installing : pkgconf-pkg-config-1.4.2-1.el8.x86_64 116/221 Installing : libxcrypt-devel-4.1.1-4.el8.x86_64 117/221 Installing : glibc-devel-2.28-101.el8.x86_64 118/221 Running scriptlet: glibc-devel-2.28-101.el8.x86_64 118/221 Installing : libseccomp-2.4.1-1.el8.x86_64 119/221 Running scriptlet: libseccomp-2.4.1-1.el8.x86_64 119/221 Installing : libsigsegv-2.11-5.el8.x86_64 120/221 Installing : gawk-4.2.1-1.el8.x86_64 121/221 Installing : libsmartcols-2.32.1-22.el8.x86_64 122/221 Running scriptlet: libsmartcols-2.32.1-22.el8.x86_64 122/221 Installing : libtool-ltdl-2.4.6-25.el8.x86_64 123/221 Running scriptlet: libtool-ltdl-2.4.6-25.el8.x86_64 123/221 Installing : libverto-0.3.0-5.el8.x86_64 124/221 Installing : ncurses-6.1-7.20180224.el8.x86_64 125/221 Installing : npth-1.5-4.el8.x86_64 126/221 Installing : which-2.21-12.el8.x86_64 127/221 Installing : libatomic_ops-7.6.2-3.el8.x86_64 128/221 Installing : gc-7.6.4-3.el8.x86_64 129/221 Installing : libipt-1.6.1-8.el8.x86_64 130/221 Installing : libxkbcommon-0.9.1-1.el8.x86_64 131/221 Installing : cyrus-sasl-lib-2.1.27-1.el8.x86_64 132/221 Running scriptlet: cyrus-sasl-lib-2.1.27-1.el8.x86_64 132/221 Installing : libssh-0.9.0-4.el8.x86_64 133/221 Installing : openldap-2.4.46-11.el8_1.x86_64 134/221 Installing : libkcapi-1.1.1-16_1.el8.x86_64 135/221 Installing : libkcapi-hmaccalc-1.1.1-16_1.el8.x86_64 136/221 Installing : libarchive-3.3.2-8.el8_1.x86_64 137/221 Installing : libdb-utils-5.3.28-37.el8.x86_64 138/221 Installing : curl-7.61.1-12.el8.x86_64 139/221 Installing : libcurl-7.61.1-12.el8.x86_64 140/221 Installing : elfutils-debuginfod-client-0.178-7.el8.x86_64 141/221 Installing : openssl-1:1.1.1c-15.el8.x86_64 142/221 Installing : elfutils-default-yama-scope-0.178-7.el8.noarch 143/221 Running scriptlet: elfutils-default-yama-scope-0.178-7.el8.noarch 143/221 Installing : elfutils-libs-0.178-7.el8.x86_64 144/221 Installing : gzip-1.9-9.el8.x86_64 145/221 Running scriptlet: gzip-1.9-9.el8.x86_64 145/221 Installing : cracklib-2.9.6-15.el8.x86_64 146/221 Installing : cracklib-dicts-2.9.6-15.el8.x86_64 147/221 Installing : procps-ng-3.3.15-1.el8.x86_64 148/221 Installing : krb5-libs-1.17-18.el8.x86_64 149/221 Installing : libtirpc-1.1.4-4.el8.x86_64 150/221 Running scriptlet: libtirpc-1.1.4-4.el8.x86_64 150/221 Installing : libnsl2-1.2.0-2.20180605git4a062cf.el8.x86_64 151/221 Running scriptlet: libnsl2-1.2.0-2.20180605git4a062cf.el8.x86_64 151/221 Installing : kpartx-0.8.3-3.el8_2.3.x86_64 152/221 Installing : device-mapper-8:1.02.169-3.el8.x86_64 153/221 Installing : openssl-pkcs11-0.4.10-2.el8.x86_64 154/221 Installing : platform-python-pip-9.0.3-16.el8.noarch 155/221 Installing : platform-python-setuptools-39.2.0-5.el8.noarch 156/221 Installing : python3-libs-3.6.8-23.el8.x86_64 157/221 Installing : rpm-4.14.2-37.el8.x86_64 158/221 Installing : grub2-tools-minimal-1:2.02-87.el8_2.x86_64 159/221 Installing : gettext-libs-0.19.8.1-17.el8.x86_64 160/221 Installing : libcroco-0.6.12-4.el8_2.1.x86_64 161/221 Running scriptlet: libcroco-0.6.12-4.el8_2.1.x86_64 161/221 Installing : libfdisk-2.32.1-22.el8.x86_64 162/221 Running scriptlet: libfdisk-2.32.1-22.el8.x86_64 162/221 Installing : libmount-2.32.1-22.el8.x86_64 163/221 Running scriptlet: libmount-2.32.1-22.el8.x86_64 163/221 Installing : dbus-libs-1:1.12.8-10.el8_2.x86_64 164/221 Running scriptlet: dbus-libs-1:1.12.8-10.el8_2.x86_64 164/221 Installing : dbus-tools-1:1.12.8-10.el8_2.x86_64 165/221 Installing : coreutils-8.30-7.el8_2.1.x86_64 166/221 Installing : systemd-libs-239-31.el8_2.2.x86_64 167/221 Running scriptlet: systemd-libs-239-31.el8_2.2.x86_64 167/221 Installing : libblkid-2.32.1-22.el8.x86_64 168/221 Running scriptlet: libblkid-2.32.1-22.el8.x86_64 168/221 Installing : device-mapper-libs-8:1.02.169-3.el8.x86_64 169/221 Installing : shadow-utils-2:4.6-8.el8.x86_64 170/221 Running scriptlet: ca-certificates-2020.2.41-80.0.el8_2.noarch 171/221 Installing : ca-certificates-2020.2.41-80.0.el8_2.noarch 171/221 Running scriptlet: ca-certificates-2020.2.41-80.0.el8_2.noarch 171/221 Running scriptlet: dbus-daemon-1:1.12.8-10.el8_2.x86_64 172/221 Installing : dbus-daemon-1:1.12.8-10.el8_2.x86_64 172/221 Running scriptlet: dbus-daemon-1:1.12.8-10.el8_2.x86_64 172/221 Running scriptlet: libutempter-1.1.6-14.el8.x86_64 173/221 Installing : libutempter-1.1.6-14.el8.x86_64 173/221 Installing : kmod-25-16.el8.x86_64 174/221 Installing : kmod-libs-25-16.el8.x86_64 175/221 Running scriptlet: kmod-libs-25-16.el8.x86_64 175/221 Installing : kbd-2.0.4-8.el8.x86_64 176/221 Installing : libpwquality-1.4.0-9.el8.x86_64 177/221 Installing : systemd-pam-239-31.el8_2.2.x86_64 178/221 Installing : cryptsetup-libs-2.2.2-1.el8.x86_64 179/221 Running scriptlet: cryptsetup-libs-2.2.2-1.el8.x86_64 179/221 Installing : dracut-049-70.git20200228.el8.x86_64 180/221 Installing : os-prober-1.74-6.el8.x86_64 181/221 Installing : libdb-5.3.28-37.el8.x86_64 182/221 Running scriptlet: libdb-5.3.28-37.el8.x86_64 182/221 Installing : pam-1.3.1-8.el8.x86_64 183/221 Running scriptlet: pam-1.3.1-8.el8.x86_64 183/221 Installing : util-linux-2.32.1-22.el8.x86_64 184/221 Running scriptlet: util-linux-2.32.1-22.el8.x86_64 184/221 Installing : platform-python-3.6.8-23.el8.x86_64 185/221 Running scriptlet: platform-python-3.6.8-23.el8.x86_64 185/221 Installing : rpm-libs-4.14.2-37.el8.x86_64 186/221 Running scriptlet: rpm-libs-4.14.2-37.el8.x86_64 186/221 Installing : trousers-lib-0.3.14-4.el8.x86_64 187/221 Running scriptlet: trousers-lib-0.3.14-4.el8.x86_64 187/221 Installing : openssl-libs-1:1.1.1c-15.el8.x86_64 188/221 Running scriptlet: openssl-libs-1:1.1.1c-15.el8.x86_64 188/221 Installing : grubby-8.40-38.el8.x86_64 189/221 Installing : crypto-policies-20191128-2.git23e1bf1.el8.noarch 190/221 Installing : gettext-0.19.8.1-17.el8.x86_64 191/221 Running scriptlet: gettext-0.19.8.1-17.el8.x86_64 191/221 Running scriptlet: grub2-tools-1:2.02-87.el8_2.x86_64 192/221 Installing : grub2-tools-1:2.02-87.el8_2.x86_64 192/221 Running scriptlet: grub2-tools-1:2.02-87.el8_2.x86_64 192/221 Installing : glib2-2.56.4-8.el8.x86_64 193/221 Installing : shared-mime-info-1.9-3.el8.x86_64 194/221 Running scriptlet: shared-mime-info-1.9-3.el8.x86_64 194/221 Installing : gnutls-3.6.8-11.el8_2.x86_64 195/221 Installing : dbus-1:1.12.8-10.el8_2.x86_64 196/221 Running scriptlet: systemd-239-31.el8_2.2.x86_64 197/221 Installing : systemd-239-31.el8_2.2.x86_64 197/221 Running scriptlet: systemd-239-31.el8_2.2.x86_64 197/221 Installing : systemd-udev-239-31.el8_2.2.x86_64 198/221 Running scriptlet: systemd-udev-239-31.el8_2.2.x86_64 198/221 Running scriptlet: trousers-0.3.14-4.el8.x86_64 199/221 Installing : trousers-0.3.14-4.el8.x86_64 199/221 Running scriptlet: trousers-0.3.14-4.el8.x86_64 199/221 Installing : binutils-2.30-73.el8.x86_64 200/221 Running scriptlet: binutils-2.30-73.el8.x86_64 200/221 Installing : gcc-8.3.1-5.el8.0.2.x86_64 201/221 Running scriptlet: gcc-8.3.1-5.el8.0.2.x86_64 201/221 Installing : annobin-8.90-1.el8.0.1.x86_64 202/221 Installing : libsecret-0.18.6-1.el8.x86_64 203/221 Installing : pinentry-1.1.0-2.el8.x86_64 204/221 Running scriptlet: pinentry-1.1.0-2.el8.x86_64 204/221 Installing : libbabeltrace-1.5.4-2.el8.x86_64 205/221 Running scriptlet: libbabeltrace-1.5.4-2.el8.x86_64 205/221 Installing : ima-evm-utils-1.1-5.el8.x86_64 206/221 Installing : libusbx-1.0.22-1.el8.x86_64 207/221 Installing : gnupg2-smime-2.2.9-1.el8.x86_64 208/221 Installing : gnupg2-2.2.9-1.el8.x86_64 209/221 Installing : rpm-build-libs-4.14.2-37.el8.x86_64 210/221 Running scriptlet: rpm-build-libs-4.14.2-37.el8.x86_64 210/221 Installing : guile-5:2.0.14-7.el8.x86_64 211/221 Running scriptlet: guile-5:2.0.14-7.el8.x86_64 211/221 Installing : gdb-headless-8.2-11.el8.x86_64 212/221 Installing : efi-srpm-macros-3-2.el8.noarch 213/221 Installing : redhat-rpm-config-122-1.el8.noarch 214/221 Installing : elfutils-0.178-7.el8.x86_64 215/221 Installing : rpm-build-4.14.2-37.el8.x86_64 216/221 Installing : gcc-c++-8.3.1-5.el8.0.2.x86_64 217/221 Installing : fedpkg-minimal-1.1.0-12.el8.noarch 218/221 Installing : make-1:4.2.1-10.el8.x86_64 219/221 Running scriptlet: make-1:4.2.1-10.el8.x86_64 219/221 Installing : epel-rpm-macros-8-16.noarch 220/221 Installing : epel-release-8-8.el8.noarch 221/221 Running scriptlet: filesystem-3.8-2.el8.x86_64 221/221 Running scriptlet: glibc-all-langpacks-2.28-101.el8.x86_64 221/221 Running scriptlet: ca-certificates-2020.2.41-80.0.el8_2.noarch 221/221 Running scriptlet: crypto-policies-20191128-2.git23e1bf1.el8.noarch 221/221 Running scriptlet: guile-5:2.0.14-7.el8.x86_64 221/221 Running scriptlet: epel-release-8-8.el8.noarch 221/221 Verifying : acl-2.2.53-1.el8.x86_64 1/221 Verifying : audit-libs-3.0-0.17.20191104git1c2f876.el8.x86_6 2/221 Verifying : basesystem-11-5.el8.noarch 3/221 Verifying : bash-4.4.19-10.el8.x86_64 4/221 Verifying : binutils-2.30-73.el8.x86_64 5/221 Verifying : brotli-1.0.6-1.el8.x86_64 6/221 Verifying : bzip2-1.0.6-26.el8.x86_64 7/221 Verifying : bzip2-libs-1.0.6-26.el8.x86_64 8/221 Verifying : ca-certificates-2020.2.41-80.0.el8_2.noarch 9/221 Verifying : centos-gpg-keys-8.2-2.2004.0.2.el8.noarch 10/221 Verifying : centos-release-8.2-2.2004.0.2.el8.x86_64 11/221 Verifying : centos-repos-8.2-2.2004.0.2.el8.x86_64 12/221 Verifying : chkconfig-1.11-1.el8.x86_64 13/221 Verifying : coreutils-8.30-7.el8_2.1.x86_64 14/221 Verifying : coreutils-common-8.30-7.el8_2.1.x86_64 15/221 Verifying : cpio-2.12-8.el8.x86_64 16/221 Verifying : cracklib-2.9.6-15.el8.x86_64 17/221 Verifying : cracklib-dicts-2.9.6-15.el8.x86_64 18/221 Verifying : crypto-policies-20191128-2.git23e1bf1.el8.noarch 19/221 Verifying : cryptsetup-libs-2.2.2-1.el8.x86_64 20/221 Verifying : curl-7.61.1-12.el8.x86_64 21/221 Verifying : cyrus-sasl-lib-2.1.27-1.el8.x86_64 22/221 Verifying : dbus-1:1.12.8-10.el8_2.x86_64 23/221 Verifying : dbus-common-1:1.12.8-10.el8_2.noarch 24/221 Verifying : dbus-daemon-1:1.12.8-10.el8_2.x86_64 25/221 Verifying : dbus-libs-1:1.12.8-10.el8_2.x86_64 26/221 Verifying : dbus-tools-1:1.12.8-10.el8_2.x86_64 27/221 Verifying : device-mapper-8:1.02.169-3.el8.x86_64 28/221 Verifying : device-mapper-libs-8:1.02.169-3.el8.x86_64 29/221 Verifying : diffutils-3.6-6.el8.x86_64 30/221 Verifying : dracut-049-70.git20200228.el8.x86_64 31/221 Verifying : elfutils-0.178-7.el8.x86_64 32/221 Verifying : elfutils-default-yama-scope-0.178-7.el8.noarch 33/221 Verifying : elfutils-libelf-0.178-7.el8.x86_64 34/221 Verifying : elfutils-libs-0.178-7.el8.x86_64 35/221 Verifying : expat-2.2.5-3.el8.x86_64 36/221 Verifying : file-5.33-13.el8.x86_64 37/221 Verifying : file-libs-5.33-13.el8.x86_64 38/221 Verifying : filesystem-3.8-2.el8.x86_64 39/221 Verifying : findutils-1:4.6.0-20.el8.x86_64 40/221 Verifying : gawk-4.2.1-1.el8.x86_64 41/221 Verifying : gdbm-1:1.18-1.el8.x86_64 42/221 Verifying : gdbm-libs-1:1.18-1.el8.x86_64 43/221 Verifying : gettext-0.19.8.1-17.el8.x86_64 44/221 Verifying : gettext-libs-0.19.8.1-17.el8.x86_64 45/221 Verifying : glib2-2.56.4-8.el8.x86_64 46/221 Verifying : glibc-2.28-101.el8.x86_64 47/221 Verifying : glibc-all-langpacks-2.28-101.el8.x86_64 48/221 Verifying : glibc-common-2.28-101.el8.x86_64 49/221 Verifying : glibc-devel-2.28-101.el8.x86_64 50/221 Verifying : glibc-headers-2.28-101.el8.x86_64 51/221 Verifying : gmp-1:6.1.2-10.el8.x86_64 52/221 Verifying : gnupg2-2.2.9-1.el8.x86_64 53/221 Verifying : gnupg2-smime-2.2.9-1.el8.x86_64 54/221 Verifying : gnutls-3.6.8-11.el8_2.x86_64 55/221 Verifying : grep-3.1-6.el8.x86_64 56/221 Verifying : grub2-common-1:2.02-87.el8_2.noarch 57/221 Verifying : grub2-tools-1:2.02-87.el8_2.x86_64 58/221 Verifying : grub2-tools-minimal-1:2.02-87.el8_2.x86_64 59/221 Verifying : grubby-8.40-38.el8.x86_64 60/221 Verifying : gzip-1.9-9.el8.x86_64 61/221 Verifying : hardlink-1:1.3-6.el8.x86_64 62/221 Verifying : ima-evm-utils-1.1-5.el8.x86_64 63/221 Verifying : info-6.5-6.el8.x86_64 64/221 Verifying : iptables-libs-1.8.4-10.el8_2.1.x86_64 65/221 Verifying : json-c-0.13.1-0.2.el8.x86_64 66/221 Verifying : kbd-2.0.4-8.el8.x86_64 67/221 Verifying : kbd-legacy-2.0.4-8.el8.noarch 68/221 Verifying : kbd-misc-2.0.4-8.el8.noarch 69/221 Verifying : kernel-headers-4.18.0-193.19.1.el8_2.x86_64 70/221 Verifying : keyutils-libs-1.5.10-6.el8.x86_64 71/221 Verifying : kmod-25-16.el8.x86_64 72/221 Verifying : kmod-libs-25-16.el8.x86_64 73/221 Verifying : kpartx-0.8.3-3.el8_2.3.x86_64 74/221 Verifying : krb5-libs-1.17-18.el8.x86_64 75/221 Verifying : libacl-2.2.53-1.el8.x86_64 76/221 Verifying : libarchive-3.3.2-8.el8_1.x86_64 77/221 Verifying : libassuan-2.5.1-3.el8.x86_64 78/221 Verifying : libattr-2.4.48-3.el8.x86_64 79/221 Verifying : libblkid-2.32.1-22.el8.x86_64 80/221 Verifying : libcap-2.26-3.el8.x86_64 81/221 Verifying : libcap-ng-0.7.9-5.el8.x86_64 82/221 Verifying : libcom_err-1.45.4-3.el8.x86_64 83/221 Verifying : libcroco-0.6.12-4.el8_2.1.x86_64 84/221 Verifying : libcurl-7.61.1-12.el8.x86_64 85/221 Verifying : libdb-5.3.28-37.el8.x86_64 86/221 Verifying : libdb-utils-5.3.28-37.el8.x86_64 87/221 Verifying : libfdisk-2.32.1-22.el8.x86_64 88/221 Verifying : libffi-3.1-21.el8.x86_64 89/221 Verifying : libgcc-8.3.1-5.el8.0.2.x86_64 90/221 Verifying : libgcrypt-1.8.3-4.el8.x86_64 91/221 Verifying : libgomp-8.3.1-5.el8.0.2.x86_64 92/221 Verifying : libgpg-error-1.31-1.el8.x86_64 93/221 Verifying : libidn2-2.2.0-1.el8.x86_64 94/221 Verifying : libkcapi-1.1.1-16_1.el8.x86_64 95/221 Verifying : libkcapi-hmaccalc-1.1.1-16_1.el8.x86_64 96/221 Verifying : libksba-1.3.5-7.el8.x86_64 97/221 Verifying : libmetalink-0.1.3-7.el8.x86_64 98/221 Verifying : libmount-2.32.1-22.el8.x86_64 99/221 Verifying : libnghttp2-1.33.0-3.el8_2.1.x86_64 100/221 Verifying : libnsl2-1.2.0-2.20180605git4a062cf.el8.x86_64 101/221 Verifying : libpcap-14:1.9.0-3.el8.x86_64 102/221 Verifying : libpkgconf-1.4.2-1.el8.x86_64 103/221 Verifying : libpsl-0.20.2-5.el8.x86_64 104/221 Verifying : libpwquality-1.4.0-9.el8.x86_64 105/221 Verifying : libseccomp-2.4.1-1.el8.x86_64 106/221 Verifying : libsecret-0.18.6-1.el8.x86_64 107/221 Verifying : libselinux-2.9-3.el8.x86_64 108/221 Verifying : libsemanage-2.9-2.el8.x86_64 109/221 Verifying : libsepol-2.9-1.el8.x86_64 110/221 Verifying : libsigsegv-2.11-5.el8.x86_64 111/221 Verifying : libsmartcols-2.32.1-22.el8.x86_64 112/221 Verifying : libssh-0.9.0-4.el8.x86_64 113/221 Verifying : libssh-config-0.9.0-4.el8.noarch 114/221 Verifying : libstdc++-8.3.1-5.el8.0.2.x86_64 115/221 Verifying : libtasn1-4.13-3.el8.x86_64 116/221 Verifying : libtirpc-1.1.4-4.el8.x86_64 117/221 Verifying : libtool-ltdl-2.4.6-25.el8.x86_64 118/221 Verifying : libunistring-0.9.9-3.el8.x86_64 119/221 Verifying : libusbx-1.0.22-1.el8.x86_64 120/221 Verifying : libutempter-1.1.6-14.el8.x86_64 121/221 Verifying : libuuid-2.32.1-22.el8.x86_64 122/221 Verifying : libverto-0.3.0-5.el8.x86_64 123/221 Verifying : libxcrypt-4.1.1-4.el8.x86_64 124/221 Verifying : libxcrypt-devel-4.1.1-4.el8.x86_64 125/221 Verifying : libxml2-2.9.7-7.el8.x86_64 126/221 Verifying : libzstd-1.4.2-2.el8.x86_64 127/221 Verifying : lua-libs-5.3.4-11.el8.x86_64 128/221 Verifying : lz4-libs-1.8.1.2-4.el8.x86_64 129/221 Verifying : make-1:4.2.1-10.el8.x86_64 130/221 Verifying : mpfr-3.1.6-1.el8.x86_64 131/221 Verifying : ncurses-6.1-7.20180224.el8.x86_64 132/221 Verifying : ncurses-base-6.1-7.20180224.el8.noarch 133/221 Verifying : ncurses-libs-6.1-7.20180224.el8.x86_64 134/221 Verifying : nettle-3.4.1-1.el8.x86_64 135/221 Verifying : npth-1.5-4.el8.x86_64 136/221 Verifying : openldap-2.4.46-11.el8_1.x86_64 137/221 Verifying : openssl-1:1.1.1c-15.el8.x86_64 138/221 Verifying : openssl-libs-1:1.1.1c-15.el8.x86_64 139/221 Verifying : openssl-pkcs11-0.4.10-2.el8.x86_64 140/221 Verifying : os-prober-1.74-6.el8.x86_64 141/221 Verifying : p11-kit-0.23.14-5.el8_0.x86_64 142/221 Verifying : p11-kit-trust-0.23.14-5.el8_0.x86_64 143/221 Verifying : pam-1.3.1-8.el8.x86_64 144/221 Verifying : patch-2.7.6-11.el8.x86_64 145/221 Verifying : pcre-8.42-4.el8.x86_64 146/221 Verifying : pcre2-10.32-1.el8.x86_64 147/221 Verifying : pigz-2.4-4.el8.x86_64 148/221 Verifying : pkgconf-1.4.2-1.el8.x86_64 149/221 Verifying : pkgconf-m4-1.4.2-1.el8.noarch 150/221 Verifying : pkgconf-pkg-config-1.4.2-1.el8.x86_64 151/221 Verifying : platform-python-3.6.8-23.el8.x86_64 152/221 Verifying : platform-python-pip-9.0.3-16.el8.noarch 153/221 Verifying : platform-python-setuptools-39.2.0-5.el8.noarch 154/221 Verifying : popt-1.16-14.el8.x86_64 155/221 Verifying : procps-ng-3.3.15-1.el8.x86_64 156/221 Verifying : publicsuffix-list-dafsa-20180723-1.el8.noarch 157/221 Verifying : python3-libs-3.6.8-23.el8.x86_64 158/221 Verifying : python3-pip-wheel-9.0.3-16.el8.noarch 159/221 Verifying : python3-setuptools-wheel-39.2.0-5.el8.noarch 160/221 Verifying : readline-7.0-10.el8.x86_64 161/221 Verifying : rpm-4.14.2-37.el8.x86_64 162/221 Verifying : rpm-build-libs-4.14.2-37.el8.x86_64 163/221 Verifying : rpm-libs-4.14.2-37.el8.x86_64 164/221 Verifying : sed-4.5-1.el8.x86_64 165/221 Verifying : setup-2.12.2-5.el8.noarch 166/221 Verifying : shadow-utils-2:4.6-8.el8.x86_64 167/221 Verifying : shared-mime-info-1.9-3.el8.x86_64 168/221 Verifying : sqlite-libs-3.26.0-6.el8.x86_64 169/221 Verifying : systemd-239-31.el8_2.2.x86_64 170/221 Verifying : systemd-libs-239-31.el8_2.2.x86_64 171/221 Verifying : systemd-pam-239-31.el8_2.2.x86_64 172/221 Verifying : systemd-udev-239-31.el8_2.2.x86_64 173/221 Verifying : tar-2:1.30-4.el8.x86_64 174/221 Verifying : trousers-0.3.14-4.el8.x86_64 175/221 Verifying : trousers-lib-0.3.14-4.el8.x86_64 176/221 Verifying : tzdata-2020a-1.el8.noarch 177/221 Verifying : unzip-6.0-43.el8.x86_64 178/221 Verifying : util-linux-2.32.1-22.el8.x86_64 179/221 Verifying : which-2.21-12.el8.x86_64 180/221 Verifying : xz-5.2.4-3.el8.x86_64 181/221 Verifying : xz-libs-5.2.4-3.el8.x86_64 182/221 Verifying : zip-3.0-23.el8.x86_64 183/221 Verifying : zlib-1.2.11-16.el8_2.x86_64 184/221 Verifying : annobin-8.90-1.el8.0.1.x86_64 185/221 Verifying : cpp-8.3.1-5.el8.0.2.x86_64 186/221 Verifying : dwz-0.12-9.el8.x86_64 187/221 Verifying : efi-srpm-macros-3-2.el8.noarch 188/221 Verifying : elfutils-debuginfod-client-0.178-7.el8.x86_64 189/221 Verifying : gc-7.6.4-3.el8.x86_64 190/221 Verifying : gcc-8.3.1-5.el8.0.2.x86_64 191/221 Verifying : gcc-c++-8.3.1-5.el8.0.2.x86_64 192/221 Verifying : gdb-headless-8.2-11.el8.x86_64 193/221 Verifying : ghc-srpm-macros-1.4.2-7.el8.noarch 194/221 Verifying : go-srpm-macros-2-16.el8.noarch 195/221 Verifying : guile-5:2.0.14-7.el8.x86_64 196/221 Verifying : isl-0.16.1-6.el8.x86_64 197/221 Verifying : libatomic_ops-7.6.2-3.el8.x86_64 198/221 Verifying : libbabeltrace-1.5.4-2.el8.x86_64 199/221 Verifying : libipt-1.6.1-8.el8.x86_64 200/221 Verifying : libmpc-1.0.2-9.el8.x86_64 201/221 Verifying : libstdc++-devel-8.3.1-5.el8.0.2.x86_64 202/221 Verifying : libxkbcommon-0.9.1-1.el8.x86_64 203/221 Verifying : ocaml-srpm-macros-5-4.el8.noarch 204/221 Verifying : openblas-srpm-macros-2-2.el8.noarch 205/221 Verifying : perl-srpm-macros-1-25.el8.noarch 206/221 Verifying : pinentry-1.1.0-2.el8.x86_64 207/221 Verifying : python-rpm-macros-3-38.el8.noarch 208/221 Verifying : python-srpm-macros-3-38.el8.noarch 209/221 Verifying : python2-rpm-macros-3-38.module_el8.2.0+381+9a5b3 210/221 Verifying : python3-rpm-macros-3-38.el8.noarch 211/221 Verifying : qt5-srpm-macros-5.12.5-3.el8.noarch 212/221 Verifying : redhat-rpm-config-122-1.el8.noarch 213/221 Verifying : rpm-build-4.14.2-37.el8.x86_64 214/221 Verifying : rust-srpm-macros-5-2.el8.noarch 215/221 Verifying : xkeyboard-config-2.28-1.el8.noarch 216/221 Verifying : zstd-1.4.2-2.el8.x86_64 217/221 Verifying : epel-release-8-8.el8.noarch 218/221 Verifying : epel-rpm-macros-8-16.noarch 219/221 Verifying : fedpkg-minimal-1.1.0-12.el8.noarch 220/221 Verifying : fpc-srpm-macros-1.3-1.el8.noarch 221/221 Installed: acl-2.2.53-1.el8.x86_64 annobin-8.90-1.el8.0.1.x86_64 audit-libs-3.0-0.17.20191104git1c2f876.el8.x86_64 basesystem-11-5.el8.noarch bash-4.4.19-10.el8.x86_64 binutils-2.30-73.el8.x86_64 brotli-1.0.6-1.el8.x86_64 bzip2-1.0.6-26.el8.x86_64 bzip2-libs-1.0.6-26.el8.x86_64 ca-certificates-2020.2.41-80.0.el8_2.noarch centos-gpg-keys-8.2-2.2004.0.2.el8.noarch centos-release-8.2-2.2004.0.2.el8.x86_64 centos-repos-8.2-2.2004.0.2.el8.x86_64 chkconfig-1.11-1.el8.x86_64 coreutils-8.30-7.el8_2.1.x86_64 coreutils-common-8.30-7.el8_2.1.x86_64 cpio-2.12-8.el8.x86_64 cpp-8.3.1-5.el8.0.2.x86_64 cracklib-2.9.6-15.el8.x86_64 cracklib-dicts-2.9.6-15.el8.x86_64 crypto-policies-20191128-2.git23e1bf1.el8.noarch cryptsetup-libs-2.2.2-1.el8.x86_64 curl-7.61.1-12.el8.x86_64 cyrus-sasl-lib-2.1.27-1.el8.x86_64 dbus-1:1.12.8-10.el8_2.x86_64 dbus-common-1:1.12.8-10.el8_2.noarch dbus-daemon-1:1.12.8-10.el8_2.x86_64 dbus-libs-1:1.12.8-10.el8_2.x86_64 dbus-tools-1:1.12.8-10.el8_2.x86_64 device-mapper-8:1.02.169-3.el8.x86_64 device-mapper-libs-8:1.02.169-3.el8.x86_64 diffutils-3.6-6.el8.x86_64 dracut-049-70.git20200228.el8.x86_64 dwz-0.12-9.el8.x86_64 efi-srpm-macros-3-2.el8.noarch elfutils-0.178-7.el8.x86_64 elfutils-debuginfod-client-0.178-7.el8.x86_64 elfutils-default-yama-scope-0.178-7.el8.noarch elfutils-libelf-0.178-7.el8.x86_64 elfutils-libs-0.178-7.el8.x86_64 epel-release-8-8.el8.noarch epel-rpm-macros-8-16.noarch expat-2.2.5-3.el8.x86_64 fedpkg-minimal-1.1.0-12.el8.noarch file-5.33-13.el8.x86_64 file-libs-5.33-13.el8.x86_64 filesystem-3.8-2.el8.x86_64 findutils-1:4.6.0-20.el8.x86_64 fpc-srpm-macros-1.3-1.el8.noarch gawk-4.2.1-1.el8.x86_64 gc-7.6.4-3.el8.x86_64 gcc-8.3.1-5.el8.0.2.x86_64 gcc-c++-8.3.1-5.el8.0.2.x86_64 gdb-headless-8.2-11.el8.x86_64 gdbm-1:1.18-1.el8.x86_64 gdbm-libs-1:1.18-1.el8.x86_64 gettext-0.19.8.1-17.el8.x86_64 gettext-libs-0.19.8.1-17.el8.x86_64 ghc-srpm-macros-1.4.2-7.el8.noarch glib2-2.56.4-8.el8.x86_64 glibc-2.28-101.el8.x86_64 glibc-all-langpacks-2.28-101.el8.x86_64 glibc-common-2.28-101.el8.x86_64 glibc-devel-2.28-101.el8.x86_64 glibc-headers-2.28-101.el8.x86_64 gmp-1:6.1.2-10.el8.x86_64 gnupg2-2.2.9-1.el8.x86_64 gnupg2-smime-2.2.9-1.el8.x86_64 gnutls-3.6.8-11.el8_2.x86_64 go-srpm-macros-2-16.el8.noarch grep-3.1-6.el8.x86_64 grub2-common-1:2.02-87.el8_2.noarch grub2-tools-1:2.02-87.el8_2.x86_64 grub2-tools-minimal-1:2.02-87.el8_2.x86_64 grubby-8.40-38.el8.x86_64 guile-5:2.0.14-7.el8.x86_64 gzip-1.9-9.el8.x86_64 hardlink-1:1.3-6.el8.x86_64 ima-evm-utils-1.1-5.el8.x86_64 info-6.5-6.el8.x86_64 iptables-libs-1.8.4-10.el8_2.1.x86_64 isl-0.16.1-6.el8.x86_64 json-c-0.13.1-0.2.el8.x86_64 kbd-2.0.4-8.el8.x86_64 kbd-legacy-2.0.4-8.el8.noarch kbd-misc-2.0.4-8.el8.noarch kernel-headers-4.18.0-193.19.1.el8_2.x86_64 keyutils-libs-1.5.10-6.el8.x86_64 kmod-25-16.el8.x86_64 kmod-libs-25-16.el8.x86_64 kpartx-0.8.3-3.el8_2.3.x86_64 krb5-libs-1.17-18.el8.x86_64 libacl-2.2.53-1.el8.x86_64 libarchive-3.3.2-8.el8_1.x86_64 libassuan-2.5.1-3.el8.x86_64 libatomic_ops-7.6.2-3.el8.x86_64 libattr-2.4.48-3.el8.x86_64 libbabeltrace-1.5.4-2.el8.x86_64 libblkid-2.32.1-22.el8.x86_64 libcap-2.26-3.el8.x86_64 libcap-ng-0.7.9-5.el8.x86_64 libcom_err-1.45.4-3.el8.x86_64 libcroco-0.6.12-4.el8_2.1.x86_64 libcurl-7.61.1-12.el8.x86_64 libdb-5.3.28-37.el8.x86_64 libdb-utils-5.3.28-37.el8.x86_64 libfdisk-2.32.1-22.el8.x86_64 libffi-3.1-21.el8.x86_64 libgcc-8.3.1-5.el8.0.2.x86_64 libgcrypt-1.8.3-4.el8.x86_64 libgomp-8.3.1-5.el8.0.2.x86_64 libgpg-error-1.31-1.el8.x86_64 libidn2-2.2.0-1.el8.x86_64 libipt-1.6.1-8.el8.x86_64 libkcapi-1.1.1-16_1.el8.x86_64 libkcapi-hmaccalc-1.1.1-16_1.el8.x86_64 libksba-1.3.5-7.el8.x86_64 libmetalink-0.1.3-7.el8.x86_64 libmount-2.32.1-22.el8.x86_64 libmpc-1.0.2-9.el8.x86_64 libnghttp2-1.33.0-3.el8_2.1.x86_64 libnsl2-1.2.0-2.20180605git4a062cf.el8.x86_64 libpcap-14:1.9.0-3.el8.x86_64 libpkgconf-1.4.2-1.el8.x86_64 libpsl-0.20.2-5.el8.x86_64 libpwquality-1.4.0-9.el8.x86_64 libseccomp-2.4.1-1.el8.x86_64 libsecret-0.18.6-1.el8.x86_64 libselinux-2.9-3.el8.x86_64 libsemanage-2.9-2.el8.x86_64 libsepol-2.9-1.el8.x86_64 libsigsegv-2.11-5.el8.x86_64 libsmartcols-2.32.1-22.el8.x86_64 libssh-0.9.0-4.el8.x86_64 libssh-config-0.9.0-4.el8.noarch libstdc++-8.3.1-5.el8.0.2.x86_64 libstdc++-devel-8.3.1-5.el8.0.2.x86_64 libtasn1-4.13-3.el8.x86_64 libtirpc-1.1.4-4.el8.x86_64 libtool-ltdl-2.4.6-25.el8.x86_64 libunistring-0.9.9-3.el8.x86_64 libusbx-1.0.22-1.el8.x86_64 libutempter-1.1.6-14.el8.x86_64 libuuid-2.32.1-22.el8.x86_64 libverto-0.3.0-5.el8.x86_64 libxcrypt-4.1.1-4.el8.x86_64 libxcrypt-devel-4.1.1-4.el8.x86_64 libxkbcommon-0.9.1-1.el8.x86_64 libxml2-2.9.7-7.el8.x86_64 libzstd-1.4.2-2.el8.x86_64 lua-libs-5.3.4-11.el8.x86_64 lz4-libs-1.8.1.2-4.el8.x86_64 make-1:4.2.1-10.el8.x86_64 mpfr-3.1.6-1.el8.x86_64 ncurses-6.1-7.20180224.el8.x86_64 ncurses-base-6.1-7.20180224.el8.noarch ncurses-libs-6.1-7.20180224.el8.x86_64 nettle-3.4.1-1.el8.x86_64 npth-1.5-4.el8.x86_64 ocaml-srpm-macros-5-4.el8.noarch openblas-srpm-macros-2-2.el8.noarch openldap-2.4.46-11.el8_1.x86_64 openssl-1:1.1.1c-15.el8.x86_64 openssl-libs-1:1.1.1c-15.el8.x86_64 openssl-pkcs11-0.4.10-2.el8.x86_64 os-prober-1.74-6.el8.x86_64 p11-kit-0.23.14-5.el8_0.x86_64 p11-kit-trust-0.23.14-5.el8_0.x86_64 pam-1.3.1-8.el8.x86_64 patch-2.7.6-11.el8.x86_64 pcre-8.42-4.el8.x86_64 pcre2-10.32-1.el8.x86_64 perl-srpm-macros-1-25.el8.noarch pigz-2.4-4.el8.x86_64 pinentry-1.1.0-2.el8.x86_64 pkgconf-1.4.2-1.el8.x86_64 pkgconf-m4-1.4.2-1.el8.noarch pkgconf-pkg-config-1.4.2-1.el8.x86_64 platform-python-3.6.8-23.el8.x86_64 platform-python-pip-9.0.3-16.el8.noarch platform-python-setuptools-39.2.0-5.el8.noarch popt-1.16-14.el8.x86_64 procps-ng-3.3.15-1.el8.x86_64 publicsuffix-list-dafsa-20180723-1.el8.noarch python-rpm-macros-3-38.el8.noarch python-srpm-macros-3-38.el8.noarch python2-rpm-macros-3-38.module_el8.2.0+381+9a5b3c3b.noarch python3-libs-3.6.8-23.el8.x86_64 python3-pip-wheel-9.0.3-16.el8.noarch python3-rpm-macros-3-38.el8.noarch python3-setuptools-wheel-39.2.0-5.el8.noarch qt5-srpm-macros-5.12.5-3.el8.noarch readline-7.0-10.el8.x86_64 redhat-rpm-config-122-1.el8.noarch rpm-4.14.2-37.el8.x86_64 rpm-build-4.14.2-37.el8.x86_64 rpm-build-libs-4.14.2-37.el8.x86_64 rpm-libs-4.14.2-37.el8.x86_64 rust-srpm-macros-5-2.el8.noarch sed-4.5-1.el8.x86_64 setup-2.12.2-5.el8.noarch shadow-utils-2:4.6-8.el8.x86_64 shared-mime-info-1.9-3.el8.x86_64 sqlite-libs-3.26.0-6.el8.x86_64 systemd-239-31.el8_2.2.x86_64 systemd-libs-239-31.el8_2.2.x86_64 systemd-pam-239-31.el8_2.2.x86_64 systemd-udev-239-31.el8_2.2.x86_64 tar-2:1.30-4.el8.x86_64 trousers-0.3.14-4.el8.x86_64 trousers-lib-0.3.14-4.el8.x86_64 tzdata-2020a-1.el8.noarch unzip-6.0-43.el8.x86_64 util-linux-2.32.1-22.el8.x86_64 which-2.21-12.el8.x86_64 xkeyboard-config-2.28-1.el8.noarch xz-5.2.4-3.el8.x86_64 xz-libs-5.2.4-3.el8.x86_64 zip-3.0-23.el8.x86_64 zlib-1.2.11-16.el8_2.x86_64 zstd-1.4.2-2.el8.x86_64 Complete! Finish: dnf install Start: creating root cache Finish: creating root cache Finish: chroot init INFO: Installed packages: INFO: libarchive-3.3.2-8.el8_1.x86_64 ghc-srpm-macros-1.4.2-7.el8.noarch xz-5.2.4-3.el8.x86_64 zip-3.0-23.el8.x86_64 libidn2-2.2.0-1.el8.x86_64 cyrus-sasl-lib-2.1.27-1.el8.x86_64 npth-1.5-4.el8.x86_64 p11-kit-0.23.14-5.el8_0.x86_64 kbd-2.0.4-8.el8.x86_64 libtool-ltdl-2.4.6-25.el8.x86_64 json-c-0.13.1-0.2.el8.x86_64 iptables-libs-1.8.4-10.el8_2.1.x86_64 keyutils-libs-1.5.10-6.el8.x86_64 cracklib-dicts-2.9.6-15.el8.x86_64 ocaml-srpm-macros-5-4.el8.noarch libdb-5.3.28-37.el8.x86_64 nettle-3.4.1-1.el8.x86_64 libsemanage-2.9-2.el8.x86_64 ncurses-base-6.1-7.20180224.el8.noarch dbus-1.12.8-10.el8_2.x86_64 libpsl-0.20.2-5.el8.x86_64 perl-srpm-macros-1-25.el8.noarch python3-pip-wheel-9.0.3-16.el8.noarch elfutils-default-yama-scope-0.178-7.el8.noarch gpg-pubkey-2f86d6a1-5cf7cefb zlib-1.2.11-16.el8_2.x86_64 libkcapi-hmaccalc-1.1.1-16_1.el8.x86_64 libgcc-8.3.1-5.el8.0.2.x86_64 diffutils-3.6-6.el8.x86_64 gzip-1.9-9.el8.x86_64 platform-python-3.6.8-23.el8.x86_64 fpc-srpm-macros-1.3-1.el8.noarch libuuid-2.32.1-22.el8.x86_64 setup-2.12.2-5.el8.noarch libatomic_ops-7.6.2-3.el8.x86_64 libksba-1.3.5-7.el8.x86_64 libcurl-7.61.1-12.el8.x86_64 epel-rpm-macros-8-16.noarch libsepol-2.9-1.el8.x86_64 pkgconf-1.4.2-1.el8.x86_64 libpwquality-1.4.0-9.el8.x86_64 libsmartcols-2.32.1-22.el8.x86_64 brotli-1.0.6-1.el8.x86_64 expat-2.2.5-3.el8.x86_64 libbabeltrace-1.5.4-2.el8.x86_64 python3-rpm-macros-3-38.el8.noarch libpkgconf-1.4.2-1.el8.x86_64 cracklib-2.9.6-15.el8.x86_64 efi-srpm-macros-3-2.el8.noarch elfutils-debuginfod-client-0.178-7.el8.x86_64 libcom_err-1.45.4-3.el8.x86_64 coreutils-8.30-7.el8_2.1.x86_64 python3-setuptools-wheel-39.2.0-5.el8.noarch libxml2-2.9.7-7.el8.x86_64 gnupg2-2.2.9-1.el8.x86_64 elfutils-0.178-7.el8.x86_64 dbus-common-1.12.8-10.el8_2.noarch kbd-legacy-2.0.4-8.el8.noarch patch-2.7.6-11.el8.x86_64 dwz-0.12-9.el8.x86_64 glib2-2.56.4-8.el8.x86_64 file-libs-5.33-13.el8.x86_64 dbus-tools-1.12.8-10.el8_2.x86_64 openldap-2.4.46-11.el8_1.x86_64 xkeyboard-config-2.28-1.el8.noarch libffi-3.1-21.el8.x86_64 gcc-8.3.1-5.el8.0.2.x86_64 libgcrypt-1.8.3-4.el8.x86_64 unzip-6.0-43.el8.x86_64 ncurses-libs-6.1-7.20180224.el8.x86_64 glibc-common-2.28-101.el8.x86_64 tar-1.30-4.el8.x86_64 redhat-rpm-config-122-1.el8.noarch libxcrypt-devel-4.1.1-4.el8.x86_64 fedpkg-minimal-1.1.0-12.el8.noarch pkgconf-pkg-config-1.4.2-1.el8.x86_64 procps-ng-3.3.15-1.el8.x86_64 crypto-policies-20191128-2.git23e1bf1.el8.noarch go-srpm-macros-2-16.el8.noarch bzip2-libs-1.0.6-26.el8.x86_64 pkgconf-m4-1.4.2-1.el8.noarch gnutls-3.6.8-11.el8_2.x86_64 libssh-0.9.0-4.el8.x86_64 libpcap-1.9.0-3.el8.x86_64 curl-7.61.1-12.el8.x86_64 libunistring-0.9.9-3.el8.x86_64 libassuan-2.5.1-3.el8.x86_64 libzstd-1.4.2-2.el8.x86_64 isl-0.16.1-6.el8.x86_64 python2-rpm-macros-3-38.module_el8.2.0+381+9a5b3c3b.noarch gettext-0.19.8.1-17.el8.x86_64 elfutils-libelf-0.178-7.el8.x86_64 glibc-all-langpacks-2.28-101.el8.x86_64 kbd-misc-2.0.4-8.el8.noarch elfutils-libs-0.178-7.el8.x86_64 util-linux-2.32.1-22.el8.x86_64 systemd-libs-239-31.el8_2.2.x86_64 libgpg-error-1.31-1.el8.x86_64 readline-7.0-10.el8.x86_64 gpg-pubkey-8483c65d-5ccc5b19 kmod-libs-25-16.el8.x86_64 grubby-8.40-38.el8.x86_64 ima-evm-utils-1.1-5.el8.x86_64 openblas-srpm-macros-2-2.el8.noarch libtirpc-1.1.4-4.el8.x86_64 python-rpm-macros-3-38.el8.noarch kmod-25-16.el8.x86_64 trousers-0.3.14-4.el8.x86_64 sed-4.5-1.el8.x86_64 tzdata-2020a-1.el8.noarch libtasn1-4.13-3.el8.x86_64 pigz-2.4-4.el8.x86_64 annobin-8.90-1.el8.0.1.x86_64 libsigsegv-2.11-5.el8.x86_64 platform-python-setuptools-39.2.0-5.el8.noarch libutempter-1.1.6-14.el8.x86_64 gc-7.6.4-3.el8.x86_64 gettext-libs-0.19.8.1-17.el8.x86_64 systemd-pam-239-31.el8_2.2.x86_64 rpm-build-libs-4.14.2-37.el8.x86_64 libmpc-1.0.2-9.el8.x86_64 device-mapper-libs-1.02.169-3.el8.x86_64 acl-2.2.53-1.el8.x86_64 libcap-ng-0.7.9-5.el8.x86_64 grub2-common-2.02-87.el8_2.noarch sqlite-libs-3.26.0-6.el8.x86_64 libkcapi-1.1.1-16_1.el8.x86_64 pam-1.3.1-8.el8.x86_64 zstd-1.4.2-2.el8.x86_64 libattr-2.4.48-3.el8.x86_64 p11-kit-trust-0.23.14-5.el8_0.x86_64 libmount-2.32.1-22.el8.x86_64 libverto-0.3.0-5.el8.x86_64 libacl-2.2.53-1.el8.x86_64 libseccomp-2.4.1-1.el8.x86_64 qt5-srpm-macros-5.12.5-3.el8.noarch which-2.21-12.el8.x86_64 libnghttp2-1.33.0-3.el8_2.1.x86_64 lz4-libs-1.8.1.2-4.el8.x86_64 python-srpm-macros-3-38.el8.noarch lua-libs-5.3.4-11.el8.x86_64 openssl-libs-1.1.1c-15.el8.x86_64 libstdc++-devel-8.3.1-5.el8.0.2.x86_64 libfdisk-2.32.1-22.el8.x86_64 basesystem-11-5.el8.noarch info-6.5-6.el8.x86_64 make-4.2.1-10.el8.x86_64 gawk-4.2.1-1.el8.x86_64 python3-libs-3.6.8-23.el8.x86_64 rpm-build-4.14.2-37.el8.x86_64 popt-1.16-14.el8.x86_64 libselinux-2.9-3.el8.x86_64 trousers-lib-0.3.14-4.el8.x86_64 centos-gpg-keys-8.2-2.2004.0.2.el8.noarch coreutils-common-8.30-7.el8_2.1.x86_64 mpfr-3.1.6-1.el8.x86_64 libstdc++-8.3.1-5.el8.0.2.x86_64 libnsl2-1.2.0-2.20180605git4a062cf.el8.x86_64 epel-release-8-8.el8.noarch gnupg2-smime-2.2.9-1.el8.x86_64 libsecret-0.18.6-1.el8.x86_64 cpio-2.12-8.el8.x86_64 kernel-headers-4.18.0-193.19.1.el8_2.x86_64 cryptsetup-libs-2.2.2-1.el8.x86_64 rpm-4.14.2-37.el8.x86_64 shared-mime-info-1.9-3.el8.x86_64 libgomp-8.3.1-5.el8.0.2.x86_64 pcre2-10.32-1.el8.x86_64 dbus-libs-1.12.8-10.el8_2.x86_64 ncurses-6.1-7.20180224.el8.x86_64 libusbx-1.0.22-1.el8.x86_64 systemd-239-31.el8_2.2.x86_64 glibc-headers-2.28-101.el8.x86_64 publicsuffix-list-dafsa-20180723-1.el8.noarch gmp-6.1.2-10.el8.x86_64 grub2-tools-minimal-2.02-87.el8_2.x86_64 binutils-2.30-73.el8.x86_64 glibc-2.28-101.el8.x86_64 libcroco-0.6.12-4.el8_2.1.x86_64 krb5-libs-1.17-18.el8.x86_64 pcre-8.42-4.el8.x86_64 shadow-utils-4.6-8.el8.x86_64 ca-certificates-2020.2.41-80.0.el8_2.noarch libssh-config-0.9.0-4.el8.noarch libxcrypt-4.1.1-4.el8.x86_64 filesystem-3.8-2.el8.x86_64 gdb-headless-8.2-11.el8.x86_64 rpm-libs-4.14.2-37.el8.x86_64 bzip2-1.0.6-26.el8.x86_64 guile-2.0.14-7.el8.x86_64 gcc-c++-8.3.1-5.el8.0.2.x86_64 openssl-pkcs11-0.4.10-2.el8.x86_64 libipt-1.6.1-8.el8.x86_64 systemd-udev-239-31.el8_2.2.x86_64 pinentry-1.1.0-2.el8.x86_64 libmetalink-0.1.3-7.el8.x86_64 chkconfig-1.11-1.el8.x86_64 libxkbcommon-0.9.1-1.el8.x86_64 dbus-daemon-1.12.8-10.el8_2.x86_64 libcap-2.26-3.el8.x86_64 libdb-utils-5.3.28-37.el8.x86_64 centos-release-8.2-2.2004.0.2.el8.x86_64 grep-3.1-6.el8.x86_64 glibc-devel-2.28-101.el8.x86_64 hardlink-1.3-6.el8.x86_64 platform-python-pip-9.0.3-16.el8.noarch audit-libs-3.0-0.17.20191104git1c2f876.el8.x86_64 openssl-1.1.1c-15.el8.x86_64 libblkid-2.32.1-22.el8.x86_64 centos-repos-8.2-2.2004.0.2.el8.x86_64 kpartx-0.8.3-3.el8_2.3.x86_64 rust-srpm-macros-5-2.el8.noarch bash-4.4.19-10.el8.x86_64 grub2-tools-2.02-87.el8_2.x86_64 cpp-8.3.1-5.el8.0.2.x86_64 device-mapper-1.02.169-3.el8.x86_64 gdbm-1.18-1.el8.x86_64 gdbm-libs-1.18-1.el8.x86_64 dracut-049-70.git20200228.el8.x86_64 file-5.33-13.el8.x86_64 os-prober-1.74-6.el8.x86_64 findutils-4.6.0-20.el8.x86_64 xz-libs-5.2.4-3.el8.x86_64 Start: buildsrpm Start: rpmbuild -bs Building target platforms: x86_64 Building for target x86_64 Wrote: /builddir/build/SRPMS/python-beautifulsoup4-4.6.3-1.el8.src.rpm Finish: rpmbuild -bs INFO: chroot_scan: 3 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/epel-8-x86_64-1601457125.229872/root/var/log/dnf.rpm.log /var/lib/mock/epel-8-x86_64-1601457125.229872/root/var/log/dnf.librepo.log /var/lib/mock/epel-8-x86_64-1601457125.229872/root/var/log/dnf.log Finish: buildsrpm INFO: Done(/tmp/copr-rpmbuild-uh8utqek/python-beautifulsoup4.spec) Config(child) 1 minutes 18 seconds INFO: Results and/or logs in: /var/lib/copr-rpmbuild/results INFO: Cleaning up build root ('cleanup_on_success=True') Start: clean chroot INFO: unmounting tmpfs. Finish: clean chroot Finish: run Running (timeout=108000): unbuffer mock --rebuild /var/lib/copr-rpmbuild/results/python-beautifulsoup4-4.6.3-1.el8.src.rpm --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1601457205.072649 -r /var/lib/copr-rpmbuild/results/configs/child.cfg INFO: mock.py version 2.6 starting (python version = 3.8.5)... Start: init plugins INFO: tmpfs initialized INFO: selinux enabled INFO: chroot_scan: initialized INFO: compress_logs: initialized Finish: init plugins INFO: Signal handler active Start: run INFO: Start(/var/lib/copr-rpmbuild/results/python-beautifulsoup4-4.6.3-1.el8.src.rpm) Config(epel-8-x86_64) Start: clean chroot Finish: clean chroot Start: chroot init INFO: mounting tmpfs at /var/lib/mock/epel-8-x86_64-1601457205.072649/root. INFO: calling preinit hooks INFO: enabled root cache Start: unpacking root cache Finish: unpacking root cache INFO: enabled package manager cache Start: cleaning package manager metadata Finish: cleaning package manager metadata INFO: enabled HW Info plugin Mock Version: 2.6 INFO: Mock Version: 2.6 Start: dnf update No matches found for the following disable plugin patterns: local, spacewalk Copr repository 47 kB/s | 3.3 kB 00:00 Copr repository 317 kB/s | 12 kB 00:00 CentOS-8 - Base 6.3 MB/s | 2.2 MB 00:00 CentOS-8 - AppStream 51 MB/s | 5.8 MB 00:00 CentOS-8 - PowerTools 10 MB/s | 1.9 MB 00:00 CentOS-8 - Extras 278 kB/s | 8.1 kB 00:00 epel 80 kB/s | 4.7 kB 00:00 Dependencies resolved. Nothing to do. Complete! Finish: dnf update Finish: chroot init Start: build phase for python-beautifulsoup4-4.6.3-1.el8.src.rpm Start: build setup for python-beautifulsoup4-4.6.3-1.el8.src.rpm Building target platforms: x86_64 Building for target x86_64 Wrote: /builddir/build/SRPMS/python-beautifulsoup4-4.6.3-1.el8.src.rpm No matches found for the following disable plugin patterns: local, spacewalk Copr repository 204 kB/s | 3.3 kB 00:00 CentOS-8 - Base 24 kB/s | 3.9 kB 00:00 CentOS-8 - AppStream 8.5 kB/s | 4.3 kB 00:00 CentOS-8 - PowerTools 22 kB/s | 4.3 kB 00:00 CentOS-8 - Extras 22 kB/s | 1.5 kB 00:00 epel 133 kB/s | 4.7 kB 00:00 Dependencies resolved. ====================================================================================== Package Arch Version Repo Size ====================================================================================== Installing: python3-setuptools  noarch 39.2.0-5.el8 BaseOS 162 k python36-devel  x86_64 3.6.8-2.module_el8.1.0+245+c39af44f AppStream 16 k Installing dependencies: platform-python-devel  x86_64 3.6.8-23.el8 AppStream 246 k python3-pip  noarch 9.0.3-16.el8 AppStream 19 k python3-rpm-generators  noarch 5-6.el8 AppStream 24 k python36  x86_64 3.6.8-2.module_el8.1.0+245+c39af44f AppStream 19 k python36-rpm-macros  noarch 3.6.8-2.module_el8.1.0+245+c39af44f AppStream 15 k Enabling module streams: python36 3.6 Transaction Summary ====================================================================================== Install 7 Packages Total download size: 503 k Installed size: 1.2 M Downloading Packages: (1/7): python3-pip-9.0.3-16.el8.noarch.rpm 8.2 MB/s | 19 kB 00:00 (2/7): python3-setuptools-39.2.0-5.el8.noarch.r 26 MB/s | 162 kB 00:00 (3/7): python3-rpm-generators-5-6.el8.noarch.rp 6.4 MB/s | 24 kB 00:00 (4/7): python36-3.6.8-2.module_el8.1.0+245+c39a 9.1 MB/s | 19 kB 00:00 (5/7): platform-python-devel-3.6.8-23.el8.x86_6 23 MB/s | 246 kB 00:00 (6/7): python36-devel-3.6.8-2.module_el8.1.0+24 4.7 MB/s | 16 kB 00:00 (7/7): python36-rpm-macros-3.6.8-2.module_el8.1 4.8 MB/s | 15 kB 00:00 -------------------------------------------------------------------------------- Total 2.4 MB/s | 503 kB 00:00 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : python3-rpm-generators-5-6.el8.noarch 1/7 Installing : platform-python-devel-3.6.8-23.el8.x86_64 2/7 Installing : python3-setuptools-39.2.0-5.el8.noarch 3/7 Installing : python3-pip-9.0.3-16.el8.noarch 4/7 Installing : python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64 5/7 Running scriptlet: python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64 5/7 Installing : python36-devel-3.6.8-2.module_el8.1.0+245+c39af44f.x 6/7 Running scriptlet: python36-devel-3.6.8-2.module_el8.1.0+245+c39af44f.x 6/7 Installing : python36-rpm-macros-3.6.8-2.module_el8.1.0+245+c39af 7/7 Running scriptlet: python36-rpm-macros-3.6.8-2.module_el8.1.0+245+c39af 7/7 Verifying : python3-setuptools-39.2.0-5.el8.noarch 1/7 Verifying : platform-python-devel-3.6.8-23.el8.x86_64 2/7 Verifying : python3-pip-9.0.3-16.el8.noarch 3/7 Verifying : python3-rpm-generators-5-6.el8.noarch 4/7 Verifying : python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64 5/7 Verifying : python36-devel-3.6.8-2.module_el8.1.0+245+c39af44f.x 6/7 Verifying : python36-rpm-macros-3.6.8-2.module_el8.1.0+245+c39af 7/7 Installed: platform-python-devel-3.6.8-23.el8.x86_64 python3-pip-9.0.3-16.el8.noarch python3-rpm-generators-5-6.el8.noarch python3-setuptools-39.2.0-5.el8.noarch python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64 python36-devel-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64 python36-rpm-macros-3.6.8-2.module_el8.1.0+245+c39af44f.noarch Complete! Finish: build setup for python-beautifulsoup4-4.6.3-1.el8.src.rpm Start: rpmbuild python-beautifulsoup4-4.6.3-1.el8.src.rpm Building target platforms: x86_64 Building for target x86_64 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.TJNwsr + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf beautifulsoup4-4.6.3 + /usr/bin/gzip -dc /builddir/build/SOURCES/beautifulsoup4-4.6.3.tar.gz + /usr/bin/tar -xof - + STATUS=0 + '[' 0 -ne 0 ']' + cd beautifulsoup4-4.6.3 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + mv AUTHORS.txt AUTHORS.txt.iso + iconv -f ISO-8859-1 -t UTF-8 -o AUTHORS.txt AUTHORS.txt.iso + touch -r AUTHORS.txt.iso AUTHORS.txt + rm -rf /builddir/build/BUILD/python3-python-beautifulsoup4-4.6.3-1.el8 + cp -a . /builddir/build/BUILD/python3-python-beautifulsoup4-4.6.3-1.el8 + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.ar48ol + umask 022 ~/build/BUILD/python3-python-beautifulsoup4-4.6.3-1.el8 ~/build/BUILD/beautifulsoup4-4.6.3 + cd /builddir/build/BUILD + cd beautifulsoup4-4.6.3 + pushd /builddir/build/BUILD/python3-python-beautifulsoup4-4.6.3-1.el8 + 2to3 --write --nobackups . RefactoringTool: Skipping optional fixer: buffer RefactoringTool: Skipping optional fixer: idioms RefactoringTool: Skipping optional fixer: set_literal RefactoringTool: Skipping optional fixer: ws_comma RefactoringTool: No changes to ./setup.py RefactoringTool: Refactored ./bs4/__init__.py RefactoringTool: Refactored ./bs4/dammit.py RefactoringTool: Refactored ./bs4/diagnose.py --- ./bs4/__init__.py (original) +++ ./bs4/__init__.py (refactored) @@ -51,7 +51,7 @@ # The very first thing we do is give a useful error if someone is # running this code under Python 3 without converting it. -'You are trying to run the Python 2 version of Beautiful Soup under Python 3. This will not work.'<>'You need to convert the code, either by installing it (`python setup.py install`) or by running 2to3 (`2to3 -w bs4`).' +'You are trying to run the Python 2 version of Beautiful Soup under Python 3. This will not work.'!='You need to convert the code, either by installing it (`python setup.py install`) or by running 2to3 (`2to3 -w bs4`).' class BeautifulSoup(Tag): """ @@ -75,7 +75,7 @@ like HTML's
tag), call handle_starttag and then handle_endtag. """ - ROOT_TAG_NAME = u'[document]' + ROOT_TAG_NAME = '[document]' # If the end-user gives no indication which tree builder they # want, look for one with these features. @@ -175,18 +175,18 @@ from_encoding = from_encoding or deprecated_argument( "fromEncoding", "from_encoding") - if from_encoding and isinstance(markup, unicode): + if from_encoding and isinstance(markup, str): warnings.warn("You provided Unicode markup but also provided a value for from_encoding. Your from_encoding will be ignored.") from_encoding = None if len(kwargs) > 0: - arg = kwargs.keys().pop() + arg = list(kwargs.keys()).pop() raise TypeError( "__init__() got an unexpected keyword argument '%s'" % arg) if builder is None: original_features = features - if isinstance(features, basestring): + if isinstance(features, str): features = [features] if features is None or len(features) == 0: features = self.DEFAULT_BUILDER_FEATURES @@ -245,13 +245,13 @@ markup = markup.read() elif len(markup) <= 256 and ( (isinstance(markup, bytes) and not b'<' in markup) - or (isinstance(markup, unicode) and not u'<' in markup) + or (isinstance(markup, str) and not '<' in markup) ): # Print out warnings for a couple beginner problems # involving passing non-markup to Beautiful Soup. # Beautiful Soup will still parse the input as markup, # just in case that's what the user really wants. - if (isinstance(markup, unicode) + if (isinstance(markup, str) and not os.path.supports_unicode_filenames): possible_filename = markup.encode("utf8") else: @@ -259,13 +259,13 @@ is_file = False try: is_file = os.path.exists(possible_filename) - except Exception, e: + except Exception as e: # This is almost certainly a problem involving # characters not valid in filenames on this # system. Just let it go. pass if is_file: - if isinstance(markup, unicode): + if isinstance(markup, str): markup = markup.encode("utf8") warnings.warn( '"%s" looks like a filename, not markup. You should' @@ -317,9 +317,9 @@ if isinstance(markup, bytes): space = b' ' cant_start_with = (b"http:", b"https:") - elif isinstance(markup, unicode): - space = u' ' - cant_start_with = (u"http:", u"https:") + elif isinstance(markup, str): + space = ' ' + cant_start_with = ("http:", "https:") else: return @@ -391,7 +391,7 @@ def endData(self, containerClass=NavigableString): if self.current_data: - current_data = u''.join(self.current_data) + current_data = ''.join(self.current_data) # If whitespace is not preserved, and this string contains # nothing but ASCII spaces, replace it with a single space # or newline. @@ -545,9 +545,9 @@ encoding_part = '' if eventual_encoding != None: encoding_part = ' encoding="%s"' % eventual_encoding - prefix = u'\n' % encoding_part + prefix = '\n' % encoding_part else: - prefix = u'' + prefix = '' if not pretty_print: indent_level = None else: @@ -581,4 +581,4 @@ if __name__ == '__main__': import sys soup = BeautifulSoup(sys.stdin) - print soup.prettify() + print(soup.prettify()) --- ./bs4/dammit.py (original) +++ ./bs4/dammit.py (refactored) @@ -11,7 +11,7 @@ __license__ = "MIT" import codecs -from htmlentitydefs import codepoint2name +from html.entities import codepoint2name import re import logging import string @@ -59,7 +59,7 @@ reverse_lookup = {} characters_for_re = [] for codepoint, name in list(codepoint2name.items()): - character = unichr(codepoint) + character = chr(codepoint) if codepoint != 34: # There's no point in turning the quotation mark into # ", unless it happens within an attribute value, which @@ -274,7 +274,7 @@ def strip_byte_order_mark(cls, data): """If a byte-order mark is present, strip it and return the encoding it implies.""" encoding = None - if isinstance(data, unicode): + if isinstance(data, str): # Unicode data cannot have a byte-order mark. return data, encoding if (len(data) >= 4) and (data[:2] == b'\xfe\xff') \ @@ -352,9 +352,9 @@ markup, override_encodings, is_html, exclude_encodings) # Short-circuit if the data is in Unicode to begin with. - if isinstance(markup, unicode) or markup == '': + if isinstance(markup, str) or markup == '': self.markup = markup - self.unicode_markup = unicode(markup) + self.unicode_markup = str(markup) self.original_encoding = None return @@ -438,7 +438,7 @@ def _to_unicode(self, data, encoding, errors="strict"): '''Given a string and its encoding, decodes the string into Unicode. %encoding is a string recognized by encodings.aliases''' - return unicode(data, encoding, errors) + return str(data, encoding, errors) @property def declared_html_encoding(self): --- ./bs4/diagnose.py (original) +++ ./bs4/diagnose.py (refactored) @@ -5,8 +5,8 @@ __license__ = "MIT" import cProfile -from StringIO import StringIO -from HTMLParser import HTMLParser +from io import StringIO +from html.parser import HTMLParser import bs4 from bs4 import BeautifulSoup, __version__ from bs4.builder import builder_registry @@ -22,8 +22,8 @@ def diagnose(data): """Diagnostic suite for isolating common problems.""" - print "Diagnostic running on Beautiful Soup %s" % __version__ - print "Python version %s" % sys.version + print("Diagnostic running on Beautiful Soup %s" % __version__) + print("Python version %s" % sys.version) basic_parsers = ["html.parser", "html5lib", "lxml"] for name in basic_parsers: @@ -32,16 +32,16 @@ break else: basic_parsers.remove(name) - print ( + print(( "I noticed that %s is not installed. Installing it may help." % - name) + name)) if 'lxml' in basic_parsers: basic_parsers.append("lxml-xml") try: from lxml import etree - print "Found lxml version %s" % ".".join(map(str,etree.LXML_VERSION)) - except ImportError, e: + print("Found lxml version %s" % ".".join(map(str,etree.LXML_VERSION))) + except ImportError as e: print ( "lxml is not installed or couldn't be imported.")RefactoringTool: Refactored ./bs4/element.py @@ -49,43 +49,43 @@ if 'html5lib' in basic_parsers: try: import html5lib - print "Found html5lib version %s" % html5lib.__version__ - except ImportError, e: + print("Found html5lib version %s" % html5lib.__version__) + except ImportError as e: print ( "html5lib is not installed or couldn't be imported.") if hasattr(data, 'read'): data = data.read() elif data.startswith("http:") or data.startswith("https:"): - print '"%s" looks like a URL. Beautiful Soup is not an HTTP client.' % data - print "You need to use some other library to get the document behind the URL, and feed that document to Beautiful Soup." + print('"%s" looks like a URL. Beautiful Soup is not an HTTP client.' % data) + print("You need to use some other library to get the document behind the URL, and feed that document to Beautiful Soup.") return else: try: if os.path.exists(data): - print '"%s" looks like a filename. Reading data from the file.' % data + print('"%s" looks like a filename. Reading data from the file.' % data) with open(data) as fp: data = fp.read() except ValueError: # This can happen on some platforms when the 'filename' is # too long. Assume it's data and not a filename. pass - print + print() for parser in basic_parsers: - print "Trying to parse your markup with %s" % parser + print("Trying to parse your markup with %s" % parser) success = False try: soup = BeautifulSoup(data, features=parser) success = True - except Exception, e: - print "%s could not parse the markup." % parser + except Exception as e: + print("%s could not parse the markup." % parser) traceback.print_exc() if success: - print "Here's what %s did with the markup:" % parser - print soup.prettify() - - print "-" * 80 + print("Here's what %s did with the markup:" % parser) + print(soup.prettify()) + + print("-" * 80) def lxml_trace(data, html=True, **kwargs): """Print out the lxml events that occur during parsing. @@ -95,7 +95,7 @@ """ from lxml import etree for event, element in etree.iterparse(StringIO(data), html=html, **kwargs): - print("%s, %4s, %s" % (event, element.tag, element.text)) + print(("%s, %4s, %s" % (event, element.tag, element.text))) class AnnouncingParser(HTMLParser): """Announces HTMLParser parse events, without doing anything else.""" @@ -177,9 +177,9 @@ def benchmark_parsers(num_elements=100000): """Very basic head-to-head performance benchmark.""" - print "Comparative parser benchmark on Beautiful Soup %s" % __version__ + print("Comparative parser benchmark on Beautiful Soup %s" % __version__) data = rdoc(num_elements) - print "Generated a large invalid HTML document (%d bytes)." % len(data) + print("Generated a large invalid HTML document (%d bytes)." % len(data)) for parser in ["lxml", ["lxml", "html"], "html5lib", "html.parser"]: success = False @@ -188,24 +188,24 @@ soup = BeautifulSoup(data, parser) b = time.time() success = True - except Exception, e: - print "%s could not parse the markup." % parser + except Exception as e: + print("%s could not parse the markup." % parser) traceback.print_exc() if success: - print "BS4+%s parsed the markup in %.2fs." % (parser, b-a) + print("BS4+%s parsed the markup in %.2fs." % (parser, b-a)) from lxml import etree a = time.time() etree.HTML(data) b = time.time() - print "Raw lxml parsed the markup in %.2fs." % (b-a) + print("Raw lxml parsed the markup in %.2fs." % (b-a)) import html5lib parser = html5lib.HTMLParser() a = time.time() parser.parse(data) b = time.time() - print "Raw html5lib parsed the markup in %.2fs." % (b-a) + print("Raw html5lib parsed the markup in %.2fs." % (b-a)) def profile(num_elements=100000, parser="lxml"): --- ./bs4/element.py (original) +++ ./bs4/element.py (refactored) @@ -4,7 +4,7 @@ try: from collections.abc import Callable # Python 3.6 -except ImportError , e: +except ImportError as e: from collections import Callable import re import shlex @@ -29,22 +29,22 @@ return alias -class NamespacedAttribute(unicode): +class NamespacedAttribute(str): def __new__(cls, prefix, name, namespace=None): if name is None: - obj = unicode.__new__(cls, prefix) + obj = str.__new__(cls, prefix) elif prefix is None: # Not really namespaced. - obj = unicode.__new__(cls, name) - else: - obj = unicode.__new__(cls, prefix + ":" + name) + obj = str.__new__(cls, name) + else: + obj = str.__new__(cls, prefix + ":" + name) obj.prefix = prefix obj.name = name obj.namespace = namespace return obj -class AttributeValueWithCharsetSubstitution(unicode): +class AttributeValueWithCharsetSubstitution(str): """A stand-in object for a character encoding specified in HTML.""" class CharsetMetaAttributeValue(AttributeValueWithCharsetSubstitution): @@ -55,7 +55,7 @@ """ def __new__(cls, original_value): - obj = unicode.__new__(cls, original_value) + obj = str.__new__(cls, original_value) obj.original_value = original_value return obj @@ -78,9 +78,9 @@ match = cls.CHARSET_RE.search(original_value) if match is None: # No substitution necessary. - return unicode.__new__(unicode, original_value) - - obj = unicode.__new__(cls, original_value) + return str.__new__(str, original_value) + + obj = str.__new__(cls, original_value) obj.original_value = original_value return obj @@ -202,7 +202,7 @@ def format_string(self, s, formatter='minimal'): """Format the given string using the given formatter.""" - if isinstance(formatter, basestring): + if isinstance(formatter, str): formatter = self._formatter_for_name(formatter) if formatter is None: output = s @@ -357,7 +357,7 @@ raise ValueError("Cannot insert None into a tag.") if new_child is self: raise ValueError("Cannot insert a tag into itself.") - if (isinstance(new_child, basestring) + if (isinstance(new_child, str) and not isinstance(new_child, NavigableString)): new_child = NavigableString(new_child) @@ -586,7 +586,7 @@ result = (element for element in generator if isinstance(element, Tag)) return ResultSet(strainer, result) - elif isinstance(name, basestring): + elif isinstance(name, str): # Optimization to find all tags with a given name. if name.count(':') == 1: # This is a name with a prefix. If this is a namespace-aware document, @@ -751,7 +751,7 @@ return self.parents -class NavigableString(unicode, PageElement): +class NavigableString(str, PageElement): PREFIX = '' SUFFIX = '' @@ -769,10 +769,10 @@ passed in to the superclass's __new__ or the superclass won't know how to handle non-ASCII characters. """ - if isinstance(value, unicode): - u = unicode.__new__(cls, value) - else: - u = unicode.__new__(cls, value, DEFAULT_OUTPUT_ENCODING) + if isinstance(value, str): + u = str.__new__(cls, value) + else: + u = str.__new__(cls, value, DEFAULT_OUTPUT_ENCODING) u.setup() return u @@ -783,7 +783,7 @@ return type(self)(self) def __getnewargs__(self): - return (unicode(self),) + return (str(self),) def __getattr__(self, attr): """text.string gives you text. This is for backwards @@ -823,29 +823,29 @@ class CData(PreformattedString): - PREFIX = u'' + PREFIX = '' class ProcessingInstruction(PreformattedString): """A SGML processing instruction.""" - PREFIX = u'' + PREFIX = '' class XMLProcessingInstruction(ProcessingInstruction): """An XML processing instruction.""" - PREFIX = u'' + PREFIX = '' class Comment(PreformattedString): - PREFIX = u'' + PREFIX = '' class Declaration(PreformattedString): - PREFIX = u'' + PREFIX = '' class Doctype(PreformattedString): @@ -862,8 +862,8 @@ return Doctype(value) - PREFIX = u'\n' + PREFIX = '\n' class Tag(PageElement): @@ -1002,7 +1002,7 @@ for string in self._all_strings(True): yield string - def get_text(self, separator=u"", strip=False, + def get_text(self, separator="", strip=False, types=(NavigableString, CData)): """ Get all child strings, concatenated using the given separator. @@ -1081,7 +1081,7 @@ def __contains__(self, x): return x in self.contents - def __nonzero__(self): + def __bool__(self): "A tag is non-None even if it has no contents." return True @@ -1203,8 +1203,8 @@ else: if isinstance(val, list) or isinstance(val, tuple): val = ' '.join(val) - elif not isinstance(val, basestring): - val = unicode(val) + elif not isinstance(val, str): + val = str(val) elif ( isinstance(val, AttributeValueWithCharsetSubstitution) and eventual_encoding is not None): @@ -1212,7 +1212,7 @@ text = self.format_string(val, formatter) decoded = ( - unicode(key) + '=' + str(key) + '=' + EntitySubstitution.quoted_attribute_value(text)) attrs.append(decoded) close = '' @@ -1445,7 +1445,7 @@ 'Final combinator "%s" is missing an argument.' % tokens[-1]) if self._select_debug: - print 'Running CSS selector "%s"' % selector + print('Running CSS selector "%s"' % selector) for index, token in enumerate(tokens): new_context = [] @@ -1454,11 +1454,11 @@ if tokens[index-1] in self._selector_combinators: # This token was consumed by the previous combinator. Skip it. if self._select_debug: - print ' Token was consumed by the previous combinator.' + print(' Token was consumed by the previous combinator.') continue if self._select_debug: - print ' Considering token "%s"' % token + print(' Considering token "%s"' % token) recursive_candidate_generator = None tag_name = None @@ -1565,14 +1565,14 @@ next_token = tokens[index+1] def recursive_select(tag): if self._select_debug: - print ' Calling select("%s") recursively on %s %s' % (next_token, tag.name, tag.attrs) - print '-' * 40 + print(' Calling select("%s") recursively on %s %s' % (next_token, tag.name, tag.attrs)) + print('-' * 40) for i in tag.select(next_token, recursive_candidate_generator): if self._select_debug: - print '(Recursive select picked up candidate %s %s)' % (i.name, i.attrs) + print('(Recursive select picked up candidate %s %s)' % (i.name, i.attrs)) yield i if self._select_debug: - print '-' * 40 + print('-' * 40) _use_candidate_generator = recursive_select elif _candidate_generator is None: # By default, a tag's candidates are all of its @@ -1583,7 +1583,7 @@ check = "[any]" else: check = tag_name - print ' Default candidate generator, tag name="%s"' % check + print(' Default candidate generator, tag name="%s"' % check) if self._select_debug: # This is redundant with later code, but it stops # a bunch of bogus tags from cluttering up the @@ -1604,8 +1604,8 @@ count = 0 for tag in current_context: if self._select_debug: - print " Running candidate generator on %s %s" % ( - tag.name, repr(tag.attrs)) + print(" Running candidate generator on %s %s" % ( + tag.name, repr(tag.attrs))) for candidate in _use_candidate_generator(tag): if not isinstance(candidate, Tag): continue @@ -1620,23 +1620,23 @@ break if checker is None or result: if self._select_debug: - print " SUCCESS %s %s" % (candidate.name, repr(candidate.attrs)) + print(" SUCCESS %s %s" % (candidate.name, repr(candidate.attrs))) if id(candidate) not in new_context_ids: # If a tag matches a selector more than once, # don't include it in the context more than once. new_context.append(candidate) new_context_ids.add(id(candidate)) elif self._select_debug: - print " FAILURE %s %s" % (candidate.name, repr(candidate.attrs)) + print(" FAILURE %s %s" % (candidate.name, repr(candidate.attrs))) current_context = new_context if limit and len(current_context) >= limit: current_context = current_context[:limit] if self._select_debug: - print "Final verdict:" + print("Final verdict:") for i in current_context: - print " %s %s" % (i.name, i.attrs) + print(" %s %s" % (i.name, i.attrs)) return current_context # Old names for backwards compatibility @@ -1680,7 +1680,7 @@ else: attrs = kwargs normalized_attrs = {} - for key, value in attrs.items(): + for key, value in list(attrs.items()): normalized_attrs[key] = self._normalize_search_value(value) self.attrs = normalized_attrs @@ -1689,7 +1689,7 @@ def _normalize_search_value(self, value): # Leave it alone if it's a Unicode string, a callable, a # regular expression, a boolean, or None. - if (isinstance(value, unicode) or callable(value) or hasattr(value, 'match') + if (isinstance(value, str) or callable(value) or hasattr(value, 'match') or isinstance(value, bool) or value is None): return value @@ -1702,7 +1702,7 @@ new_value = [] for v in value: if (hasattr(v, '__iter__') and not isinstance(v, bytes) - and not isinstance(v, unicode)): + and not isinstance(v, str)): # This is almost certainly the user's mistake. In theRefactoringTool: Refactored ./bs4/testing.py # interests of avoiding infinite loops, we'll let # it through as-is rather than doing a recursive call. @@ -1714,7 +1714,7 @@ # Otherwise, convert it into a Unicode string. # The unicode(str()) thing is so this will do the same thing on Python 2 # and Python 3. - return unicode(str(value)) + return str(str(value)) def __str__(self): if self.text: @@ -1768,7 +1768,7 @@ found = None # If given a list of items, scan it for a text element that # matches. - if hasattr(markup, '__iter__') and not isinstance(markup, (Tag, basestring)): + if hasattr(markup, '__iter__') and not isinstance(markup, (Tag, str)): for element in markup: if isinstance(element, NavigableString) \ and self.search(element): @@ -1781,7 +1781,7 @@ found = self.search_tag(markup) # If it's text, make sure the text matches. elif isinstance(markup, NavigableString) or \ - isinstance(markup, basestring): + isinstance(markup, str): if not self.name and not self.attrs and self._matches(markup, self.text): found = markup else: @@ -1826,7 +1826,7 @@ return not match_against if (hasattr(match_against, '__iter__') - and not isinstance(match_against, basestring)): + and not isinstance(match_against, str)): # We're asked to match against an iterable of items. # The markup must be match at least one item in the # iterable. We'll try each one in turn. @@ -1853,7 +1853,7 @@ # the tag's name and once against its prefixed name. match = False - if not match and isinstance(match_against, unicode): + if not match and isinstance(match_against, str): # Exact string match match = markup == match_against --- ./bs4/testing.py (original) +++ ./bs4/testing.py (refactored) @@ -164,7 +164,7 @@ # process_markup correctly sets processing_instruction_class # even when the markup is already Unicode and there is no # need to process anything. - markup = u"""""" + markup = """""" soup = self.soup(markup) self.assertEqual(markup, soup.decode()) @@ -324,8 +324,8 @@ # "&T" and "&p" look like incomplete character entities, but they are # not. self.assertSoupEquals( - u"

• AT&T is in the s&p 500

", - u"

\u2022 AT&T is in the s&p 500

" + "

• AT&T is in the s&p 500

", + "

\u2022 AT&T is in the s&p 500

" ) def test_entities_in_foreign_document_encoding(self): @@ -338,17 +338,17 @@ # characters. markup = "

“Hello” -☃

" soup = self.soup(markup) - self.assertEquals(u"“Hello” -☃", soup.p.string) + self.assertEqual("“Hello” -☃", soup.p.string) def test_entities_in_attributes_converted_to_unicode(self): - expect = u'

' + expect = '

' self.assertSoupEquals('

', expect) self.assertSoupEquals('

', expect) self.assertSoupEquals('

', expect) self.assertSoupEquals('

', expect) def test_entities_in_text_converted_to_unicode(self): - expect = u'

pi\N{LATIN SMALL LETTER N WITH TILDE}ata

' + expect = '

pi\N{LATIN SMALL LETTER N WITH TILDE}ata

' self.assertSoupEquals("

piñata

", expect) self.assertSoupEquals("

piñata

", expect) self.assertSoupEquals("

piñata

", expect) @@ -359,7 +359,7 @@ '

I said "good day!"

') def test_out_of_range_entity(self): - expect = u"\N{REPLACEMENT CHARACTER}" + expect = "\N{REPLACEMENT CHARACTER}" self.assertSoupEquals("�", expect) self.assertSoupEquals("�", expect) self.assertSoupEquals("�", expect) @@ -437,9 +437,9 @@ # A seemingly innocuous document... but it's in Unicode! And # it contains characters that can't be represented in the # encoding found in the declaration! The horror! - markup = u'Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!' - soup = self.soup(markup) - self.assertEqual(u'Sacr\xe9 bleu!', soup.body.string) + markup = 'Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!' + soup = self.soup(markup) + self.assertEqual('Sacr\xe9 bleu!', soup.body.string) def test_soupstrainer(self): """Parsers should be able to work with SoupStrainers.""" @@ -479,7 +479,7 @@ # Both XML and HTML entities are converted to Unicode characters # during parsing. text = "

<<sacré bleu!>>

" - expected = u"

<<sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>>

" + expected = "

<<sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>>

" self.assertSoupEquals(text, expected) def test_smart_quotes_converted_on_the_way_in(self): @@ -489,15 +489,15 @@ soup = self.soup(quote) self.assertEqual( soup.p.string, - u"\N{LEFT SINGLE QUOTATION MARK}Foo\N{RIGHT SINGLE QUOTATION MARK}") + "\N{LEFT SINGLE QUOTATION MARK}Foo\N{RIGHT SINGLE QUOTATION MARK}") def test_non_breaking_spaces_converted_on_the_way_in(self): soup = self.soup("  ") - self.assertEqual(soup.a.string, u"\N{NO-BREAK SPACE}" * 2) + self.assertEqual(soup.a.string, "\N{NO-BREAK SPACE}" * 2) def test_entities_converted_on_the_way_out(self): text = "

<<sacré bleu!>>

" - expected = u"

<<sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>>

".encode("utf-8") + expected = "

<<sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>>

".encode("utf-8") soup = self.soup(text) self.assertEqual(soup.p.encode("utf-8"), expected) @@ -506,7 +506,7 @@ # easy-to-understand document. # Here it is in Unicode. Note that it claims to be in ISO-Latin-1. - unicode_html = u'

Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!

' + unicode_html = '

Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!

' # That's because we're going to encode it into ISO-Latin-1, and use # that to test. @@ -677,15 +677,15 @@ self.assertTrue(b"< < hey > >" in encoded) def test_can_parse_unicode_document(self): - markup = u'Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!' - soup = self.soup(markup) - self.assertEqual(u'Sacr\xe9 bleu!', soup.root.string) + markup = 'Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!' + soup = self.soup(markup) + self.assertEqual('Sacr\xe9 bleu!', soup.root.string) def test_popping_namespaced_tag(self): markup = 'b2012-07-02T20:33:42Zcd' soup = self.soup(markup) self.assertEqual( - unicode(soup.rss), markup) + str(soup.rss), markup) def test_docstring_includes_correct_encoding(self):RefactoringTool: Refactored ./bs4/builder/__init__.py RefactoringTool: Refactored ./bs4/builder/_html5lib.py RefactoringTool: Refactored ./bs4/builder/_htmlparser.py RefactoringTool: Refactored ./bs4/builder/_lxml.py soup = self.soup("") @@ -716,17 +716,17 @@ def test_closing_namespaced_tag(self): markup = '

20010504

' soup = self.soup(markup) - self.assertEqual(unicode(soup.p), markup) + self.assertEqual(str(soup.p), markup) def test_namespaced_attributes(self): markup = '' soup = self.soup(markup) - self.assertEqual(unicode(soup.foo), markup) + self.assertEqual(str(soup.foo), markup) def test_namespaced_attributes_xml_namespace(self): markup = 'bar' soup = self.soup(markup) - self.assertEqual(unicode(soup.foo), markup) + self.assertEqual(str(soup.foo), markup) def test_find_by_prefixed_name(self): doc = """ --- ./bs4/builder/__init__.py (original) +++ ./bs4/builder/__init__.py (refactored) @@ -160,13 +160,13 @@ universal = self.cdata_list_attributes.get('*', []) tag_specific = self.cdata_list_attributes.get( tag_name.lower(), None) - for attr in attrs.keys(): + for attr in list(attrs.keys()): if attr in universal or (tag_specific and attr in tag_specific): # We have a "class"-type attribute whose string # value is a whitespace-separated list of # values. Split it into a list. value = attrs[attr] - if isinstance(value, basestring): + if isinstance(value, str): values = whitespace_re.split(value) else: # html5lib sometimes calls setAttributes twice --- ./bs4/builder/_html5lib.py (original) +++ ./bs4/builder/_html5lib.py (refactored) @@ -33,7 +33,7 @@ # Pre-0.99999999 from html5lib.treebuilders import _base as treebuilder_base new_html5lib = False -except ImportError, e: +except ImportError as e: # 0.99999999 and up from html5lib.treebuilders import base as treebuilder_base new_html5lib = True @@ -64,7 +64,7 @@ parser = html5lib.HTMLParser(tree=self.create_treebuilder) extra_kwargs = dict() - if not isinstance(markup, unicode): + if not isinstance(markup, str): if new_html5lib: extra_kwargs['override_encoding'] = self.user_specified_encoding else: @@ -72,13 +72,13 @@ doc = parser.parse(markup, **extra_kwargs) # Set the character encoding detected by the tokenizer. - if isinstance(markup, unicode): + if isinstance(markup, str): # We need to special-case this because html5lib sets # charEncoding to UTF-8 if it gets Unicode input. doc.original_encoding = None else: original_encoding = parser.tokenizer.stream.charEncoding[0] - if not isinstance(original_encoding, basestring): + if not isinstance(original_encoding, str): # In 0.99999999 and up, the encoding is an html5lib # Encoding object. We want to use a string for compatibility # with other tree builders. @@ -92,7 +92,7 @@ def test_fragment_to_document(self, fragment): """See `TreeBuilder`.""" - return u'%s' % fragment + return '%s' % fragment class TreeBuilderForHtml5lib(treebuilder_base.TreeBuilder): @@ -174,7 +174,7 @@ rv.append("|%s<%s>" % (' ' * indent, name)) if element.attrs: attributes = [] - for name, value in element.attrs.items(): + for name, value in list(element.attrs.items()): if isinstance(name, NamespacedAttribute): name = "%s %s" % (prefixes[name.namespace], name.name) if isinstance(value, list): @@ -229,7 +229,7 @@ def appendChild(self, node): string_child = child = None - if isinstance(node, basestring): + if isinstance(node, str): # Some other piece of code decided to pass in a string # instead of creating a TextElement object to contain the # string. @@ -246,7 +246,7 @@ child = node.element node.parent = self - if not isinstance(child, basestring) and child.parent is not None: + if not isinstance(child, str) and child.parent is not None: node.element.extract() if (string_child and self.element.contents @@ -259,7 +259,7 @@ old_element.replace_with(new_element) self.soup._most_recent_element = new_element else: - if isinstance(node, basestring): + if isinstance(node, str): # Create a brand new NavigableString from this string. child = self.soup.new_string(node) @@ -299,7 +299,7 @@ self.soup.builder._replace_cdata_list_attribute_values( self.name, attributes) - for name, value in attributes.items(): + for name, value in list(attributes.items()): self.element[name] = value # The attributes may contain variables that need substitution. --- ./bs4/builder/_htmlparser.py (original) +++ ./bs4/builder/_htmlparser.py (refactored) @@ -8,11 +8,11 @@ 'HTMLParserTreeBuilder', ] -from HTMLParser import HTMLParser +from html.parser import HTMLParser try: - from HTMLParser import HTMLParseError -except ImportError, e: + from html.parser import HTMLParseError +except ImportError as e: # HTMLParseError is removed in Python 3.5. Since it can never be # thrown in 3.5, we can just define our own class as a placeholder. class HTMLParseError(Exception): @@ -153,14 +153,14 @@ continue try: data = bytearray([real_name]).decode(encoding) - except UnicodeDecodeError, e: + except UnicodeDecodeError as e: pass if not data: try: - data = unichr(real_name) - except (ValueError, OverflowError), e: + data = chr(real_name) + except (ValueError, OverflowError) as e: pass - data = data or u"\N{REPLACEMENT CHARACTER}" + data = data or "\N{REPLACEMENT CHARACTER}" self.handle_data(data) def handle_entityref(self, name): @@ -228,7 +228,7 @@ declared within markup, whether any characters had to be replaced with REPLACEMENT CHARACTER). """ - if isinstance(markup, unicode): + if isinstance(markup, str): yield (markup, None, None, False) return @@ -246,7 +246,7 @@ try: parser.feed(markup) parser.close() - except HTMLParseError, e: + except HTMLParseError as e: warnings.warn(RuntimeWarning( "Python's built-in HTMLParser cannot parse the given document. This is not a bug in Beautiful Soup. The best solution is to install an external parser (lxml or html5lib), and use Beautiful Soup with that parser. See http://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser for help.")) raise e --- ./bs4/builder/_lxml.py (original) +++ ./bs4/builder/_lxml.py (refactored) @@ -7,11 +7,11 @@ try: from collections.abc import Callable # Python 3.6 -except ImportError , e: +except ImportError as e: from collections import Callable from io import BytesIO -from StringIO import StringIO +from io import StringIO from lxml import etree from bs4.element import ( Comment, @@ -105,12 +105,12 @@ else: self.processing_instruction_class = XMLProcessingInstruction - if isinstance(markup, unicode):RefactoringTool: No changes to ./bs4/tests/__init__.py RefactoringTool: No changes to ./bs4/tests/test_builder_registry.py RefactoringTool: No changes to ./bs4/tests/test_docs.py RefactoringTool: Refactored ./bs4/tests/test_html5lib.py RefactoringTool: No changes to ./bs4/tests/test_htmlparser.py RefactoringTool: Refactored ./bs4/tests/test_lxml.py RefactoringTool: Refactored ./bs4/tests/test_soup.py + if isinstance(markup, str): # We were given Unicode. Maybe lxml can parse Unicode on # this system? yield markup, None, document_declared_encoding, False - if isinstance(markup, unicode): + if isinstance(markup, str): # No, apparently not. Convert the Unicode to UTF-8 and # tell lxml to parse it as UTF-8. yield (markup.encode("utf8"), "utf8", @@ -125,7 +125,7 @@ def feed(self, markup): if isinstance(markup, bytes): markup = BytesIO(markup) - elif isinstance(markup, unicode): + elif isinstance(markup, str): markup = StringIO(markup) # Call feed() at least once, even if the markup is empty, @@ -140,7 +140,7 @@ if len(data) != 0: self.parser.feed(data) self.parser.close() - except (UnicodeDecodeError, LookupError, etree.ParserError), e: + except (UnicodeDecodeError, LookupError, etree.ParserError) as e: raise ParserRejectedMarkup(str(e)) def close(self): @@ -158,12 +158,12 @@ self.nsmaps.append(None) elif len(nsmap) > 0: # A new namespace mapping has come into play. - inverted_nsmap = dict((value, key) for key, value in nsmap.items()) + inverted_nsmap = dict((value, key) for key, value in list(nsmap.items())) self.nsmaps.append(inverted_nsmap) # Also treat the namespace mapping as a set of attributes on the # tag, so we can recreate it later. attrs = attrs.copy() - for prefix, namespace in nsmap.items(): + for prefix, namespace in list(nsmap.items()): attribute = NamespacedAttribute( "xmlns", prefix, "http://www.w3.org/2000/xmlns/") attrs[attribute] = namespace @@ -172,7 +172,7 @@ # from lxml with namespaces attached to their names, and # turn then into NamespacedAttribute objects. new_attrs = {} - for attr, value in attrs.items(): + for attr, value in list(attrs.items()): namespace, attr = self._getNsTag(attr) if namespace is None: new_attrs[attr] = value @@ -232,7 +232,7 @@ def test_fragment_to_document(self, fragment): """See `TreeBuilder`.""" - return u'\n%s' % fragment + return '\n%s' % fragment class LXMLTreeBuilder(HTMLTreeBuilder, LXMLTreeBuilderForXML): @@ -253,10 +253,10 @@ self.parser = self.parser_for(encoding) self.parser.feed(markup) self.parser.close() - except (UnicodeDecodeError, LookupError, etree.ParserError), e: + except (UnicodeDecodeError, LookupError, etree.ParserError) as e: raise ParserRejectedMarkup(str(e)) def test_fragment_to_document(self, fragment): """See `TreeBuilder`.""" - return u'%s' % fragment + return '%s' % fragment --- ./bs4/tests/test_html5lib.py (original) +++ ./bs4/tests/test_html5lib.py (refactored) @@ -5,7 +5,7 @@ try: from bs4.builder import HTML5TreeBuilder HTML5LIB_PRESENT = True -except ImportError, e: +except ImportError as e: HTML5LIB_PRESENT = False from bs4.element import SoupStrainer from bs4.testing import ( @@ -74,14 +74,14 @@ def test_reparented_markup(self): markup = '

foo

\n

bar

' soup = self.soup(markup) - self.assertEqual(u"

foo

\n

bar

", soup.body.decode()) + self.assertEqual("

foo

\n

bar

", soup.body.decode()) self.assertEqual(2, len(soup.find_all('p'))) def test_reparented_markup_ends_with_whitespace(self): markup = '

foo

\n

bar

\n' soup = self.soup(markup) - self.assertEqual(u"

foo

\n

bar

\n", soup.body.decode()) + self.assertEqual("

foo

\n

bar

\n", soup.body.decode()) self.assertEqual(2, len(soup.find_all('p'))) def test_reparented_markup_containing_identical_whitespace_nodes(self): @@ -127,4 +127,4 @@ def test_foster_parenting(self): markup = b"""A""" soup = self.soup(markup) - self.assertEqual(u"A
", soup.body.decode()) + self.assertEqual("A
", soup.body.decode()) --- ./bs4/tests/test_lxml.py (original) +++ ./bs4/tests/test_lxml.py (refactored) @@ -7,7 +7,7 @@ import lxml.etree LXML_PRESENT = True LXML_VERSION = lxml.etree.LXML_VERSION -except ImportError, e: +except ImportError as e: LXML_PRESENT = False LXML_VERSION = (0,) @@ -68,7 +68,7 @@ # if one is installed. with warnings.catch_warnings(record=True) as w: soup = BeautifulStoneSoup("") - self.assertEqual(u"", unicode(soup.b)) + self.assertEqual("", str(soup.b)) self.assertTrue("BeautifulStoneSoup class is deprecated" in str(w[0].message)) @skipIf( --- ./bs4/tests/test_soup.py (original) +++ ./bs4/tests/test_soup.py (refactored) @@ -32,7 +32,7 @@ try: from bs4.builder import LXMLTreeBuilder, LXMLTreeBuilderForXML LXML_PRESENT = True -except ImportError, e: +except ImportError as e: LXML_PRESENT = False PYTHON_3_PRE_3_2 = (sys.version_info[0] == 3 and sys.version_info < (3,2)) @@ -40,17 +40,17 @@ class TestConstructor(SoupTest): def test_short_unicode_input(self): - data = u"

éé

" + data = "

éé

" soup = self.soup(data) - self.assertEqual(u"éé", soup.h1.string) + self.assertEqual("éé", soup.h1.string) def test_embedded_null(self): - data = u"

foo\0bar

" + data = "

foo\0bar

" soup = self.soup(data) - self.assertEqual(u"foo\0bar", soup.h1.string) + self.assertEqual("foo\0bar", soup.h1.string) def test_exclude_encodings(self): - utf8_data = u"Räksmörgås".encode("utf-8") + utf8_data = "Räksmörgås".encode("utf-8") soup = self.soup(utf8_data, exclude_encodings=["utf-8"]) self.assertEqual("windows-1252", soup.original_encoding) @@ -129,7 +129,7 @@ with warnings.catch_warnings(record=True) as warning_list: # note - this url must differ from the bytes one otherwise # python's warnings system swallows the second warning - soup = self.soup(u"http://www.crummyunicode.com/") + soup = self.soup("http://www.crummyunicode.com/") self.assertTrue(any("looks like a URL" in str(w.message) for w in warning_list)) @@ -141,7 +141,7 @@ def test_url_warning_with_unicode_and_space(self): with warnings.catch_warnings(record=True) as warning_list: - soup = self.soup(u"http://www.crummyuncode.com/ is great") + soup = self.soup("http://www.crummyuncode.com/ is great") self.assertFalse(any("looks like a URL" in str(w.message) for w in warning_list)) @@ -163,9 +163,9 @@ def test_simple_html_substitution(self): # Unicode characters corresponding to named HTML entites # are substituted, and no others. - s = u"foo\u2200\N{SNOWMAN}\u00f5bar" + s = "foo\u2200\N{SNOWMAN}\u00f5bar" self.assertEqual(self.sub.substitute_html(s), - u"foo∀\N{SNOWMAN}õbar") + "foo∀\N{SNOWMAN}õbar") def test_smart_quote_substitution(self): # MS smart quotes are a common source of frustration, so we @@ -230,7 +230,7 @@ def setUp(self): super(TestEncodingConversion, self).setUp()RefactoringTool: Refactored ./bs4/tests/test_tree.py - self.unicode_data = u'Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!' + self.unicode_data = 'Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!' self.utf8_data = self.unicode_data.encode("utf-8") # Just so you know what it looks like. self.assertEqual( @@ -250,7 +250,7 @@ ascii = b"a" soup_from_ascii = self.soup(ascii) unicode_output = soup_from_ascii.decode() - self.assertTrue(isinstance(unicode_output, unicode)) + self.assertTrue(isinstance(unicode_output, str)) self.assertEqual(unicode_output, self.document_for(ascii.decode())) self.assertEqual(soup_from_ascii.original_encoding.lower(), "utf-8") finally: @@ -262,7 +262,7 @@ # is not set. soup_from_unicode = self.soup(self.unicode_data) self.assertEqual(soup_from_unicode.decode(), self.unicode_data) - self.assertEqual(soup_from_unicode.foo.string, u'Sacr\xe9 bleu!') + self.assertEqual(soup_from_unicode.foo.string, 'Sacr\xe9 bleu!') self.assertEqual(soup_from_unicode.original_encoding, None) def test_utf8_in_unicode_out(self): @@ -270,7 +270,7 @@ # attribute is set. soup_from_utf8 = self.soup(self.utf8_data) self.assertEqual(soup_from_utf8.decode(), self.unicode_data) - self.assertEqual(soup_from_utf8.foo.string, u'Sacr\xe9 bleu!') + self.assertEqual(soup_from_utf8.foo.string, 'Sacr\xe9 bleu!') def test_utf8_out(self): # The internal data structures can be encoded as UTF-8. @@ -281,14 +281,14 @@ PYTHON_3_PRE_3_2, "Bad HTMLParser detected; skipping test of non-ASCII characters in attribute name.") def test_attribute_name_containing_unicode_characters(self): - markup = u'
' + markup = '
' self.assertEqual(self.soup(markup).div.encode("utf8"), markup.encode("utf8")) class TestUnicodeDammit(unittest.TestCase): """Standalone tests of UnicodeDammit.""" def test_unicode_input(self): - markup = u"I'm already Unicode! \N{SNOWMAN}" + markup = "I'm already Unicode! \N{SNOWMAN}" dammit = UnicodeDammit(markup) self.assertEqual(dammit.unicode_markup, markup) @@ -296,7 +296,7 @@ markup = b"\x91\x92\x93\x94" dammit = UnicodeDammit(markup) self.assertEqual( - dammit.unicode_markup, u"\u2018\u2019\u201c\u201d") + dammit.unicode_markup, "\u2018\u2019\u201c\u201d") def test_smart_quotes_to_xml_entities(self): markup = b"\x91\x92\x93\x94" @@ -320,14 +320,14 @@ utf8 = b"Sacr\xc3\xa9 bleu! \xe2\x98\x83" dammit = UnicodeDammit(utf8) self.assertEqual(dammit.original_encoding.lower(), 'utf-8') - self.assertEqual(dammit.unicode_markup, u'Sacr\xe9 bleu! \N{SNOWMAN}') + self.assertEqual(dammit.unicode_markup, 'Sacr\xe9 bleu! \N{SNOWMAN}') def test_convert_hebrew(self): hebrew = b"\xed\xe5\xec\xf9" dammit = UnicodeDammit(hebrew, ["iso-8859-8"]) self.assertEqual(dammit.original_encoding.lower(), 'iso-8859-8') - self.assertEqual(dammit.unicode_markup, u'\u05dd\u05d5\u05dc\u05e9') + self.assertEqual(dammit.unicode_markup, '\u05dd\u05d5\u05dc\u05e9') def test_dont_see_smart_quotes_where_there_are_none(self): utf_8 = b"\343\202\261\343\203\274\343\202\277\343\202\244 Watch" @@ -336,19 +336,19 @@ self.assertEqual(dammit.unicode_markup.encode("utf-8"), utf_8) def test_ignore_inappropriate_codecs(self): - utf8_data = u"Räksmörgås".encode("utf-8") + utf8_data = "Räksmörgås".encode("utf-8") dammit = UnicodeDammit(utf8_data, ["iso-8859-8"]) self.assertEqual(dammit.original_encoding.lower(), 'utf-8') def test_ignore_invalid_codecs(self): - utf8_data = u"Räksmörgås".encode("utf-8") + utf8_data = "Räksmörgås".encode("utf-8") for bad_encoding in ['.utf8', '...', 'utF---16.!']: dammit = UnicodeDammit(utf8_data, [bad_encoding]) self.assertEqual(dammit.original_encoding.lower(), 'utf-8') def test_exclude_encodings(self): # This is UTF-8. - utf8_data = u"Räksmörgås".encode("utf-8") + utf8_data = "Räksmörgås".encode("utf-8") # But if we exclude UTF-8 from consideration, the guess is # Windows-1252. @@ -364,7 +364,7 @@ detected = EncodingDetector( b'') encodings = list(detected.encodings) - assert u'utf-\N{REPLACEMENT CHARACTER}' in encodings + assert 'utf-\N{REPLACEMENT CHARACTER}' in encodings def test_detect_html5_style_meta_tag(self): @@ -404,7 +404,7 @@ bs4.dammit.chardet_dammit = noop dammit = UnicodeDammit(doc) self.assertEqual(True, dammit.contains_replacement_characters) - self.assertTrue(u"\ufffd" in dammit.unicode_markup) + self.assertTrue("\ufffd" in dammit.unicode_markup) soup = BeautifulSoup(doc, "html.parser") self.assertTrue(soup.contains_replacement_characters) @@ -416,17 +416,17 @@ # A document written in UTF-16LE will have its byte order marker stripped. data = b'\xff\xfe<\x00a\x00>\x00\xe1\x00\xe9\x00<\x00/\x00a\x00>\x00' dammit = UnicodeDammit(data) - self.assertEqual(u"áé", dammit.unicode_markup) + self.assertEqual("áé", dammit.unicode_markup) self.assertEqual("utf-16le", dammit.original_encoding) def test_detwingle(self): # Here's a UTF8 document. - utf8 = (u"\N{SNOWMAN}" * 3).encode("utf8") + utf8 = ("\N{SNOWMAN}" * 3).encode("utf8") # Here's a Windows-1252 document. windows_1252 = ( - u"\N{LEFT DOUBLE QUOTATION MARK}Hi, I like Windows!" - u"\N{RIGHT DOUBLE QUOTATION MARK}").encode("windows_1252") + "\N{LEFT DOUBLE QUOTATION MARK}Hi, I like Windows!" + "\N{RIGHT DOUBLE QUOTATION MARK}").encode("windows_1252") # Through some unholy alchemy, they've been stuck together. doc = utf8 + windows_1252 + utf8 @@ -441,7 +441,7 @@ fixed = UnicodeDammit.detwingle(doc) self.assertEqual( - u"☃☃☃“Hi, I like Windows!”☃☃☃", fixed.decode("utf8")) + "☃☃☃“Hi, I like Windows!”☃☃☃", fixed.decode("utf8")) def test_detwingle_ignores_multibyte_characters(self): # Each of these characters has a UTF-8 representation ending @@ -449,9 +449,9 @@ # Windows-1252. But our code knows to skip over multibyte # UTF-8 characters, so they'll survive the process unscathed. for tricky_unicode_char in ( - u"\N{LATIN SMALL LIGATURE OE}", # 2-byte char '\xc5\x93' - u"\N{LATIN SUBSCRIPT SMALL LETTER X}", # 3-byte char '\xe2\x82\x93' - u"\xf0\x90\x90\x93", # This is a CJK character, not sure which one. + "\N{LATIN SMALL LIGATURE OE}", # 2-byte char '\xc5\x93' + "\N{LATIN SUBSCRIPT SMALL LETTER X}", # 3-byte char '\xe2\x82\x93' + "\xf0\x90\x90\x93", # This is a CJK character, not sure which one. ): input = tricky_unicode_char.encode("utf8") self.assertTrue(input.endswith(b'\x93')) --- ./bs4/tests/test_tree.py (original) +++ ./bs4/tests/test_tree.py (refactored) @@ -71,13 +71,13 @@ self.assertEqual(soup.find("b").string, "2") def test_unicode_text_find(self): - soup = self.soup(u'

Räksmörgås

') - self.assertEqual(soup.find(string=u'Räksmörgås'), u'Räksmörgås') + soup = self.soup('

Räksmörgås

') + self.assertEqual(soup.find(string='Räksmörgås'), 'Räksmörgås') def test_unicode_attribute_find(self): - soup = self.soup(u'

here it is

') + soup = self.soup('

here it is

') str(soup) - self.assertEqual("here it is", soup.find(id=u'Räksmörgås').text) + self.assertEqual("here it is", soup.find(id='Räksmörgås').text) def test_find_everything(self): @@ -97,17 +97,17 @@ """You can search the tree for text nodes.""" soup = self.soup("Foobar\xbb") # Exact match. - self.assertEqual(soup.find_all(string="bar"), [u"bar"]) - self.assertEqual(soup.find_all(text="bar"), [u"bar"]) + self.assertEqual(soup.find_all(string="bar"), ["bar"]) + self.assertEqual(soup.find_all(text="bar"), ["bar"]) # Match any of a number of strings. self.assertEqual( - soup.find_all(text=["Foo", "bar"]), [u"Foo", u"bar"]) + soup.find_all(text=["Foo", "bar"]), ["Foo", "bar"]) # Match a regular expression. self.assertEqual(soup.find_all(text=re.compile('.*')), - [u"Foo", u"bar", u'\xbb']) + ["Foo", "bar", '\xbb']) # Match anything. self.assertEqual(soup.find_all(text=True), - [u"Foo", u"bar", u'\xbb']) + ["Foo", "bar", '\xbb']) def test_find_all_limit(self): """You can limit the number of items returned by find_all.""" @@ -250,8 +250,8 @@ ["Matching a.", "Matching b."]) def test_find_all_by_utf8_attribute_value(self): - peace = u"םולש".encode("utf8") - data = u''.encode("utf8") + peace = "םולש".encode("utf8") + data = ''.encode("utf8") soup = self.soup(data) self.assertEqual([soup.a], soup.find_all(title=peace)) self.assertEqual([soup.a], soup.find_all(title=peace.decode("utf8"))) @@ -835,10 +835,10 @@ assert not isinstance(i, BeautifulSoup) p1, p2, p3, p4 = list(soup.children) - self.assertEquals("And now, a word:", p1.string) - self.assertEquals("p2", p2.string) - self.assertEquals("p3", p3.string) - self.assertEquals("And we're back.", p4.string) + self.assertEqual("And now, a word:", p1.string) + self.assertEqual("p2", p2.string) + self.assertEqual("p3", p3.string) + self.assertEqual("And we're back.", p4.string) def test_replace_with_maintains_next_element_throughout(self): @@ -1131,7 +1131,7 @@ """) [soup.script.extract() for i in soup.find_all("script")] - self.assertEqual("\n\n\n", unicode(soup.body)) + self.assertEqual("\n\n\n", str(soup.body)) def test_extract_works_when_element_is_surrounded_by_identical_strings(self): @@ -1369,19 +1369,19 @@ soup = BeautifulSoup(b'

 

', 'html.parser') encoding = soup.original_encoding copy = soup.__copy__() - self.assertEqual(u"

 

", unicode(copy)) + self.assertEqual("

 

", str(copy)) self.assertEqual(encoding, copy.original_encoding) def test_unicode_pickle(self): # A tree containing Unicode characters can be pickled. - html = u"\N{SNOWMAN}" + html = "\N{SNOWMAN}" soup = self.soup(html) dumped = pickle.dumps(soup, pickle.HIGHEST_PROTOCOL) loaded = pickle.loads(dumped) self.assertEqual(loaded.decode(), soup.decode()) def test_copy_navigablestring_is_not_attached_to_tree(self): - html = u"FooBar" + html = "FooBar" soup = self.soup(html) s1 = soup.find(string="Foo") s2 = copy.copy(s1) @@ -1393,7 +1393,7 @@ self.assertEqual(None, s2.previous_element) def test_copy_navigablestring_subclass_has_same_type(self): - html = u"" + html = "" soup = self.soup(html) s1 = soup.string s2 = copy.copy(s1) @@ -1401,19 +1401,19 @@ self.assertTrue(isinstance(s2, Comment)) def test_copy_entire_soup(self): - html = u"
FooBar
end" + html = "
FooBar
end" soup = self.soup(html) soup_copy = copy.copy(soup) self.assertEqual(soup, soup_copy) def test_copy_tag_copies_contents(self): - html = u"
FooBar
end" + html = "
FooBar
end" soup = self.soup(html) div = soup.div div_copy = copy.copy(div) # The two tags look the same, and evaluate to equal. - self.assertEqual(unicode(div), unicode(div_copy)) + self.assertEqual(str(div), str(div_copy)) self.assertEqual(div, div_copy) # But they're not the same object. @@ -1429,17 +1429,17 @@ class TestSubstitutions(SoupTest): def test_default_formatter_is_minimal(self): - markup = u"<<Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>>" + markup = "<<Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>>" soup = self.soup(markup) decoded = soup.decode(formatter="minimal") # The < is converted back into < but the e-with-acute is left alone. self.assertEqual( decoded, self.document_for( - u"<<Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>>")) + "<<Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>>")) def test_formatter_html(self): - markup = u"
<<Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>>" + markup = "
<<Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>>" soup = self.soup(markup) decoded = soup.decode(formatter="html") self.assertEqual( @@ -1447,7 +1447,7 @@ self.document_for("
<<Sacré bleu!>>")) def test_formatter_html5(self): - markup = u"
<<Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>>" + markup = "
<<Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>>" soup = self.soup(markup) decoded = soup.decode(formatter="html5") self.assertEqual( @@ -1455,49 +1455,49 @@ self.document_for("
<<Sacré bleu!>>")) def test_formatter_minimal(self): - markup = u"<<Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>>" + markup = "<<Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>>" soup = self.soup(markup) decoded = soup.decode(formatter="minimal") # The < is converted back into < but the e-with-acute is left alone. self.assertEqual( decoded, self.document_for( - u"<<Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>>")) + "<<Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>>")) def test_formatter_null(self): - markup = u"<<Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>>" + markup = "<<Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>>" soup = self.soup(markup) decoded = soup.decode(formatter=None) # Neither the angle brackets nor the e-with-acute are converted. # This is not valid HTML, but it's what the user wanted. self.assertEqual(decoded, - self.document_for(u"<>")) + self.document_for("<>")) def test_formatter_custom(self): - markup = u"<foo>bar
" + markup = "<foo>bar
" soup = self.soup(markup) decoded = soup.decode(formatter = lambda x: x.upper()) # Instead of normal entity conversion code, the custom # callable is called on every string. self.assertEqual( decoded, - self.document_for(u"BAR
")) + self.document_for("BAR
")) def test_formatter_is_run_on_attribute_values(self): - markup = u'e' + markup = 'e' soup = self.soup(markup) a = soup.a - expect_minimal = u'e' + expect_minimal = 'e' self.assertEqual(expect_minimal, a.decode()) self.assertEqual(expect_minimal, a.decode(formatter="minimal")) - expect_html = u'e' + expect_html = 'e' self.assertEqual(expect_html, a.decode(formatter="html")) self.assertEqual(markup, a.decode(formatter=None)) - expect_upper = u'E' + expect_upper = 'E' self.assertEqual(expect_upper, a.decode(formatter=lambda x: x.upper())) def test_formatter_skips_script_tag_for_html_documents(self): @@ -1523,7 +1523,7 @@ # Everything outside the
 tag is reformatted, but everything
         # inside is left alone.
         self.assertEqual(
-            u'
\n foo\n
  \tbar\n  \n  
\n baz\n
', + '
\n foo\n
  \tbar\n  \n  
\n baz\n
', soup.div.prettify()) def test_prettify_accepts_formatter_function(self): @@ -1533,14 +1533,14 @@ def test_prettify_outputs_unicode_by_default(self): soup = self.soup("") - self.assertEqual(unicode, type(soup.prettify())) + self.assertEqual(str, type(soup.prettify())) def test_prettify_can_encode_data(self): soup = self.soup("") self.assertEqual(bytes, type(soup.prettify("utf-8"))) def test_html_entity_substitution_off_by_default(self): - markup = u"Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!" + markup = "Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!" soup = self.soup(markup) encoded = soup.b.encode("utf-8") self.assertEqual(encoded, markup.encode('utf-8')) @@ -1584,48 +1584,48 @@ """Test the ability to encode objects into strings.""" def test_unicode_string_can_be_encoded(self): - html = u"\N{SNOWMAN}" + html = "\N{SNOWMAN}" soup = self.soup(html) self.assertEqual(soup.b.string.encode("utf-8"), - u"\N{SNOWMAN}".encode("utf-8")) + "\N{SNOWMAN}".encode("utf-8")) def test_tag_containing_unicode_string_can_be_encoded(self): - html = u"\N{SNOWMAN}" + html = "\N{SNOWMAN}" soup = self.soup(html) self.assertEqual( soup.b.encode("utf-8"), html.encode("utf-8")) def test_encoding_substitutes_unrecognized_characters_by_default(self): - html = u"\N{SNOWMAN}" + html = "\N{SNOWMAN}" soup = self.soup(html) self.assertEqual(soup.b.encode("ascii"), b"") def test_encoding_can_be_made_strict(self): - html = u"\N{SNOWMAN}" + html = "\N{SNOWMAN}" soup = self.soup(html) self.assertRaises( UnicodeEncodeError, soup.encode, "ascii", errors="strict") def test_decode_contents(self): - html = u"\N{SNOWMAN}" + html = "\N{SNOWMAN}" soup = self.soup(html) - self.assertEqual(u"\N{SNOWMAN}", soup.b.decode_contents()) + self.assertEqual("\N{SNOWMAN}", soup.b.decode_contents()) def test_encode_contents(self): - html = u"\N{SNOWMAN}" + html = "\N{SNOWMAN}" soup = self.soup(html) self.assertEqual( - u"\N{SNOWMAN}".encode("utf8"), soup.b.encode_contents( + "\N{SNOWMAN}".encode("utf8"), soup.b.encode_contents( encoding="utf8")) def test_deprecated_renderContents(self): - html = u"\N{SNOWMAN}" + html = "\N{SNOWMAN}" soup = self.soup(html) self.assertEqual( - u"\N{SNOWMAN}".encode("utf8"), soup.b.renderContents()) + "\N{SNOWMAN}".encode("utf8"), soup.b.renderContents()) def test_repr(self): - html = u"\N{SNOWMAN}" + html = "\N{SNOWMAN}" soup = self.soup(html) if PY3K: self.assertEqual(html, repr(soup)) @@ -1748,7 +1748,7 @@ els = self.soup.select('title') self.assertEqual(len(els), 1) self.assertEqual(els[0].name, 'title') - self.assertEqual(els[0].contents, [u'The title']) + self.assertEqual(els[0].contents, ['The title']) def test_one_tag_many(self): els = self.soup.select('div') @@ -1794,7 +1794,7 @@ self.assertEqual(dashed[0]['id'], 'dash2') def test_dashed_tag_text(self): - self.assertEqual(self.soup.select('body > custom-dashed-tag')[0].text, u'Hello there.') + self.assertEqual(self.soup.select('body > custom-dashed-tag')[0].text, 'Hello there.') def test_select_dashed_matches_find_all(self): self.assertEqual(self.soup.select('custom-dashed-tag'), self.soup.find_all('custom-dashed-tag')) @@ -1981,12 +1981,12 @@ # Try to select first paragraph els = self.soup.select('div#inner p:nth-of-type(1)') self.assertEqual(len(els), 1) - self.assertEqual(els[0].string, u'Some text') + self.assertEqual(els[0].string, 'Some text') # Try to select third paragraph els = self.soup.select('div#inner p:nth-of-type(3)') self.assertEqual(len(els), 1) - self.assertEqual(els[0].string, u'Another') + self.assertEqual(els[0].string, 'Another') # Try to select (non-existent!) fourth paragraph els = self.soup.select('div#inner p:nth-of-type(4)') @@ -1999,7 +1999,7 @@ def test_nth_of_type_direct_descendant(self): els = self.soup.select('div#inner > p:nth-of-type(1)') self.assertEqual(len(els), 1) - self.assertEqual(els[0].string, u'Some text') + self.assertEqual(els[0].string, 'Some text') def test_id_child_selector_nth_of_type(self): self.assertSelects('#inner > p:nth-of-type(2)', ['p1']) @@ -2080,7 +2080,7 @@ markup = '
' soup = BeautifulSoup(markup, 'html.parser') selected = soup.select(".c1, .c2") - self.assertEquals(3, len(selected)) + self.assertEqual(3, len(selected)) # Verify that find_all finds the same elements, though because # of an implementation detail it finds them in a different --- ./doc/source/conf.py (original) +++ ./doc/source/conf.py (refactored) @@ -40,8 +40,8 @@ master_doc = 'index' # General information about the project. -project = u'Beautiful Soup' -copyright = u'2004-2015, Leonard Richardson' +project = 'Beautiful Soup' +copyright = '2004-2015, Leonard Richardson' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -178,8 +178,8 @@ # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ - ('index', 'BeautifulSoup.tex', u'Beautiful Soup Documentation', - u'Leonard Richardson', 'manual'), + ('index', 'BeautifulSoup.tex', 'Beautiful Soup Documentation', + 'Leonard Richardson', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of @@ -211,18 +211,18 @@ # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section).RefactoringTool: Refactored ./doc/source/conf.py RefactoringTool: Refactored ./doc.zh/source/conf.py RefactoringTool: Refactored ./scripts/demonstrate_parser_differences.py RefactoringTool: Files that were modified: RefactoringTool: ./setup.py RefactoringTool: ./bs4/__init__.py RefactoringTool: ./bs4/dammit.py RefactoringTool: ./bs4/diagnose.py RefactoringTool: ./bs4/element.py RefactoringTool: ./bs4/testing.py RefactoringTool: ./bs4/builder/__init__.py RefactoringTool: ./bs4/builder/_html5lib.py RefactoringTool: ./bs4/builder/_htmlparser.py RefactoringTool: ./bs4/builder/_lxml.py RefactoringTool: ./bs4/tests/__init__.py RefactoringTool: ./bs4/tests/test_builder_registry.py RefactoringTool: ./bs4/tests/test_docs.py RefactoringTool: ./bs4/tests/test_html5lib.py RefactoringTool: ./bs4/tests/test_htmlparser.py RefactoringTool: ./bs4/tests/test_lxml.py RefactoringTool: ./bs4/tests/test_soup.py RefactoringTool: ./bs4/tests/test_tree.py RefactoringTool: ./doc/source/conf.py RefactoringTool: ./doc.zh/source/conf.py RefactoringTool: ./scripts/demonstrate_parser_differences.py man_pages = [ - ('index', 'beautifulsoup', u'Beautiful Soup Documentation', - [u'Leonard Richardson'], 1) + ('index', 'beautifulsoup', 'Beautiful Soup Documentation', + ['Leonard Richardson'], 1) ] # -- Options for Epub output --------------------------------------------------- # Bibliographic Dublin Core info. -epub_title = u'Beautiful Soup' -epub_author = u'Leonard Richardson' -epub_publisher = u'Leonard Richardson' -epub_copyright = u'2012, Leonard Richardson' +epub_title = 'Beautiful Soup' +epub_author = 'Leonard Richardson' +epub_publisher = 'Leonard Richardson' +epub_copyright = '2012, Leonard Richardson' # The language of the text. It defaults to the language option # or en if the language is not set. --- ./doc.zh/source/conf.py (original) +++ ./doc.zh/source/conf.py (refactored) @@ -40,8 +40,8 @@ master_doc = 'index' # General information about the project. -project = u'Beautiful Soup' -copyright = u'2012, Leonard Richardson' +project = 'Beautiful Soup' +copyright = '2012, Leonard Richardson' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -178,8 +178,8 @@ # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ - ('index', 'BeautifulSoup.tex', u'Beautiful Soup Documentation', - u'Leonard Richardson', 'manual'), + ('index', 'BeautifulSoup.tex', 'Beautiful Soup Documentation', + 'Leonard Richardson', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of @@ -211,18 +211,18 @@ # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ - ('index', 'beautifulsoup', u'Beautiful Soup Documentation', - [u'Leonard Richardson'], 1) + ('index', 'beautifulsoup', 'Beautiful Soup Documentation', + ['Leonard Richardson'], 1) ] # -- Options for Epub output --------------------------------------------------- # Bibliographic Dublin Core info. -epub_title = u'Beautiful Soup' -epub_author = u'Leonard Richardson' -epub_publisher = u'Leonard Richardson' -epub_copyright = u'2012, Leonard Richardson' +epub_title = 'Beautiful Soup' +epub_author = 'Leonard Richardson' +epub_publisher = 'Leonard Richardson' +epub_copyright = '2012, Leonard Richardson' # The language of the text. It defaults to the language option # or en if the language is not set. --- ./scripts/demonstrate_parser_differences.py (original) +++ ./scripts/demonstrate_parser_differences.py (refactored) @@ -22,13 +22,13 @@ try: from bs4.builder import _lxml parsers.append('lxml') -except ImportError, e: +except ImportError as e: pass try: from bs4.builder import _html5lib parsers.append('html5lib') -except ImportError, e: +except ImportError as e: pass class Demonstration(object): @@ -47,7 +47,7 @@ output = soup.div else: output = soup - except Exception, e: + except Exception as e: output = "[EXCEPTION] %s" % str(e) self.results[parser] = output if previous_output is None: @@ -57,15 +57,15 @@ return uniform_results def dump(self): - print "%s: %s" % ("Markup".rjust(13), self.markup.encode("utf8")) - for parser, output in self.results.items(): - print "%s: %s" % (parser.rjust(13), output.encode("utf8")) + print("%s: %s" % ("Markup".rjust(13), self.markup.encode("utf8"))) + for parser, output in list(self.results.items()): + print("%s: %s" % (parser.rjust(13), output.encode("utf8"))) different_results = [] uniform_results = [] -print "= Testing the following parsers: %s =" % ", ".join(parsers) -print +print("= Testing the following parsers: %s =" % ", ".join(parsers)) +print() input_file = sys.stdin if sys.stdin.isatty(): @@ -83,13 +83,13 @@ else: different_results.append(demo) -print "== Markup that's handled the same in every parser ==" -print +print("== Markup that's handled the same in every parser ==") +print() for demo in uniform_results: demo.dump() - print -print "== Markup that's not handled the same in every parser ==" -print + print() +print("== Markup that's not handled the same in every parser ==") +print() for demo in different_results: demo.dump() - print + print() + CFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' + /usr/bin/python3.6 setup.py build '--executable=/usr/bin/python3.6 -s' running build running build_py creating build creating build/lib creating build/lib/bs4 copying bs4/element.py -> build/lib/bs4 copying bs4/diagnose.py -> build/lib/bs4 copying bs4/__init__.py -> build/lib/bs4 copying bs4/dammit.py -> build/lib/bs4 copying bs4/testing.py -> build/lib/bs4 creating build/lib/bs4/tests copying bs4/tests/test_tree.py -> build/lib/bs4/tests copying bs4/tests/test_builder_registry.py -> build/lib/bs4/tests copying bs4/tests/test_html5lib.py -> build/lib/bs4/tests copying bs4/tests/test_lxml.py -> build/lib/bs4/tests copying bs4/tests/test_docs.py -> build/lib/bs4/tests copying bs4/tests/test_htmlparser.py -> build/lib/bs4/tests copying bs4/tests/test_soup.py -> build/lib/bs4/tests copying bs4/tests/__init__.py -> build/lib/bs4/tests creating build/lib/bs4/builder copying bs4/builder/_htmlparser.py -> build/lib/bs4/builder copying bs4/builder/_html5lib.py -> build/lib/bs4/builder copying bs4/builder/_lxml.py -> build/lib/bs4/builder copying bs4/builder/__init__.py -> build/lib/bs4/builder Fixing build/lib/bs4/element.py build/lib/bs4/diagnose.py build/lib/bs4/__init__.py build/lib/bs4/dammit.py build/lib/bs4/testing.py build/lib/bs4/tests/test_tree.py build/lib/bs4/tests/test_builder_registry.py build/lib/bs4/tests/test_html5lib.py build/lib/bs4/tests/test_lxml.py build/lib/bs4/tests/test_docs.py build/lib/bs4/tests/test_htmlparser.py build/lib/bs4/tests/test_soup.py build/lib/bs4/tests/__init__.py build/lib/bs4/builder/_htmlparser.py build/lib/bs4/builder/_html5lib.py build/lib/bs4/builder/_lxml.py build/lib/bs4/builder/__init__.py Skipping optional fixer: buffer Skipping optional fixer: idioms Skipping optional fixer: set_literal Skipping optional fixer: ws_comma Fixing build/lib/bs4/element.py build/lib/bs4/diagnose.py build/lib/bs4/__init__.py build/lib/bs4/dammit.py build/lib/bs4/testing.py build/lib/bs4/tests/test_tree.py build/lib/bs4/tests/test_builder_registry.py build/lib/bs4/tests/test_html5lib.py build/lib/bs4/tests/test_lxml.py build/lib/bs4/tests/test_docs.py build/lib/bs4/tests/test_htmlparser.py build/lib/bs4/tests/test_soup.py build/lib/bs4/tests/__init__.py build/lib/bs4/builder/_htmlparser.py build/lib/bs4/builder/_html5lib.py build/lib/bs4/builder/_lxml.py build/lib/bs4/builder/__init__.py Skipping optional fixer: buffer Skipping optional fixer: idioms Skipping optional fixer: set_literal Skipping optional fixer: ws_comma + sleep 1 + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.2cqlJC + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64 ++ dirname /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64 + cd beautifulsoup4-4.6.3 + pushd /builddir/build/BUILD/python3-python-beautifulsoup4-4.6.3-1.el8 ~/build/BUILD/python3-python-beautifulsoup4-4.6.3-1.el8 ~/build/BUILD/beautifulsoup4-4.6.3 + CFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' + /usr/bin/python3.6 setup.py install -O1 --skip-build --root /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64 running install running install_lib creating /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr creating /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib creating /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6 creating /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages creating /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4 creating /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/builder copying build/lib/bs4/builder/__init__.py -> /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/builder copying build/lib/bs4/builder/_lxml.py -> /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/builder copying build/lib/bs4/builder/_html5lib.py -> /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/builder copying build/lib/bs4/builder/_htmlparser.py -> /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/builder creating /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/tests copying build/lib/bs4/tests/__init__.py -> /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/tests copying build/lib/bs4/tests/test_soup.py -> /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/tests copying build/lib/bs4/tests/test_htmlparser.py -> /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/tests copying build/lib/bs4/tests/test_docs.py -> /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/tests copying build/lib/bs4/tests/test_lxml.py -> /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/tests copying build/lib/bs4/tests/test_html5lib.py -> /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/tests copying build/lib/bs4/tests/test_builder_registry.py -> /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/tests copying build/lib/bs4/tests/test_tree.py -> /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/tests copying build/lib/bs4/testing.py -> /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4 copying build/lib/bs4/dammit.py -> /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4 copying build/lib/bs4/__init__.py -> /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4 copying build/lib/bs4/diagnose.py -> /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4 copying build/lib/bs4/element.py -> /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4 byte-compiling /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/builder/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/builder/_lxml.py to _lxml.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/builder/_html5lib.py to _html5lib.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/builder/_htmlparser.py to _htmlparser.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/tests/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/tests/test_soup.py to test_soup.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/tests/test_htmlparser.py to test_htmlparser.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/tests/test_docs.py to test_docs.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/tests/test_lxml.py to test_lxml.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/tests/test_html5lib.py to test_html5lib.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/tests/test_builder_registry.py to test_builder_registry.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/tests/test_tree.py to test_tree.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/testing.py to testing.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/dammit.py to dammit.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/diagnose.py to diagnose.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/bs4/element.py to element.cpython-36.pyc writing byte-compilation script '/tmp/tmpldaa79xc.py' /usr/bin/python3.6 /tmp/tmpldaa79xc.py removing /tmp/tmpldaa79xc.py running install_egg_info running egg_info writing beautifulsoup4.egg-info/PKG-INFO writing dependency_links to beautifulsoup4.egg-info/dependency_links.txt writing requirements to beautifulsoup4.egg-info/requires.txt writing top-level names to beautifulsoup4.egg-info/top_level.txt reading manifest file 'beautifulsoup4.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' writing manifest file 'beautifulsoup4.egg-info/SOURCES.txt' Copying beautifulsoup4.egg-info to /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6/site-packages/beautifulsoup4-4.6.3-py3.6.egg-info running install_scripts + /usr/lib/rpm/find-debuginfo.sh -j2 --strict-build-id -m -i --build-id-seed 4.6.3-1.el8 --unique-debug-suffix -4.6.3-1.el8.x86_64 --unique-debug-src-base python-beautifulsoup4-4.6.3-1.el8.x86_64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 -S debugsourcefiles.list /builddir/build/BUILD/beautifulsoup4-4.6.3 find: 'debug': No such file or directory + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig /sbin/ldconfig: Warning: ignoring configuration file that cannot be opened: /etc/ld.so.conf: No such file or directory + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/brp-python-bytecompile '' 1 Bytecompiling .py files below /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/lib/python3.6 using /usr/libexec/platform-python + /usr/lib/rpm/brp-python-hardlink + PYTHON3=/usr/bin/python3.6 + /usr/lib/rpm/redhat/brp-mangle-shebangs Processing files: python3-beautifulsoup4-4.6.3-1.el8.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.Kxms8V + umask 022 + cd /builddir/build/BUILD + cd beautifulsoup4-4.6.3 + DOCDIR=/builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/share/doc/python3-beautifulsoup4 + export LC_ALL=C + LC_ALL=C + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/share/doc/python3-beautifulsoup4 + cp -pr AUTHORS.txt /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/share/doc/python3-beautifulsoup4 + cp -pr NEWS.txt /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/share/doc/python3-beautifulsoup4 + cp -pr TODO.txt /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/share/doc/python3-beautifulsoup4 + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.32Pmzf + umask 022 + cd /builddir/build/BUILD + cd beautifulsoup4-4.6.3 + LICENSEDIR=/builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/share/licenses/python3-beautifulsoup4 + export LC_ALL=C + LC_ALL=C + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/share/licenses/python3-beautifulsoup4 + cp -pr COPYING.txt /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64/usr/share/licenses/python3-beautifulsoup4 + exit 0 Provides: python3-beautifulsoup4 = 4.6.3-1.el8 python3.6dist(beautifulsoup4) = 4.6.3 python3dist(beautifulsoup4) = 4.6.3 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: python(abi) = 3.6 Obsoletes: python3-BeautifulSoup < 1:3.2.1-2 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64 Wrote: /builddir/build/RPMS/python3-beautifulsoup4-4.6.3-1.el8.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.7hzZZI + umask 022 + cd /builddir/build/BUILD + cd beautifulsoup4-4.6.3 + /usr/bin/rm -rf /builddir/build/BUILDROOT/python-beautifulsoup4-4.6.3-1.el8.x86_64 + exit 0 Finish: rpmbuild python-beautifulsoup4-4.6.3-1.el8.src.rpm Finish: build phase for python-beautifulsoup4-4.6.3-1.el8.src.rpm INFO: chroot_scan: 3 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/epel-8-x86_64-1601457205.072649/root/var/log/dnf.rpm.log /var/lib/mock/epel-8-x86_64-1601457205.072649/root/var/log/dnf.librepo.log /var/lib/mock/epel-8-x86_64-1601457205.072649/root/var/log/dnf.log INFO: Done(/var/lib/copr-rpmbuild/results/python-beautifulsoup4-4.6.3-1.el8.src.rpm) Config(child) 0 minutes 24 seconds INFO: Results and/or logs in: /var/lib/copr-rpmbuild/results INFO: Cleaning up build root ('cleanup_on_success=True') Start: clean chroot INFO: unmounting tmpfs. Finish: clean chroot Finish: run