#440 libcrypt libcrypt-nss conflict in external fedora f25 repo
Closed: Invalid 5 years ago Opened 5 years ago by skbrash.

I've set up a new koji build system and everything seems to be working okay. I create a tag and a build tag with an external fedora f25 repo and the regen-repo runs successfully and creates the repo. When I issue a scratch build for a package, I get the following error in root.log:

DEBUG util.py:522: Executing command: ['/usr/bin/yum-deprecated', '--installroot', '/var/lib/mock/dist-f25-build-19-12/root/', 'groupinstall', 'build', '--setopt=tsflags=nocontexts'] with env {'HOSTNAME': 'mock', 'HOME': '/builddir', 'SHELL': '/bin/bash', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'LANG': 'en_US.UTF-8', 'TERM': 'vt100', 'PS1': '<mock-chroot> \s-\v\$ ', 'PROMPT_COMMAND': 'printf "\033]0;<mock-chroot>\007"', 'LC_MESSAGES': 'C'} and shell False
DEBUG util.py:439: Yum command has been deprecated, use dnf instead.
DEBUG util.py:439: See 'man dnf' and 'man yum2dnf' for more information.
DEBUG util.py:439: There is no installed groups file.
DEBUG util.py:439: Maybe run: yum groups mark convert (see man yum)
DEBUG util.py:439: Error: libcrypt conflicts with libcrypt-nss-2.24-3.fc25.i686
DEBUG util.py:439: Error: libcrypt-nss conflicts with libcrypt-2.24-3.fc25.i686
DEBUG util.py:439: You could try using --skip-broken to work around the problem
DEBUG util.py:439: You could try running: rpm -Va --nofiles --nodigest
DEBUG util.py:577: Child return code was: 1
DEBUG util.py:188: kill orphans
DEBUG util.py:598: child environment: None

Issue dnf download --source libcrypt and dnf-download --source libcrypt-nss and both are created from glibc and they conflict with each other. When I issue repoquery --whatrequires libcrypt and repoquery --whatrequires libcrypt-nss, each list about 500 packages, so I'm a little stumped as to how to proceed with fedora f25 external repo.

To make sure that everything is working correctly, I issue an edit-external-repo and alter the url to fedora f24, issue a regen-repo and everything completes successfully. I issue a scratch build, same scratch build I did on the f25 external repo, and the build completes successfully. From the root.log of the build:

DEBUG util.py:522: Executing command: ['/usr/bin/yum-deprecated', '--installroot', '/var/lib/mock/dist-f25-build-15-7/root/', 'groupinstall', 'build', '--setopt=tsflags=nocontexts'] with env {'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PS1': '<mock-chroot> \s-\v\$ ', 'LC_MESSAGES': 'C', 'LANG': 'en_US.UTF-8', 'HOSTNAME': 'mock', 'HOME': '/builddir', 'SHELL': '/bin/bash', 'PROMPT_COMMAND': 'printf "\033]0;<mock-chroot>\007"', 'TERM': 'vt100'} and shell False
DEBUG util.py:439: Yum command has been deprecated, use dnf instead.
DEBUG util.py:439: See 'man dnf' and 'man yum2dnf' for more information.
DEBUG util.py:439: There is no installed groups file.
DEBUG util.py:439: Maybe run: yum groups mark convert (see man yum)
DEBUG util.py:439:
================================================================================
DEBUG util.py:439: Package Arch Version Repository
DEBUG util.py:439: Size
DEBUG util.py:439:
================================================================================
DEBUG util.py:439: Installing for group install "build":
DEBUG util.py:439: bash i686 4.3.42-5.fc24 build 1.4 M
DEBUG util.py:439: bzip2 i686 1.0.6-20.fc24 build 58 k
DEBUG util.py:439: coreutils i686 8.25-5.fc24 build 1.2 M
DEBUG util.py:439: cpio i686 2.12-3.fc24 build 265 k
DEBUG util.py:439: diffutils i686 3.3-13.fc24 build 343 k
.
.
.
DEBUG util.py:439: xz-libs i686 5.2.2-2.fc24 build 98 k
DEBUG util.py:439: zip i686 3.0-16.fc24 build 270 k
DEBUG util.py:439: zlib i686 1.2.8-10.fc24 build 98 k
DEBUG util.py:439: Transaction Summary
DEBUG util.py:439:
================================================================================
DEBUG util.py:439: Install 21 Packages (+204 Dependent packages)
DEBUG util.py:439: Total download size: 134 M
DEBUG util.py:439: Installed size: 420 M
DEBUG util.py:439: warning: /etc/hosts created as /etc/hosts.rpmnew
DEBUG util.py:439: Running in chroot, ignoring request.
DEBUG util.py:439: Installed:
DEBUG util.py:439: bash.i686 0:4.3.42-5.fc24 bzip2.i686 0:1.0.6-20.fc24
DEBUG util.py:439: coreutils.i686 0:8.25-5.fc24 cpio.i686 0:2.12-3.fc24
DEBUG util.py:439: diffutils.i686 0:3.3-13.fc24 findutils.i686 1:4.6.0-3.fc24
DEBUG util.py:439: gawk.i686 0:4.1.3-3.fc24 gcc.i686 0:6.1.1-2.fc24

