Hi all,
Today, I noticed that mock build root prepared by DNF is significantly larger then prepared by YUM (see attached logs). Owners of packages installed into minimal buildroot probably wants to review their dependency chain.
I also reported the issue against DNF [1] in case DNF guys wants to improve this situation.
Vít
Dne 18.8.2015 v 16:26 Vít Ondruch napsal(a):
Hi all,
Today, I noticed that mock build root prepared by DNF is significantly larger then prepared by YUM (see attached logs). Owners of packages installed into minimal buildroot probably wants to review their dependency chain.
I also reported the issue against DNF [1] in case DNF guys wants to improve this situation.
Vít
Sorry, I attached wrong yum.log ... but you can find the correct one in the bug referenced above.
Vít
On 2015-08-18 16:32, Vít Ondruch wrote:
Dne 18.8.2015 v 16:26 Vít Ondruch napsal(a):
Hi all,
Today, I noticed that mock build root prepared by DNF is significantly larger then prepared by YUM (see attached logs). Owners of packages installed into minimal buildroot probably wants to review their dependency chain.
I also reported the issue against DNF [1] in case DNF guys wants to improve this situation.
Vít
Sorry, I attached wrong yum.log ... but you can find the correct one in the bug referenced above.
Vít
The cause might be soft dependencies. dnf installs Recommends, while yum ignores them. I think some packages in base buildroot are already using them (gdb).
Michael
On Tue, Aug 18, 2015 at 04:52:10PM +0200, Michael Šimáček wrote:
Today, I noticed that mock build root prepared by DNF is significantly larger then prepared by YUM (see attached logs). Owners of packages
[...]
The cause might be soft dependencies. dnf installs Recommends, while yum ignores them. I think some packages in base buildroot are already using them (gdb).
Hmmm. I think that for the buildroot case, we probably want DNF to _not_ installer Recommended packages.
Do we have a switch or configuration option for that yet? On Aug 18, 2015 5:27 PM, "Heiko Adams" ml@fedora-blog.de wrote:
Am Dienstag, den 18.08.2015, 14:54 -0400 schrieb Matthew Miller:
Hmmm. I think that for the buildroot case, we probably want DNF to _not_ installer Recommended packages.
That makes sense to me.
Regards, Heiko Adams -- devel mailing list devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/devel Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct
Dne 18.8.2015 v 16:26 Vít Ondruch napsal(a):
Hi all,
Today, I noticed that mock build root prepared by DNF is significantly larger then prepared by YUM (see attached logs). Owners of packages installed into minimal buildroot probably wants to review their dependency chain.
I also reported the issue against DNF [1] in case DNF guys wants to improve this situation.
Vít
Please note that the issue was already resolved in mock upstream, but you need to have DNF 1.1 to make it work, if I am not mistaken.
Vít
Dne 18.8.2015 v 16:26 Vít Ondruch napsal(a):
Hi all,
Today, I noticed that mock build root prepared by DNF is significantly larger then prepared by YUM (see attached logs). Owners of packages installed into minimal buildroot probably wants to review their dependency chain.
I also reported the issue against DNF [1] in case DNF guys wants to improve this situation.
Vít
This change does not look to be reflected on Koji, so I opened
https://fedorahosted.org/rel-eng/ticket/6330
Vít
Dne 12.1.2016 v 15:18 Vít Ondruch napsal(a):
Dne 18.8.2015 v 16:26 Vít Ondruch napsal(a):
Hi all,
Today, I noticed that mock build root prepared by DNF is significantly larger then prepared by YUM (see attached logs). Owners of packages installed into minimal buildroot probably wants to review their dependency chain.
I also reported the issue against DNF [1] in case DNF guys wants to improve this situation.
Vít
This change does not look to be reflected on Koji, so I opened
https://fedorahosted.org/rel-eng/ticket/6330
Vít
So this request was rejected:
Changes (by ausil):
* status: new => closed * resolution: => wontfix
Comment:
after thinking about this some I think that all deps should be installed into the buildroot. I am going to close this as won't fix. This really needs to have more thought. and discussion before anything is done. there is work, tradeoffs and unexpected results regardless of what is done.
So it appears this thread was probably not enough. Which keeps us with interesting state where mock by default does not install weak dependencies where Koji installs them. It causes interesting issues already.
Not sure if I should prepare my packages to be ready or not ....
Vít
Dne 25.1.2016 v 17:03 Vít Ondruch napsal(a):
Dne 12.1.2016 v 15:18 Vít Ondruch napsal(a):
Dne 18.8.2015 v 16:26 Vít Ondruch napsal(a):
Hi all,
Today, I noticed that mock build root prepared by DNF is significantly larger then prepared by YUM (see attached logs). Owners of packages installed into minimal buildroot probably wants to review their dependency chain.
I also reported the issue against DNF [1] in case DNF guys wants to improve this situation.
Vít
This change does not look to be reflected on Koji, so I opened
https://fedorahosted.org/rel-eng/ticket/6330
Vít
So this request was rejected:
Changes (by ausil):
- status: new => closed
- resolution: => wontfix
Comment:
after thinking about this some I think that all deps should be installed into the buildroot. I am going to close this as won't fix. This really needs to have more thought. and discussion before anything is done. there is work, tradeoffs and unexpected results regardless of what is done.
So it appears this thread was probably not enough. Which keeps us with interesting state where mock by default does not install weak dependencies where Koji installs them. It causes interesting issues already.
Not sure if I should prepare my packages to be ready or not ....
Vít
Actually there is the upstream Koji ticket opened:
https://fedorahosted.org/koji/ticket/326#comment:4
So there is still some hope :)
Vít
W dniu 25.01.2016 o 17:03, Vít Ondruch pisze:
So it appears this thread was probably not enough. Which keeps us with interesting state where mock by default does not install weak dependencies where Koji installs them. It causes interesting issues already.
mock/koji not installing weak dependencies == anything wanting ruby being broken.
Reason: "ruby" suggests "rubypick" which suggests "ruby".
Packages buildrequire "ruby" but do not get "rubypick" installed (or if they are lucky they get) so are unable to find Ruby because there is no "/bin/ruby" executable.
https://bugzilla.redhat.com/show_bug.cgi?id=1300669 shows how it look on aarch64.
Not sure if I should prepare my packages to be ready or not ....
"rubypick" is yours ;D
mån 2016-01-25 klockan 18:09 +0100 skrev Marcin Juszkiewicz:
W dniu 25.01.2016 o 17:03, Vít Ondruch pisze:
So it appears this thread was probably not enough. Which keeps us with interesting state where mock by default does not install weak dependencies where Koji installs them. It causes interesting issues already.
mock/koji not installing weak dependencies == anything wanting ruby being broken.
Reason: "ruby" suggests "rubypick" which suggests "ruby".
Packages buildrequire "ruby" but do not get "rubypick" installed (or if they are lucky they get) so are unable to find Ruby because there is no "/bin/ruby" executable.
If ruby needs ruby-pick to work, then ruby-pick must not be a weak dependency of ruby, but a hard one.
The koji buildroot really should only install hard dependencies. The buildroot is supposed to be the minimal possible set needed to build the package. If a package that would be installed as a weak dependency of one of the build dependencies is needed to build the package, that packa is a build dependency too.
Mattias
Dne 25.1.2016 v 18:58 Mattias Ellert napsal(a):
mån 2016-01-25 klockan 18:09 +0100 skrev Marcin Juszkiewicz:
W dniu 25.01.2016 o 17:03, Vít Ondruch pisze:
So it appears this thread was probably not enough. Which keeps us with interesting state where mock by default does not install weak dependencies where Koji installs them. It causes interesting issues already.
mock/koji not installing weak dependencies == anything wanting ruby being broken.
Yep, I know. Believe or not, this is precisely how I found out that Koji installs the weak dependencies while mock does not.
Reason: "ruby" suggests "rubypick" which suggests "ruby".
Packages buildrequire "ruby" but do not get "rubypick" installed (or if they are lucky they get) so are unable to find Ruby because there is no "/bin/ruby" executable.
If ruby needs ruby-pick to work, then ruby-pick must not be a weak dependency of ruby, but a hard one.
The thing is that ruby does not need rubypick to work, but you have to call ruby-mri instead of ruby in this case. This of course allows you to avoid rubypick on your system in case you really know what you are doing.
For some moment, I was thinking to add rubypick as dependency of ruby-devel, but decided against it (at least for the time being), since there are several reasons for the situation and multiple ways how to fix it. Just several examples which comes to my mind:
1) There are chances that the build does not need the ruby executable at all, since it just want to have headers for build. 2) The configure script can be configured what Ruby executable should be called. 3) There can be explicit BR: /usr/bin/ruby
I'd love to take this opportunity to gain knowledge how all these projects are actually using Ruby.
Vít
So it appears this thread was probably not enough. Which keeps us with interesting state where mock by default does not install weak dependencies where Koji installs them. It causes interesting issues already.
mock/koji not installing weak dependencies == anything wanting ruby being broken.
Reason: "ruby" suggests "rubypick" which suggests "ruby".
Packages buildrequire "ruby" but do not get "rubypick" installed (or if they are lucky they get) so are unable to find Ruby because there is no "/bin/ruby" executable.
If ruby needs ruby-pick to work, then ruby-pick must not be a weak dependency of ruby, but a hard one.
The koji buildroot really should only install hard dependencies. The buildroot is supposed to be the minimal possible set needed to build the package. If a package that would be installed as a weak dependency of one of the build dependencies is needed to build the package, that packa is a build dependency too.
That's incorrect. EG a package has optional Ruby bindings, it doesn't need ruby to build but if ruby isn't present the ruby binding sub package is empty. The buildroot should have all that is needed to build the desired functionality, nothing more nothing less.
Peter
On Tue, 26 Jan 2016 10:18:08 +0000 Peter Robinson pbrobinson@gmail.com wrote:
So it appears this thread was probably not enough. Which keeps us with interesting state where mock by default does not install weak dependencies where Koji installs them. It causes interesting issues already.
mock/koji not installing weak dependencies == anything wanting ruby being broken.
Reason: "ruby" suggests "rubypick" which suggests "ruby".
Packages buildrequire "ruby" but do not get "rubypick" installed (or if they are lucky they get) so are unable to find Ruby because there is no "/bin/ruby" executable.
If ruby needs ruby-pick to work, then ruby-pick must not be a weak dependency of ruby, but a hard one.
The koji buildroot really should only install hard dependencies. The buildroot is supposed to be the minimal possible set needed to build the package. If a package that would be installed as a weak dependency of one of the build dependencies is needed to build the package, that packa is a build dependency too.
That's incorrect. EG a package has optional Ruby bindings, it doesn't need ruby to build but if ruby isn't present the ruby binding sub package is empty. The buildroot should have all that is needed to build the desired functionality, nothing more nothing less.
+1, distribution buildsystem should include all needed deps, including weak, to build full featured result, but the users then can decide if they want the bare minimum or to include some the weak deps.
Dan
tis 2016-01-26 klockan 10:18 +0000 skrev Peter Robinson:
So it appears this thread was probably not enough. Which keeps us with interesting state where mock by default does not install weak dependencies where Koji installs them. It causes interesting issues already.
mock/koji not installing weak dependencies == anything wanting ruby being broken.
Reason: "ruby" suggests "rubypick" which suggests "ruby".
Packages buildrequire "ruby" but do not get "rubypick" installed (or if they are lucky they get) so are unable to find Ruby because there is no "/bin/ruby" executable.
If ruby needs ruby-pick to work, then ruby-pick must not be a weak dependency of ruby, but a hard one.
The koji buildroot really should only install hard dependencies. The buildroot is supposed to be the minimal possible set needed to build the package. If a package that would be installed as a weak dependency of one of the build dependencies is needed to build the package, that packa is a build dependency too.
That's incorrect. EG a package has optional Ruby bindings, it doesn't need ruby to build but if ruby isn't present the ruby binding sub package is empty. The buildroot should have all that is needed to build the desired functionality, nothing more nothing less.
Peter
I agree that it is a reasonable expectation that installing "ruby" should make a /usr/bin/ruby binary available. The fact that it currently doesn't when weak dependencies are not installed is a packaging bug in ruby, which should be addressed. It is not a reason to bloat every koji build root for every build of every package in Fedora with every weak dependency of every build dependency of the package being built.
Mattias
Dne 26.1.2016 v 20:27 Mattias Ellert napsal(a):
tis 2016-01-26 klockan 10:18 +0000 skrev Peter Robinson:
So it appears this thread was probably not enough. Which keeps us with interesting state where mock by default does not install weak dependencies where Koji installs them. It causes interesting issues already.
mock/koji not installing weak dependencies == anything wanting ruby being broken.
Reason: "ruby" suggests "rubypick" which suggests "ruby".
Packages buildrequire "ruby" but do not get "rubypick" installed (or if they are lucky they get) so are unable to find Ruby because there is no "/bin/ruby" executable.
If ruby needs ruby-pick to work, then ruby-pick must not be a weak dependency of ruby, but a hard one.
The koji buildroot really should only install hard dependencies. The buildroot is supposed to be the minimal possible set needed to build the package. If a package that would be installed as a weak dependency of one of the build dependencies is needed to build the package, that packa is a build dependency too.
That's incorrect. EG a package has optional Ruby bindings, it doesn't need ruby to build but if ruby isn't present the ruby binding sub package is empty. The buildroot should have all that is needed to build the desired functionality, nothing more nothing less.
Peter
I agree that it is a reasonable expectation that installing "ruby" should make a /usr/bin/ruby binary available. The fact that it currently doesn't when weak dependencies are not installed is a packaging bug in ruby, which should be addressed. It is not a reason to bloat every koji build root for every build of every package in Fedora with every weak dependency of every build dependency of the package being built.
When you install "ruby" package on your system, the "/usr/bin/ruby" command is indeed installed on your system. The question is what should be installed when you install ruby-devel package.
Vít
devel@lists.stg.fedoraproject.org