Bug 1426531

Summary: error: line 19: Unknown rich dependency op 'with': BuildRequires: (crate(rustc-demangle) >= 0.1.2 with crate(rustc-demangle) < 0.2.0)
Product: [Community] Copr Reporter: Igor Gnatenko <ignatenko>
Component: backendAssignee: clime
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: clime, praiskup
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-06-27 07:39:31 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: 1118719    
Bug Blocks:    

Description Igor Gnatenko 2017-02-24 08:15:08 UTC
CMD:rm -rf /tmp/build_package_repo && mkdir /tmp/build_package_repo && cd /tmp/build_package_repo && git clone http://copr-dist-git.fedorainfracloud.org/git/@rust/playground/rustfilt.git && cd rustfilt && git checkout 595170036fa8ad98dc5c7d6f2f7e290504ff7639 && fedpkg-copr --dist f25 srpm
RC:1
AS_ROOT:False
STDERR:Cloning into 'rustfilt'...
Note: checking out '595170036fa8ad98dc5c7d6f2f7e290504ff7639'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 5951700... import_srpm
/usr/lib/python2.7/site-packages/pyrpkg/cli.py:37: DeprecationWarning: --dist is deprecated and will be removed in future version. Use --release instead.
  'Use --release instead.', DeprecationWarning)
error: line 19: Unknown rich dependency op 'with': BuildRequires:  (crate(rustc-demangle) >= 0.1.2 with crate(rustc-demangle) < 0.2.0)
error: query of specfile /tmp/build_package_repo/rustfilt/rustfilt.spec failed, can't parse

Could not execute srpm: Could not get n-v-r-e from '\n\n'



but I have setting to use another COPR repo where I have RPM which supports this rich dependency operator.

Comment 1 Igor Gnatenko 2017-02-24 08:16:27 UTC
This is the project which I'm working on: https://copr.fedorainfracloud.org/coprs/g/rust/playground/

Comment 2 Igor Gnatenko 2017-02-24 08:22:16 UTC
Even I would use legit rich dependencies, it still would not help because dnf-builddep in repos doesn't support rich dependencies at all yet (and I have patched package in external repo).

Comment 3 clime 2017-02-25 19:54:20 UTC
You see, the package in the external repo is not used because this is error while parsing rustfilt.spec by pyrpkg outside of any chroot. For this to work, we would need to:

1) get https://github.com/rpm-software-management/mock/pull/41 accepted
2) use the mock-scm dist-git method in copr-backend instead of fedpkg-copr
3) you would need to actually add the package into the minimal buildroot (possible in the chroot settings and maybe you have done it)

With all that, it should be possible to do what you want. Actually, it would be interesting to try that on our dev machines if it works.

Comment 4 Igor Gnatenko 2017-02-26 00:42:12 UTC
(In reply to clime from comment #3)
> You see, the package in the external repo is not used because this is error
> while parsing rustfilt.spec by pyrpkg outside of any chroot. For this to
> work, we would need to:
> 
> 1) get https://github.com/rpm-software-management/mock/pull/41 accepted
> 2) use the mock-scm dist-git method in copr-backend instead of fedpkg-copr
> 3) you would need to actually add the package into the minimal buildroot
> (possible in the chroot settings and maybe you have done it)
> 
> With all that, it should be possible to do what you want. Actually, it would
> be interesting to try that on our dev machines if it works.
This is still not enough, because after that dnf-builddep will be used from host system (this one doesn't understand rich deps).

Comment 5 clime 2017-05-15 12:24:22 UTC
Fixed by https://pagure.io/copr/copr/pull-request/50 together with introduction of copr-builder package. Instead of mock-scm approach, currently `mock --buildsrpm` is used to build a srpm inside a chroot. Anyway, it works.