Build completes successfully, rpm installs and the executable created works as expecter.

I'm not sure how to proceed with fedora f25. Is this a problem in the f25 repo or is it a problem in koji? Both the build (for f24 and f25 repos) used the same build group, so I don't think it's a build group problem. Do you have any suggestions on how to proceed or what I should file a bug on?

With fedora f25 external repos, koji is unusable.

Thanks in advance,

Steve


Which f25 repository url are you using?

Btw, I've tried with https://kojipkgs.fedoraproject.org/repos/f25-build/latest/$arch/ and got same error when using yum. If I use dnf, it passed. Just run koji edit-tag f25-build -x mock.package_manager=dnf to use it.

In Fedora's koji it's hidden in tag hierarchy:

$ koji list-tag-inheritance f25-build
f25-build (342)
  └─f25-override (341)
    └─f25-updates (336)
        └─f25 (335)

$ koji taginfo f25
Tag: f25 [335]
Arches: None
Groups: appliance-build, build, livecd-build, livemedia-build, srpm-build
LOCKED
Required permission: 'admin'
Tag options:                                                                                                                                                                                                                                 
   mock.package_manager : 'dnf'                                                                                                                                                                                                               
Inheritance:

Added the mock.package_manager into the tag:

[steve@stevedell ~]$ koji taginfo dist-f25
    Tag: dist-f25 [3]
    Arches: None
    Groups: 
    Tag options:
        mock.package_manager : 'dnf'
    Targets that build into this tag:
        dist-f25 (dist-f25-build, repo#18: 2017-05-29 13:36:48.673049)
    Inheritance:
[steve@stevedell ~]$

Build runs successfully.

I can understand not fixing the problem if it is a problem in yum, but is dnf working correctly? Looking at glibc spec file, libcrypt and libcrypt-nss conflict with each other, and since they both have the same date, how does dnf know which one to not load?

Additionally, on f24, yum installs 225 packages and dnf installs 165 packages and skips 60. I'm confused as to why this would happen. If a package is required, why was it not installed?

Thanks,

Steve

dnf dependency solving is little-bit different what was in yum. Also new directives (weak dependencies) are available for rpm specs now. In this specific case, libcrypt-nss uses Recommends which favours it over libcrypt. Similarly all these 'conflicts' are result of that weak-dependency mechanism.
Fedora is currently configured to this behaviour. Anyway, dnf can be also be forced to stricter requirements (--best) which is not Fedora's rel-eng decision for now.

Metadata Update from @tkopecek:
- Issue close_status updated to: Invalid
- Issue status updated to: Closed (was: Open)

5 years ago

I've closed ticket as invalid (no problem in koji codebase). Anyway, discussion can continue :-)

Metadata Update from @tkopecek:
- Issue set to the milestone: 1.13

5 years ago

Login to comment on this ticket.

Metadata