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 - dnf is inconsistent in how it treats weak dependencies across arches
Summary: dnf is inconsistent in how it treats weak dependencies across arches
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: distribution
Version: 24
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
Assignee: Dan Horák
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1549851 1148627
Blocks: ZedoraTracker ARM64, F-ExcludeArch-aarch64
TreeView+ depends on / blocked
 
Reported: 2016-01-21 12:09 UTC by Marcin Juszkiewicz
Modified: 2018-02-27 21:55 UTC (History)
15 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-05-03 09:45:49 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
dnf.librepo.log (342.23 KB, text/plain)
2016-01-25 17:47 UTC, Marcin Juszkiewicz
no flags Details
debugdata (3.92 MB, application/x-xz)
2016-01-25 17:49 UTC, Marcin Juszkiewicz
no flags Details
debugdata from x86-64 (3.78 MB, application/x-xz)
2016-01-26 12:07 UTC, Marcin Juszkiewicz
no flags Details
dnf.librepo.log from x86-64 (299.44 KB, text/plain)
2016-01-26 12:08 UTC, Marcin Juszkiewicz
no flags Details
debugdata for comment 22 (3.93 MB, application/x-gzip)
2016-03-02 10:52 UTC, Dan Horák
no flags Details

Description Marcin Juszkiewicz 2016-01-21 12:09:58 UTC
Description of problem:

On AArch64 and S390 we are unable to build software which uses ruby - all tests fail due to lack of ruby executable.

Examples:

http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=3364089
http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=3364093
http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=3364416

I fetched mock config from one of builds "arm-koji mock-config --task 3364416 >koji.cfg" and did local build:

---------------------------------------------------------------------------------------------------
-- Found PythonLibs: /usr/lib64/libpython2.7.so (found version "2.7.11") 
-- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.11") 
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
  Could NOT find Ruby (missing: RUBY_EXECUTABLE)
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake/Modules/FindRuby.cmake:267 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  swig/ruby/CMakeLists.txt:2 (find_package)


-- Configuring incomplete, errors occurred!
---------------------------------------------------------------------------------------------------

Installed dnf inside mock and chrooted. There was "/bin/ruby-mri" executable from "ruby" package but no expected "/bin/ruby".

So I started checking packages:

$ rpm --provides -qp ruby-2.3.0-52.fc24.aarch64.rpm
ruby = 2.3.0-52.fc24
ruby(aarch-64) = 2.3.0-52.fc24
ruby(runtime_executable) = 2.3.0

$ rpm --suggests -qp ruby-2.3.0-52.fc24.aarch64.rpm
rubypick

$ 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)

$ rpm --suggests -qp rubypick-1.1.1-4.fc24.noarch.rpm 
ruby

Ok, so looks like installing "ruby" should also install "rubypick" (as "install_weak_deps" defaults to True in mock):

# dnf --assumeno install ruby
Last metadata expiration check performed 0:43:58 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.

So maybe other way?

# dnf --assumeno install rubypick
Last metadata expiration check performed 0:44:25 ago on Thu Jan 21 12:20:23 2016.
Dependencies resolved.
=================================================================================
 Package                       Arch      Version                   Repository
                                                                            Size
=================================================================================
Installing:
 apache-commons-codec          noarch    1.10-2.fc23               build   245 k
 base64coder                   noarch    20101219-13.fc23          build    17 k
 bytelist                      noarch    1.0.8-10.fc23             build    19 k
 felix-framework               noarch    5.4.0-2.fc24              build   667 k
 hawtjni-runtime               noarch    1.10-5.fc23               build    37 k
 invokebinder                  noarch    1.2-1.fc22                build    46 k
 jansi                         noarch    1.11-9.fc23               build    48 k
 jansi-native                  aarch64   1.5-9.fc23                build    50 k
 java-1.8.0-openjdk-headless   aarch64   1:1.8.0.65-15.b17.fc24    build    31 M
 javapackages-tools            noarch    4.6.0-12.fc24             build   102 k
 jcodings                      noarch    1.0.9-8.fc23              build   1.1 M
 jffi                          aarch64   1.2.9-8.fc23              build   157 k
 jffi-native                   aarch64   1.2.9-8.fc23              build   216 k
 jline                         noarch    2.13-1.fc24               build   154 k
 jnr-constants                 noarch    0.9.0-1.fc24              build   299 k
 jnr-enxio                     noarch    0.9-3.fc23                build    40 k
 jnr-ffi                       noarch    2.0.4-1.fc24              build   552 k
 jnr-netdb                     noarch    1.1.4-2.fc23              build    62 k
 jnr-posix                     noarch    3.0.19-1.fc24             build   218 k
 jnr-unixsocket                noarch    0.8-3.fc23                build    27 k
 jnr-x86asm                    noarch    1.0.2-8.fc23              build   204 k
 joda-time                     noarch    2.9-1.tzdata2015e.fc24    build   515 k
 joni                          noarch    2.1.3-2.fc23              build   195 k
 jruby                         noarch    1.7.22-1.fc24             build   9.9 M
 jzlib                         noarch    1.1.3-3.fc23              build    81 k
 lksctp-tools                  aarch64   1.0.16-4.fc23             build    92 k
 nailgun                       aarch64   0.9.1-1.fc22              build    47 k
 objectweb-asm                 noarch    5.0.4-1.fc24              build   581 k
 options                       noarch    1.2-5.fc23                build    24 k
 python3-cssselect             noarch    0.9.1-8.fc24              build    62 k
 python3-javapackages          noarch    4.6.0-12.fc24             build    87 k
 python3-lxml                  aarch64   3.4.4-2.fc24              build   812 k
 rubypick                      noarch    1.1.1-4.fc24              build   9.7 k
 snakeyaml                     noarch    1.16-1.fc24               build   242 k
 tzdata-java                   noarch    2015g-1.fc24              build   177 k
 yecht                         noarch    1.0-2.fc23                build    96 k

