Re: [Rpm-maint] [rpm-software-management/rpm] Version range dependency (#159)
Closed #159. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/issues/159#event-1200623852___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm-software-management/rpm] Version range dependency (#159)
This got implemented as part of #299 \o/ -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/issues/159#issuecomment-321506386___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm-software-management/rpm] Version range dependency (#159)
For reference: [The ML post I made about version range dep support](http://lists.rpm.org/pipermail/rpm-ecosystem/2017-February/000471.html). -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/issues/159#issuecomment-303893123___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm-software-management/rpm] Version range dependency (#159)
Further examination yields that libsolv already supports a way of dealing with this: REL_WITH which is represented in libsolvs dependency language as "+" and we probably want to represent in RPM as "with". The semantic of the with operator is both sides need to be matched by the same package. For ease of implementation nesting of "and" terms is not supported (as they would yield tuples of packages as solution). "or" clauses are suppoerted, though. "if" and "if" "else" clauses should be supported but this needs further investigation. I have POC patch extending the rich deps parser in RPM to allow "with" and to check and reject "and" nested in "with" clauses. The - more complicated - part of actually checking if there is a single package matching is still missing though. In the patch "with" is treated like "and". -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/issues/159#issuecomment-281932868___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm-software-management/rpm] Version range dependency (#159)
Let me show some example how would libsolv work with this: ``` repo system 0 testtags repo available 0 testtags #>=Pkg: ripgrep 0.4.0 1 src #>=Req: crate(clap) >= 2.18.0 & crate(clap) < 2.19.0 #>=Pkg: rust-clap-devel 2.18.5 1 noarch #>=Prv: crate(clap) = 2.18.5 #>=Req: crate(vec_map) >= 0.6.0 & crate(vec_map) < 0.7.0 #>=Req: crate(clippy) >= 0.0.112 & crate(clippy) < 0.0.113 #>=Pkg: rust-vec_map-devel 0.6.0 1 noarch #>=Prv: crate(vec_map) = 0.6.0 #>=Req: crate(serde) >= 0.6.0 & crate(serde) < 0.7.0 #>=Pkg: rust-clippy-devel 0.0.112 1 noarch #>=Prv: crate(clippy) = 0.0.112 #>=Req: crate(serde) >= 0.9.0 & crate(serde) < 0.10.0 #>=Pkg: rust-serde-devel 0.9.1 1 noarch #>=Prv: crate(serde) = 0.9.1 #>=Pkg: rust-serde6-devel 0.6.0 1 noarch #>=Prv: crate(serde) = 0.6.0 system x86_64 rpm system poolflags implicitobsoleteusescolors solverflags allowvendorchange keepexplicitobsoletes bestobeypolicy keeporphans yumobsoletes job install pkg ripgrep-0.4.0-1.src@available result transaction,problems ``` ``` +install ripgrep-0.4.0-1.src@available +install rust-clap-devel-2.18.5-1.noarch@available +install rust-clippy-devel-0.0.112-1.noarch@available +install rust-serde-devel-0.9.1-1.noarch@available +install rust-serde6-devel-0.6.0-1.noarch@available +install rust-vec_map-devel-0.6.0-1.noarch@available ``` It would install both rust-serde-devel and rust-serde6-devel. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/issues/159#issuecomment-280907182___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm-software-management/rpm] Version range dependency (#159)
Example from Rust world: ``` ripgrep: BuildRequires: crate(clap) >= 2.18.0 ripgrep: BuildConflicts: crate(clap) >= 2.19.0 rust-clap-devel: Requires: crate(vec_map) >= 0.6.0 rust-clap-devel: Conflicts: crate(vec_map) >= 0.7.0 rust-clap-devel: Requires: crate(clippy) >= 0.0.112 rust-clap-devel: Conflicts: crate(clippy) >= 0.0.113 ``` Let's take a look for each of dependencies ``` rust-vec_map-devel: Requires: crate(serde) >= 0.6.0 rust-vec_map-devel: Conflicts: crate(serde) >= 0.7.0 rust-clippy-devel: Requires: crate(serde) >= 0.9.1 rust-clippy-devel: Conflicts: crate(serde) >= 0.10.0 ``` So when you will try to build `ripgrep`, you will end up with conflict of `crate(serde)` -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/issues/159#issuecomment-280905843___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint