Re: [gentoo-user] Re: Understanding new ruby dependencies
On Mon, May 21, 2012 at 11:07 PM, Hans de Graaff wrote: > Yes, this is true. We do this because normally ruby contains a copy of > rdoc. We unbundle that and thus the external rdoc implementation is > installed. Hans, Thank you, I understand. Apparently I have to add some ruby_targets_ruby19 USE flags to my system. I pasted a snippet of my /etc/portage/package.use below. I included some other entries for context. Question 1: Is it true that, except for this new RUBY stuff, every entry in my package.use file is an attempt by me to enable some feature I want in a package I want? Answer 1: Yes Question 2: Does it seem weird that portage wants me to add USE flags to enable some feature in a package I never heard of and have no interest in and to top it off has a very weird name (ruby_targets_ruby19)? Answer 2: [your answer here] The tone of this message might sound obnoxious, but it's just a "trick" I am using to better ask my question. I'm not complaining (I don't even know enough about this to have a complaint), I'm really just curious. Thank you, Chris === >From /etc/portage/package.use: # Give a GUI to cmake dev-util/cmake qt4 # Enable git-svn, gitk, and git bash completion dev-vcs/git tk bash-completion subversion dev-vcs/subversion -dso perl # Enable nice mounts in gnome gnome-base/gvfs fuse # Enable plotting in octave sci-mathematics/octave gnuplot # Satisfy Gentoo's desire to have RUBY and rdoc installed dev-ruby/rubygems ruby_targets_ruby19 dev-ruby/rake ruby_targets_ruby19 dev-ruby/racc ruby_targets_ruby19 dev-ruby/rdoc ruby_targets_ruby19 dev-ruby/json ruby_targets_ruby19
Re: [gentoo-user] Re: Understanding new ruby dependencies
On Tue, 22 May 2012 11:01:45 -0700 Chris Stankevitz wrote: > Apparently I have to add some ruby_targets_ruby19 USE flags to my > system. No! Don't do that! Instead, you should add a line RUBY_TARGETS=ruby19 in your make.conf (or RUBY_TARGETS="ruby18 ruby19") and let portage do the USE_EXPAND to ruby_targets_ruby19 (respectively, ruby_targets_ruby18 ruby_targets_ruby19) itself for the relevant packages. See ${PORTDIR}/profiles/desc/ruby_targets.desc for description. It is much easier and more intuitive this way, since you are not doing weird things like building package A for ruby18 but not package B. > Question 2: Does it seem weird that portage wants me to add USE flags > to enable some feature in a package I never heard of and have no > interest in and to top it off has a very weird name > (ruby_targets_ruby19)? The "weird" name is a result of USE_EXPANDing RUBY_TARGETS, just like LINGUAS and SANE_BACKENDS, for example. Kerwin. signature.asc Description: PGP signature
Re: [gentoo-user] Re: Understanding new ruby dependencies
On Tue, May 22, 2012 at 11:32 AM, wrote: > No! Don't do that! Instead, you should add a line > > RUBY_TARGETS=ruby19 Kerwin, Thank you for the warning. I'm embarrassed to say that I had absolutely no idea the proper way to deal with this change. Also embarrassing is that I never heard of USE_EXPAND before (nor have I ever even heard of RUBY). How was I supposed to learn the "proper" way of dealing with this RUBY-related system change? a) the gentoo handbook b) reading ebuild notices c) reading enews d) just "should have known" e) just follow emerge's USE recommendations and I would have been blissfully ignoring and all would work f) [your idea here] Thank you, Chris
Re: [gentoo-user] Re: Understanding new ruby dependencies
On 05/22/2012 09:10 PM, Chris Stankevitz wrote: > > How was I supposed to learn the "proper" way of dealing with this > RUBY-related system change? The way I learned was by watching the emerge output: $ emerge -pv dev-ruby/rails These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild N ] app-admin/eselect-rails-0.16 2 kB [ebuild N ] dev-ruby/tmail-1.2.7.1-r2 USE="-debug -doc -test" RUBY_TARGETS="ruby18 -jruby -ree18" 436 kB and wondering, "RUBY_TARGETS, what the hell is that?" I'm sure there's a proper way, but that's the way I've discovered all of the USE_EXPAND variables. LINGUAS was the first, then I noticed ALSA_CARDS, APACHE2_MODULES, XFCE_PLUGINS... The default list can be found in, /usr/portage/profiles/base/make.defaults
Re: [gentoo-user] Re: Understanding new ruby dependencies
On Tue, 22 May 2012 23:16:00 -0400 Michael Orlitzky wrote: > On 05/22/2012 09:10 PM, Chris Stankevitz wrote: > > > > How was I supposed to learn the "proper" way of dealing with this > > RUBY-related system change? That change was committed two-and-a-half years ago in the eclass: http://archives.gentoo.org/gentoo-dev/msg_2305dbeaaf5b02cb74a84c9b06333708.xml and the Gentoo Ruby project has a section on it http://www.gentoo.org/proj/en/prog_lang/ruby/index.xml Actually I learnt the RUBY_TARGETS from flameeyes's blog two years ago http://blog.flameeyes.eu/2010/02/ruby-ng-package-in-a-bottle-or-learn-how-to-write-a-new-ruby-ebuild > The way I learned was by watching the emerge output: > > $ emerge -pv dev-ruby/rails > > These are the packages that would be merged, in order: > > Calculating dependencies... done! > [ebuild N ] app-admin/eselect-rails-0.16 2 kB > [ebuild N ] dev-ruby/tmail-1.2.7.1-r2 USE="-debug -doc -test" > RUBY_TARGETS="ruby18 -jruby -ree18" 436 kB > > and wondering, "RUBY_TARGETS, what the hell is that?" > > I'm sure there's a proper way, but that's the way I've discovered all > of the USE_EXPAND variables. LINGUAS was the first, then I noticed > ALSA_CARDS, APACHE2_MODULES, XFCE_PLUGINS... > > The default list can be found in, > > /usr/portage/profiles/base/make.defaults I suggest keeping an eye on ${PORTDIR}/profiles/desc directory too. This is where every one of the USE_EXPAND variables is explained in details. Kerwin. signature.asc Description: PGP signature
Re: [gentoo-user] Re: Understanding new ruby dependencies
On Tue, May 22, 2012 at 10:13 PM, wrote: > I suggest keeping an eye on ${PORTDIR}/profiles/desc directory too. > This is where every one of the USE_EXPAND variables is explained in > details. Thank you for all your patient help. I've been using Gentoo for years and for some reason this RUBY thing has me flustered. 1. What on my system is insisting on make.conf RUBY 1.9 USE_EXPAND changes? An emerge --tree is not giving me a clear answer (as it usually does). The original post in this thread provides a pastebin link to back up this claim. 2. If the answer to (1) is "the gentoo system itself", then why doesn't "the gentoo system itself" update the USE_EXPAND by adding a reference to ruby19? It appears "the gentoo system itself" presently only enables the ruby18 USE_EXPAND. base $ find /usr/portage/profiles/ | xargs grep RUBY_TARGETS= /usr/portage/profiles/base/make.defaults:RUBY_TARGETS="ruby18" 3. If the answer to (1) is "package foo", I'm tempted to remove package foo or USE it with -ruby or "eat my words" and admit that I am a RUBY user and need to understand the nuances. 4. I run a "stable" system that is somehow insisting on ruby19. This webpage http://www.gentoo.org/proj/en/prog_lang/ruby/index.xml says ruby19 is not for use on production systems. Why the disconnect? Perhaps the ruby page is just out of date. 5. I have no idea what RUBY is and have never installed it directly. Yet I have to understand RUBY USE_EXPANDs which seem to be described only in the RUBY installation guide, gentoo dev manual, or in ebuild scripting guides. I am a gentoo "layperson" in general and am completely clueless about RUBY in particular. I believe talk about this "required and automatically installed package" should appear not in obscure dev documentation, but in the handbook. Perhaps with more time/volunteers this would have happened. 6. Why does emerge insist on me adding USE="ruby_targets_ruby19" to a bunch of projects, yet the users of this group recommend a change in make.conf? I suspect the disconnect that the two approaches are equivalent, just emerge does not have the "street smarts" to recommend the proper change. Thank you for listening to me list the issues I am ignorant on. Now I'm going to add RUBY_TARGETS="ruby19" to my make.conf and hope things "just work". Thank you again, Chris
Re: [gentoo-user] Re: Understanding new ruby dependencies
On Tue, May 22, 2012 at 11:35 PM, Chris Stankevitz wrote: > I'm going to add RUBY_TARGETS="ruby19" to my make.conf and hope things > "just work". Sure enough... the update is building now and I bet everything will indeed "just work". Thank you, Chris
Re: [gentoo-user] Re: Understanding new ruby dependencies
On Tue, 22 May 2012 23:35:21 -0700 Chris Stankevitz wrote: > On Tue, May 22, 2012 at 10:13 PM, wrote: > > I suggest keeping an eye on ${PORTDIR}/profiles/desc directory too. > > This is where every one of the USE_EXPAND variables is explained in > > details. > > Thank you for all your patient help. I've been using Gentoo for years > and for some reason this RUBY thing has me flustered. > > 1. What on my system is insisting on make.conf RUBY 1.9 USE_EXPAND > changes? An emerge --tree is not giving me a clear answer (as it > usually does). The original post in this thread provides a pastebin > link to back up this claim. Basically the newslot upgrade ruby 1.8.x -> 1.9.x. For example, you can see that in ${PORTDIR}/dev-ruby/json/json-1.5.4-r1.ebuild there is the line PDEPEND=" rdoc? ( >=dev-ruby/rdoc-3.9.4[ruby_targets_ruby19] ) xemacs? ( app-xemacs/ruby-modes )" Previously in json-1.5.4.ebuild there is no such check, as you can diff for yourself. > 2. If the answer to (1) is "the gentoo system itself", then why > doesn't "the gentoo system itself" update the USE_EXPAND by adding a > reference to ruby19? It appears "the gentoo system itself" presently > only enables the ruby18 USE_EXPAND. > base $ find /usr/portage/profiles/ | xargs grep RUBY_TARGETS= > /usr/portage/profiles/base/make.defaults:RUBY_TARGETS="ruby18" That is usual... profile changes lag behind the ebuild changes. > 4. I run a "stable" system that is somehow insisting on ruby19. This > webpage http://www.gentoo.org/proj/en/prog_lang/ruby/index.xml says > ruby19 is not for use on production systems. Why the disconnect? > Perhaps the ruby page is just out of date. I suppose ruby19 is in a state similar to python3 --- not ready to be default since *something* break, but it has been out long enough to be considered "stable". > 5. I have no idea what RUBY is and have never installed it directly. > Yet I have to understand RUBY USE_EXPANDs which seem to be described > only in the RUBY installation guide, gentoo dev manual, or in ebuild > scripting guides. I am a gentoo "layperson" in general and am > completely clueless about RUBY in particular. I believe talk about > this "required and automatically installed package" should appear not > in obscure dev documentation, but in the handbook. Perhaps with more > time/volunteers this would have happened. TBH, I'm not a ruby person either. The only thing here on my system that pulls in ruby is dev-texlive/texlive-pictures, plus I need ruby for some random scripts I pulled from the web (which I could have rewritten in python or bash but I can't be bothered). > 6. Why does emerge insist on me adding USE="ruby_targets_ruby19" to a > bunch of projects, yet the users of this group recommend a change in > make.conf? I suspect the disconnect that the two approaches are > equivalent, just emerge does not have the "street smarts" to recommend > the proper change. That is how ebuild (and hence portage) works --- it didn't check RUBY_TARGETS but instead the specified use flags for dependencies specified the ebuild. Hence the error message is "add use flag bar to package foo, regardless of whether bar is actually an expanded flag. As you see in the example above json ebuild tells portage to check dev-ruby/rdoc is built with ruby_targets_ruby19 use flag (which is what RUBY_TARGETS=ruby19 would have expanded to) enabled and so that is what portage did (and screamed when it can't). Kerwin. signature.asc Description: PGP signature
Re: [gentoo-user] Re: Understanding new ruby dependencies
On Tue, May 22, 2012 at 11:35 PM, Hans de Graaff wrote: > For now this should be > > RUBY_TARGETS="ruby18 ruby19" As you all suspected, I updated /etc/make.conf, "emerge --newuse --deep world && emerge -Du world" and all is well. Here are the lines I added: # 2012-MAY-22 ruby19 is required but is not in the profile (yet) RUBY_TARGETS="ruby18 ruby19" Thank you all, Chris