Transaction Summary
=================================================================================
Install  36 Packages

Total size: 48 M
Total download size: 48 M
Installed size: 134 M
Operation aborted.

Hmm... "rubypick" suggests "ruby" but dnf installs "jruby"?

Let's force "install_weak_deps=True" just in case:

# dnf --assumeno install rubypick --setopt install_weak_deps=True
Last metadata expiration check performed 0:45:25 ago on Thu Jan 21 12:20:23 2016.
Dependencies resolved.
=================================================================================
 Package                       Arch      Version                   Repository
                                                                            Size
=================================================================================
Installing:
 apache-commons-codec          noarch    1.10-2.fc23               build   245 k
 base64coder                   noarch    20101219-13.fc23          build    17 k
 bytelist                      noarch    1.0.8-10.fc23             build    19 k
 felix-framework               noarch    5.4.0-2.fc24              build   667 k
 hawtjni-runtime               noarch    1.10-5.fc23               build    37 k
 invokebinder                  noarch    1.2-1.fc22                build    46 k
 jansi                         noarch    1.11-9.fc23               build    48 k
 jansi-native                  aarch64   1.5-9.fc23                build    50 k
 java-1.8.0-openjdk-headless   aarch64   1:1.8.0.65-15.b17.fc24    build    31 M
 javapackages-tools            noarch    4.6.0-12.fc24             build   102 k
 jcodings                      noarch    1.0.9-8.fc23              build   1.1 M
 jffi                          aarch64   1.2.9-8.fc23              build   157 k
 jffi-native                   aarch64   1.2.9-8.fc23              build   216 k
 jline                         noarch    2.13-1.fc24               build   154 k
 jnr-constants                 noarch    0.9.0-1.fc24              build   299 k
 jnr-enxio                     noarch    0.9-3.fc23                build    40 k
 jnr-ffi                       noarch    2.0.4-1.fc24              build   552 k
 jnr-netdb                     noarch    1.1.4-2.fc23              build    62 k
 jnr-posix                     noarch    3.0.19-1.fc24             build   218 k
 jnr-unixsocket                noarch    0.8-3.fc23                build    27 k
 jnr-x86asm                    noarch    1.0.2-8.fc23              build   204 k
 joda-time                     noarch    2.9-1.tzdata2015e.fc24    build   515 k
 joni                          noarch    2.1.3-2.fc23              build   195 k
 jruby                         noarch    1.7.22-1.fc24             build   9.9 M
 jzlib                         noarch    1.1.3-3.fc23              build    81 k
 lksctp-tools                  aarch64   1.0.16-4.fc23             build    92 k
 nailgun                       aarch64   0.9.1-1.fc22              build    47 k
 objectweb-asm                 noarch    5.0.4-1.fc24              build   581 k
 options                       noarch    1.2-5.fc23                build    24 k
 python3-cssselect             noarch    0.9.1-8.fc24              build    62 k
 python3-javapackages          noarch    4.6.0-12.fc24             build    87 k
 python3-lxml                  aarch64   3.4.4-2.fc24              build   812 k
 rubypick                      noarch    1.1.1-4.fc24              build   9.7 k
 snakeyaml                     noarch    1.16-1.fc24               build   242 k
 tzdata-java                   noarch    2015g-1.fc24              build   177 k
 yecht                         noarch    1.0-2.fc23                build    96 k

Transaction Summary
=================================================================================
Install  36 Packages

