Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1300669
Summary: | dnf is inconsistent in how it treats weak dependencies across arches | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Marcin Juszkiewicz <mjuszkie> | ||||||||||||
Component: | distribution | Assignee: | Dan Horák <dan> | ||||||||||||
Status: | CLOSED NOTABUG | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||||||||
Severity: | high | Docs Contact: | |||||||||||||
Priority: | high | ||||||||||||||
Version: | 24 | CC: | dan, dennis, jmracek, jsilhan, kevin, lkocman, mattdm, mikem, mjuszkie, mluscon, packaging-team-maint, pnemade, tmlcoch, vmukhame, vondruch | ||||||||||||
Target Milestone: | --- | Keywords: | Reopened | ||||||||||||
Target Release: | --- | ||||||||||||||
Hardware: | Unspecified | ||||||||||||||
OS: | Unspecified | ||||||||||||||
Whiteboard: | |||||||||||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||||||||||
Doc Text: | Story Points: | --- | |||||||||||||
Clone Of: | Environment: | ||||||||||||||
Last Closed: | 2016-05-03 09:45:49 UTC | Type: | Bug | ||||||||||||
Regression: | --- | Mount Type: | --- | ||||||||||||
Documentation: | --- | CRM: | |||||||||||||
Verified Versions: | Category: | --- | |||||||||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||||||||
Embargoed: | |||||||||||||||
Bug Depends On: | 1549851, 1148627 | ||||||||||||||
Bug Blocks: | 467765, 922257 | ||||||||||||||
Attachments: |
|
Description
Marcin Juszkiewicz
2016-01-21 12:09:58 UTC
Yep, that is going to be a problem, but is is not, since the primary arches does not disable the installation of weak dependencies, yet. It seems that secondary arches are a bit ahead. https://fedorahosted.org/rel-eng/ticket/6330 https://fedorahosted.org/koji/ticket/326 Of course this seems to be totally wrong component/issue tracker. The issue could be that any other package recommends / suggests jruby then it could be pulled into transaction instead of ruby because all of them have the priority and then there could exists more solutions. We will investigate at same time, upload the debugdata [1], please. [1] https://github.com/rpm-software-management/dnf/wiki/Bug-Reporting#connection-issue Created attachment 1118145 [details]
dnf.librepo.log
<mock-chroot>sh-4.3# rpm -q librepo curl dnf
librepo-1.7.17-2.fc24.aarch64
curl-7.46.0-2.fc24.aarch64
dnf-1.1.5-1.fc24.noarch
<mock-chroot>sh-4.3# rpm -q ruby jruby rubypick
package ruby is not installed
package jruby is not installed
package rubypick is not installed
<mock-chroot>sh-4.3# dnf clean metadata
Cleaning repos: build
4 metadata files removed
3 dbcache files removed
<mock-chroot>sh-4.3# dnf --assumeno install ruby --refresh
Last metadata expiration check performed 0:00:37 ago on Mon Jan 25 18:19:21 2016.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
ruby aarch64 2.3.0-52.fc24 build 75 k
ruby-libs aarch64 2.3.0-52.fc24 build 2.7 M
Transaction Summary
================================================================================
Install 2 Packages
Total download size: 2.8 M
Installed size: 14 M
Operation aborted.
Created attachment 1118146 [details]
debugdata
<mock-chroot>sh-4.3# rpm -q libsolv hawkey dnf
libsolv-0.6.15-4.fc24.aarch64
hawkey-0.6.2-3.fc24.aarch64
dnf-1.1.5-1.fc24.noarch
I did some digging today. koji does not set any settings in regards to weak dependencies. koji-shadow does no setting of any configs. default rawhide mock config I was able to reproduce the issue filed here. if I remove install_weak_deps=0 from the rawhide mock config I got the matching behaviour of koji on x86_64 on aarch64. the koji mock config is # Auto-generated by the Koji build system # Koji buildroot id: 711424 # Koji buildroot name: f24-build-711424-659760 # Koji repo id: 659760 # Koji tag: f24-build config_opts['package_manager'] = 'dnf' config_opts['chroothome'] = '/builddir' config_opts['use_host_resolv'] = False config_opts['basedir'] = '/var/lib/mock' config_opts['rpmbuild_timeout'] = 172800 config_opts['yum.conf'] = '[main]\ncachedir=/var/cache/yum\ndebuglevel=1\nlogfile=/var/log/yum.log\nreposdir=/dev/null\nretries=20\nobsoletes=1\ngpgcheck=0\nassumeyes=1\nkeepcache=1\n\n# repos\n\n[build]\nname=build\nbaseurl=http://armpkgs.fedoraproject.org//repos/f24-build/659760/aarch64\n' config_opts['chroot_setup_cmd'] = 'groupinstall build' config_opts['target_arch'] = 'aarch64' config_opts['root'] = 'f24-build-711424-659760' config_opts['plugin_conf']['root_cache_enable'] = False config_opts['plugin_conf']['yum_cache_enable'] = False config_opts['plugin_conf']['ccache_enable'] = False config_opts['macros']['%_host'] = 'aarch64-redhat-linux-gnu' config_opts['macros']['%_host_cpu'] = 'aarch64' config_opts['macros']['%vendor'] = 'Fedora Project' config_opts['macros']['%distribution'] = 'Fedora Project' config_opts['macros']['%_topdir'] = '/builddir/build' config_opts['macros']['%_rpmfilename'] = '%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm' config_opts['macros']['%packager'] = 'Fedora Project' however it seems install_weak_deps=0 while not explicitly set. (In reply to Dennis Gilmore from comment #6) > however it seems install_weak_deps=0 while not explicitly set. How do you know that? (In reply to Marcin Juszkiewicz from comment #0) > # dnf --assumeno install ruby --setopt install_weak_deps=True > Last metadata expiration check performed 0:45:55 ago on Thu Jan 21 12:20:23 > 2016. > Dependencies resolved. > ============================================================================= > ==== > Package Arch Version Repository > Size > ============================================================================= > ==== > Installing: > ruby aarch64 2.3.0-52.fc24 build > 75 k > > Transaction Summary > ============================================================================= > ==== > Install 1 Package > > Total size: 75 k > Installed size: 129 k > Operation aborted. > > > As you see weak dependencies were ignored. This is 100% correct. Ruby only Suggests rubypick [1] - it should be installed only if some package REQUIRES rubypick feature in transaction. If you want it to behave differently consider changing Suggest to Recommends in ruby spec file. > # dnf --assumeno install rubypick > ... > jruby noarch 1.7.22-1.fc24 build 9.9 M > ... > > Hmm... "rubypick" suggests "ruby" but dnf installs "jruby"? Only this case seems to be weird although I believe depsolver picked it for good reason. [1] https://fedoraproject.org/wiki/PackagingDrafts/WeakDependencies#Hints Dennis, could you please check what are the versions of following libraries on builders?
> libsolv
> hawkey
> dnf
Are they in the same version?
I've got into similar situation when rebuilding libdmtx (last time rebuilt in F-24 2016-01-12 in the Ruby rebuild) in current Rawhide x86_64 mock. from the root.log ... DEBUG package_manager.py:92: ['/usr/bin/dnf', 'builddep', '--installroot', '/var/lib/mock/fedora-rawhide-x86_64/root/', '--releasever', '24', '/var/lib/mock/fedora-rawhide-x86_64/root//builddir/build/SRPMS/libdmtx-0.7.2-18.fc24.src.rpm'] DEBUG util.py:541: child environment: None DEBUG util.py:474: Executing command: ['/usr/bin/dnf', 'builddep', '--installroot', '/var/lib/mock/fedora-rawhide-x86_64/root/', '--releasever', '24', '/var/lib/mock/fedora-rawhide-x86_64/root//builddir/build/SRPMS/libdmtx-0.7.2-18.fc24.src.rpm', '--setopt=tsflags=nocontexts'] with env {'HOME': '/builddir', 'HOSTNAME': 'mock', 'LC_MESSAGES': 'C', 'LANG': 'cs_CZ.utf8', 'PROMPT_COMMAND': 'printf "\x1b]0;<mock-chroot>\x07<mock-chroot>"', 'SHELL': '/bin/bash', 'CCACHE_DIR': '/tmp/ccache', 'CCACHE_UMASK': '002', 'TERM': 'vt100', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin'} and shell False DEBUG util.py:399: Last metadata expiration check performed 0:00:00 ago on Tue Jan 26 12:17:29 2016. DEBUG util.py:399: Dependencies resolved. DEBUG util.py:399: ====================================================================================================================================================================== DEBUG util.py:399: Package Arch Version Repository Size DEBUG util.py:399: ====================================================================================================================================================================== DEBUG util.py:399: Installing: DEBUG util.py:399: ImageMagick x86_64 6.9.3.0-1.fc24 fedora 170 k DEBUG util.py:399: ImageMagick-devel x86_64 6.9.3.0-1.fc24 fedora 115 k DEBUG util.py:399: ImageMagick-libs x86_64 6.9.3.0-1.fc24 fedora 2.2 M DEBUG util.py:399: OpenEXR-devel x86_64 2.2.0-4.fc23 fedora 84 k DEBUG util.py:399: OpenEXR-libs x86_64 2.2.0-4.fc23 fedora 643 k DEBUG util.py:399: SDL x86_64 1.2.15-20.fc24 fedora 213 k DEBUG util.py:399: SDL-devel x86_64 1.2.15-20.fc24 fedora 360 k DEBUG util.py:399: SDL_image x86_64 1.2.12-13.fc24 fedora 46 k DEBUG util.py:399: SDL_image-devel x86_64 1.2.12-13.fc24 fedora 16 k DEBUG util.py:399: aajohan-comfortaa-fonts noarch 2.004-5.fc23 fedora 151 k DEBUG util.py:399: acl x86_64 2.2.52-10.fc24 fedora 77 k DEBUG util.py:399: alsa-lib x86_64 1.1.0-3.fc24 fedora 408 k DEBUG util.py:399: alsa-lib-devel x86_64 1.1.0-3.fc24 fedora 943 k DEBUG util.py:399: autoconf noarch 2.69-21.fc23 fedora 709 k DEBUG util.py:399: automake noarch 1.15-5.fc24 fedora 695 k DEBUG util.py:399: avahi-libs x86_64 0.6.32-0.5.rc.fc24 fedora 62 k DEBUG util.py:399: bzip2-devel x86_64 1.0.6-19.fc24 fedora 223 k DEBUG util.py:399: cairo x86_64 1.14.4-1.fc24 fedora 722 k DEBUG util.py:399: cryptsetup-libs x86_64 1.7.0-2.fc24 fedora 210 k DEBUG util.py:399: cups-libs x86_64 1:2.1.2-1.fc24 fedora 397 k DEBUG util.py:399: dbus x86_64 1:1.11.0-1.fc24 fedora 245 k DEBUG util.py:399: dbus-libs x86_64 1:1.11.0-1.fc24 fedora 174 k DEBUG util.py:399: device-mapper x86_64 1.02.114-3.fc24 fedora 302 k DEBUG util.py:399: device-mapper-libs x86_64 1.02.114-3.fc24 fedora 357 k DEBUG util.py:399: fftw-libs-double x86_64 3.3.4-6.fc23 fedora 805 k DEBUG util.py:399: fontconfig x86_64 2.11.94-5.fc24 fedora 242 k DEBUG util.py:399: fontpackages-filesystem noarch 1.44-16.fc24 fedora 14 k DEBUG util.py:399: freetype x86_64 2.6.2-1.fc24 fedora 417 k DEBUG util.py:399: freetype-devel x86_64 2.6.2-1.fc24 fedora 389 k DEBUG util.py:399: gdk-pixbuf2 x86_64 2.33.2-1.fc24 fedora 445 k DEBUG util.py:399: ghostscript x86_64 9.16-3.fc23 fedora 45 k DEBUG util.py:399: ghostscript-core x86_64 9.16-3.fc23 fedora 4.4 M DEBUG util.py:399: ghostscript-devel x86_64 9.16-3.fc23 fedora 56 k DEBUG util.py:399: ghostscript-fonts noarch 5.50-34.fc23 fedora 329 k DEBUG util.py:399: ghostscript-x11 x86_64 9.16-3.fc23 fedora 73 k DEBUG util.py:399: gl-manpages noarch 1.1-10.20140424.fc23 fedora 1.0 M DEBUG util.py:399: graphite2 x86_64 1.2.4-5.fc23 fedora 89 k DEBUG util.py:399: groff-base x86_64 1.22.3-6.fc23 fedora 1.0 M DEBUG util.py:399: harfbuzz x86_64 1.1.3-1.fc24 fedora 184 k DEBUG util.py:399: hwdata noarch 0.285-2.fc24 fedora 1.4 M DEBUG util.py:399: ilmbase x86_64 2.2.0-4.fc23 fedora 106 k DEBUG util.py:399: ilmbase-devel x86_64 2.2.0-4.fc23 fedora 91 k DEBUG util.py:399: iptables x86_64 1.4.21-15.fc23 fedora 426 k DEBUG util.py:399: jasper-devel x86_64 1.900.1-31.fc23 fedora 379 k DEBUG util.py:399: jasper-libs x86_64 1.900.1-31.fc23 fedora 150 k DEBUG util.py:399: jbigkit-libs x86_64 2.1-4.fc23 fedora 51 k DEBUG util.py:399: kmod x86_64 22-2.fc24 fedora 112 k DEBUG util.py:399: kmod-libs x86_64 22-2.fc24 fedora 61 k DEBUG util.py:399: lcms2 x86_64 2.7-2.fc23 fedora 155 k DEBUG util.py:399: lcms2-devel x86_64 2.7-2.fc23 fedora 2.1 M DEBUG util.py:399: libICE x86_64 1.0.9-3.fc23 fedora 70 k DEBUG util.py:399: libICE-devel x86_64 1.0.9-3.fc23 fedora 54 k DEBUG util.py:399: libSM x86_64 1.2.2-3.fc23 fedora 43 k DEBUG util.py:399: libSM-devel x86_64 1.2.2-3.fc23 fedora 17 k DEBUG util.py:399: libX11 x86_64 1.6.3-2.fc23 fedora 608 k DEBUG util.py:399: libX11-common noarch 1.6.3-2.fc23 fedora 166 k DEBUG util.py:399: libX11-devel x86_64 1.6.3-2.fc23 fedora 984 k DEBUG util.py:399: libXau x86_64 1.0.8-5.fc23 fedora 33 k DEBUG util.py:399: libXau-devel x86_64 1.0.8-5.fc23 fedora 19 k DEBUG util.py:399: libXdamage x86_64 1.1.4-7.fc23 fedora 25 k DEBUG util.py:399: libXdamage-devel x86_64 1.1.4-7.fc23 fedora 14 k DEBUG util.py:399: libXext x86_64 1.3.3-3.fc23 fedora 42 k DEBUG util.py:399: libXext-devel x86_64 1.3.3-3.fc23 fedora 79 k DEBUG util.py:399: libXfixes x86_64 5.0.1-5.fc23 fedora 22 k DEBUG util.py:399: libXfixes-devel x86_64 5.0.1-5.fc23 fedora 17 k DEBUG util.py:399: libXfont x86_64 1.5.1-3.fc24 fedora 153 k DEBUG util.py:399: libXft x86_64 2.3.2-3.fc23 fedora 63 k DEBUG util.py:399: libXrandr x86_64 1.5.0-2.fc23 fedora 30 k DEBUG util.py:399: libXrandr-devel x86_64 1.5.0-2.fc23 fedora 25 k DEBUG util.py:399: libXrender x86_64 0.9.9-2.fc23 fedora 30 k DEBUG util.py:399: libXrender-devel x86_64 0.9.9-2.fc23 fedora 21 k DEBUG util.py:399: libXt x86_64 1.1.5-2.fc23 fedora 178 k DEBUG util.py:399: libXt-devel x86_64 1.1.5-2.fc23 fedora 450 k DEBUG util.py:399: libXxf86vm x86_64 1.1.4-2.fc23 fedora 22 k DEBUG util.py:399: libXxf86vm-devel x86_64 1.1.4-2.fc23 fedora 23 k DEBUG util.py:399: libcroco x86_64 0.6.11-1.fc24 fedora 108 k DEBUG util.py:399: libdatrie x86_64 0.2.9-1.fc24 fedora 31 k DEBUG util.py:399: libdrm x86_64 2.4.66-1.fc24 fedora 144 k DEBUG util.py:399: libdrm-devel x86_64 2.4.66-1.fc24 fedora 116 k DEBUG util.py:399: libedit x86_64 3.1-13.20150325cvs.fc23 fedora 99 k DEBUG util.py:399: libfontenc x86_64 1.1.3-2.fc23 fedora 35 k DEBUG util.py:399: libjpeg-turbo x86_64 1.4.2-2.fc24 fedora 147 k DEBUG util.py:399: libjpeg-turbo-devel x86_64 1.4.2-2.fc24 fedora 104 k DEBUG util.py:399: libmnl x86_64 1.0.3-10.fc23 fedora 28 k DEBUG util.py:399: libnetfilter_conntrack x86_64 1.0.4-5.fc23 fedora 56 k DEBUG util.py:399: libnfnetlink x86_64 1.0.1-7.fc23 fedora 30 k DEBUG util.py:399: libpciaccess x86_64 0.13.4-2.fc23 fedora 30 k DEBUG util.py:399: libpng x86_64 2:1.6.21-1.fc24 fedora 118 k DEBUG util.py:399: libpng-devel x86_64 2:1.6.21-1.fc24 fedora 313 k DEBUG util.py:399: librsvg2 x86_64 2.40.13-1.fc24 fedora 134 k DEBUG util.py:399: libthai x86_64 0.1.21-2.fc23 fedora 192 k DEBUG util.py:399: libtiff x86_64 4.0.6-1.fc24 fedora 173 k DEBUG util.py:399: libtiff-devel x86_64 4.0.6-1.fc24 fedora 493 k DEBUG util.py:399: libwayland-client x86_64 1.9.91-1.fc24 fedora 32 k DEBUG util.py:399: libwayland-server x86_64 1.9.91-1.fc24 fedora 37 k DEBUG util.py:399: libwebp x86_64 0.5.0-1.fc24 fedora 239 k DEBUG util.py:399: libwebp-devel x86_64 0.5.0-1.fc24 fedora 35 k DEBUG util.py:399: libwmf-lite x86_64 0.2.8.4-47.fc24 fedora 73 k DEBUG util.py:399: libxcb x86_64 1.11.1-1.fc24 fedora 193 k DEBUG util.py:399: libxcb-devel x86_64 1.11.1-1.fc24 fedora 1.1 M DEBUG util.py:399: libxkbcommon x86_64 0.5.0-3.fc24 fedora 112 k DEBUG util.py:399: libxshmfence x86_64 1.2-2.fc23 fedora 11 k DEBUG util.py:399: m4 x86_64 1.4.17-8.fc23 fedora 266 k DEBUG util.py:399: mesa-libEGL x86_64 11.2.0-0.devel.7.24ea81a.fc24 fedora 107 k DEBUG util.py:399: mesa-libGL x86_64 11.2.0-0.devel.7.24ea81a.fc24 fedora 170 k DEBUG util.py:399: mesa-libGL-devel x86_64 11.2.0-0.devel.7.24ea81a.fc24 fedora 163 k DEBUG util.py:399: mesa-libGLU x86_64 9.0.0-9.fc23 fedora 180 k DEBUG util.py:399: mesa-libGLU-devel x86_64 9.0.0-9.fc23 fedora 14 k DEBUG util.py:399: mesa-libgbm x86_64 11.2.0-0.devel.7.24ea81a.fc24 fedora 57 k DEBUG util.py:399: mesa-libglapi x86_64 11.2.0-0.devel.7.24ea81a.fc24 fedora 63 k DEBUG util.py:399: openjpeg2 x86_64 2.1.0-7.fc24 fedora 108 k DEBUG util.py:399: pango x86_64 1.39.0-1.fc24 fedora 284 k DEBUG util.py:399: pcre-devel x86_64 8.38-6.fc24 fedora 542 k DEBUG util.py:399: perl-Data-Dumper x86_64 2.158-347.fc23 fedora 55 k DEBUG util.py:399: perl-Encode x86_64 3:2.79-3.fc24 fedora 1.5 M DEBUG util.py:399: perl-File-Temp noarch 0.23.04-346.fc23 fedora 61 k DEBUG util.py:399: perl-Getopt-Long noarch 2.48-1.fc24 fedora 61 k DEBUG util.py:399: perl-HTTP-Tiny noarch 0.056-3.fc23 fedora 53 k DEBUG util.py:399: perl-MIME-Base64 x86_64 3.15-348.fc23 fedora 29 k DEBUG util.py:399: perl-Pod-Escapes noarch 1:1.07-348.fc23 fedora 19 k DEBUG util.py:399: perl-Pod-Perldoc noarch 3.25-348.fc24 fedora 85 k DEBUG util.py:399: perl-Pod-Simple noarch 1:3.32-2.fc24 fedora 212 k DEBUG util.py:399: perl-Pod-Usage noarch 4:1.68-1.fc24 fedora 33 k DEBUG util.py:399: perl-Term-ANSIColor noarch 4.03-346.fc23 fedora 45 k DEBUG util.py:399: perl-Term-Cap noarch 1.17-1.fc24 fedora 22 k DEBUG util.py:399: perl-Text-ParseWords noarch 3.30-346.fc23 fedora 17 k DEBUG util.py:399: perl-Thread-Queue noarch 3.07-1.fc24 fedora 22 k DEBUG util.py:399: perl-Time-Local noarch 1.2300-346.fc23 fedora 29 k DEBUG util.py:399: perl-podlators noarch 4.05-1.fc24 fedora 112 k DEBUG util.py:399: php-cli x86_64 5.6.18-0.1.RC1.fc24 fedora 4.0 M DEBUG util.py:399: php-common x86_64 5.6.18-0.1.RC1.fc24 fedora 1.1 M DEBUG util.py:399: php-devel x86_64 5.6.18-0.1.RC1.fc24 fedora 986 k DEBUG util.py:399: php-pecl-jsonc x86_64 1.3.9-1.fc24 fedora 58 k DEBUG util.py:399: php-pecl-jsonc-devel x86_64 1.3.9-1.fc24 fedora 36 k DEBUG util.py:399: pixman x86_64 0.33.6-1.fc24 fedora 255 k DEBUG util.py:399: poppler-data noarch 0.4.7-4.fc23 fedora 2.2 M DEBUG util.py:399: python x86_64 2.7.11-3.fc24 fedora 95 k DEBUG util.py:399: python-devel x86_64 2.7.11-3.fc24 fedora 398 k DEBUG util.py:399: python-libs x86_64 2.7.11-3.fc24 fedora 5.8 M DEBUG util.py:399: python-pip noarch 7.1.0-3.fc24 fedora 1.5 M DEBUG util.py:399: python-rpm-macros noarch 3-6.fc24 fedora 8.7 k DEBUG util.py:399: python2-rpm-macros noarch 3-6.fc24 fedora 8.1 k DEBUG util.py:399: python2-setuptools noarch 19.4-1.fc24 fedora 415 k DEBUG util.py:399: qrencode-libs x86_64 3.4.2-5.fc23 fedora 55 k DEBUG util.py:399: ruby x86_64 2.3.0-53.fc24 fedora 76 k DEBUG util.py:399: ruby-devel x86_64 2.3.0-53.fc24 fedora 112 k DEBUG util.py:399: ruby-libs x86_64 2.3.0-53.fc24 fedora 2.9 M DEBUG util.py:399: systemd x86_64 228-7.gite35a787.fc24 fedora 6.6 M DEBUG util.py:399: urw-fonts noarch 3:2.4-21.fc23 fedora 3.0 M DEBUG util.py:399: xkeyboard-config noarch 2.16-2.fc24 fedora 761 k DEBUG util.py:399: xorg-x11-font-utils x86_64 1:7.5-30.fc24 fedora 82 k DEBUG util.py:399: xorg-x11-proto-devel noarch 7.7-16.fc23 fedora 287 k DEBUG util.py:399: zlib-devel x86_64 1.2.8-9.fc24 fedora 55 k DEBUG util.py:399: Skipping packages with conflicts: DEBUG util.py:399: (add '--best --allowerasing' to command line to force their upgrade): DEBUG util.py:399: libyaml x86_64 0.1.6-7.fc23 fedora 58 k DEBUG util.py:399: ruby-irb noarch 2.3.0-53.fc24 fedora 94 k DEBUG util.py:399: rubygem-bigdecimal x86_64 1.2.8-53.fc24 fedora 87 k DEBUG util.py:399: rubygem-did_you_mean x86_64 1.0.0-53.fc24 fedora 219 k DEBUG util.py:399: rubygem-io-console x86_64 0.4.5-53.fc24 fedora 58 k DEBUG util.py:399: rubygem-json x86_64 1.8.3-101.fc24 fedora 65 k DEBUG util.py:399: rubygem-psych x86_64 2.0.17-53.fc24 fedora 87 k DEBUG util.py:399: rubygem-rdoc noarch 4.2.1-53.fc24 fedora 482 k DEBUG util.py:399: rubygems noarch 2.5.1-53.fc24 fedora 280 k DEBUG util.py:399: rubypick noarch 1.1.1-4.fc24 fedora 11 k DEBUG util.py:399: Transaction Summary DEBUG util.py:399: ====================================================================================================================================================================== DEBUG util.py:399: Install 153 Packages DEBUG util.py:399: Skip 10 Packages DEBUG util.py:399: Total size: 66 M DEBUG util.py:399: Total download size: 39 M DEBUG util.py:399: Installed size: 247 M please see "Skipping packages with conflicts:", the result is "ruby not found" during configure process. This is what we saw also in arm64 and s390(x) rebuilds. After specifying the deps explicitly, they are installed. Interestingly a scratch build doesn't have this problem - http://koji.fedoraproject.org/koji/taskinfo?taskID=12689292 Did something change in the last day in rawhide? Decided to try commands from comment 0 on x86-64. Fetched koji mock configuration: "koji mock-config --task 12676677 >koji.cfg" and then started mock: $ mock -r ./koji.cfg clean $ mock -r ./koji.cfg init $ mock -r ./koji.cfg install dnf $ mock -r ./koji.cfg shell <mock-chroot>sh-4.3# rpm --provides -qp ruby-2.3.0-53.fc24.x86_64.rpm ruby = 2.3.0-53.fc24 ruby(runtime_executable) = 2.3.0 ruby(x86-64) = 2.3.0-53.fc24 <mock-chroot>sh-4.3# rpm --suggests -qp ruby-2.3.0-53.fc24.x86_64.rpm rubypick <mock-chroot>sh-4.3# rpm --requires -qp rubypick-1.1.1-4.fc24.noarch.rpm /usr/bin/bash rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(PayloadIsXz) <= 5.2-1 ruby(runtime_executable) <mock-chroot>sh-4.3# rpm --suggests -qp rubypick-1.1.1-4.fc24.noarch.rpm ruby <mock-chroot>sh-4.3# dnf --assumeno install ruby Last metadata expiration check performed 0:03:20 ago on Tue Jan 26 12:56:59 2016. Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: libyaml x86_64 0.1.6-7.fc23 build 57 k ruby x86_64 2.3.0-53.fc24 build 75 k ruby-irb noarch 2.3.0-53.fc24 build 93 k ruby-libs x86_64 2.3.0-53.fc24 build 2.9 M rubygem-bigdecimal x86_64 1.2.8-53.fc24 build 86 k rubygem-did_you_mean x86_64 1.0.0-53.fc24 build 218 k rubygem-io-console x86_64 0.4.5-53.fc24 build 57 k rubygem-json x86_64 1.8.3-101.fc24 build 64 k rubygem-psych x86_64 2.0.17-53.fc24 build 86 k rubygem-rdoc noarch 4.2.1-53.fc24 build 481 k rubygems noarch 2.5.1-53.fc24 build 279 k rubypick noarch 1.1.1-4.fc24 build 9.7 k Transaction Summary ================================================================================ Install 12 Packages Total size: 4.3 M Installed size: 14 M Operation aborted. <mock-chroot>sh-4.3# dnf --assumeno install rubypick Last metadata expiration check performed 0:05:36 ago on Tue Jan 26 12:56:59 2016. Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: libyaml x86_64 0.1.6-7.fc23 build 57 k ruby x86_64 2.3.0-53.fc24 build 75 k ruby-irb noarch 2.3.0-53.fc24 build 93 k ruby-libs x86_64 2.3.0-53.fc24 build 2.9 M rubygem-bigdecimal x86_64 1.2.8-53.fc24 build 86 k rubygem-did_you_mean x86_64 1.0.0-53.fc24 build 218 k rubygem-io-console x86_64 0.4.5-53.fc24 build 57 k rubygem-json x86_64 1.8.3-101.fc24 build 64 k rubygem-psych x86_64 2.0.17-53.fc24 build 86 k rubygem-rdoc noarch 4.2.1-53.fc24 build 481 k rubygems noarch 2.5.1-53.fc24 build 279 k rubypick noarch 1.1.1-4.fc24 build 9.7 k Transaction Summary ================================================================================ Install 12 Packages Total size: 4.3 M Installed size: 14 M Operation aborted. Will attach x86-64 logs and debugdata. Created attachment 1118438 [details]
debugdata from x86-64
<mock-chroot>sh-4.3# rpm -q dnf libsolv hawkey librepo rpm
dnf-1.1.5-1.fc24.noarch
libsolv-0.6.15-5.fc24.x86_64
hawkey-0.6.2-3.fc24.x86_64
librepo-1.7.17-2.fc24.x86_64
rpm-4.13.0-0.rc1.18.fc24.x86_64
Created attachment 1118439 [details]
dnf.librepo.log from x86-64
(In reply to Dan Horák from comment #9) > I've got into similar situation when rebuilding libdmtx (last time rebuilt > in F-24 2016-01-12 in the Ruby rebuild) in current Rawhide x86_64 mock. Yes, in mock config you have "install_weak_deps=0", while this option is not used on primary Koji builders as far as I understand it. (In reply to Jan Silhan from comment #7) > (In reply to Dennis Gilmore from comment #6) > > however it seems install_weak_deps=0 while not explicitly set. > > How do you know that? Because the transaction had the same packages as if install_weak_deps=0 was set. note that the behaviour is different between arches. aarch64, s390, and s390x seem to be defaulting to install_weak_deps=0 while i686, x86_64, armv7hl, ppc64 and ppc64le seem to be defaulting to install_weak_deps=1 I am going to get clarification and guidelines on the expected behaviour of weak dependencies in a buildroo. > (In reply to Marcin Juszkiewicz from comment #0) > > # dnf --assumeno install ruby --setopt install_weak_deps=True > > Last metadata expiration check performed 0:45:55 ago on Thu Jan 21 12:20:23 > > 2016. > > Dependencies resolved. > > ============================================================================= > > ==== > > Package Arch Version Repository > > Size > > ============================================================================= > > ==== > > Installing: > > ruby aarch64 2.3.0-52.fc24 build > > 75 k > > > > Transaction Summary > > ============================================================================= > > ==== > > Install 1 Package > > > > Total size: 75 k > > Installed size: 129 k > > Operation aborted. > > > > > > As you see weak dependencies were ignored. > > This is 100% correct. Ruby only Suggests rubypick [1] - it should be > installed only if some package REQUIRES rubypick feature in transaction. If > you want it to behave differently consider changing Suggest to Recommends in > ruby spec file. it does not do that on i686, x86_64, armv7hl, ppc64 and ppc64le > > # dnf --assumeno install rubypick > > ... > > jruby noarch 1.7.22-1.fc24 build 9.9 M > > ... > > > > Hmm... "rubypick" suggests "ruby" but dnf installs "jruby"? > > Only this case seems to be weird although I believe depsolver picked it for > good reason. > > [1] https://fedoraproject.org/wiki/PackagingDrafts/WeakDependencies#Hints this bug has nothing to do with jruby. it is to do with dnf's default behaviour being different on different architectures. (In reply to Vít Ondruch from comment #8) > Dennis, could you please check what are the versions of following libraries > on builders? > > > libsolv > > hawkey > > dnf > > Are they in the same version? rpm -q libsolv hawkey dnf libsolv-0.6.14-7.fc23.aarch64 hawkey-0.6.2-3.fc23.aarch64 dnf-1.1.4-2.fc23.noarch rpm -q libsolv hawkey dnf libsolv-0.6.14-7.fc23.x86_64 hawkey-0.6.2-3.fc23.x86_64 dnf-1.1.4-2.fc23.noarch (In reply to Vít Ondruch from comment #13) > (In reply to Dan Horák from comment #9) > > I've got into similar situation when rebuilding libdmtx (last time rebuilt > > in F-24 2016-01-12 in the Ruby rebuild) in current Rawhide x86_64 mock. > > Yes, in mock config you have "install_weak_deps=0", while this option is not > used on primary Koji builders as far as I understand it. correct, mock took it to set options that had not been decided what the correct behaviour should be. It means that you get different behaviour in koji as mock locally and buils that work in koji will fail locally. I do want a resolution to this quickly. We have a mass rebuild due this week. if builds fail on secondary they will have to get extra builds done. Short term I want to make sure that aarch64, s390 and s390x behave the same as primary, longer term we need a policy that states how weak dependencies should be treated in the buildroot ping, we need this resolved before the mass rebuild starting tuesday. (In reply to Dennis Gilmore from comment #14) > (In reply to Jan Silhan from comment #7) > > (In reply to Dennis Gilmore from comment #6) > > > however it seems install_weak_deps=0 while not explicitly set. > > > > How do you know that? > > Because the transaction had the same packages as if install_weak_deps=0 was > set. note that the behaviour is different between arches. aarch64, s390, and > s390x seem to be defaulting to install_weak_deps=0 while i686, x86_64, > armv7hl, ppc64 and ppc64le seem to be defaulting to install_weak_deps=1 It doesn't mean the weak deps are handled differently. The repos for different arches contains different set of packages so the packages in the transaction may differ. Debugdata for comment 10 looks good. rubypick is in the transaction when install_weak_deps is set or not - it's requirement of another package. The behavior of Suggests tag does not get into transaction any package directly no matter what value install_weak_deps has. In Debugdata attached to comment 4 looks like in the metadata there were no weak dependencies. Are the metadata generated the same way as for other arches in mash? > I am going to get clarification and guidelines on the expected behaviour of > weak dependencies in a buildroo. Then we should create FESCo ticket, set the install_weak_deps the same way in mock and koji based on verdict and close this. @Dennis: so what repoquery is used for example? Is it of the same version? What is the difference between the builders? TBH, I am quite unhappy that you (Peter precisely speaking) are touching Ruby due to this. This bug appears to have been reported against 'rawhide' during the Fedora 24 development cycle. Changing version to '24'. More information and reason for this action is here: https://fedoraproject.org/wiki/Fedora_Program_Management/HouseKeeping/Fedora24#Rawhide_Rebase This was discussed with Dennis a few weeks before. TBH we haven't found the root of the issue. AFAIR `install_weak_deps` flag should have been set to the same value in koji as in mock. There were a few other issues found which were fixed and could be the cause (bug 1303991). If you still experience this issue, please reopen and assign debug data (packages in buildroots, what package is missing during transaction, dnf debugdata, is install_weak_deps set?, request from comment 19, etc.) The problem is still here. [sharkcz@devel10 ~]$ rpm -q dnf hawkey libsolv ruby rubypick dnf-1.1.6-2.fc24.noarch hawkey-0.6.2-4.fc24.s390x libsolv-0.6.15-6.fc24.s390x package ruby is not installed package rubypick is not installed [sharkcz@devel10 ~]$ rpm -qp --suggests http://s390.koji.fedoraproject.org/kojifiles/packages/ruby/2.3.0/54.fc24/s390x/ruby-2.3.0-54.fc24.s390x.rpm rubypick [sharkcz@devel10 ~]$ sudo dnf --best --allowerasing --disablerepo=updates* --disablerepo=fedora --enablerepo=koji install ruby [sudo] password for sharkcz: Last metadata expiration check performed 0:11:05 ago on Wed Mar 2 05:32:20 2016. Dependencies resolved. ====================================================================================================================================================================== Package Arch Version Repository Size ====================================================================================================================================================================== Installing: ruby s390x 2.3.0-54.fc24 koji 75 k ruby-libs s390x 2.3.0-54.fc24 koji 2.8 M Transaction Summary ====================================================================================================================================================================== Install 2 Packages Total download size: 2.9 M Installed size: 11 M Is this ok [y/N]: This is all on F-24 based s390x host. repodata are from http://s390.koji.fedoraproject.org/repos/f24-build/355106/s390x/ Created attachment 1132249 [details] debugdata for comment 22 What doesn't get installed is the suggested rubypick package and its deps. > repodata are from > http://s390.koji.fedoraproject.org/repos/f24-build/355106/s390x/ ^^ created by createrepo_c retested with http://s390.koji.fedoraproject.org/repos/f24-build/355124/s390x/ which was created by the classic python createrepo and no change in behaviour updating to dnf-1.1.7-1.fc24 also didn't make any difference Because we are still stuck with this issue, I would propose to create a minimal reproducer with - packages a, b, c, d that replicate the weak deps setup of ruby & co - create a repo from them - try This should confirm that either the weak deps as rpm feature generally work or they do not. The real use case in Fedora could be influenced by something else in repo, but which is not visible (yet). Or don't already rpm & co have such real world test case? I checked a issue on s390-f24 machine and I think in this case the problem is with packaging of ruby in koji repo. I have compared version in fedora repo with package in koji repo (both ruby-2.3.0-54.fc24.s390x) with following main differences : Recommends: | Fedora | Koji | | ruby(rubygems) >= 2.5.1 | | | rubygem(bigdecimal) >= 1.2.8 | | | rubygem(did_you_mean) >= 1.0.0 | | Sugestss: | Fedora | Koji | | rubypick | | That mean that koji version only install packages to satisfy dependencies described in Requires (ruby-libs). If fedora version is installed it installs 12 packages (dnf --disablerepo=* --enablerepo=fedora --setopt install_weak_deps=True install ruby) because it also try to install Recommends and if more options are available it prefers Suggests: =============================================================== Package Arch Version Repository Size =============================================================== Installing: libyaml s390x 0.1.6-8.fc24 fedora 51 k ruby s390x 2.3.0-54.fc24 fedora 76 k ruby-irb noarch 2.3.0-54.fc24 fedora 94 k ruby-libs s390x 2.3.0-54.fc24 fedora 2.8 M rubygem-bigdecimal s390x 1.2.8-54.fc24 fedora 87 k rubygem-did_you_mean s390x 1.0.0-54.fc24 fedora 219 k rubygem-io-console s390x 0.4.5-54.fc24 fedora 58 k rubygem-json s390x 1.8.3-102.fc24 fedora 63 k rubygem-psych s390x 2.0.17-54.fc24 fedora 87 k rubygem-rdoc noarch 4.2.1-54.fc24 fedora 482 k rubygems noarch 2.5.1-54.fc24 fedora 280 k rubypick noarch 1.1.1-5.fc24 fedora 9.9 k Transaction Summary =============================================================== Install 12 Packages If weak dependency are excluded it install 2 packages and 10 packages are skipped (dnf --disablerepo=* --enablerepo=fedora --setopt install_weak_deps=False install ruby): =============================================================== Package Arch Version Repository Size =============================================================== Installing: ruby s390x 2.3.0-54.fc24 fedora 76 k ruby-libs s390x 2.3.0-54.fc24 fedora 2.8 M Skipping packages with conflicts: (add '--best --allowerasing' to command line to force their upgrade): libyaml s390x 0.1.6-8.fc24 fedora 51 k ruby-irb noarch 2.3.0-54.fc24 fedora 94 k rubygem-bigdecimal s390x 1.2.8-54.fc24 fedora 87 k rubygem-did_you_mean s390x 1.0.0-54.fc24 fedora 219 k rubygem-io-console s390x 0.4.5-54.fc24 fedora 58 k rubygem-json s390x 1.8.3-102.fc24 fedora 63 k rubygem-psych s390x 2.0.17-54.fc24 fedora 87 k rubygem-rdoc noarch 4.2.1-54.fc24 fedora 482 k rubygems noarch 2.5.1-54.fc24 fedora 280 k rubypick noarch 1.1.1-5.fc24 fedora 9.9 k Transaction Summary =============================================================== Install 2 Packages Skip 10 Packages Finally it looks like that the problem was caused due to metadata were built on machine with rpm that doesn't handle weak dependency or with tool that doesn't support it (see bellow). We strongly recommend to build metadata on machine with fedora 23, due to support of weak and rich dependencies. Metadata from http://s390.koji.fedoraproject.org/mash/rawhide/s390x/os/repodata/ contains correctly Suggests and Recommends: <location href="Packages/r/ruby-2.3.0-54.fc24.s390.rpm"/> <format> <rpm:license>(Ruby or BSD) and Public Domain and MIT and CC0 and zlib and UCD</rpm:license> <rpm:vendor>Fedora Project</rpm:vendor> <rpm:group>Development/Languages</rpm:group> <rpm:buildhost>fedora4.s390.bos.redhat.com</rpm:buildhost> <rpm:sourcerpm>ruby-2.3.0-54.fc24.src.rpm</rpm:sourcerpm> <rpm:header-range start="5496" end="51670"/> <rpm:provides> <rpm:entry name="ruby" flags="EQ" epoch="0" ver="2.3.0" rel="54.fc24"/> <rpm:entry name="ruby(runtime_executable)" flags="EQ" epoch="0" ver="2.3.0"/> <rpm:entry name="ruby(s390-32)" flags="EQ" epoch="0" ver="2.3.0" rel="54.fc24"/> </rpm:provides> <rpm:requires> <rpm:entry name="libc.so.6(GLIBC_2.1.3)"/> <rpm:entry name="libcrypt.so.1"/> <rpm:entry name="libdl.so.2"/> <rpm:entry name="libm.so.6"/> <rpm:entry name="libpthread.so.0"/> <rpm:entry name="libruby.so.2.3"/> <rpm:entry name="rtld(GNU_HASH)"/> <rpm:entry name="ruby-libs(s390-32)" flags="EQ" epoch="0" ver="2.3.0" rel="54.fc24"/> </rpm:requires> <rpm:suggests> <rpm:entry name="rubypick"/> </rpm:suggests> <rpm:recommends> <rpm:entry name="ruby(rubygems)" flags="GE" epoch="0" ver="2.5.1"/> <rpm:entry name="rubygem(bigdecimal)" flags="GE" epoch="0" ver="1.2.8"/> <rpm:entry name="rubygem(did_you_mean)" flags="GE" epoch="0" ver="1.0.0"/> </rpm:recommends> <file>/usr/bin/erb</file> <file>/usr/bin/ruby-mri</file> </format> </package> But metadata from http://s390.koji.fedoraproject.org/repos/f24-build/latest/s390/repodata/ doesn't have Suggests and Recommends. <package type="rpm"> <name>ruby</name> <arch>s390</arch> <version epoch="0" ver="2.3.0" rel="54.fc24"/> <checksum type="sha256" pkgid="YES">72993591f1cc1a36db71c65f15d8021243b835bb6ec88db0d58b6725063a9430</checksum> <summary>An interpreter of object-oriented scripting language</summary> <description>Ruby is the interpreted scripting language for quick and easy object-oriented programming. It has many features to process text files and to do system management tasks (as in Perl). It is simple, straight-forward, and extensible.</description> <packager>Fedora Project</packager> <url>http://ruby-lang.org/</url> <time file="1454517672" build="1454517633"/> <size package="77038" installed="69844" archive="71344"/> <location href="toplink/packages/ruby/2.3.0/54.fc24/s390/ruby-2.3.0-54.fc24.s390.rpm"/> <format> <rpm:license>(Ruby or BSD) and Public Domain and MIT and CC0 and zlib and UCD</rpm:license> <rpm:vendor>Fedora Project</rpm:vendor> <rpm:group>Development/Languages</rpm:group> <rpm:buildhost>fedora4.s390.bos.redhat.com</rpm:buildhost> <rpm:sourcerpm>ruby-2.3.0-54.fc24.src.rpm</rpm:sourcerpm> <rpm:header-range start="4392" end="50566"/> <rpm:provides> <rpm:entry name="ruby" flags="EQ" epoch="0" ver="2.3.0" rel="54.fc24"/> <rpm:entry name="ruby(runtime_executable)" flags="EQ" epoch="0" ver="2.3.0"/> <rpm:entry name="ruby(s390-32)" flags="EQ" epoch="0" ver="2.3.0" rel="54.fc24"/> </rpm:provides> <rpm:requires> <rpm:entry name="libc.so.6(GLIBC_2.1.3)"/> <rpm:entry name="libcrypt.so.1"/> <rpm:entry name="libdl.so.2"/> <rpm:entry name="libm.so.6"/> <rpm:entry name="libpthread.so.0"/> <rpm:entry name="libruby.so.2.3"/> <rpm:entry name="rtld(GNU_HASH)"/> <rpm:entry name="ruby-libs(s390-32)" flags="EQ" epoch="0" ver="2.3.0" rel="54.fc24"/> </rpm:requires> <file>/usr/bin/erb</file> <file>/usr/bin/ruby-mri</file> </format> </package> Thanks for the investigation, it makes sense to me. The repos are created on a EL-7 host (the koji hub), because only this one has access to /mnt/koji share. It also explain why the issue went silently away on aarch64 (likely the builders were moved to F-23 in the meantime). So instead of being a koji issue it's an infrastructure issue. I'll work with Fedora infra to fix that. ticket created as https://fedorahosted.org/fedora-infrastructure/ticket/5199 Shouldn't repo creation fail if it gets rpms with unknown attributes instead of silently ignoring them? I don't read whole tread, but just few notes about weak deps and createrepo. Weak deps are just another tags in RPM header. Current version of RPM has about 280 various tags in header and Createrepo looks at only small subset of them and don't care about others. This is a correct approach, which maintain forward compatibility of createrepo, because a new tag definitely shouldn't break repodata generation because new tags are seldom important for repodata generation (afaik the weak deps are tags which which required some modification in createrepo and even unmodified version is still able to work correctly). If you want weak deps in your repodata, you must be sure that you have both rpmlib and createrepo which support them. Closing as infrastructure problem when EL-7 based builder was used to generate repodata for Fedora repos. |