Total size: 48 M
Total download size: 48 M
Installed size: 134 M
Operation aborted.

So maybe install "ruby" to get "rubypick" installed as well?

# 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.


Version-Release number of selected component (if applicable):

# dnf --version
1.1.5
  Installed: dnf-0:1.1.5-1.fc24.noarch at 2016-01-21 11:28
  Built    : Fedora Project at 2015-12-18 17:11

  Installed: rpm-0:4.13.0-0.rc1.13.fc24.aarch64 at 2016-01-21 11:22
  Built    : Fedora Project at 2015-11-26 23:12

How reproducible:

always

Steps to Reproduce:
1. "arm-koji build-scratch obexftp"

Actual results:

build fails due to dnf ignoring weak dependencies

Expected results:

package builds fine

Additional info:

Same packages build on primary koji (where builders runs f23) and ppc (fedora 21). AArch64 and S390 builders run Fedora 23.

Comment 1 Vít Ondruch 2016-01-21 12:49:56 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

Comment 2 Vít Ondruch 2016-01-21 12:51:09 UTC
Of course this seems to be totally wrong component/issue tracker.

Comment 3 Honza Silhan 2016-01-25 13:03:41 UTC
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

Comment 4 Marcin Juszkiewicz 2016-01-25 17:47:52 UTC
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.

Comment 5 Marcin Juszkiewicz 2016-01-25 17:49:33 UTC
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

Comment 6 Dennis Gilmore 2016-01-26 04:01:20 UTC
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.

Comment 7 Honza Silhan 2016-01-26 10:49:16 UTC
(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

Comment 8 Vít Ondruch 2016-01-26 11:56:58 UTC
Dennis, could you please check what are the versions of following libraries on builders?

> libsolv
> hawkey
> dnf

Are they in the same version?

Comment 9 Dan Horák 2016-01-26 12:02:21 UTC
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?

Comment 10 Marcin Juszkiewicz 2016-01-26 12:05:47 UTC
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.

Comment 11 Marcin Juszkiewicz 2016-01-26 12:07:46 UTC
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

Comment 12 Marcin Juszkiewicz 2016-01-26 12:08:10 UTC
Created attachment 1118439 [details]
dnf.librepo.log from x86-64

Comment 13 Vít Ondruch 2016-01-26 12:21:25 UTC
(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.

Comment 14 Dennis Gilmore 2016-01-26 14:31:21 UTC
(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.

Comment 15 Dennis Gilmore 2016-01-26 14:34:17 UTC
(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

Comment 16 Dennis Gilmore 2016-01-26 14:41:54 UTC
(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

Comment 17 Dennis Gilmore 2016-01-30 23:09:13 UTC
ping, we need this resolved before the mass rebuild starting tuesday.

Comment 18 Honza Silhan 2016-02-01 22:29:20 UTC
(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.

Comment 19 Vít Ondruch 2016-02-03 16:29:40 UTC
@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.

Comment 20 Jan Kurik 2016-02-24 14:18:46 UTC
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

Comment 21 Honza Silhan 2016-03-01 14:08:02 UTC
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.)

Comment 22 Dan Horák 2016-03-02 10:50:28 UTC
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/

Comment 23 Dan Horák 2016-03-02 10:52:44 UTC
Created attachment 1132249 [details]
debugdata for comment 22

Comment 24 Dan Horák 2016-03-02 11:10:52 UTC
What doesn't get installed is the suggested rubypick package and its deps.

Comment 25 Dan Horák 2016-03-02 12:42:45 UTC
> 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

Comment 26 Dan Horák 2016-03-02 13:00:16 UTC
updating to dnf-1.1.7-1.fc24 also didn't make any difference

Comment 27 Dan Horák 2016-03-21 09:47:56 UTC
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?

Comment 28 Jaroslav Mracek 2016-03-29 08:00:33 UTC
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

Comment 29 Jaroslav Mracek 2016-03-29 09:08:41 UTC
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>

Comment 30 Dan Horák 2016-03-29 09:53:12 UTC
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.

Comment 31 Dan Horák 2016-03-29 15:08:31 UTC
ticket created as https://fedorahosted.org/fedora-infrastructure/ticket/5199

Comment 32 Dan Horák 2016-03-29 15:10:10 UTC
Shouldn't repo creation fail if it gets rpms with unknown attributes instead of silently ignoring them?

Comment 33 Tomas Mlcoch 2016-03-30 09:07:53 UTC
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.

Comment 34 Dan Horák 2016-05-03 09:45:49 UTC
Closing as infrastructure problem when EL-7 based builder was used to generate repodata for Fedora repos.


Note You need to log in before you can comment on or make changes to this bug.